Errors and limits

Every error says what went wrong in words, and carries a code your program can check.

What an error looks like

{
  "status": "error",
  "message": "This organisation has used 2000000 of its 2000000 characters for this month. Contact Signa to raise the limit.",
  "code": "API_LIMIT_REACHED",
  "details": { "code": "API_LIMIT_REACHED", "limit": "characters", "used": 2000000, "max": 2000000 }
}

Check code in your program, and show message to people: it is written to be read.

Codes

StatusCodeWhat to do
401INVALID_API_KEYCheck the key, or ask us for a new one.
403ORG_PAUSEDYour access is paused. Contact us.
403TRIAL_EXPIREDYour trial has ended. Contact us to continue.
403API_KEY_NOT_ALLOWEDThat endpoint is only for the Signa apps.
429API_LIMIT_REACHEDA monthly limit is used up. It resets on the 1st (UTC), or we can raise it.
400—Something in the request is missing or wrong; the message says what.
413UPLOAD_TOO_LARGEAudio over 25 MB. Split the recording.
429—Too many requests at once. Slow down and retry.
503—A service we rely on is briefly unavailable. Retry shortly; Retry-After says when.

Retrying

Retry 503 and connection errors with a growing pause (1 s, 2 s, 4 s…). Don't retry 400, 401 or 403: the same request gets the same answer.

Failed requests are free

Characters are only counted once something was signed, and a video once it was made. A request that fails costs nothing.