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
| Status | Code | What to do |
|---|---|---|
| 401 | INVALID_API_KEY | Check the key, or ask us for a new one. |
| 403 | ORG_PAUSED | Your access is paused. Contact us. |
| 403 | TRIAL_EXPIRED | Your trial has ended. Contact us to continue. |
| 403 | API_KEY_NOT_ALLOWED | That endpoint is only for the Signa apps. |
| 429 | API_LIMIT_REACHED | A 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. |
| 403 | API_KEY_REQUIRED | Only your API key can do that (creating overlays, client tokens), not a client token. |
| 404 | NO_SUCH_OVERLAY | The overlay id (or its page token) is wrong, or the overlay was deleted. |
| 429 | OVERLAY_BUSY | 20 screens already show this overlay. Close one, or make another overlay. |
| 400 | UNREADABLE_MEDIA | The file sent for subtitles has no sound we can read. |
| 413 | UPLOAD_TOO_LARGE | Over 25 MB for /v1/stt, or 100 MB for /v1/subtitles. Send only the audio. |
| 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.