Open HelpDesk API
Run in Postman
  • Getting started
  • Assistants
  • API reference
IntroductionAuthenticationPaginationErrors
powered by Zudoku
Getting started

Errors

Errors

One shape, whatever went wrong:

Code
{ "error": { "code": "invalid_status", "message": "Unknown status \"bidon\"." } }

code is stable and meant to be branched on. message is a sentence for a human and may be reworded — never match on it.

The codes

StatusCodeWhat it means
400invalid_bodyThe body is not a JSON object.
400invalid_status, invalid_priorityA value outside the allowed set.
400invalid_cursorThe cursor is not one we handed out.
400invalid_assignee, invalid_organization, invalid_categoryAn id that belongs to no such object in this workspace.
400empty_patchA PATCH with nothing to change.
401unauthorizedMissing, malformed, unknown or revoked key.
403forbiddenThe key lacks the scope this route needs.
403workspace_suspendedThe workspace is suspended; nothing is served.
403requester_blockedThe contact is blocked from opening tickets.
404not_foundNo such object in this workspace.
409email_taken, slug_takenA unique value already belongs to another row.
409contact_has_ticketsDeleting would erase a support history; ask for it explicitly.
429rate_limitedOver 600 requests a minute. Retry-After says how long.
500internal_errorOurs. Retry, and tell us if it persists.

What to retry

  • 429 — yes, after Retry-After.
  • 500 — yes, with backoff. Twice, then raise it rather than hammer.
  • 4xx anything else — no. The request will fail identically until you change it; retrying only fills your logs and our rate limit.

A note on 404

A 404 means "not in this workspace", not "does not exist anywhere". An id from another workspace is indistinguishable from one that was never created, and deliberately so: the API must not confirm that someone else's ticket exists.

Last modified on September 15, 2026
Pagination
On this page
  • The codes
  • What to retry
  • A note on 404
JSON