Skip to content

Errors

All errors return a JSON object with an error field.

{
"error": "Human-readable error message."
}
CodeMeaningWhen
200OKSuccessful request
201CreatedAPI key generated successfully
400Bad RequestInvalid parameters (e.g. bad candle resolution, missing q param)
401UnauthorizedMissing or malformed API key
403ForbiddenAPI key is invalid or inactive
404Not FoundMarket, wallet, or token not found
429Too Many RequestsRate limit exceeded
500Internal Server ErrorServer-side error (Redis, state engine)
503Service UnavailableNode disconnected or Redis down (readyz check)
// 401
{
"error": "Missing or invalid API key. Use x-api-key header or ?key= param."
}

Fix: Include your API key as a header (x-api-key: pn_live_...) or query parameter (?key=pn_live_...).

// 403
{
"error": "Invalid or inactive API key."
}

Fix: Verify your key is correct. Keys cannot be retrieved after creation — generate a new one if lost.

// 429
{
"error": "Rate limit exceeded. Retry after 1709136060."
}

Fix: Wait until the timestamp, or reduce request frequency. Default limit is 120 requests per minute.

// 404
{
"error": "Market 0x123... not found"
}

Fix: Verify the token ID. Use /v1/search to find the correct token.

// 400
{
"error": "Invalid resolution. Use: 1m, 5m, 15m, 1h, 4h, 1d"
}
// 400
{
"error": "Missing required query parameter 'q'"
}
// 429
{
"error": "Too many key generation requests. Max 3 per hour."
}