---
title: "Stream task"
method: GET
path: "/api/v1/tasks/{taskId}/stream"
tags: ["streams"]
---

# Stream task

`GET /api/v1/tasks/{taskId}/stream`

## Request

- Base URL: `https://api.capy.ai`
- URL: `https://api.capy.ai/api/v1/tasks/{taskId}/stream`
- Auth: HTTP bearer

## Path parameters

- `taskId` string, required

## Query parameters

- `after` string: Exclusive event-ID cursor to start the committed lane after; the Last-Event-ID header wins when both are present.
- `until` string: `run`: close the stream with `done` after the run in progress ends, or at once when the thread is not working.

## Headers

- `last-event-id` string: The last `id:` a client read; the committed lane resumes after it.

## Response `200`

Success

## Other responses

- `400`: capy/InvalidRequest
- `401`: capy/Unauthorized
- `403`: capy/Forbidden
- `404`: capy/TaskNotFound
- `429`: capy/RateLimited
- `503`: capy/StreamUnavailable

## Changes

- **2026-10-21** `c3356d0715a6`: 2 breaking, 1 info
  - the response's body type changed from `object` to no type for status `403`
  - removed the required property `_tag` from the response with the `403` status
  - added `#/components/schemas/capy_ForbiddenEncoded, #/components/schemas/capy_ForbiddenEncoded` to the response body `anyOf` list for the response status `403`
- **2026-10-07** `ce9732b81ae1`: 1 info
  - added `subschema #7` to the response body `anyOf` list for the response status `200`
- **2026-09-30** `7187d2287ecd`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/capy/apis/capy-api/changes/api/v1/tasks/:taskId/stream/get.md)

---

[API](https://skmtc.dev/capy/apis/capy-api.md) - [All operations](https://skmtc.dev/capy/apis/capy-api/llms.txt) - [OpenAPI document](https://skmtc.dev/capy/apis/capy-api/revisions/4663f7dc4e39?raw)
