Errors and limits

Every error has the same shape: { "error": { "code": "…", "message": "…" } }.

StatusCodeWhat it means
401unauthorizedNo token, or it is invalid or has expired (they last 5 minutes). Sign in again.
403plan_requiredThis organization's plan does not include API access (Plus and Max do).
403api_disabledAPI and agent access is switched off for the organization. An owner or admin switches it on in SparkyLi, Settings, API and agents.
403forbiddenYou are not a member of this product, or your role may not do that. You can do what your role can do in the app, no more. This covers writes too.
403plan_limitThe plan's limit is reached (for example invoices per month or contacts).
400bad_requestThe body is not a JSON object, or a field is missing or wrong. The message names the field.
413too_largeThe body is larger than 64 KB.
400org_requiredYou belong to several organizations. Add the x-sparky-org header (ids are in /me).
404not_foundThere is no such record, or it is not yours to see.
429rate_limitedMore than 60 reads or 10 writes in a minute. Wait a minute.

Limits

  • 60 reads a minute and 10 writes a minute per person or app.
  • Lists return up to 100 records; use offset and next_offset to page.
  • Every call is recorded: the route, when and who, never the data.
  • Tokens last 5 minutes. Switching API access off for the organization stops everything at once.