Beta: The Research API is available to everyone while in beta. Contact support if you encounter any bugs.
Endpoints
All endpoints use
https://agent.tinyfish.ai and require the X-API-Key header.
Research must be enabled for the API key’s account.
POST /v1/automation/run-research returns 403 when it is not.Modes
An omitted mode selects
deep. Legacy auto selects standard. Set browser_enabled: false to keep Max mode to
search and static fetches. browser_enabled: true is accepted only in Max mode.
Request Body
Do not combine
recency_minutes with date filters. Date and recency filters are unavailable for research_paper.
session_id and prior_run_id are mutually exclusive.Event Stream
Accepted requests returntext/event-stream, including when stream is omitted or false. Invalid input and other
pre-run failures return the standard JSON error body.
Ordered
synthesis_delta values reconstruct their matching summary or final result. Discard a provisional partial
checkpoint after synthesis_discarded. Heartbeats keep long-running connections open.
Run Statuses
COMPLETED, FAILED, CANCELLED, and TIMED_OUT are terminal.
List Saved Runs
GET /v1/research-run supports status, query, created_after, and created_before. Pagination uses limit from
1–100, sort_direction=asc|desc, and the returned next_cursor. Reuse a cursor only with the same sort direction.
quick_result holds the standard-mode answer and deep_result the Deep and Max report. Both are objects: read the
report from deep_result.result, not from deep_result itself. quick_result_summary is the one plain string.
run_ids lists the Agent runs a Max run started. Fields that do not apply to the run are null.
Retrieve One Run
GET /v1/research-run/{research_run_id} returns the list fields plus the working state kept for the run.
A run that does not exist returns HTTP
404. A run owned by another API key returns HTTP 403.
Cancel a Run
CallPOST /v1/research-run/{research_run_id}/cancel to cancel a running research run. The response reports whether
this request changed the run to CANCELLED and includes its current status.
200 with cancelled: false and its current
status. A missing run, or a run owned by another API key, returns HTTP 404.
Limits
Research creation is limited by concurrent runs and by runs started per Pacific calendar day. While Research is in beta both default to 5 per account. Contact support if you need higher limits. The daily count includes runs still in progress as well as completed ones, so five in-flight runs exhaust the day’s allowance. Runs that fail, time out, or are cancelled do not count. Daily-limit responses use HTTP429 with error.code set to DAILY_LIMIT_EXCEEDED, carry Retry-After and
X-RateLimit-Limit / X-RateLimit-Remaining / X-RateLimit-Reset headers, and report the window in error.details.
503 with error.code set to SERVICE_BUSY. Retry after a
short pause.