---
title: "Get rolling release configuration"
method: GET
path: "/v1/projects/{idOrName}/rolling-release/config"
tags: ["rolling-release"]
---

# Get rolling release configuration

`GET /v1/projects/{idOrName}/rolling-release/config`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v1/projects/{idOrName}/rolling-release/config`
- Auth: HTTP bearer

Get the Rolling Releases configuration for a project. The project-level config is simply a template that will be used for any future rolling release, and not the configuration for any active rolling release.

## Path parameters

- `idOrName` string, required: Project ID or project name (URL-encoded)

## Query parameters

- `teamId` string
- `slug` string

## Response `200`

- object
  - `rollingRelease` object, nullable, required: Project-level rolling release configuration that defines how deployments should be gradually rolled out
    - `canaryResponseHeader` false | true: Whether the request served by a canary deployment should return a header indicating a canary was served. Defaults to `false` when omitted.
    - `gate` object: Automated gating configuration. Omitted (the default) means no gating is configured, which is equivalent to `enabled: false`.
      - `action` 'pause' | 'rollback', required: What to do when the gate trips: pause the rollout, or roll it back.
      - `checks` object[], required: The checks to evaluate. An empty array means nothing is evaluated.
        - `excludePaths` string[]: Request paths to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Matched exactly against the request path with any query string removed; no prefix or glob matching. Defaults to `[]` when omitted.
        - `excludeStatusCodes` number[]: Response status codes to ignore entirely — dropped from both the numerator (errors) and the denominator (total requests). Defaults to `[]` when omitted.
        - `ingestWatermarkSeconds` number: Seconds of ingest lag to allow for: the query's upper bound is `now() - this value`, so the check never reads a window that is still filling. Defaults to `30` when omitted.
        - `significanceLevel` number: A run fails only when the canary's error rate is higher and its one-sided Fisher p-value is below this significance level. Defaults to `0.05`; lower values require stronger evidence.
        - `type` 'error-rate-5xx', required: The metric this check evaluates.
      - `dryRun` false | true, required: When true, a tripped gate is only reported — {@link action} is not taken.
      - `enabled` false | true, required: Whether automated gating is enabled for this project's rollouts.
      - `failureThreshold` number: How many failing evaluations within {@link windowSize} trip the gate. Defaults to `3` when omitted.
      - `windowSize` number: How many of the most recent evaluations {@link failureThreshold} is counted against. Defaults to `5` when omitted.
    - `stages` object[], nullable: An array of all the stages required during a deployment release. Each stage defines a target percentage and advancement rules. The final stage must always have targetPercentage: 100.
      - `duration` number: Duration in minutes for automatic advancement to the next stage
      - `linearShift` false | true: Whether to linearly shift traffic over the duration of this stage
      - `requireApproval` false | true: Whether or not this stage requires manual approval to proceed
      - `targetPercentage` number, required: The percentage of traffic to serve to the canary deployment (0-100)
    - `target` string, required: The environment that the release targets, currently only supports production. Adding in case we want to configure with alias groups or custom environments.

## Other responses

- `400`: One of the provided values in the request query is invalid.
- `401`: The request is not authorized.
- `403`: You do not have permission to access this resource.
- `404`
- `410`

## Changes

- **2026-10-07** `24be175f4966`: 1 warning, 1 info
  - removed the optional property `rollingRelease/gate/checks/items/minSampleSize` from the response with the `200` status
  - added the optional property `rollingRelease/gate/checks/items/significanceLevel` to the response with the `200` status
- **2026-08-07** `b4d86a3e3479`: 1 info
  - added the optional property `rollingRelease/gate` to the response with the `200` status
- **2026-07-21** `2ae10ee9d21c`: 1 info
  - added the non-success response with the status `410`
- **2026-01-22** `c12186034433`: 6 warning
  - added the new `false` enum value to the `rollingRelease/canaryResponseHeader` response property for the response status `200`
  - added the new `false` enum value to the `rollingRelease/stages/items/linearShift` response property for the response status `200`
  - added the new `false` enum value to the `rollingRelease/stages/items/requireApproval` response property for the response status `200`
  - added the new `true` enum value to the `rollingRelease/canaryResponseHeader` response property for the response status `200`
  - …2 more
- **2025-10-09** `50caddad4ae7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v1/projects/:idOrName/rolling-release/config/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)
