Submit an asynchronous research Agent run.
Exa
Semantic search, page content, cited answers and asynchronous research.
Submit an asynchronous research Agent run.
Submit an asynchronous research task. query and Idempotency-Key are required. Configure effort, outputSchema, dataSources and previousRunId as needed. HTTP 202 returns a job; poll get_exa_agent_run until completed, failed or cancelled. Completed output contains text, structured data and grounding. Reusing an Idempotency-Key returns the existing job. Job pricing fields are provider metadata, not Felo billing records.
- Тип: stringIdempotency
- Key макс. длина:191обязательноUnique key (1 to 191 characters) that makes the submit idempotent. Re-submitting with the same key and request fingerprint returns the original run.
- Тип: stringqueryобязательно
The natural-language research query.
- Тип: arraydata
Sources Third-party data sources (Exa Connect) the Agent is granted access to.
- Тип: stringeffort
Compute/depth tier for the run.
- Тип: objectinput
Row-processing input: rows to process and exclusions.
- dataТип: array
Input rows for the run.
- exclusion
Items to exclude from processing.
- Тип: objectoutput
Schema JSON Schema used to validate the structured output.
- Тип: stringprevious
Run Id Continue from a previously completed run.
- Тип: object · AsyncJob202
Research run accepted. The Location header points at the job resource; poll it until terminal.
An asynchronous integration job. Returned by the submit call (HTTP 202) and by the poll/detail call. Poll the job by its id until status is a terminal value (completed, failed, or cancelled).
- Тип: string Формат: date-timeможет быть nullcompleted
At When the job reached a terminal status. Null while the job is still queued or running.
- Тип: string Формат: date-timecreated
At When the job was accepted.
- Тип: stringendpoint
Provider operation identifier stored with the job. This metadata is not a Felo polling URL; use the documented Felo job path or Location header.
- Тип: object может быть nullerror
Present when status is failed. Null otherwise.
- codeТип: string
Machine-readable error code.
- messageТип: string
Human-readable error message.
- Тип: stringid
Job identifier. Use it with the corresponding Felo polling endpoint.
- Тип: stringobject
Always "integration_async_job".
- может быть nulloutput
Job result payload. Present only once status is completed. For Agent Runs this is the structured research result.
- Тип: booleanoutput
Expired True when the result has been retained past its retention window and is no longer retrievable.
- Тип: objectpricing
- authorizedТип: integer
Micros U S D Provider authorization metadata in micro-USD. This is not a Felo credit hold or billing record.
- billingТип: string
Mode Provider job billing mode. Felo charges follow Felo billing records.
- currencyТип: string
- finalТип: integer может быть null
Micros U S D Provider settlement metadata in micro-USD, nullable before settlement. This is not the Felo charge.
- Тип: string enumstatus
Customer-facing lifecycle status. queued and running are non-terminal; completed, failed, and cancelled are terminal.
значения- queued
- running
- completed
- failed
- cancelled
application/json - 400
The request could not be processed. Check the request parameters.
- 401
A valid Felo API key is required.
- 402
The request cannot proceed because a billing requirement is not met.
- 403
The account is not permitted to perform this operation.
- 409
idempotency_conflict — the same Idempotency-Key was reused with a different request body.
- 429
A request or spending limit has been reached.
- 502
The service could not complete the request.
- 503
The API or billing service is temporarily unavailable.
- 504
The service timed out while processing the request.
- default
The operation failed. Keep the response request ID when contacting Felo support.
curl https://openapi.felo.ai/v1/beta/exa/agent/runs \
--request POST \
--header 'Idempotency-Key: ' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '{
"query": "Summarize the main changes in RAG evaluation methods over the past year as a bullet list.",
"outputSchema": {},
"input": {
"data": [],
"exclusion": null
},
"effort": "",
"previousRunId": "",
"dataSources": []
}'
{
"id": "iaj_01HZY8Q2M4K7N9V3T6W1X0B2C3",
"object": "integration_async_job",
"endpoint": "/apis/v1/exa/agent/runs",
"status": "queued",
"createdAt": "2026-09-30T03:09:45.799Z",
"completedAt": "2026-09-30T03:09:45.799Z",
"pricing": {
"currency": "USD",
"authorizedMicrosUSD": 1,
"finalMicrosUSD": 1,
"billingMode": "flat_per_call"
},
"output": null,
"outputExpired": true,
"error": {
"code": "string",
"message": "string"
}
}