API Reference
Access detailed reference documentation for Amondo's API endpoints.
Overview
Amondo provides a GraphQL Public API to work with Amondo entities programmatically. The same API is used internally by our team to power the Amondo platform, so external developers have full access to the same capabilities.
If you are new to GraphQL, we recommend reviewing the official GraphQL documentation to get familiar with queries, mutations, and schema design.
With this API you can:
Query published Imprints
Manage Collections, Tiles and Frames
Authenticate and manage user sessions
Access analytics and metadata (where available)
Endpoints
Amondo provides two GraphQL endpoints:
Standard API (full access):
https://gql.amondo.comCached API (read-only, optimised for published Imprints):
https://gql-public.amondo.comUse the cached API for requests that fetch published content (e.g. query ImprintPublication), to improve performance and reduce load on the main endpoint.
All requests must be made over HTTPS.
Authentication
Amondo uses OAuth 2.0 for authentication. Every request must include a valid bearer token in the Authorization header:
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
--data '{ "query": "{ me { id teams } }" }' \
https://gql.amondo.comThe only auth-less operations are:
query ImprintPublicationmutation Loginmutation submitQuizResults
Getting access
To use the API, you will need valid login credentials for an Amondo account. API access is currently provisioned as part of an Amondo platform subscription.
Contact your Amondo account manager or support team to request developer access.
You will be provided with a user email and password.
Use these credentials with the
mutation logincall to retrieve your API token.
If you need to rotate or revoke access, please contact Amondo support.
Getting a token
Tokens are retrieved using the mutation login mutation with your user email and password.
Example request:
mutation {
login(email: "[email protected]", password: "secret") {
token
user {
id
email
}
}
}Example response:
{
"data": {
"login": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": "12345",
"email": "[email protected]"
}
}
}
}Use the returned token in the Authorization header for all subsequent requests.
Queries
Below is a list of key queries available in the API. For the full schema, use the GraphQL introspection query.
ImprintPublication (public, cached)
Fetches details of a published Imprint.
Example request:
query {
imprintPublication(id: "abc123") {
id
imprint {
id
status
}
}
}Example response:
{
"data": {
"imprintPublication": {
"id": "abc123",
"imprint": {
"id": "abc",
"status": "ACTIVE"
}
}
}
}Other queries
collection(id: ID)→ Fetch details of a Collectiontile(id: ID)→ Fetch details of a Tile
Mutations are used to create, update or delete entities.
createTile
Creates a new Tile in a Collection.
Example request:
mutation {
createTextTile(data: {
mediaUrl: "https://image.com",
collectionId: "abc123"
}) {
id
status
}
}Example response:
{
"data": {
"createTextTile": {
"id": "tile999",
"status": "ACTIVE"
}
}
}Error handling
All errors are returned in the standard GraphQL errors array.
Example error response:
{
"errors": [
{
"message": "Unauthorized",
"extensions": {
"code": "UNAUTHENTICATED"
}
}
]
}Common error codes:
UNAUTHENTICATED→ Missing or invalid tokenFORBIDDEN→ User does not have permission for this resourceNOT_FOUND→ Requested entity does not existINTERNAL_SERVER_ERROR→ Unexpected server error
Business logic errors If error is a part of business logic, it will be returned in the problems array with code and message
Tools & testing
Use GraphQL Playground (if enabled) for interactive exploration of the schema.
Any GraphQL client library (Apollo, Relay, urql) can be used with Amondo's endpoints.
Last updated