---
title: "List runs"
description: "Runs across the workspace, newest first, without their transcripts."
url: "https://openemail.uk/docs/api/tasks/runs"
area: "API"
category: "Mailbox"
---

# List runs

Runs across the workspace, newest first, without their transcripts.

`GET /task-runs`

## GET /task-runs

Runs across the workspace, newest first, without their transcripts.

## Example

Needs `tasks:read`, `threads:read` and `emails:read`. `taskId` narrows the list to one task and `status` to one state. `limit` goes up to 100 and defaults to 25.

**curl**

```
curl "$OE/task-runs?taskId=tsk_4b9e2c7a1f3d86e05a9c2b7d&status=waiting" -H "$AUTH"
```

**Response**

```
{
  "object": "list",
  "data": [{
      "object": "task_run",
      "id": "run_9d3a7e1c5b2f48a60c7e1d3b",
      "taskId": "tsk_4b9e2c7a1f3d86e05a9c2b7d",
      "taskName": "Morning summary",
      "trigger": "schedule",
      "threadId": null,
      "status": "waiting",
      "instruction": "Go through the mail that arrived since yesterday. Tell me which conversations need a reply from me, most urgent first, and draft a short reply for each.",
      "autonomy": "organize",
      "model": "standard",
      "steps": 4,
      "toolCalls": 6,
      "actions": 1,
      "result": null,
      "error": null,
      "errorDetail": null,
      "pendingApprovals": 1,
      "createdAt": "2026-10-13T07:00:04.112Z",
      "startedAt": "2026-10-13T07:00:05.870Z",
      "finishedAt": null
    }],
  "hasMore": false,
  "nextCursor": null
}
```

> `taskId` and `taskName` are null for a run started with `POST /task-runs`.

> `trigger` says what started it: `schedule`, `mail` or `manual`. For `mail`, `threadId` is the conversation that arrived.

> `steps` counts how often the model was asked what to do next, `toolCalls` the tools that ran, and `actions` the AI actions the run cost.

## Reference

- [`GET /task-runs`](https://openemail.uk/docs/api/reference/tasks#get-task-runs): full reference
