`GET /api/tasks/{id}/subtasks/{subtask_id}` — fetch the redaction-safe result of a completed (or in-flight) subtask. Workspace-scoped via the parent.
GET
/api/tasks/{id}/subtasks/{subtask_id}
const url = 'https://example.com/api/tasks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/subtasks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/tasks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/subtasks/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string format: uuid
Parent task ID
subtask_id
required
string format: uuid
Subtask ID
Responses
Section titled “Responses”Media typeapplication/json
object
cost
number | null format: double
error
string | null
output_missing
#1041 — true ONLY when the child is in a terminal state but neither a
terminal-event summary nor any error text could be recovered (the
terminal event was never persisted, or carried no output). Makes “no
output retrievable” distinguishable from a worker that legitimately
returned an empty summary; absent otherwise, so the result shape is
unchanged for existing consumers.
boolean | null
output_redacted
string | null
profile_used
string | null
status
required
string
wait_timed_out
#858 W1 — set to true ONLY when a wait_seconds long-poll expired
before the child reached a terminal state (status then carries the
child’s live, still-pending state). Absent on the plain poll-once path
and on a wait that ended terminal, so the result shape is unchanged for
existing consumers.
boolean | null
Examplegenerated
{ "cost": 1, "error": "example", "output_missing": true, "output_redacted": "example", "profile_used": "example", "status": "example", "wait_timed_out": true}