# Error response format

When a request fails or encounters issues, the API returns a standardized **error response object** in JSON format.
This structure is consistent across endpoints, ensuring clients can reliably parse and handle errors.

## Example


```json
{
  "status": "error",
  "errors": [
    {
      "code": "invalid_field_value",
      "message": "The 'id' field must be unique.",
      "field": "id",
      "type": "validation"
    }
  ],
  "requestId": "req-uuid-456"
}
```

## Top-level fields

| Field | Type | Description |
|  --- | --- | --- |
| status | string | Always `error` for error responses. Use this to quickly distinguish error responses from successful responses. |
| errors | array | **Always an array**, even when only one error is present. Contains one or more error objects that describe what went wrong. |
| requestId | string | Unique identifier for the request (e.g., a UUID). Log this value and include it when contacting support—it enables precise tracing and debugging. |


## Error object fields

| Field | Type | Description |
|  --- | --- | --- |
| code | string | **Machine-readable** error identifier (e.g., `invalid_field_value`, `not_found`, `rate_limited`). Use this for programmatic handling. See the [Errors → Response codes](/docs/errors/error-codes) reference for the full list. |
| message | string | **Human-readable** explanation of the error. Intended for developers; not guaranteed to be stable for end-user display or localization. |
| field | string | *(Optional; operation-specific)* The dataset field related to the error when applicable—commonly returned for validation/ingestion errors. Omitted for errors not tied to a specific field. |
| type | string | *(Optional; operation-specific)* Broad category that adds context, such as `validation`. Useful for grouping errors beyond the specific code. |