Every Experro API call returns JSON. This page covers the response shapes you can expect, the error format, and how to report a failing call.
Responses
Most endpoints wrap their result in a consistent envelope:
The Discovery APIs are the exception — they return their payload at the top level, with no envelope:
Errors
Failures use a single error shape:
Validation failures may include an additional Details field alongside Error, describing which field failed and why.
The two 400 variants are worth telling apart: ValidationError points at the request body, QueryParseError at the query string.
Common Causes of ValidationError
A 400 Invalid Input almost always means the request body could not be read, rather than a bad field value. Check for:
- A missing
Content-Type header, or one that is not application/json.
- A body sent as form data instead of raw JSON.
- An empty body. Endpoints that take a body require one — send
{} if you have no fields to set.
- An optional field sent blank rather than omitted, such as
"sort_order": "" or "filters": [{}]. Omit the field, or send null or [].
- A numeric field sent as a string, such as
"limit": "24" instead of "limit": 24.