v2

latestOpenAPI 3.1.02026-07-313534.7 KB

Returns comprehensive research-grade answers with multi-step reasoning

Research goes beyond a single web search. In response to your question, it runs multiple searches, reads through the sources, and synthesizes everything into a thorough, well-cited answer. Use it when a question is too complex for a simple lookup, and when you need a response you can actually trust and verify.

post/v1/research

Request body

inputstring required

The research question or complex query requiring in-depth investigation and multi-step reasoning.

Note: The maximum length of the input is 40,000 characters.

research_effort'lite' | 'standard' | 'deep' | 'exhaustive'

Controls how much time and effort the Research API spends on your question. Higher effort levels run more searches and dig deeper into sources, at the cost of a longer response time.

Available levels:

  • lite: Returns answers quickly. Good for straightforward questions that just need a fast, reliable answer.
  • standard: The default. Balances speed and depth, a good fit for most questions.
  • deep: Spends more time researching and cross-referencing sources. Use this when accuracy and thoroughness matter more than speed.
  • exhaustive: The most thorough option. Explores the topic as fully as possible, best suited for complex research tasks where you want the highest quality result.
backgroundboolean

When true, queue a research task and return a task handle immediately instead of waiting for the result inline. Defaults to synchronous. When enabled, the response is a TaskResponse object with a task_id and stream_url for polling progress via GET /v1/research/{task_id} or streaming via GET /v1/research/{task_id}/stream.

output_schemaobject

Beta. Requests structured JSON output in output.content using a supported JSON Schema subset. Supported only with research_effort values standard, deep, and exhaustive. Sending output_schema with research_effort: "lite" returns 422.

Schema rules: Root must be a JSON object. Top-level anyOf is not allowed. Every object must define properties and set additionalProperties: false. Every property must be listed in required. Recursive schemas are not supported.

Limits: Max nesting depth 5, max total properties 100, max total enum values 500, max total schema string budget 25,000.

Response

A JSON object containing a comprehensive answer with citations and supporting search results. When background=true, returns a task handle instead.

OR

Example response

{
  "type": "research",
  "status": "queued",
  "stream_url": "/v1/research/a1b2c3d4-0000-0000-0000-000000000000/stream"
}
All 3 operations