Skip to main content
A run is one call to one tool. POST /v1/runs takes a provider, a model (the tool’s id) and the provider’s own input, exactly as the tool’s input schema names it (Inspect a model).
  • Async tools (image, video, audio) answer 202 Accepted with the queued run, a Location header and a Retry-After poll hint.
  • Sync tools (web search, scrape) answer 200 OK with the finished run.

Statuses

A run cannot be canceled after it is submitted.

The run object

Getting the result

Webhook (recommended)

Add webhook.url to the run and get its terminal event, signed.

Polling

GET /v1/runs/{id}?wait_seconds=30 waits up to 60 seconds for a final status.
Without a wait, poll by the Retry-After header. Without one, start at 1 s (search and scrape), 2 s (images) or 5 s (video and audio), back off by 1.5× up to 30 s, and stop at a final status. Polling has its own rate limit, so it never uses your create quota.