---
title: "List flags"
method: GET
path: "/v2/projects/{projectIdOrName}/feature-flags/flags"
tags: ["feature-flags"]
---

# List flags

`GET /v2/projects/{projectIdOrName}/feature-flags/flags`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v2/projects/{projectIdOrName}/feature-flags/flags`
- Auth: HTTP bearer

Retrieve feature flags for a project. Returns an opaque cursor for pagination.

## Path parameters

- `projectIdOrName` string, required: The project id or name

## Query parameters

- `state` 'active' | 'archived': The state of the flags to retrieve. Defaults to `active`.
- `limit` integer: Maximum number of flags to return.
- `cursor` string: Pagination cursor to continue from.
- `search` string: Search flags by their slug or description. Case-insensitive.
- `tags` string[]: Filter flags by tag. Repeat the parameter for multiple tags (all must match).
- `createdBy` string: Filter flags by the id of the entity that created them (a user or team id).
- `maintainerIds` string[]: Filter flags by maintainer user id. Repeat the parameter for multiple maintainers (any may match).
- `includeMarketplaceFlags` boolean: Whether to include Marketplace experimentation items in the paginated response. Defaults to false.
- `teamId` string
- `slug` string

## Response `200`

- object
  - `pagination` object, required
    - `next` string, nullable, required
  - `data` union[], required
    - union
      - Flag
        - `createdAt` number, required
        - `createdBy` string, required
        - `description` string
        - `environments` object, required
        - `id` string, required
        - `kind` 'boolean' | 'json' | 'number' | 'string', required
        - `maintainerIds` string[]
        - `ownerId` string, required
        - `permanent` false | true
        - `projectId` string, required
        - `revision` number, required
        - `seed` number, required
        - `seenInProduction` false | true
        - `slug` string, required
        - `state` 'active' | 'archived', required
        - `tags` string[]
        - `typeName` 'flag', required
        - `updatedAt` number, required
        - `updatedBy` string
        - `variants` object[], required
          - `description` string
          - `id` string, required
          - `label` string
          - `value` union, required
            - string
            - number
            - object
            - unknown[]
              - …
            - false | true
        - `metadata` object
          - `creator` object
            - `id` string, required
            - `name` string, required
      - MarketplaceFlag
        - `category` 'experiment' | 'flag'
        - `createdAt` number
        - `description` string
        - `externalId` string, required
        - `id` string, required
        - `integrationConfigurationId` string, required
        - `name` string
        - `origin` string, required
        - `ownerId` string, required
        - `projectId` string, required
        - `resourceId` string, required
        - `slug` string, required
        - `state` 'active' | 'archived', required
        - `typeName` 'marketplaceFlag', required
        - `updatedAt` number

## Other responses

- `400`: One of the provided values in the request query is invalid.
- `401`: The request is not authorized.
- `402`: The account is missing a payment so payment method must be updated
- `403`: You do not have permission to access this resource.
- `404`
- `410`
- `503`

## Changes

- **2026-10-15** `8939e3983223`: 1 info
  - added the optional property `data/items/oneOf[#/components/schemas/Flag]/seenInProduction` to the response with the `200` status
- **2026-09-30** `099fbe1f521c`: 2 info
  - added the optional property `data/items/oneOf[#/components/schemas/Flag]/environments/additionalProperties/fallthrough/oneOf[subschema #3]/finalPromille` to the response with the `200` status
  - added the optional property `data/items/oneOf[#/components/schemas/Flag]/environments/additionalProperties/rules/items/outcome/oneOf[subschema #3]/finalPromille` to the response with the `200` status
- **2026-09-22** `0f7ea3d3b39b`: 1 info
  - added the non-success response with the status `503`
- **2026-09-15** `bc022fa59ffb`: 4 info
  - added the optional property `data/items/oneOf[#/components/schemas/Flag]/variants/items/description` to the response with the `200` status
  - added the optional property `data/items/oneOf[#/components/schemas/Flag]/variants/items/label` to the response with the `200` status
  - added the required property `data/items/oneOf[#/components/schemas/Flag]/variants/items/id` to the response with the `200` status
  - added the required property `data/items/oneOf[#/components/schemas/Flag]/variants/items/value` to the response with the `200` status
- …earlier changes not shown

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v2/projects/:projectIdOrName/feature-flags/flags/get.md)

---

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