---
title: "Sprints API reference"
canonical_url: https://zentrik.ai/docs/api/sprints
markdown_url: https://zentrik.ai/docs/api/sprints.md
last_reviewed: 2026-09-10
---

# Sprints API reference

Find the active sprint for a team and read its planning window. Request sprints:read.

- Human reference: https://zentrik.ai/docs/api/sprints
- Complete Markdown index: https://zentrik.ai/docs/api/index.md
- Base URL: `https://zentrik.ai/api`
- Authentication: `Authorization: Bearer YOUR_API_KEY`
- Shared pagination and rate limits: https://zentrik.ai/docs/api/index.md#shared-conventions

## GET /external/v1/sprints — List team sprints

Operation ID: `list-execution-sprints`

List one team’s sprints (also called cycles), ordered by startDate descending and UUID ascending. List responses are arrays with X-Total-Count, X-Limit, X-Offset and X-Has-More headers. Continue until X-Has-More is false; concurrent edits can shift offset pages.

Required API key scopes: `sprints:read`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `teamId` | uuid | Yes | Required query parameter. Resolve it with GET /external/v1/teams (initiatives:read). |
| `limit` | integer | No | Page size, 1–100. Default 20. |
| `offset` | integer | No | Matching rows to skip. Default 0. |
| `status` | enum | No | planned, active, or completed. Omit to include all. |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | Success | The requested data is returned. | — |
| 400 | Invalid request | Invalid ID, unsupported field, empty patch, or invalid value. | — |
| 403 | Missing scope | The key does not grant the required resource scope. | — |
| 404 | Not found | The addressed record or assignment is outside this workspace or team. | — |

### Example response

```json
[
  {
    "id": "22222222-2222-4222-8222-222222222222",
    "teamId": "11111111-1111-4111-8111-111111111111",
    "name": "Sprint 18",
    "status": "active",
    "objective": "Improve export reliability",
    "startDate": "2026-09-07T00:00:00Z",
    "endDate": "2026-09-18T23:59:59Z",
    "sourceManaged": false
  }
]
```

---

## GET /external/v1/sprints/current — Get the current sprint

Operation ID: `get-current-sprint`

Return {item: sprint} for the explicitly active sprint. Return {item: null} when no sprint is active. Dates alone never select a sprint. If inconsistent data contains multiple active sprints, return 409 and require an explicit sprint ID.

Required API key scopes: `sprints:read`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `teamId` | uuid | Yes | Required query parameter. Resolve it with GET /external/v1/teams (initiatives:read). |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | Success | The requested data is returned. | — |
| 400 | Invalid request | Invalid ID, unsupported field, empty patch, or invalid value. | — |
| 403 | Missing scope | The key does not grant the required resource scope. | — |
| 404 | Not found | The addressed record or assignment is outside this workspace or team. | — |

### Example response

```json
{
  "item": {
    "id": "22222222-2222-4222-8222-222222222222",
    "teamId": "11111111-1111-4111-8111-111111111111",
    "name": "Sprint 18",
    "status": "active",
    "objective": "Improve export reliability",
    "startDate": "2026-09-07T00:00:00Z",
    "endDate": "2026-09-18T23:59:59Z",
    "sourceManaged": false
  }
}
```

---

## GET /external/v1/sprints/:id — Get a sprint

Operation ID: `get-execution-sprint`

Read one sprint from the specified team. This API exposes sprint reads; planning and cycle lifecycle management remain in Zentrik.

Required API key scopes: `sprints:read`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | uuid | Yes | Record UUID in the path. |
| `teamId` | uuid | Yes | Required query parameter. Resolve it with GET /external/v1/teams (initiatives:read). |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | Success | The requested data is returned. | — |
| 400 | Invalid request | Invalid ID, unsupported field, empty patch, or invalid value. | — |
| 403 | Missing scope | The key does not grant the required resource scope. | — |
| 404 | Not found | The addressed record or assignment is outside this workspace or team. | — |

### Example response

```json
{
  "id": "22222222-2222-4222-8222-222222222222",
  "teamId": "11111111-1111-4111-8111-111111111111",
  "name": "Sprint 18",
  "status": "active",
  "objective": "Improve export reliability",
  "startDate": "2026-09-07T00:00:00Z",
  "endDate": "2026-09-18T23:59:59Z",
  "sourceManaged": false
}
```
