Dashboard
API Reference

Errors

HTTP status codes and safe retry behavior.

HALO preserves provider-compatible error envelopes where practical and returns stable machine-readable codes for Authentication and selected payment flows.

#Error shapes

{
  "error": {
    "message": "Invalid API Key",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}

#Status codes

StatusMeaningDefault action
400Invalid payload, redirect, scope, model, or contractFix the request
401Credential or required proof missingAuthenticate; do not blind retry
403Invalid credential or blocked resourceStop and inspect policy
402Payment is requiredSettle or add balance, then retry
409State or rollout conflictRefresh state and follow the code
429Usage or Authentication rate limitBack off
500Unexpected server failureRetry only if idempotent
503Required dependency or capacity unavailableBack off with jitter

#Retry policy

  • Retry GET requests and explicitly idempotent operations with bounded backoff.
  • Do not replay one-time authorization codes, refresh tokens, or payment proofs blindly.
  • Streaming requests require application-level handling because a partial response may have already reached the client.
  • Respect Retry-After when it is present.

#Security failures