Skip to main content
GET
/
workflows
/
{workflow_id}
/
jobs
/
{job_id}
/
logs
/
search
Search Job Logs
curl --request GET \
  --url https://api.example.com/workflows/{workflow_id}/jobs/{job_id}/logs/search
{
  "id": "<string>",
  "workflow_id": "<string>",
  "logs": [
    {
      "timestamp": "<string>",
      "message": "<string>",
      "sequence_num": 123,
      "stream": "<string>"
    }
  ],
  "cursor": "<string>",
  "STDOUT": "<string>",
  "STDERR": "<string>",
  "ALL": "<string>"
}
Search through job logs with filtering by stream type (stdout/stderr) and message content.
Results 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
stream
string
Filter by stream type. Values: STDOUT, STDERR, ALL (default: ALL)
q
string
Search query to filter log messages. Returns logs containing this substring.

Response

id
string
Job identifier
workflow_id
string
Workflow identifier
logs
array
Array of matching log entries
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 results.

Examples

# Get only stderr logs
curl -X GET 'https://api.chronoverse.dev/workflows/wf_abc123/jobs/job_xyz789/logs/search?stream=STDERR' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

# Search for specific message
curl -X GET 'https://api.chronoverse.dev/workflows/wf_abc123/jobs/job_xyz789/logs/search?q=error' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

# Combine stream filter and search
curl -X GET 'https://api.chronoverse.dev/workflows/wf_abc123/jobs/job_xyz789/logs/search?stream=STDERR&q=failed' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

# Get only stdout logs
curl -X GET 'https://api.chronoverse.dev/workflows/wf_abc123/jobs/job_xyz789/logs/search?stream=STDOUT' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

Example Response

{
  "id": "job_xyz789",
  "workflow_id": "wf_abc123",
  "logs": [
    {
      "timestamp": "2026-03-03T10:00:07.789Z",
      "message": "Warning: deprecated option used",
      "sequence_num": 3,
      "stream": "stderr"
    },
    {
      "timestamp": "2026-03-03T10:05:12.345Z",
      "message": "Error connecting to database",
      "sequence_num": 234,
      "stream": "stderr"
    },
    {
      "timestamp": "2026-03-03T10:05:15.678Z",
      "message": "Retrying connection attempt",
      "sequence_num": 235,
      "stream": "stderr"
    }
  ],
  "cursor": ""
}

Stream Types

STDOUT
string
Standard output stream - normal informational messages
STDERR
string
Standard error stream - error and warning messages
ALL
string
Both stdout and stderr streams (default)
The search query (q parameter) performs a case-insensitive substring match on log messages.
For large result sets, make sure to paginate using the cursor to avoid timeouts.

Build docs developers (and LLMs) love