Skip to main content
Request failures return a JSON ErrorResponse envelope:
{
  "status_code": 422,
  "message": "Validation error",
  "detail": {
    "code": "FILTER_FIELD_UNKNOWN",
    "message": "unknown metadata filter field 'company'",
    "limit": ["sec_ticker", "sec_form_type"],
    "observed": "company"
  }
}
Request-body validation errors use the same envelope with a structured error list:
{
  "status_code": 422,
  "message": "Validation error",
  "detail": {
    "code": "VALIDATION_ERROR",
    "errors": [
      {
        "field": "include.unsupported",
        "code": "extra_forbidden",
        "message": "Extra inputs are not permitted"
      }
    ]
  }
}
Server failures and streaming error events include stable error codes, for example {"code": "INTERNAL_SERVER_ERROR"}.

Status Codes

StatusMeaning
401 or 403The X-API-Key header is missing or invalid.
404The requested endpoint is unavailable.
413The raw request body is larger than 65,536 bytes.
422Request validation failed.
500The server hit an unexpected error.
503A required runtime service is unavailable.

Common Validation Failures

Code or messageCause
QUERY_EMPTYThe query is empty.
QUERY_TOO_LONGThe query exceeds 4,000 characters.
REQUEST_TOO_LARGEThe raw JSON body exceeds the request size limit.
FILTER_FIELD_UNKNOWNA metadata filter names an unsupported field.
FILTER_OPERATOR_UNSUPPORTEDA metadata-filter field does not support the requested operator.
FILTER_VALUE_TYPE_INVALIDA metadata filter value has the wrong type for the field or operator.
FILTER_VALUE_UNKNOWNA categorical value cannot be canonicalized to an allowed value.
FILTER_EXPRESSION_UNSUPPORTEDThe request used expression-style metadata filters instead of the supported metadata filter format.
extra_forbidden for filtersUse metadata_filters; the legacy filters request key is rejected.
When no evidence is found, the query still returns a successful response. summary.warnings includes LOW_EVIDENCE, and retrieval-derived sections such as metadata_distribution are empty when requested. If answer generation is requested, answer.text is set to No data found.