Skip to main content
All Doofinder APIs use standard HTTP status codes. When a request fails, the response body contains a JSON object describing the error.

Error Response Format

Most errors return a JSON body with an error field:
Validation errors include a details object with field-level messages:

HTTP Status Codes

400 Bad Request

The request contains invalid or missing parameters. Common causes:
  • Missing a required query parameter or body field
  • A string parameter exceeds its maximum length (e.g. session_id > 32 chars, query > 200 chars or > 10 words)
  • An enum value is not one of the allowed options
Search API example — query too long:

401 Unauthorized

The request is missing an Authorization header, or the provided API key is invalid. Common causes:
  • No Authorization header sent
  • API key has been revoked or does not exist
  • Wrong key format (e.g. using a JWT token where a plain token is expected)

403 Forbidden

Access was denied even though authentication succeeded. Recommendations API specific variants:
The request Origin/Referer is not in the store’s allowed domains list.
The client IP is on the store’s blocklist.

404 Not Found

The requested resource does not exist. Management API example:

413 Payload Too Large

The request body exceeds 8 MB. This limit applies to all POST/PUT/PATCH requests. Resolution: Split large payloads into smaller batches. For bulk item operations, use batches of up to 100 items per request.

422 Unprocessable Entity

The request is well-formed but cannot be processed due to a semantic error. Common cause: Bulk item operations with more than 100 items per request.

429 Too Many Requests

You have exceeded the rate limit of 20 requests per second.
There is no penalty — wait one second before retrying. The limit resets automatically. Best practice for bulk operations: Use the _bulk endpoints instead of sending individual item requests in rapid succession.

Rate Limits Summary


Retrying Requests