Ask a question
Uselow effort for simple fact retrieval — it returns in a few seconds:
Ask a deep-research question
Thehigh tier runs extensive multi-step searching and synthesis and returns in roughly
30–60 seconds. Give your client timeout headroom, and consider
streaming for a connection acknowledgment while
research runs:
Enrich a dataset
Each row becomes one request: pass the entity as the question, use Structured Outputs to shape the answer, and run rows concurrently — wall-clock time stays close to a single request instead of the sum.- Put the complete question in
input, including qualifiers (“current”, units, date ranges) — each request is self-contained. - Use
metadatato tag each request with your row id; it is echoed back on the response. - Back off and retry on
429responses. - For large batches with per-field citations and confidence ratings, consider the Task API Enrichment flow, which is purpose-built for that workload.
Ask follow-up questions
Chain turns with Statefulness: pass the previous response’sid and follow-ups inherit the conversation context. Tiers can vary across
turns — open with a high-effort research question and ask cheap low-effort follow-ups.
Python
Next steps
- Using It as a Research Subagent — let another LLM call the Responses API as a tool
- Citations — read the sources behind each answer