Errors and limits
One error shape, the HTTP status as the code, and the limits a key works within.
The shape
{ "error": "what went wrong, in a sentence" }
Every error has this shape, and the HTTP status is the code. One error carries more: the red-flag refusal from run a workflow adds applicationId and flags.
Statuses
| Status | Meaning |
|---|---|
| 400 | The request is malformed: a missing field, a wrong multipart field name, a file that is not a PDF. |
| 401 | No key, or a wrong or revoked one. |
| 403 | Not something a key, or your role, may do. Also: a run was asked of an organization that has no email yet — a Manager adds one in the app first. |
| 404 | Not there, or not in your organization. |
| 409 | A conflict with the state of the case: a run in flight, a draft workflow, red flags at the gate, nothing new to read. |
| 413 | A file is over the size limit. |
| 429 | Too many requests. Retry-After says how many seconds to wait. |
| 502 | The analyzer could not be reached. The case was put back as it was. |
Limits
| Limit | Value |
|---|---|
| Requests per key | 500 a minute |
| Requests per guest key | 10 a minute |
| Guest sandboxes | 10 an hour from one address, 100 a day in all |
| Research questions in a workspace without an email | 20 an hour, 50 a day |
| Briefs in a workspace without an email | 5 an hour, 10 a day |
| Pages a workspace without an email holds | 50 |
| Files per call | 25 |
| File size | 100 MB |
| File type when running a workflow |
Doing the same thing twice
A case is created by every successful call to run a workflow without an applicationId. If a call failed after the case was made, the answer carries applicationId: continue with that case instead of sending the packet again.
Sheaf