Errors
Errors are JSON. HTTP status matches the code class.
{
"error": {
"code": "invalid_api_key",
"message": "API key is invalid or revoked."
}
}400invalid_json/invalid_request/apns_not_configured— bad JSON, failed validation, or missing Apple credentials401unauthorized/invalid_api_key— missing, wrong, or revoked Bearer token403forbidden/plan_limit— a public iOS key was used for a server-only operation, or a free-tier cap was hit404activity_not_found— that activity ID is not in this project409activity_ended— updates are rejected after end429rate_limited— slow down500internal_error
Delivery failures after a valid request still return HTTP 200 with a delivery object status: "failed". Check the dashboard for the APNs reason (BadDeviceToken, ExpiredProviderToken, and so on). Live Hive does not invent a successful delivery. Machine copy: /llms.txt.