Skip to main content

Errors

The Agency API uses standard HTTP status codes.

StatusMeaning
200 OKRequest succeeded (reads: Search, Extras, History, Get, List/Get webhook).
201 CreatedA webhook was registered.
202 AcceptedA booking or cancellation was accepted for asynchronous processing — poll the attempt, or use webhooks, for the final outcome.
204 No ContentA webhook was deleted.
400 Bad RequestThe request body failed validation, or (for Create/Cancel) a walletId was supplied that doesn't match your own authenticated wallet.
401 UnauthorizedNo credential was supplied, or it doesn't match a valid, enabled, non-revoked API key.
403 ForbiddenYour API key is valid but not scoped for this endpoint.
404 Not FoundThe resource doesn't exist, or it exists but belongs to a different tenant. This API deliberately returns 404, not 403, when a resource exists but isn't yours — it doesn't confirm to an unauthorized caller that a given ID exists at all. Scope errors above are the one deliberate exception: your own key's scopes aren't sensitive information, so those return a real 403.
429 Too Many RequestsYou've exceeded your tenant's rate limit. Back off and retry — rate limits are tracked per tenant, not shared across agencies.

A note on booking outcomes

A booking attempt reaching Failed (via GET /api/v1/FlightBooking/{attemptId} or a flight_booking.failed webhook) is not an HTTP error — the request to create the attempt succeeded (202 Accepted); Failed is one of several possible final states of that attempt, and no charge was made. See the booking flow guide for the full set of terminal states.