Path parameters
Response — 200 OK
The session this task belongs to.
The end-user the task ran for.
The prompt as originally submitted.
"pending" | "running" | "completed" | "failed" | "cancelled".
The final answer. String for most tasks; JSON object for tasks that return structured data or when schema was provided.
Only present when the request included schema. The object conforming to that schema.
Only present when the request had include_html_dump: true. Raw HTML of the final page.
Number of agent steps executed.
Wall-clock duration of the task in milliseconds.
Domains the agent navigated to, deduplicated in order.
Per-step trace: { n, type, msg, success }.
Populated only when status == "failed".
When the task was submitted.
Additional internal fields may be present on the response for observability and may change without notice. Rely only on the fields documented above.
Example
curl "$API_BASE/tasks/7f2a..." \
-H "Authorization: Bearer $API_KEY"
Polling pattern
Both SDKs’ tasks.run(...) wrap submit + poll in one call. If you’re polling yourself:
submission = client.tasks.submit(end_user_id="alice", task="...")
while True:
task = client.tasks.get(submission.task_id)
if task.is_terminal:
break
time.sleep(2)
Recommended poll interval: 2 seconds. Lower than that wastes requests; higher than that adds user-visible latency.
Errors
| Code | Meaning |
|---|
401 | Missing Authorization header |
403 | Task belongs to another business |
404 | Unknown taskId |