jeCheckDevelopers
Get an API key
Developers/Concepts

Errors

jeCheck uses conventional HTTP status codes and returns every error in the same JSON shape:

{
  "error": {
    "code": "validation_failed",
    "message": "The given data was invalid",
    "fields": {
      "title": ["The title field is required."],
      "priority": ["The selected priority is invalid."]
    }
  }
}
  • code is stable and machine-readable — branch on it, not on the message.
  • message is a human-readable English explanation.
  • fields is present only for 422 and lists problems per parameter.

Every response carries an X-Request-Id header. Include it when contacting support.

Error codes

HTTP code Meaning What to do
400 bad_request, empty_update Malformed request, nothing to update Fix the request
401 unauthorized Token missing, invalid, revoked, expired, or its user was deactivated Check the token; for OAuth refresh it
403 forbidden The token's user lacks the permission (message names it) Grant the role/permission or use another key
403 insufficient_scope Read-only token tried to change data Use a token with the write scope
403 plan_required The plan has no API access or lacks a paid feature Upgrade the plan
404 not_found The record doesn't exist or isn't visible to the token Check the id and the key's locations
404 route_not_found No such endpoint Check method and path
409 conflict The record's state doesn't allow the action (already closed, locked period…) Re-read the record
422 validation_failed Invalid parameters, see fields Fix the listed fields
429 rate_limited Too many requests Wait Retry-After seconds — see Rate limits
500 internal_error Something broke on our side; it's logged Retry with backoff; contact support with X-Request-Id

Note For privacy, a record that exists but belongs to another location or company returns 404, not 403 — the API never confirms the existence of data you can't see.

Retrying

  • Retry 429 and 5xx with exponential backoff (e.g. 1s, 2s, 4s… up to a minute).
  • GET, PUT, PATCH and DELETE are safe to retry. Retrying POST may create duplicates — check first (for example list with updated_since) or use endpoints that accept a client-generated UUID (HACCP entries, routine marks).

Errors in MCP

Over MCP a failed tool call returns a normal result with isError: true and the same error object in structuredContent, so the assistant can read it and react. Protocol problems (unknown tool, bad JSON-RPC) use JSON-RPC errors such as -32602.