Developer
News and Updates
Get Support
Sign in
Get Support
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Sign in
DOCUMENTATION
Cloud
Data Center
Resources
Sign in
Last updated Jul 20, 2026

Preview: This section describes a preview feature. Preview features are deemed stable; however, they remain under active development and may be subject to shorter deprecation windows. Preview features are suitable for early adopters in production environments. We release preview features so partners and developers can study, test, and integrate them prior to General Availability (GA).

API reference

The Capacity Planning REST API exposes three resources. All endpoints are served under https://api.atlassian.com/ex/capacity-planning/{cloudId}/v1.

For the full machine-readable specification, see the REST API reference.

Contributions

A contribution represents a time allocation — how much capacity a person has on a piece of work during a specific period. For example: "Alex is allocated 40% to Project Alpha for the week starting on 2026-07-20."

Contributions are identified by a composite key: (contributorDataId, workId, startDate, endDate).

EndpointMethodDescription
/v1/contributionsGETGet contributions for a contributor-work pair
/v1/contributionsPOSTCreate or update contributions (bulk upsert)
/v1/contributions:clearPOSTClear contributions by composite key

Identifiers

  • contributorDataId — ARI of the person who is a contributor to the work (e.g. ari:cloud:identity::user/{accountId})
  • workId — ARI of the work item. Can be a Jira issue, Atlas project, or non-project work item. The ARI namespace acts as the type discriminator.

Contribution date constraints

Contribution date ranges are bounded in the public REST API v1 contract:

OperationConstraint
POST /v1/contributionsEach request can include at most 100 contributions.
POST /v1/contributionsEach contribution must have startDate on or before endDate.
POST /v1/contributionsA single contribution must not span more than 90 days.
POST /v1/contributionsstartDate must not be more than 2 years in the past.
POST /v1/contributionsendDate must not be more than 2 years in the future.
GET /v1/contributionsstartDate must be on or before endDate.
GET /v1/contributionsThe query window must not exceed 2 years.
GET /v1/contributionsResults are returned as contribution cells aligned to weekly time periods.
POST /v1/contributions:clearEach request can include at most 100 composite keys.
POST /v1/contributions:clearEach composite key must have startDate on or before endDate.

Contributor work associations

A contributor work association is the assignment link between a person and a piece of work — for example, "Alex is assigned to Project Alpha." Associations exist independently of contributions; you can assign someone to work without immediately allocating time.

EndpointMethodDescription
/v1/contributor-work-associationsPOSTCreate associations
/v1/contributor-work-associations/by-contributorGETList work for a contributor
/v1/contributor-work-associations/by-workGETList contributors for a work item
/v1/contributor-work-associations:deletePOSTDelete associations

Query patterns

  • By contributor: GET /v1/contributor-work-associations/by-contributor?contributorDataId={ari}
  • By work: GET /v1/contributor-work-associations/by-work?workId={ari}

Non-project work items

A non-project work item is a custom work item that doesn't exist in Jira — for example, "Hiring", "On-call", or "Team ceremonies." These are created and managed entirely through Capacity Planning and can be used as work targets for contributions and associations.

Non-project work items are identified by a server-generated UUID in URLs and have a full ARI in the response body for cross-product linking.

EndpointMethodDescription
/v1/non-project-work-itemsGETList all non-project work items
/v1/non-project-work-itemsPOSTCreate a new non-project work item
/v1/non-project-work-items/{id}GETGet a non-project work item by ID
/v1/non-project-work-items/{id}PUTUpdate a non-project work item

Pagination

List endpoints return paginated results using cursor-based pagination:

1
2
3
4
5
6
{
  "results": [...],
  "next": "eyJsYXN0SWQiOi...",
  "hasMore": true
}

Pass the next value as the cursor query parameter to fetch the next page.

Identifiers

The API uses ARIs (Atlassian Resource Identifiers) in request and response bodies. ARIs are self-describing and polymorphic — for example, workId can be a Jira issue, an Atlas project, or a non-project work item, and the ARI namespace acts as the type discriminator.

In URLs, non-project work items use a bare UUID ({id}) rather than an ARI for cleaner path handling. The full ARI is always available in the response body.

Rate this page: