Skip to content
Docs

Access tokens

Vercel access tokens authenticate requests to the Vercel REST API and the Vercel CLI on your behalf. You create and manage them on the Account Tokens page, under the Settings area of your account, and you can also create them without the dashboard using the REST API or the CLI.

A token's value appears only once, at creation, so copy it then and store it somewhere secure because you cannot retrieve it again afterward. Every token carries a scope that determines which resources it can reach. This page explains the three scoping levels and walks through creating a project-scoped token, which limits a token to a single project.

When you create a token, you choose how far its access reaches. Vercel supports three levels:

ScopeAccess
Full AccountActs on your personal account and every team you belong to. The Scope dropdown labels this option "Full Account".
TeamLimited to a single team. The token can read and write that team's resources across all of its projects.
ProjectLimited to a single project within a team. The token can only read and write resources belonging to that one project.

A project-scoped token denies any request to another project, to a user-level resource, or to a team-level resource. This keeps jobs, tools, and workflows constrained to the projects they need rather than granting them the entire team or your full account.

Some teams require you to enable two-factor authentication or SAML before you can create tokens scoped to them. If a team enforces this, the dashboard tells you so when you select it.

Create a Vercel API access token from your personal account's Account Tokens page:

  1. Enter a descriptive token name.
  2. Open Scope and choose the resources the token needs. Select Full Account for personal account access, or select a team to limit access to that team. If the team opens a project list, select All Projects for team access or an individual project for project access.
  3. Choose an expiration and select Create.
  4. Copy the token and store it securely. Vercel shows the value only once.

Choose the narrowest scope that supports your task. For a walkthrough of project access, see Project-scoped access token.

This section covers creating a project-scoped access token from the dashboard.

  • A Vercel account.
  • Membership in the team that owns the project you want to scope the token to.
  • Two-factor authentication enabled on your account, if the target team requires it.
  1. In the scope selector at the top left of the dashboard's navigation bar, make sure you are viewing your personal account rather than a team. Then go to the Account Tokens page, also found under the Settings area of your account.

  2. Enter a descriptive name for the token so you can identify it later.

  3. Open the Scope dropdown and select the team that owns the project. Clicking the team drills into its list of projects.

  4. Select the project you want the token to be limited to.

    Selecting All Projects instead of an individual project creates a team-scoped token rather than a project-scoped one.

  5. Choose an expiration and select Create.

  6. Copy the token now. Personal access tokens begin with the prefix vcp_, and the value will not be shown again.

Pass the token as a Bearer token in the Authorization header of your request.

terminal
curl "https://api.vercel.com/v9/projects" \
  -H "Authorization: Bearer vcp_xxxxxxxxxxxxxxxxxxxxxxxx"

Listing projects with a scoped access token

Team- and project-scoped tokens do not require the teamId query parameter or the team slug on API requests. Vercel infers the team and project from the token's scope, so you can omit those parameters. Full-account tokens still need ?teamId= when targeting a specific team's resources.

To list deployments, send a request to GET /v7/deployments. Store your token in the VERCEL_ACCESS_TOKEN environment variable, then run:

terminal
curl "https://api.vercel.com/v7/deployments" \
  -H "Authorization: Bearer $VERCEL_ACCESS_TOKEN"

The response contains a deployments array and pagination information. A full-account token targets your personal account by default. A team- or project-scoped token targets the resources in its scope.

For a full-account token targeting a team, set VERCEL_TEAM_ID to the team's ID from team settings, then include teamId in the request:

terminal
curl "https://api.vercel.com/v7/deployments?teamId=$VERCEL_TEAM_ID" \
  -H "Authorization: Bearer $VERCEL_ACCESS_TOKEN"

You can also make the request from server-side JavaScript:

list-deployments.mjs
const url = new URL('https://api.vercel.com/v7/deployments');
if (process.env.VERCEL_TEAM_ID) {
  url.searchParams.set('teamId', process.env.VERCEL_TEAM_ID);
}
 
const response = await fetch(url, {
  headers: {
    Authorization: `Bearer ${process.env.VERCEL_ACCESS_TOKEN}`,
  },
});
 
if (!response.ok) {
  throw new Error(`Vercel API request failed: ${response.status}`);
}
 
const { deployments } = await response.json();
console.log(deployments);

This prints the deployments accessible to the token and selected team. Keep the token in server-side environment variables rather than client-side code.

You can create tokens without the dashboard through two paths.

  • REST API, where the create an auth token endpoint accepts an optional projectId in the request body to scope the token to a project.
  • Vercel CLI, where vercel tokens manages tokens from the command line. Use vercel tokens add --project <PROJECT_ID> to create a project-scoped token.

Creating tokens through the CLI or API requires a full-account token. A project-scoped token cannot mint new tokens.

Last updated August 3, 2026

Was this helpful?

supported.