---
title: "Get the active rolling release information for a project"
method: GET
path: "/v1/projects/{idOrName}/rolling-release"
tags: ["rolling-release"]
---

# Get the active rolling release information for a project

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

Return the Rolling Release for a project, regardless of whether the rollout is active, aborted, or completed. If the feature is enabled but no deployment has occurred yet, null will be returned.

## Path parameters

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

## Query parameters

- `state` 'ACTIVE' | 'COMPLETE' | 'ABORTED' — Filter by rolling release state
- `teamId` string
- `slug` string

## Response `200`

- object — The response format for rolling release endpoints that return rolling release information
  - `rollingRelease` object, nullable, required — Rolling release information including configuration and document details, or null if no rolling release exists
    - `state` 'ABORTED' | 'ACTIVE' | 'COMPLETE', required — The current state of the rolling release
    - `substate` 'PAUSED' | 'null', nullable, required — When set to `PAUSED`, the rollout is frozen at the current percentage until continued.
    - `currentDeployment` object, nullable, required — The current deployment receiving production traffic
      - `name` string, required — The name of the project associated with the deployment at the time that the deployment was created
      - `createdAt` number, required — A number containing the date when the deployment was created in milliseconds
      - `readyState` 'BLOCKED' | 'BUILDING' | 'CANCELED' | 'ERROR' | 'INITIALIZING' | 'QUEUED' | 'READY', required — The state of the deployment depending on the process of deploying, or if it is ready or in an error state
      - `id` string, required — A string holding the unique ID of the deployment
      - `target` 'production' | 'staging' | 'null', nullable — If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment.
      - `readyStateAt` number
      - `source` 'api-trigger-git-deploy' | 'cli' | 'clone/repo' | 'drop' | 'git' | 'git-deploy-hook' | 'import' | 'import/repo' | 'redeploy' | 'v0-web' — Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it.
      - `url` string, required — A string with the unique URL of the deployment
    - `canaryDeployment` object, nullable, required — The canary deployment being rolled out
      - `name` string, required — The name of the project associated with the deployment at the time that the deployment was created
      - `createdAt` number, required — A number containing the date when the deployment was created in milliseconds
      - `readyState` 'BLOCKED' | 'BUILDING' | 'CANCELED' | 'ERROR' | 'INITIALIZING' | 'QUEUED' | 'READY', required — The state of the deployment depending on the process of deploying, or if it is ready or in an error state
      - `id` string, required — A string holding the unique ID of the deployment
      - `target` 'production' | 'staging' | 'null', nullable — If defined, either `staging` if a staging alias in the format `<project>.<team>.now.sh` was assigned upon creation, or `production` if the aliases from `alias` were assigned. `null` value indicates the "preview" deployment.
      - `readyStateAt` number
      - `source` 'api-trigger-git-deploy' | 'cli' | 'clone/repo' | 'drop' | 'git' | 'git-deploy-hook' | 'import' | 'import/repo' | 'redeploy' | 'v0-web' — Where was the deployment created from. Best-effort guess for metrics only — not authoritative; do not gate behavior on it.
      - `url` string, required — A string with the unique URL of the deployment
    - `queuedDeploymentId` string, nullable, required — The ID of a deployment queued for the next rolling release
    - `advancementType` 'automatic' | 'manual-approval', required — The advancement type of the rolling release
    - `stages` object[], required — All stages configured for this rolling release
      - `index` number, required — The zero-based index of the stage
      - `isFinalStage` false | true, required — Whether or not this stage is the final stage (targetPercentage === 100)
      - `targetPercentage` number, required — The percentage of traffic to serve to the canary deployment (0-100)
      - `requireApproval` false | true, required — Whether or not this stage requires manual approval to proceed
      - `duration` number, nullable, required — Duration in seconds for automatic advancement, null for manual stages or the final stage
      - `linearShift` false | true — Whether to linearly shift traffic over the duration of this stage
    - `activeStage` object, nullable, required — The currently active stage, null if the rollout is aborted
      - `index` number, required — The zero-based index of the stage
      - `isFinalStage` false | true, required — Whether or not this stage is the final stage (targetPercentage === 100)
      - `targetPercentage` number, required — The percentage of traffic to serve to the canary deployment (0-100)
      - `requireApproval` false | true, required — Whether or not this stage requires manual approval to proceed
      - `duration` number, nullable, required — Duration in seconds for automatic advancement, null for manual stages or the final stage
      - `linearShift` false | true — Whether to linearly shift traffic over the duration of this stage
    - `nextStage` object, nullable, required — The next stage to be activated, null if not in ACTIVE state
      - `index` number, required — The zero-based index of the stage
      - `isFinalStage` false | true, required — Whether or not this stage is the final stage (targetPercentage === 100)
      - `targetPercentage` number, required — The percentage of traffic to serve to the canary deployment (0-100)
      - `requireApproval` false | true, required — Whether or not this stage requires manual approval to proceed
      - `duration` number, nullable, required — Duration in seconds for automatic advancement, null for manual stages or the final stage
      - `linearShift` false | true — Whether to linearly shift traffic over the duration of this stage
    - `startedAt` number, required — Unix timestamp in milliseconds when the rolling release started
    - `updatedAt` number, required — Unix timestamp in milliseconds when the rolling release was last updated
    - `currentCanaryPercentage` number — When set (for example while {@link substate} is `PAUSED`), the canary traffic percentage persisted on the rollout document — use for dashboard display when linear shift is active.

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