---
title: "Get team analytics"
method: GET
path: "/api/v2/orgs/{orgId}/teams/{teamId}/charts"
tags: ["Teams"]
---

# Get team analytics

`GET /api/v2/orgs/{orgId}/teams/{teamId}/charts`

## Request

- Base URL: `https://davinci-app.com`
- URL: `https://davinci-app.com/api/v2/orgs/{orgId}/teams/{teamId}/charts`
- Auth: HTTP bearer

Returns sprint velocity by default or a daily cumulative-flow series.
Explicit cumulative-flow ranges are capped to 90 days; an omitted range
covers the team's full history. The acting user's live role must include
`teams:sprints:analysis:read`.

## Query parameters

- `type` 'velocity' | 'cumulative-flow'
- `from` string: ISO 8601 calendar date or date-time accepted for a sprint boundary.
- `to` string: ISO 8601 calendar date or date-time accepted for a sprint boundary.
- `projectIds` string[]

## Response `200`

Requested team chart.

- union
  - TeamVelocityChart
    - `chartType` 'velocity', required
    - `unit` 'effort', required
    - `sprints` TeamVelocitySprint[], required
      - `id` string, uuid, required
      - `name` string, required
      - `status` 'active' | 'completed', required
      - `startDate` string, date-time, nullable, required
      - `endDate` string, date-time, nullable, required
      - `committed` number, required
      - `completed` number, required
      - `partial` boolean, required
    - `meta` object, required
      - `from` string, date-time, nullable, required
      - `to` string, date-time, nullable, required
      - `sprintCount` integer, required
      - `truncated` boolean, required: True when at least one replay query reached its event safety bound.
  - TeamCumulativeFlowChart
    - `chartType` 'cumulative-flow', required
    - `days` string[], required
    - `categories` TeamCumulativeFlowCategory[], required
      - `key` 'not_started' | 'started' | 'closed', required
      - `label` string, required
      - `color` string, required
    - `series` object, required
      - `not_started` integer[], required
      - `started` integer[], required
      - `closed` integer[], required
    - `meta` object, required
      - `from` string, date, required
      - `to` string, date, required
      - `dayCount` integer, required
      - `totalCardsOnTeam` integer, required
      - `truncated` boolean, required: True when the replay reached its 100,000-event safety bound.

## Other responses

- `400`: Malformed request parameters or body. Agile requests may return `INVALID_PAGINATION` or `INVALID_IDEMPOTENCY_KEY`.
- `401`: No credential was supplied, or the supplied credential is malformed, expired, or revoked. A credential that is present but unusable is never downgraded to an anonymous request.
- `403`: Authenticated but not authorized. Either the acting user lacks the required resource permission, the key's scope ceiling excludes it, or the endpoint rejects this credential type (`CREDENTIAL_NOT_PERMITTED`).
- `404`: The resource does not exist in the parent named by the path, or is hidden from the caller. Absence and privacy denial are deliberately indistinguishable so project, organization, and private-team existence cannot be probed.
- `429`: Request rate exceeded, either globally or for this key.
- `500`: Unexpected server error.

## Changes

- **2026-09-15** (v2) `aa52eb4e8fd3`: 1 info
  - added the new optional `query` request parameter `projectIds`
- **2026-09-15** (v2) `67c8b8616dbb`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/changes/api/v2/orgs/:orgId/teams/:teamId/charts/get.md)

---

[API](https://skmtc.dev/celedon-solutions/apis/davinci-public-api.md) - [All operations](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/celedon-solutions/apis/davinci-public-api/revisions/279218ca2e8d?raw)
