Stateless OnlyThis API is stateless - each request is independent and no conversation state is persisted between requests. You must include the full conversation history in each request. Requests that set
store: true or a non-null previous_response_id are rejected with a 400 error.Error Response Format
All errors follow this structure:Error Codes
The API uses the following error codes:
These codes are a reduced mapping of the internal typed error codes. Multiple internal error types collapse into each Responses API code — for example,
context_length_exceeded and invalid_request both surface as invalid_prompt here.
Canonical error_type Field
Because the native error.code vocabulary is lossy (many distinct errors collapse to server_error), failed responses also include a top-level error_type field that carries the precise canonical error type:
error_type value matches one of the typed error codes and is stable across all OpenRouter API formats. Use it to programmatically distinguish error categories when the native code is ambiguous.