For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Deep research models: Tavily Research, Exa Research, Perplexity
Deep Research, Perplexity Advanced Deep Research. The model
plans search queries, fetches pages, synthesizes a multi-section
report with inline citations. Typical runtime 30s-15min depending
on `reasoning_effort`.
Returns `202 Accepted` with a `job_id` and `poll_url`; poll
`/v1/jobs/{job_id}` until complete. For streaming progress
(`*Thinking...*` blockquote of search steps + sources + answer),
call `POST /v1/chat/completions` with `stream: true` on the same
model instead; the gateway routes both surfaces to the same
worker.
Authentication
AuthorizationBearer
Pass your EmpirioLabs API key as a bearer token. The Anthropic-style
x-api-key header is also accepted on every endpoint.
Request
This endpoint expects an object.
modelstringRequired
querystringOptional
The research question.
messageslist of objectsOptional
Alternative to query; pass a chat-style messages array for multi-turn research.
reasoning_effortenumOptionalDefaults to high
Allowed values:
max_output_tokensintegerOptionalDefaults to 10000
search_domain_filterstringOptional
Comma-separated domains. Prefix with ’-’ to exclude. Max 20.
search_recency_filterenumOptional
Allowed values:
disable_formattingbooleanOptionalDefaults to false
Skip EmpirioLabs Markdown formatting and return the raw upstream payload.
Response
Research report (when run synchronously and short enough).
Deep research models: Tavily Research, Exa Research, Perplexity
Deep Research, Perplexity Advanced Deep Research. The model
plans search queries, fetches pages, synthesizes a multi-section
report with inline citations. Typical runtime 30s-15min depending
on reasoning_effort.
Returns 202 Accepted with a job_id and poll_url; poll
/v1/jobs/{job_id} until complete. For streaming progress
(*Thinking...* blockquote of search steps + sources + answer),
call POST /v1/chat/completions with stream: true on the same
model instead; the gateway routes both surfaces to the same
worker.