Errors and limits
Every error is JSON with an error field written for a person to read.
{ "error": "That load does not add up.", "issues": [ ... ] }Status codes
| 401 | The key is missing, wrong, or revoked. We do not say which. |
| 403 | The firm is not approved, or has been suspended. |
| 404 | Not your load, or no such load. We do not say which. |
| 409 | That idempotency key belongs to another firm. |
| 413 | The body is over 64KB. A load is a few hundred bytes. |
| 422 | Something in the load does not add up. issues says what. |
| 429 | Too many. Wait for the seconds in retry-after. |
| 5xx | Ours. Retry with the same idempotency key and nothing duplicates. |
401 and 404 are deliberately vague. Telling you whether a key used to exist, or whether a load id is real, would let somebody find that out by asking.
Limits
| Posting | 60 a minute |
| Reading | 300 a minute |
| Body | 64KB |
| Webhook reply | 5 seconds |
Counted against the key, not your address, so one busy integration never throttles another firm and a whole office does not count as one caller.
Need more than this, or hitting something that looks wrong at our end? Tell us, with the load reference and roughly when it happened, and it can be looked up.