---
title: "GET /district/{district_key}/advancement"
method: GET
path: "/district/{district_key}/advancement"
tags: ["district", "team"]
---

# GET /district/{district_key}/advancement

`GET /district/{district_key}/advancement`

## Request

- Base URL: `https://www.thebluealliance.com/api/v3`
- URL: `https://www.thebluealliance.com/api/v3/district/{district_key}/advancement`
- Auth: API key in header `X-TBA-Auth-Key`

Gets per-team advancement information and the advancement cutoffs for a district.

## Path parameters

- `district_key` string, required

## Headers

- `If-None-Match` string

## Response `200`

Successful response

- DistrictAdvancementResponse: Per-team advancement status and the advancement cutoffs for a district.
  - `teams` object, nullable, required: A mapping of team key to District_Advancement. An empty object means advancement has been fetched but no teams are listed yet; `null` means it has never been fetched for this district.
  - `cutoffs` DistrictAdvancementCutoffs, required: Where the District Championship and FIRST Championship advancement cutoffs fell for a district, and how each qualifying team earned its Championship invitation.
    - `dcmp_original` integer, required: The rank at which the District Championship cutoff would have fallen before any declines were applied.
    - `dcmp_effective` integer, required: The rank at which the District Championship cutoff actually fell, after declines were backfilled.
    - `dcmp_declines` string[], required: TBA team keys for teams that declined their District Championship invitation.
    - `cmp_original` integer, required: The rank at which the FIRST Championship cutoff would have fallen before any declines were applied.
    - `cmp_effective` integer, required: The rank at which the FIRST Championship cutoff actually fell, after declines were backfilled.
    - `cmp_declines` string[], required: TBA team keys for teams that declined their FIRST Championship invitation.
    - `cmp_qualification` object, required: A mapping of team key to how that team earned its FIRST Championship invitation. Populated independently of the per-team advancement data, so it is present even when `teams` is empty.

## Other responses

- `304`: Not Modified - Use Local Cached Value
- `401`: Authorization information is missing or invalid.
- `404`: Not Found

## Changes

- **2026-09-06** `9702839beafd`: 2 info
  - added the required property `cutoffs` to the response with the `200` status
  - added the required property `teams` to the response with the `200` status
- **2026-02-08** `cc960731dc5b`: 1 info
  - api tag `list` removed
- **2025-07-02** `ccbc6f4199bd`: 1 breaking
  - the response's body became nullable
- **2025-04-01** `f3e7de9ca46b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/thebluealliance/apis/the-blue-alliance-api-v3/changes/district/:district_key/advancement/get.md)

---

[API](https://skmtc.dev/thebluealliance/apis/the-blue-alliance-api-v3.md) - [All operations](https://skmtc.dev/thebluealliance/apis/the-blue-alliance-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/thebluealliance/apis/the-blue-alliance-api-v3/revisions/9316d02dee32?raw)
