# Errors & status codes

> Responses use standard HTTP status codes. Errors carry a JSON body describing what was rejected.

API reference

Responses use standard HTTP status codes. Errors carry a JSON body describing what was rejected.

200 · The request succeeded and the resource is in the response body.

201 · The resource was created and is returned in the response body.

202 · The request was accepted and is being processed.

204 · The request succeeded. There is no response body.

400 · The request was malformed or violated a constraint described on the endpoint.

401 · No valid access token was supplied, or it has expired.

403 · The token does not carry the scope required for this resource.

404 · The resource does not exist, or is not visible to your organisation.

409 · The request conflicts with the current state of the resource, for example a market gate that has already closed.

422 · The request could not be processed. The response body names the fields that failed validation.

429 · Too many requests. The rate limit is 600 requests per minute per organisation; retry after the interval in the Retry-After header.

500 · An unexpected error on our side. The response carries a request\_id — quote it when you report the incident.

Every endpoint in the reference lists the codes it can raise, inline under its description.

## Error body

Validation failures name every field that was rejected. Other errors carry a machine-readable code, a human-readable message and a `request_id` to quote when you report the incident.

Validation error · 422

```json
{ · 
   · "detail" · : ·   · [ · 
     · { · 
       · "loc" · : ·   · [ · "body" · , ·   · "start_time" · ], · 
       · "msg" · : ·   · "field required" · , · 
       · "type" · : ·   · "missing" · 
     · } · 
   · ] · 
 · }
```

## Retries & rate limits

Rate limit

600 req / min per organisation

Safe to retry

429 and 500, with exponential backoff. GET is idempotent; PUT and DELETE are idempotent by design.

Do not retry

400, 403, 404 and 422, the request has to change first. 409 usually means a market gate closed; the next window is the fix, not a retry.
