base_url, api_key, and model.
Model and reasoning tiers
There is one model id —parallel — and reasoning.effort selects the reasoning tier:
Every tier grounds its answer in live web search, but higher tiers do more web research before producing an answer. If you omit
reasoning, effort defaults to medium. high requests can take up to a minute, so give your client timeout headroom (e.g. timeout=120.0 in the Python SDK).
Prerequisites
Get an API key from Parallel Settings and set it asPARALLEL_API_KEY. If you are using an SDK, install the OpenAI SDK:
Make your first request
output_text (convenience accessor), or walk output[] — the
message item’s content[] carries the answer text.
Migrate from OpenAI
Migrating an existing OpenAI Responses integration is a three-line diff: pointbase_url
at Parallel, swap the key, set model="parallel", and drop the web_search tool
(grounding is automatic):
Use it as a research subagent
You can use the Responses API as a web research tool for your own agent by creating a tool that wraps the Responses API. Each tool call your agent makes is delegated to an autonomous research subagent that returns a finished, cited answer — not raw search results your agent has to read through.Features
Statefulness
Multi-turn conversations via
previous_response_idStructured Outputs
JSON answers conforming to your schema
Streaming Events
Server-sent events with the standard Responses event sequence
Citations
Source annotations for grounded answers
Examples
Direct Requests
Call it directly: questions, deep research, enrichment, follow-ups
Research Subagent
Expose it as a web-research tool of another LLM
Next steps
- Review OpenAI Responses Compatibility for honored, ignored, and rejected request fields
- For long-running or batch research, use the Task API — the Responses API is synchronous only
- Check pricing and rate limits