Comment on page
Using the API
In order to use the GraphQL endpoints, you'll need to authenticate yourself. You will need a Apps token to access this endpoint. Only a subset of the endpoints can be accessed with a public token. This makes it possible to access functionality like querying product recommendations in an environment where it's not possible to protect the token, for example in a web browser. Each publicly accessible endpoint is denoted in the embedded documentation inside the playground.
Note: Nosto does not rate-limit the API usage but follows a fair-use policy. Nosto reserves the right to revoke API access for any abusive API usage patterns.
You can send your GraphQL requests as JSON to our API and have it correctly interpolate variables passed into it. To do so, set the
Content-Type
header to application/json
.Authentication | Token | Method | Endpoint |
---|---|---|---|
Basic | API_APPS | POST | https://api.nosto.com/v1/graphql |
curl -0 -v -X POST https://api.nosto.com/v1/graphql \
-u ":<token>" \
-H 'Content-Type: application/json' \
-d @- << EOF
{
"query": "query { recos (preview: false, image: VERSION_7_200_200) { toplist(hours: 168, sort: BUYS, params: { minProducts: 1 maxProducts: 10 } ) { primary { name productId } } } }"
}
EOF
If you want to send raw GraphQL queries to the API, you can still do so but you must set the
Content-Type
header to application/graphql
.Note: If you do not set the correct Content-Type header, the request will be interpreted as JSON and will fail.
Authentication | Token | Method | Endpoint |
---|---|---|---|
Basic | API_APPS | POST | https://api.nosto.com/v1/graphql |
curl -0 -v -X POST https://api.nosto.com/v1/graphql \
-u ":<token>" \
-H 'Content-Type: application/graphql' \
-d @- << EOF
query {
recos (preview: false, image: VERSION_7_200_200) {
toplist(hours: 168, sort: BUYS, params: {
minProducts: 1
maxProducts: 10
}) {
primary {
name
productId
}
}
}
}
EOF
You can use the browser's fetch API to request data from GraphQL. You will need to authenticate yourself and set the appropriate content-type headers.
You can send your GraphQL requests as JSON to our API and have it correctly interpolate variables passed into it. To do so, set the
Content-Type
header to application/json
.const body = JSON.stringify({
query: `
query {
order(id: "5192009") {
number
reference
items {
productId
skuId
unitPrice
priceCurrencyCode
quantity
}
recos(preview: true, image: VERSION_1_170_170) {
related(params: {
minProducts: 1,
maxProducts: 5
}) {
primary {
productId
name
price
}
}
}
}
}
`});
fetch('https://api.nosto.com/v1/graphql', {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa(":" + "<token>")
}),
mode: 'cors',
body
})
.then((response) => response.json())
.then((json) => {
console.log(json);
});
If you want to send raw GraphQL queries to the API, you can still do so but you must set the
Content-Type
header to application/graphql
.**NOTE:**If you do not set the correct Content-Type header, the request will be interpreted as JSON and will fail.
const body = `
query {
order(id: "5192009") {
number
reference
items {
productId
skuId
unitPrice
priceCurrencyCode
quantity
}
recos(preview: true, image: VERSION_1_170_170) {
related(params: {
minProducts: 1,
maxProducts: 5
}) {
primary {
productId
name
price
}
}
}
}
}
`;
fetch('https://api.nosto.com/v1/graphql', {
method: 'POST',
headers: new Headers({
'Content-Type': 'application/graphql',
'Authorization': 'Basic ' + btoa(":" + "<token>")
}),
mode: 'cors',
body
})
.then((response) => response.json())
.then((json) => {
console.log(json);
});
Last modified 3d ago