Appearance
Errors & limits
Errors are JSON with a detail field — a readable message, or a list of problems for validation errors.
json
{ "detail": "You don't have permission to do this (Start and cancel process runs)." }| Status | When |
|---|---|
200 / 201 | Done |
202 | Waiting for a second person. A widening change in a four-eyes workspace was queued as a change request: {"status": "pending", "change_request": {"id": "…", "summary": "…"}} |
204 | Done, nothing to return |
400 | The request can't be understood |
401 | Missing, expired or revoked token |
403 | Valid token without the permission, or a separation-of-duties rule |
404 | Not found in this workspace (records in other workspaces always look like this) |
409 | Conflicts with the current state (e.g. a run that already finished, a use case that is active) |
413 / 415 | Upload too large (10 MB) or of a type that isn't accepted |
422 | Invalid input; detail lists each problem. Also used for rule limits, e.g. "High-risk tier … automation is limited to 50%." |
Limits
- Uploads: 10 MB per document.
- Repeated failed sign-ins lock an account for 15 minutes. Use API keys, not passwords, for integrations.
- Keep integrations polite: retry
5xxand network errors with backoff; don't retry4xxunchanged.
Idempotency
Process runs de-duplicate on their subject: when a subject has a type and an id (for example {"type": "invoice", "id": "…"}), starting the same process for it while a run is still in progress returns the existing run instead of a second one.