> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Job Timeline V1

> Annotated event timeline for a single job. Higher-level than /replay: returns one row per phase (job_created, sandbox_ready, each tool call, terminal) with a…

Annotated event timeline for a single job.

Higher-level than `/replay`: returns one row per phase
(job\_created, sandbox\_ready, each tool call, terminal) with a
one-line summary, ordered chronologically. Useful for dashboards
that want to render a job lifecycle without parsing raw tool
inputs/outputs.

### Path parameters

<ParamField path="job_id" type="string (uuid)" required />

### Response

`TimelineResponse`

<ResponseField name="job_id" type="string" required />

<ResponseField name="status" type="string" required />

<ResponseField name="events" type="TimelineEvent[]" required>
  Chronological. First entry is always job\_created.

  <Expandable title="TimelineEvent">
    <ResponseField name="kind" type="string" required>
      Event class. Stable; new kinds may be appended.
    </ResponseField>

    <ResponseField name="timestamp" type="string" required>
      ISO 8601 UTC.
    </ResponseField>

    <ResponseField name="summary" type="string" required>
      One-line human-readable description.
    </ResponseField>

    <ResponseField name="sequence_number" type="integer,null">
      For tool\_call events, the position in the tool stream.
    </ResponseField>

    <ResponseField name="tool_name" type="string,null">
      For tool\_call events only.
    </ResponseField>

    <ResponseField name="duration_ms" type="integer,null">
      For tool\_call events only.
    </ResponseField>

    <ResponseField name="is_error" type="boolean">
      True for tool\_call rows whose execution errored.
    </ResponseField>
  </Expandable>
</ResponseField>

### Status codes

| Code  | Meaning             |
| ----- | ------------------- |
| `200` | Successful Response |
| `422` | Validation Error    |

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://api.computer.stateset.app/api/v1/jobs/{job_id}/timeline' \
    --header 'X-API-Key: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": "pending",
    "events": [
      {
        "kind": "job_created",
        "timestamp": "2026-08-31T14:22:05Z",
        "summary": "Two-person tent, green — replacement for damaged pole set.",
        "sequence_number": 1001,
        "tool_name": "string",
        "duration_ms": 8,
        "is_error": false
      }
    ]
  }
  ```
</ResponseExample>
