Skip to main content
The Responses API models the canonical OpenAI Responses request (POST https://api.parallel.ai/v1/responses), so a stock openai SDK client works by changing only base_url, api_key, and model. This page documents exactly which fields are honored, which are accepted for SDK compatibility but ignored, and which are rejected.

Request fields

Honored

Accepted but ignored (for SDK compatibility)

tool_choice, parallel_tool_calls, temperature, top_p, max_output_tokens, truncation, store, user, include, any tool other than web_search and mcp, the web_search tool’s search_context_size and user_location, and the mcp tool’s server_description. These are part of the OpenAI contract so a stock SDK client’s payload never fails validation, but the backend does not act on them today. Grounding is automatic, so a web_search tool without filters changes nothing. store is likewise ignored: responses are always stored so they can be referenced via previous_response_id (see Statefulness). Unknown top-level fields are silently dropped, so newer OpenAI SDK versions won’t break.
Ignored fields come back on the response object with their default values (temperature: null, tool_choice: "auto"), not the values you sent. tools echoes your web_search tool as you sent it, including its ignored search_context_size and user_location, and your mcp tools with headers and authorization removed and any server_url query string masked. It is [] when you sent neither.

Rejected

Errors use the standard OpenAI error envelope:
Requests over your quota return 429 — back off and retry, and see rate limits for current limits.

Response fields

A standard OpenAI Responses object. The fields you’ll typically read:
reasoning and text are echoed as null on the response even when they were sent and honored — read the tier from your request, not the response. Source citations are returned as url_citation annotations on the output text — see Citations.