Skip to content

Demo token

Documentation / API Reference / Demo token

Endpoint https://api.aradia.app

1 endpoint in this section: POST /v1/demo-token.

Issue a short-lived read-only demo token

Mints a throwaway credential so the documentation console can call the API without anyone signing up. This is the only endpoint that takes no credential, because it is the one that produces them. The token is read-only, expires 15 minutes after it is issued, and carries the demo ceiling of 1 request per second. Only the token's hash is stored, so a token cannot be recovered after this response: request another one. Issuance itself is limited to 5 per minute per IP address. Use a real API key for anything beyond trying an endpoint.

Authorization

Send a bearer credential with the scope bearer API key.

Parameters

This endpoint takes no parameters.

Request Code Samples

POST/v1/demo-token
Terminal window
curl -sS -X POST \
-H "Authorization: Bearer $ARADIA_API_TOKEN" \
"https://api.aradia.app/v1/demo-token"
Responses
200A new demo token. Never cached.
application/json

A new demo token. Never cached.

Headers: Cache-Control

Body application/json
dataobjectrequired
tokenstringrequired
Bearer credential, prefixed ara_demo_. Send it as Authorization: Bearer. Not recoverable later.
Example: ara_demo_AAAAAAAAAAAAAAAA_BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
expires_atstring (date-time)required
When the token stops authenticating. 15 minutes after issuance.
Example: 2026-08-18T12:15:00Z
scopesarray[string]required
Read-only scopes granted. Never includes a write scope.
limitsobjectrequired
The ceiling this token is subject to, so a client can pace itself instead of discovering it through 429s.
requests_per_secondintegerrequired
Example: 1
requests_per_minuteintegerrequired
Example: 30
concurrentintegerrequired
Example: 2
Example
{
"data": {
"token": "ara_demo_AAAAAAAAAAAAAAAA_BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
"expires_at": "2026-08-18T12:15:00Z",
"scopes": [
"read:collections",
"read:nfts",
"read:owners",
"read:transfers",
"read:activity",
"read:status"
],
"limits": {
"requests_per_second": 1,
"requests_per_minute": 30,
"concurrent": 2
}
}
}
429Request rate limit exceeded
application/json

Request rate limit exceeded

Headers: RateLimit-Reset, Retry-After

Body application/json
errorobjectrequired
codeINVALID_ARGUMENT | UNAUTHORIZED | FORBIDDEN | NOT_FOUND | RATE_LIMITED | RATE_LIMITER_UNAVAILABLE | SERVICE_UNAVAILABLE | INTERNAL_ERRORrequired
Example: RATE_LIMITED
messagestringrequired
Example: Request rate limit exceeded.
request_idstringoptional
Example
{
"error": {
"code": "RATE_LIMITED",
"message": "Request rate limit exceeded."
}
}
503Temporary dependency failure
application/json

Temporary dependency failure

Body application/json
errorobjectrequired
codeINVALID_ARGUMENT | UNAUTHORIZED | FORBIDDEN | NOT_FOUND | RATE_LIMITED | RATE_LIMITER_UNAVAILABLE | SERVICE_UNAVAILABLE | INTERNAL_ERRORrequired
Example: SERVICE_UNAVAILABLE
messagestringrequired
Example: The data service is temporarily unavailable.
request_idstringoptional
Example
{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "The data service is temporarily unavailable."
}
}
Try itDemo token included
POST/v1/demo-token
RequestJSON
What each field does

This endpoint takes no parameters.

Response
Response appears here.