---
title: "GET /workspace/{workspaceId}/capacity"
method: GET
path: "/workspace/{workspaceId}/capacity"
tags: ["Workspaces"]
---

# GET /workspace/{workspaceId}/capacity

`GET /workspace/{workspaceId}/capacity`

## Request

- Base URL: `https://api.craft.io`
- URL: `https://api.craft.io/workspace/{workspaceId}/capacity`
- Auth: API key in header `x-api-key`

Get the capacity limits a workspace plans against, per period per capacity field

The item values say how much work is loaded into a period; this says how
much the period can hold. `netCapacity` is the figure the Capacity Planning
view shows.

A capacity field is a NUMBER custom field flagged `capacityEnabled` in
get_workspace_custom_fields, or the built-in `storyPoints`, which is what
most workspaces actually plan against.

## Path parameters

- `workspaceId` string, required

## Query parameters

- `periodType` 'sprint' | 'quarter' | 'timeframe', required: A period a capacity limit can be set against. `timeframe` is not a period table: it is an option of a timeframe custom field (H1 2025, Q3'2026), which a workspace can plan against instead of sprints or quarters. Its period id is the option id.
- `periodIds` string
- `capacityFieldIds` string

## Response `200`

Capacity limits per period per capacity field

- CapacityRow[]
  - `period` object, required
    - `endDate` string, date-time
    - `startDate` string, date-time
    - `type` 'sprint' | 'quarter' | 'timeframe', required: A period a capacity limit can be set against. `timeframe` is not a period table: it is an option of a timeframe custom field (H1 2025, Q3'2026), which a workspace can plan against instead of sprints or quarters. Its period id is the option id.
    - `name` string, required
    - `id` string, required
  - `periodField` object: Set for `timeframe` periods: the timeframe field the option belongs to.
    - `name` string, required
    - `id` string, required
  - `capacityField` object, required: `storyPoints` for the built-in field, otherwise a custom field id. `name` is null when the id resolves to nothing — the field was deleted but the period kept its capacity setting. `deleted` marks that explicitly, so a caller never has to infer it by comparing the name against the id.
    - `deleted` boolean
    - `name` string, nullable, required
    - `id` string, required
  - `limit` CapacityLimit, required: A capacity limit for one field in one period. `netCapacity` is the figure the Capacity Planning view shows, read from what the app stored rather than recomputed — the two disagree whenever no team size is set, and the stored value is the one the app plans against.
    - `mode` 'perMember' | 'flatLimit', required: How the limit was expressed. `flatLimit` is a number typed straight in; `perMember` is a team size and a per-person figure less a buffer.
    - `capacityPerPerson` number, double: perMember only.
    - `numberOfPeople` number, double: perMember only.
    - `bufferPercent` number, double: perMember only, as a percentage (20 means 20%).
    - `flatLimit` number, double: flatLimit only.
    - `netCapacity` number, double, required: What the period can hold. Compare the sum of item values against this.

## Other responses

- `400`: Invalid workspace ID
- `401`: No access to account
- `403`: Access denied
- `404`: Workspace not found
- `422`: Invalid periodType or id list

## Changes

- **2026-10-01** `6009bb084cb5`: 5 info
  - added the optional property `error` to the response with the `400` status
  - added the optional property `error` to the response with the `401` status
  - added the optional property `error` to the response with the `403` status
  - added the optional property `error` to the response with the `404` status
  - …1 more
- **2026-09-15** `9388f8d7ecd8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/craft/apis/craft-io-public-api/changes/workspace/:workspaceId/capacity/get.md)

---

[API](https://skmtc.dev/craft/apis/craft-io-public-api.md) - [All operations](https://skmtc.dev/craft/apis/craft-io-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/craft/apis/craft-io-public-api/revisions/2972a1b05ab1?raw)
