---
title: "List participant tiers"
method: GET
path: "/v1/participants/{participant_id}/state/tiers"
tags: ["Tiers"]
---

# List participant tiers

`GET /v1/participants/{participant_id}/state/tiers`

## Request

- Base URL: `https://api.scrip.dev`
- URL: `https://api.scrip.dev/v1/participants/{participant_id}/state/tiers`
- Auth: HTTP bearer

Returns the participant's level in every tier the program defines, with `level` "" and `rank` 0 for a tier the participant holds no level in.
State lists are not filtered by time, so this list does not accept created_after or created_before.

## Path parameters

- `participant_id` string, required

## Query parameters

- `program_id` string, uuid, required

## Response `200`

List of participant tier states

- ParticipantTierListResponse: List of participant tier states
  - `data` ParticipantTierResponse[]: The participant's tiers on this page.
    - `acquired_at` string, date-time: When this tier level was earned
    - `benefits` object: Benefits granted by this tier level
    - `expires_at` string, date-time: When this tier level expires
    - `key` string: The key of the tier the participant is in.
    - `level` string: Current level key, or an empty string when the participant holds no level in this tier
    - `rank` integer: Numeric rank within the tier (higher = better), or 0 when the participant holds no level
  - `pagination` PaginationResponse: Cursor details for a list. `has_more` says whether another page exists, and `next_cursor` is the value to send to get it.
    - `has_more` boolean, required: Whether more results are available beyond this page
    - `next_cursor` string, nullable, required: Cursor to fetch the next page. Null on the last page

## Other responses

- `400`: Invalid parameters (code: validation_error)
- `401`: The API key is missing or not valid. See [Authentication](https://docs.scrip.dev/authentication).
- `404`: Participant not found (code: participant_not_found)
- `422`: Participant not enrolled in the program (code: participant_not_enrolled)
- `429`: Too many requests. Wait the number of seconds in the `Retry-After` header, then retry. See [Limits and durations](https://docs.scrip.dev/limits#rate-limits).
- `500`: Something failed on Scrip's side. Retry the request, and quote `request_id` if it keeps failing. [Errors](https://docs.scrip.dev/errors) lists every code, and the [API introduction](https://docs.scrip.dev/api-reference/introduction) describes the error format.

---

[API](https://skmtc.dev/scrip/apis/scrip-api.md) · [All operations](https://skmtc.dev/scrip/apis/scrip-api/llms.txt) · [OpenAPI document](https://skmtc.dev/scrip/apis/scrip-api/revisions/c52d35da8d97?raw)
