---
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`

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
    - `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.
    - `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.
      - `targetPercentage` number, required — The percentage of traffic to serve to the canary deployment (0-100)
      - `requireApproval` false | true — Whether or not this stage requires manual approval to proceed
      - `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
    - `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`.
      - `enabled` false | true, required — Whether automated gating is enabled for this project's rollouts.
      - `checks` object[], required — The checks to evaluate. An empty array means nothing is evaluated.
        - `type` 'error-rate-5xx', required — The metric this check evaluates.
        - `minSampleSize` number — Minimum number of requests required in the window before the check can fail. Below this, the check is inconclusive rather than failing, so low-traffic stages don't gate on noise. Defaults to `100` 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.
        - `excludePaths` string[] — Request paths 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.
      - `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.
      - `action` 'pause' | 'rollback', required — What to do when the gate trips: pause the rollout, or roll it back.
      - `dryRun` false | true, required — When true, a tripped gate is only reported — {@link action} is not taken.

## 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`

---

[API](https://skmtc.net/vercel/apis/api.md) · [All operations](https://skmtc.net/vercel/apis/api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vercel/api/versions/61d1ba3f6dac/schema)
