Updated 2026-06-01
Rate limits & error codes
Rate limits per endpoint group and the structured error response format.
Saleporia APIs are rate-limited to ensure fair usage. Errors return structured JSON with consistent codes.
Rate limits
| Field | Type | Description |
|---|---|---|
| Store API | 120 req/min | Per shop, on the /v1/store/ endpoints. |
| v1 Upload API | 60 req/min | Per API key, on the /v1/upload endpoint. |
| Agent chat | 120 req/min | Per user, on the /agent/chat endpoint. |
| Agent confirm | 60 req/min | Per user, on the /agent/confirm endpoint. |
Rate limit headers
When you exceed a rate limit, the API returns a 429 Too Many Requests status. Back off and retry with exponential backoff.
Error format
json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "price must be a positive number",
"details": { "field": "price" }
}
}Error codes
| Field | Type | Description |
|---|---|---|
| INVALID_KEY | 401 | The API key is missing, malformed, or invalid. |
| FORBIDDEN | 403 | The key's auth level doesn't permit this operation (e.g. write with a publishable key). |
| NOT_FOUND | 404 | The requested resource doesn't exist. |
| CONFLICT | 409 | A uniqueness constraint was violated (e.g. duplicate SKU or coupon code). |
| VALIDATION_ERROR | 422 | The request body failed validation. Details identify the offending field. |
| INTERNAL_ERROR | 500 | An unexpected server error. Retry with backoff; contact support if persistent. |