List workflow execution logs for a workspace with filters, selectable detail, and opaque cursor pagination. This list predates the shared sort convention: it has no sortBy (the sort column is fixed to execution start time) and spells the direction order rather than sortOrder. Trace spans are stored separately from the log row and are pruned on their own retention schedule: includeTraceSpans=true on a run whose stored spans have aged out returns traceSpans: [] rather than an error, so an empty array does not mean the run recorded no spans.
/api/v2/logsAuthorization
apiKey Your Sim API key, personal or workspace-scoped. Generate one from the Sim dashboard under Settings > API Keys. A workspace API key is not accepted everywhere: operations that act on behalf of a specific human — administrative reads, secret access, and irreversible or governance-affecting writes — always reject it, whatever role the key carries. Each such operation says so in its own description, and the rejection surfaces as 403 unless the operation conceals unauthorized resources, in which case it is reported as 404. Use a personal API key for those.
In: header
Query Parameters
Workspace whose execution logs should be returned.
1 <= lengthComma-separated workflow identifiers to include.
Comma-separated trigger types to include.
Severity level to include.
"info" | "error"Only include runs started at or after this ISO 8601 timestamp.
Only include runs started at or before this ISO 8601 timestamp.
Minimum total execution duration in milliseconds.
Maximum total execution duration in milliseconds.
Minimum execution cost in USD.
Maximum execution cost in USD.
AI model used during execution.
Response detail level.
"basic""basic" | "full"Whether to include block-level trace spans.
Whether to include the final workflow output.
Maximum log entries per page, clamped to 1–1000.
100Opaque cursor returned by a previous page.
Sort order by execution start time.
"desc""desc" | "asc"Exact run identifier to match.
1 <= lengthComma-separated workflow folder paths to include.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://www.sim.ai/api/v2/logs?workspaceId=string"{
"data": [
{
"runId": "e4f8d2b6-9a1c-4e3d-8b7f-5c0a2d9e6f13",
"workflowId": "3b1f7c92-8d4e-4a6b-9c0d-5e2f8a714b36",
"deploymentVersionId": "dep_2c4e6a8b0d1f",
"status": "completed",
"level": "info",
"trigger": "api",
"startedAt": "2026-01-15T10:30:00.000Z",
"endedAt": "2026-01-15T10:30:01.250Z",
"totalDurationMs": 1250,
"cost": {
"total": 0.0032
},
"files": null
}
],
"nextCursor": "eyJzdGFydGVkQXQiOiIyMDI2LTAxLTE1VDEwOjMwOjAwMFoifQ=="
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request is invalid."
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request is invalid."
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request is invalid."
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request is invalid."
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request is invalid."
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request is invalid."
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request is invalid."
}
}