# Server-Sent Events stream of a run's progress

GET

/v1/runs/{runId}/progress/stream

```sh
curl --request GET \
  --url https://example.com/v1/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/progress/stream \
  --header 'Authorization: Bearer <token>'
```

Each SSE frame is one `RunProgressEvent`: what happened, on which node, when — no payloads. Accepts an API token, or a public run token that names the run or one of its ancestors. Reconnect via `Last-Event-Id`; the server ends the stream after the run’s terminal event, or after 5 minutes.

## Authorizations

- **[bearerAuth](https://docs.kindgi.com/v0.1.10/reference/api.md#bearerauth)**
- **[publicRunToken](https://docs.kindgi.com/v0.1.10/reference/api.md#publicruntoken)**

## Parameters

### Path Parameters

**runId**

required

string format: uuid

RunId — opaque branded string (a UUID).

### Header Parameters

**Last-Event-Id**

string

Resume marker (`<runId>:<sequence>`). Server replays events with `sequence > lastSeen` before entering live-poll.

## Responses

### 200

Text/event-stream. Each frame is one RunProgressEvent.

text/event-stream

A run event without its payload: what happened, on which node, when.

object

**eventId**

required

Sent as the SSE `id:` line; echo it back in `Last-Event-Id` to resume.

string

\>= 1 characters

**runId**

required

string

\>= 1 characters

**timestamp**

required

string format: date-time

**kind**

required

string

**sequence**

required

integer

**nodeId**

string

### 400

`runId` is not a run id (a UUID).

application/json

object

**error**

required

object

**code**

required

Stable machine-readable discriminant. Values match domain error codes (see `docs/API-ROUTE-CONVENTIONS.md` §4.3).

string

**message**

required

string

**details**

Optional, kind-specific.

object

**_key_**

additional properties

any

**requestId**

required

Server-assigned request id; also echoed via `X-Request-Id` header.

string

##### Examplegenerated

```json
{
  "error": {
    "code": "example",
    "message": "example",
    "details": {},
    "requestId": "example"
  }
}
```

### 401

Missing / malformed / expired / revoked bearer token.

application/json

object

**error**

required

object

**code**

required

Stable machine-readable discriminant. Values match domain error codes (see `docs/API-ROUTE-CONVENTIONS.md` §4.3).

string

**message**

required

string

**details**

Optional, kind-specific.

object

**_key_**

additional properties

any

**requestId**

required

Server-assigned request id; also echoed via `X-Request-Id` header.

string

##### Examplegenerated

```json
{
  "error": {
    "code": "example",
    "message": "example",
    "details": {},
    "requestId": "example"
  }
}
```

### 404

No run with that id that the token may read.

application/json

object

**error**

required

object

**code**

required

Stable machine-readable discriminant. Values match domain error codes (see `docs/API-ROUTE-CONVENTIONS.md` §4.3).

string

**message**

required

string

**details**

Optional, kind-specific.

object

**_key_**

additional properties

any

**requestId**

required

Server-assigned request id; also echoed via `X-Request-Id` header.

string

##### Examplegenerated

```json
{
  "error": {
    "code": "example",
    "message": "example",
    "details": {},
    "requestId": "example"
  }
}
```

## See also

- [`GET /v1/runs/{runId}`: Fetch a run](https://docs.kindgi.com/v0.1.10/reference/api/operations/runsget.md)
- [`POST /v1/runs/{runId}/cancel`: Cancel a run](https://docs.kindgi.com/v0.1.10/reference/api/operations/runscancel.md)
- [`POST /v1/runs/{runId}/resume`: Resume a suspended run at a waitpoint (not available in this release)](https://docs.kindgi.com/v0.1.10/reference/api/operations/runsresume.md)
- [`GET /v1/runs/{runId}/journal`: Read the durable journal for a run](https://docs.kindgi.com/v0.1.10/reference/api/operations/runsjournal.md)
- [Follow a run from the browser](https://docs.kindgi.com/v0.1.10/guides/runs/follow-from-the-browser.md)
- [Every error code](https://docs.kindgi.com/v0.1.10/reference/errors.md)
