Skip to content

Error Handling

The ANKK Public API returns standard HTTP status codes accompanied by detailed error JSON bodies.


All error responses adhere to the following schema:

{
"error": "idempotency_conflict",
"message": "The idempotency key was already used with a different request payload.",
"param": "idempotency_key"
}

Status CodeError CodeMeaning & Recommended Action
400 Bad Requestinvalid_input, validation_failedMalformed request body or parameters. Fix payload.
401 Unauthorizedunauthorized, invalid_api_keyMissing or invalid API key.
403 Forbiddeninsufficient_scope, quota_exceededMissing scope or plan quota exceeded.
404 Not Foundnot_foundResource (content_id, connection_id) not found.
409 Conflictidempotency_conflictIdempotency key reused with mismatched payload.
423 Lockedbrand_lockedBrand locked due to billing or policy. Check Billing.
429 Too Many Requestsrate_limitedRate limit exceeded. Back off per Retry-After.
500 Server Errorinternal_server_errorInternal server issue. Retriable with backoff.
503 Service Unavailablesns_provider_unavailableExternal social network outage. Retriable later.

{
"error": "insufficient_scope",
"message": "The API key does not have the required 'publishing:create' scope."
}
{
"error": "idempotency_conflict",
"message": "Idempotency key 'launch-001' is already bound to a different request hash.",
"param": "idempotency_key"
}
{
"error": "sns_content_media_maximum_exceeded",
"message": "Bluesky supports a maximum of 4 images per post.",
"param": "media"
}

  • Retriable (5xx, Network Timeouts): Resend using the exact same idempotency_key with exponential jitter backoff.
  • Non-Retriable (400, 401, 403, 404, 409): Modify client code or payload, then reissue under a new idempotency key.