Errors
Every error on every route has one shape:
{
"error": {
"code": "SLOT_UNAVAILABLE",
"message": "Human readable",
"fields": { "customer.email": "Invalid e-mail" }
}
}fields is only present when the error belongs to specific request fields.
| Code | Status | Meaning |
|---|---|---|
UNAUTHENTICATED |
401 | no valid key |
FORBIDDEN |
403 | wrong key kind or unregistered origin |
NOT_FOUND |
404 | unknown route, product or order |
METHOD_NOT_ALLOWED |
405 | |
VALIDATION |
422 | the request is not valid, see fields |
SLOT_UNAVAILABLE |
422 | the chosen time slot is full or no longer offered |
DELIVERY_UNAVAILABLE |
422 | no delivery, or not to this zone |
PRODUCT_UNAVAILABLE |
422 | a product is sold out or not orderable now |
COUPON_INVALID |
422 | the coupon is not valid for this order |
MINIMUM_NOT_REACHED |
422 | below the delivery minimum |
RATE_LIMITED |
429 | see Retry-After |
INTERNAL |
500 | a fault on our side, never a client mistake |
Rate limits
Per key, answered with 429 RATE_LIMITED and a Retry-After header (seconds):
| Key | Limit |
|---|---|
| Public key | 1200 requests/min in total, and 120/min per IP address |
| Secret key | 300 requests/min |