Errors

Errors are JSON. HTTP status matches the code class.

{
  "error": {
    "code": "invalid_api_key",
    "message": "API key is invalid or revoked."
  }
}
  • 400 invalid_json / invalid_request / apns_not_configured — bad JSON, failed validation, or missing Apple credentials
  • 401 unauthorized / invalid_api_key — missing, wrong, or revoked Bearer token
  • 403 forbidden / plan_limit — a public iOS key was used for a server-only operation, or a free-tier cap was hit
  • 404 activity_not_found — that activity ID is not in this project
  • 409 activity_ended — updates are rejected after end
  • 429 rate_limited — slow down
  • 500 internal_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.