Sending API requests
The Cyanite.ai GraphQL API is served over HTTP.
GraphQL is a query language that is used for reading data from our service in comparison to traditional Restful APIs it has a strict and typed schema.
Clients that consume a GraphQL API must send a query that specifies the data they are interested in.
There is only a single /graphql
endpoint in the GraphQL api.
We recommend checking out the official GraphQL Learning Resources for covering the basics.
We also have a Query Builder as well as a full generated GraphQL Schema Documentation that can help you explore the API.
HTTP endpoint
The endpoint is compliant with the GraphQL over HTTP specification. Our API should be compatible with all major GraphQL clients.
You can learn more over here: https://graphql.org/learn/serving-over-http/
We recommend sending requests to https://api.cyanite.ai/graphql
via the POST
method.
Example Request Body
{
"query": "query LibraryTracksQuery { libraryTracks(first: 10) { edges { node { id } } } }",
"operationName": "...",
"variables": { "first": 10 }
}
Authentication
For authentication the Authorization
header must be set. It uses the Bearer
format.
The HTTP header should look similar to this: Authorization: Bearer ACCESS_TOKEN
. ACCESS_TOKEN
should be replaced with the integration access token we created in the Creating an integration guide.
Example curl call
curl
is a command line utility for sending HTTP requests available in most shells.
curl \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ACCESS_TOKEN"\
--data '{ "query": "query LibraryTracksQuery { libraryTracks(first: 10) { edges { node { id } } } }", "variables": { "first": 10 } }' \
https://api.cyanite.ai/graphql
Example Javascript Fetch Call
fetch
is a standard library in modern JavaScript runtimes for sending HTTP requests.
fetch("https://api.cyanite.ai/graphql", {
method: "POST",
body: JSON.stringify({
query: {
query: /* GraphQL */ `
query LibraryTracksQuery {
libraryTracks(first: 10) {
edges {
node {
id
}
}
}
}
`,
variables: {
first: 10,
},
},
}),
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + "xxxxxx1212",
},
})
.then((res) => res.json())
.then(console.log);
GraphiQL
We sometimes embed GraphiQL in the documents so you can try the queries right away. In most cases you need to only provide your Access Token.
The Cyanite.ai API Schema is introspectable. You can play around with the API by visiting GraphiQL in your browser.
Make sure you set the correct Authorization header in the REQUEST HEADERS
section because most of the queries can be only accessed by registered users.
By default the Authorization
header contains the following string: Bearer YOUR_ACCESS_TOKEN
. Make sure to replace the YOUR_ACCESS_TOKEN
with the token from your integration.