> ## 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.

# Raw conversation messages from the agent's checkpoint

> Raw conversation messages for a job. Closes the last reproducibility gap in the v1 API: every other artifact is exposed (transcript, replay, screenshots) but…

Raw conversation messages for a job.

Closes the last reproducibility gap in the v1 API: every other
artifact is exposed (transcript, replay, screenshots) but the actual
BetaMessageParam list — what the agent saw — was previously
JWT-only. Useful for 'feed this past run into a follow-up agent',
full-fidelity audit, and debugging across model versions.

Returns an empty list for jobs that never wrote a checkpoint (e.g.
NSR runs that don't persist conversation state). Tenant-scoped via
the parent Job's tenant\_id.

### Path parameters

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

### Response

`JobMessagesResponse`

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

<ResponseField name="messages" type="any[]" required>
  Raw conversation messages exactly as they sit in the agent's checkpoint — same shape as Anthropic's BetaMessageParam list. Empty list when no checkpoint exists yet (jobs that finished without persisting state, e.g. NSR runs).
</ResponseField>

<ResponseField name="pending_tool_call" type="object,null">
  If the job is paused on an approval, the tool call awaiting review. None for completed jobs.
</ResponseField>

<ResponseField name="captured_at" type="string,null">
  ISO 8601 of when the checkpoint was last written.
</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}/messages' \
    --header 'X-API-Key: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "messages": [],
    "pending_tool_call": {},
    "captured_at": "2026-08-31T14:22:05Z"
  }
  ```
</ResponseExample>
