Skip to main content

AI Research

AI Research takes a task written in plain language and runs a full research loop against it: it plans search queries, runs them, opens and reads the pages worth reading, decides whether it has enough, and writes a final report — with both a human-readable summary and a machine-readable payload. It is the one asynchronous product in the API: a run returns a session_id immediately, and the result is collected from Get Session Status.

When to use it

Reach for AI Research when the answer does not exist on a single page and has to be assembled:
  • company and counterparty intelligence
  • risk, sanctions and adverse-media checks
  • market, competitor and pricing overviews
  • due diligence write-ups that must cite their sources
  • analyst work you want repeated the same way every time
If you already know the page you want, AI Extract is cheaper and faster. If you only need a ranked list of links, use Search. If you need one field from one provider, use a Data Source.

How a run works

One run is a loop. Each iteration:
  1. Plan — the planner proposes the next search queries, and may propose data source calls.
  2. Search — the queries run and return ranked results.
  3. Read — pages worth reading are fetched and their content extracted.
  4. Reflect — the run decides continue, sufficient or finish, and records what is still missing.
When the loop stops, a finalizer model writes the report from everything gathered. The iteration log — queries, result counts, extracted pages, reflection notes, data source calls — is kept with the session, so a run can be audited after the fact.

Starting a run

The response is the session to poll:
Then poll until it settles:
status moves through queued and running to complete or failed; results appears once the run is complete. Poll every 2 to 5 seconds — see Errors & Rate Limits.

Depth: the model setting

settings.model picks how hard the run works. It sets the iteration budget and the price of the run. lite answers a narrow question from the first few hits. ultima keeps going for four rounds and reads up to a hundred pages — use it when coverage matters more than latency.

The finalizer

settings.finalizer_model chooses the model that writes the report. It changes the quality, tone and latency of the write-up, not what was gathered. Available: gemini-3.0-pro (default), gemini-3.0-flash, gemini-2.5-pro, gemini-2.5-flash, gpt-5.4, gpt-5.4-mini, gpt-5, gpt-5-mini, claude-sonnet-4.6, claude-opus-4.6.

Settings reference

Every budget setting can only narrow what the tier already allows, so a run can never cost more than its tier.

Using data sources as tools

List data source ids in settings.data_source_ids and the run can call them mid-loop instead of guessing from web pages: a company number from a registry, a LinkedIn profile, reviews for a product. The planner decides when a call is worth making, and every call is recorded in the iteration log.
Data source calls are billed at the data source’s own price, on top of the tier.

What a finished run returns

Pricing

A run costs the tier’s points, plus the points of any data source it called. Nothing is charged for the tier when search_enabled is false. A run that fails before any work is dispatched is not charged.

Next steps

AI Research is not available over the MCP server: MCP tools return their result inside the tool call, and a research run is asynchronous. Start runs over the REST API instead.