Skip to main content
GET
/
workflows
/
{workflow_id}
/
jobs
/
{job_id}
/
logs
Get Job Logs
curl --request GET \
  --url https://api.example.com/workflows/{workflow_id}/jobs/{job_id}/logs
{
  "id": "<string>",
  "workflow_id": "<string>",
  "logs": [
    {
      "timestamp": "<string>",
      "message": "<string>",
      "sequence_num": 123,
      "stream": "<string>"
    }
  ],
  "cursor": "<string>"
}
Logs are cached for 2 hours when pagination is complete (empty cursor returned).

Path Parameters

workflow_id
string
required
The unique identifier of the workflow
job_id
string
required
The unique identifier of the job

Query Parameters

cursor
string
Pagination cursor from a previous response to fetch the next page of logs

Response

id
string
Job identifier
workflow_id
string
Workflow identifier
logs
array
Array of log entries ordered by sequence number
timestamp
string
ISO 8601 timestamp when the log was created
message
string
The log message content
sequence_num
integer
Sequence number for ordering logs
stream
string
Stream type: stdout or stderr
cursor
string
Pagination cursor for next page. Empty string indicates no more logs available.

Examples

# Get first page of logs
curl -X GET 'https://api.chronoverse.dev/workflows/wf_abc123/jobs/job_xyz789/logs' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

# Get next page using cursor
curl -X GET 'https://api.chronoverse.dev/workflows/wf_abc123/jobs/job_xyz789/logs?cursor=next_token' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

Example Response

{
  "id": "job_xyz789",
  "workflow_id": "wf_abc123",
  "logs": [
    {
      "timestamp": "2026-03-03T10:00:05.123Z",
      "message": "Starting workflow execution",
      "sequence_num": 1,
      "stream": "stdout"
    },
    {
      "timestamp": "2026-03-03T10:00:06.456Z",
      "message": "Loading configuration",
      "sequence_num": 2,
      "stream": "stdout"
    },
    {
      "timestamp": "2026-03-03T10:00:07.789Z",
      "message": "Warning: deprecated option used",
      "sequence_num": 3,
      "stream": "stderr"
    }
  ],
  "cursor": "eyJzZXFfbnVtIjozfQ=="
}
This endpoint returns all logs (both stdout and stderr). Use the Search Logs endpoint to filter by stream type.

Build docs developers (and LLMs) love