Developers

API errors

Errors tell you what failed and what to change. Every error uses the same JSON shape.

Error shape

JSON
{
  "type": "https://supahost.io/docs/api-errors#invalid_date",
  "title": "Invalid request",
  "status": 400,
  "code": "invalid_date",
  "detail": "arrival_from must use the YYYY-MM-DD format.",
  "requestId": "6a660c5f-3e6f-4926-a24a-6292dd54fdd3",
  "errors": [
    { "field": "arrival_from", "message": "arrival_from must use the YYYY-MM-DD format." }
  ]
}

Authentication and access

  • invalid_api_key means that Supahost did not accept the key. The key can be absent, invalid, expired, or revoked.
  • insufficient_scope names the scope that the key needs.
  • rate_limit_exceeded includes the number of seconds to wait.

Request errors

  • invalid_cursor means that Supahost rejected the cursor. It can be invalid or use different filters.
  • invalid_date and invalid_datetime name the field and the accepted format.
  • not_found means that the record does not exist in the key workspace.
  • calendar_result_too_large means that the calendar request exceeds the row limit. Narrow the range or pass pool_id.
  • sandbox_read_only means that a test key attempted a write. Use a live key to change records.
  • idempotency_key_reused means that the idempotency key was already used with a different payload, or that request is still in progress.
  • sync_in_progress means that a channel sync for the record is still in progress. Retry once the sync completes.
  • conversation_closed means that replies cannot be added to the closed conversation.
  • replies_not_supported means that the connection for the conversation cannot send messages.
  • member_inactive means that the API key owner is no longer an active workspace member.
  • insufficient_inventory means that the stay does not fit the sellable inventory for every night.
  • channel_rate_plan means that a direct reservation cannot use an OTA rate plan.
  • channel_managed means that the reservation belongs to a connected channel and must be changed there.
  • reservation_cancelled means that a cancelled reservation cannot be changed.
  • reservation_completed means that a started or completed reservation cannot be changed or cancelled.
  • unit_assigned and multiple_items mean that the reservation needs the dashboard for that change.
  • internal_error means that Supahost could not complete the request.

Send the requestId to support. Never send the API key.