Pipory
Node reference

Vercel

Vercel node reference - all 262 operations, the credential it needs, and a worked example.

Vercel REST API (Deploy & infra). 262 operations: deployments (create, cancel, delete, events, files, promote, rollback, runtime logs); aliases; projects, members and settings; project, shared and custom environment variables; project domains, account domains and DNS records; Edge Config and edge cache invalidation; deployment and project checks; certificates; webhooks; log drains; teams and members; account events and access tokens; web analytics; firewall and Attack Challenge mode; feature flags; rolling releases; project routes and bulk redirects; access groups; integrations and Git namespaces; remote-cache artifacts; container registry; microfrontends; Secure Compute networks; observability; the domain registrar; and Blob stores.

Credential: Vercel personal access token - see Credentials.

Access requirements

Each operation below lists the access requirement it needs. Access requirements are not ticked anywhere - Vercel publishes NO per-operation scopes. There is no OAuth authorization-code flow for normal API use, no scope checkboxes when a token is created, and - checked against Vercel's own machine-readable OpenAPI document, where exactly ONE of the 262 operations below mentions a role at all - no published per-endpoint role or plan mapping either. A token inherits whatever the user or team that owns it can already do. So the column below states what IS verifiable rather than inventing scope names: whether the operation reads or writes (Vercel's read-only roles, Viewer and Billing, can do the reads and none of the writes), the exact verb and path the node sends so the claim can be re-checked in one step, and - the field people actually get wrong - how the operation is scoped to a team. That last one is the expensive mistake. 229 of these 262 operations take an optional ?teamId= (or ?slug=) and, without it, resolve against whatever the token's own scope is: a personal token asked for a team's projects returns an EMPTY LIST, not an error, and nothing in the response says you asked the wrong account. Set the node's Team ID or Team Slug for anything a team owns. Twelve operations - the Teams group and the two team-wide feature-flag reads - name the team in the PATH instead, so a Team ID is required there and the node refuses without one; twenty-one more (GET /v2/user, the token reads, the unversioned /domains/records/{id}, /storage/stores/*, the insights toggles, the observability queries and three firewall config routes) take no team scope at all. Read the failures accordingly: a 403 carrying invalidToken is a bad, expired or revoked token (Vercel tokens can be created with an expiry, so "it worked last month" is a common shape of this), while a 403 on a resource you can see in the dashboard is almost always team scope. A 404 on a project you own is usually that same scope problem wearing a different hat. A 429 is not a permission at all - Vercel has no single global rate limit, only hundreds of per-action ones, and the X-RateLimit-Reset header says when the one you hit frees up. If a run fails with a permission error, the node names the missing access requirement in the error - grant it and re-run; you do not need to rebuild the workflow.

Operations (262)

Deployments

OperationWhat it doesAccess requirement
listDeploymentsList deployments(a read — GET /v7/deployments, team-scoped with ?teamId / ?slug)
getDeploymentGet deployment(a read — GET /v13/deployments/{idOrUrl}, team-scoped with ?teamId / ?slug)
createDeploymentCreate deployment(a write — POST /v13/deployments, team-scoped with ?teamId / ?slug)
cancelDeploymentCancel deployment(a write — PATCH /v12/deployments/{id}/cancel, team-scoped with ?teamId / ?slug)
deleteDeploymentDelete deployment(a destructive write — DELETE /v13/deployments/{id}, team-scoped with ?teamId / ?slug)
getDeploymentEventsGet deployment events (build logs)(a read — GET /v3/deployments/{idOrUrl}/events, team-scoped with ?teamId / ?slug)
listDeploymentFilesList deployment files(a read — GET /v6/deployments/{id}/files, team-scoped with ?teamId / ?slug)
getDeploymentFileGet deployment file contents(a read — GET /v8/deployments/{id}/files/{fileId}, team-scoped with ?teamId / ?slug)
promoteDeploymentPromote deployment to production(a write — POST /v10/projects/{projectId}/promote/{deploymentId}, team-scoped with ?teamId / ?slug)
listPromoteAliasesList promote alias status(a read — GET /v1/projects/{projectId}/promote/aliases, team-scoped with ?teamId / ?slug)
rollbackDeploymentRoll back production to a deployment(a write — POST /v1/projects/{projectId}/rollback/{deploymentId}, team-scoped with ?teamId / ?slug)
getRuntimeLogsGet deployment runtime logs(a read — GET /v1/projects/{projectId}/deployments/{deploymentId}/runtime-logs, team-scoped with ?teamId / ?slug)

Aliases

OperationWhat it doesAccess requirement
listAliasesList aliases(a read — GET /v4/aliases, team-scoped with ?teamId / ?slug)
getAliasGet alias(a read — GET /v4/aliases/{idOrAlias}, team-scoped with ?teamId / ?slug)
listDeploymentAliasesList aliases of a deployment(a read — GET /v2/deployments/{id}/aliases, team-scoped with ?teamId / ?slug)
assignAliasAssign alias to a deployment(a write — POST /v2/deployments/{id}/aliases, team-scoped with ?teamId / ?slug)
deleteAliasDelete alias(a destructive write — DELETE /v2/aliases/{aliasId}, team-scoped with ?teamId / ?slug)
updateAliasProtectionBypassUpdate protection bypass for a URL(a write — PATCH /aliases/{id}/protection-bypass, team-scoped with ?teamId / ?slug)

Projects

OperationWhat it doesAccess requirement
listProjectsList projects(a read — GET /v10/projects, team-scoped with ?teamId / ?slug)
getProjectGet project(a read — GET /v9/projects/{idOrName}, team-scoped with ?teamId / ?slug)
createProjectCreate project(a write — POST /v11/projects, team-scoped with ?teamId / ?slug)
updateProjectUpdate project settings(a write — PATCH /v9/projects/{idOrName}, team-scoped with ?teamId / ?slug)
deleteProjectDelete project(a destructive write — DELETE /v9/projects/{idOrName}, team-scoped with ?teamId / ?slug)
pauseProjectPause project(a write — POST /v1/projects/{projectId}/pause, team-scoped with ?teamId / ?slug)
unpauseProjectUnpause project(a write — POST /v1/projects/{projectId}/unpause, team-scoped with ?teamId / ?slug)
updateProjectProtectionBypassUpdate automation bypass secret(a write — PATCH /v1/projects/{idOrName}/protection-bypass, team-scoped with ?teamId / ?slug)
listProjectMembersList project members(a read — GET /v1/projects/{idOrName}/members, team-scoped with ?teamId / ?slug)
addProjectMemberAdd project member(a write — POST /v1/projects/{idOrName}/members, team-scoped with ?teamId / ?slug)
removeProjectMemberRemove project member(a destructive write — DELETE /v1/projects/{idOrName}/members/{uid}, team-scoped with ?teamId / ?slug)

Project environment variables

OperationWhat it doesAccess requirement
listProjectEnvsList project environment variables(a read — GET /v10/projects/{idOrName}/env, team-scoped with ?teamId / ?slug)
getProjectEnvGet environment variable (decrypted)(a read — GET /v1/projects/{idOrName}/env/{id}, team-scoped with ?teamId / ?slug)
createProjectEnvCreate environment variable(s)(a write — POST /v10/projects/{idOrName}/env, team-scoped with ?teamId / ?slug)
updateProjectEnvUpdate environment variable(a write — PATCH /v9/projects/{idOrName}/env/{id}, team-scoped with ?teamId / ?slug)
deleteProjectEnvDelete environment variable(a destructive write — DELETE /v9/projects/{idOrName}/env/{id}, team-scoped with ?teamId / ?slug)
batchDeleteProjectEnvsDelete several environment variables(a destructive write — DELETE /v1/projects/{idOrName}/env, team-scoped with ?teamId / ?slug)

Shared & custom environments

OperationWhat it doesAccess requirement
listSharedEnvsList shared environment variables(a read — GET /v1/env, team-scoped with ?teamId / ?slug)
getSharedEnvGet shared environment variable (decrypted)(a read — GET /v1/env/{id}, team-scoped with ?teamId / ?slug)
createSharedEnvsCreate shared environment variable(s)(a write — POST /v1/env, team-scoped with ?teamId / ?slug)
updateSharedEnvsUpdate shared environment variable(s)(a write — PATCH /v1/env, team-scoped with ?teamId / ?slug)
deleteSharedEnvsDelete shared environment variable(s)(a destructive write — DELETE /v1/env, team-scoped with ?teamId / ?slug)
unlinkSharedEnvUnlink shared variable from a project(a write — PATCH /v1/env/{id}/unlink/{projectId}, team-scoped with ?teamId / ?slug)
listCustomEnvironmentsList custom environments(a read — GET /v9/projects/{idOrName}/custom-environments, team-scoped with ?teamId / ?slug)
createCustomEnvironmentCreate custom environment(a write — POST /v9/projects/{idOrName}/custom-environments, team-scoped with ?teamId / ?slug)
getCustomEnvironmentGet custom environment(a read — GET /v9/projects/{idOrName}/custom-environments/{environmentSlugOrId}, team-scoped with ?teamId / ?slug)
updateCustomEnvironmentUpdate custom environment(a write — PATCH /v9/projects/{idOrName}/custom-environments/{environmentSlugOrId}, team-scoped with ?teamId / ?slug)
deleteCustomEnvironmentDelete custom environment(a destructive write — DELETE /v9/projects/{idOrName}/custom-environments/{environmentSlugOrId}, team-scoped with ?teamId / ?slug)

Project domains

OperationWhat it doesAccess requirement
listProjectDomainsList project domains(a read — GET /v9/projects/{idOrName}/domains, team-scoped with ?teamId / ?slug)
getProjectDomainGet project domain(a read — GET /v9/projects/{idOrName}/domains/{domain}, team-scoped with ?teamId / ?slug)
addProjectDomainAdd domain to project(a write — POST /v10/projects/{idOrName}/domains, team-scoped with ?teamId / ?slug)
updateProjectDomainUpdate project domain(a write — PATCH /v9/projects/{idOrName}/domains/{domain}, team-scoped with ?teamId / ?slug)
removeProjectDomainRemove domain from project(a destructive write — DELETE /v9/projects/{idOrName}/domains/{domain}, team-scoped with ?teamId / ?slug)
verifyProjectDomainVerify project domain(a write — POST /v9/projects/{idOrName}/domains/{domain}/verify, team-scoped with ?teamId / ?slug)
moveProjectDomainMove project domain(a write — POST /v1/projects/{idOrName}/domains/{domain}/move, team-scoped with ?teamId / ?slug)

Domains

OperationWhat it doesAccess requirement
listDomainsList domains(a read — GET /v5/domains, team-scoped with ?teamId / ?slug)
getDomainGet domain(a read — GET /v5/domains/{domain}, team-scoped with ?teamId / ?slug)
addDomainAdd / transfer-in a domain(a write — POST /v7/domains, team-scoped with ?teamId / ?slug)
updateDomainUpdate or move apex domain(a write — PATCH /v3/domains/{domain}, team-scoped with ?teamId / ?slug)
deleteDomainRemove domain(a destructive write — DELETE /v6/domains/{domain}, team-scoped with ?teamId / ?slug)
getDomainConfigGet domain configuration(a read — GET /v6/domains/{domain}/config, team-scoped with ?teamId / ?slug)
getDomainVerificationGet domain verification record(a read — GET /v9/domains/{domain}/verification, team-scoped with ?teamId / ?slug)
claimDomainClaim domain ownership(a write — POST /v9/domains/{domain}/claim, team-scoped with ?teamId / ?slug)
listDomainProjectDomainsList project domains by apex domain(a read — GET /v1/domains/{domain}/project-domains, team-scoped with ?teamId / ?slug)

DNS records

OperationWhat it doesAccess requirement
listDnsRecordsList DNS records(a read — GET /v5/domains/{domain}/records, team-scoped with ?teamId / ?slug)
getDnsRecordGet DNS record(a read — GET /domains/records/{recordId}, account-global, so the token's own scope decides)
createDnsRecordCreate DNS record(a write — POST /v2/domains/{domain}/records, team-scoped with ?teamId / ?slug)
updateDnsRecordUpdate DNS record(a write — PATCH /v1/domains/records/{recordId}, team-scoped with ?teamId / ?slug)
deleteDnsRecordDelete DNS record(a destructive write — DELETE /v2/domains/{domain}/records/{recordId}, team-scoped with ?teamId / ?slug)
replaceDnsRecordsReplace all DNS records for a domain(a write — PUT /domains/{domain}/records, account-global, so the token's own scope decides)

Edge Config

OperationWhat it doesAccess requirement
listEdgeConfigsList Edge Configs(a read — GET /v1/global-config, team-scoped with ?teamId / ?slug)
createEdgeConfigCreate Edge Config(a write — POST /v1/global-config, team-scoped with ?teamId / ?slug)
getEdgeConfigGet Edge Config(a read — GET /v1/global-config/{edgeConfigId}, team-scoped with ?teamId / ?slug)
updateEdgeConfigUpdate Edge Config(a write — PUT /v1/global-config/{edgeConfigId}, team-scoped with ?teamId / ?slug)
deleteEdgeConfigDelete Edge Config(a destructive write — DELETE /v1/global-config/{edgeConfigId}, team-scoped with ?teamId / ?slug)
listEdgeConfigItemsList Edge Config items(a read — GET /v1/global-config/{edgeConfigId}/items, team-scoped with ?teamId / ?slug)
getEdgeConfigItemGet one Edge Config item(a read — GET /v1/global-config/{edgeConfigId}/item/{edgeConfigItemKey}, team-scoped with ?teamId / ?slug)
updateEdgeConfigItemsUpsert / delete items in batch(a write — PATCH /v1/global-config/{edgeConfigId}/items, team-scoped with ?teamId / ?slug)
getEdgeConfigSchemaGet Edge Config schema(a read — GET /v1/global-config/{edgeConfigId}/schema, team-scoped with ?teamId / ?slug)
updateEdgeConfigSchemaUpdate Edge Config schema(a write — POST /v1/global-config/{edgeConfigId}/schema, team-scoped with ?teamId / ?slug)
deleteEdgeConfigSchemaDelete Edge Config schema(a destructive write — DELETE /v1/global-config/{edgeConfigId}/schema, team-scoped with ?teamId / ?slug)
listEdgeConfigTokensList Edge Config read tokens(a read — GET /v1/global-config/{edgeConfigId}/tokens, team-scoped with ?teamId / ?slug)
createEdgeConfigTokenCreate Edge Config read token(a write — POST /v1/global-config/{edgeConfigId}/token, team-scoped with ?teamId / ?slug)
getEdgeConfigTokenGet Edge Config read token(a read — GET /v1/global-config/{edgeConfigId}/token/{token}, team-scoped with ?teamId / ?slug)
deleteEdgeConfigTokensDelete Edge Config read tokens(a destructive write — DELETE /v1/global-config/{edgeConfigId}/tokens, team-scoped with ?teamId / ?slug)
listEdgeConfigBackupsList Edge Config backups(a read — GET /v1/global-config/{edgeConfigId}/backups, team-scoped with ?teamId / ?slug)
getEdgeConfigBackupGet Edge Config backup(a read — GET /v1/global-config/{edgeConfigId}/backups/{edgeConfigBackupVersionId}, team-scoped with ?teamId / ?slug)
restoreEdgeConfigBackupRestore Edge Config backup(a write — POST /v1/global-config/{edgeConfigId}/backups/{edgeConfigBackupVersionId}/restore, team-scoped with ?teamId / ?slug)

Edge cache

OperationWhat it doesAccess requirement
invalidateCacheByTagsInvalidate cached responses by tag(a write — POST /v1/edge-cache/invalidate-by-tags, team-scoped with ?teamId / ?slug)
invalidateCacheBySrcImagesInvalidate optimized images by source(a write — POST /v1/edge-cache/invalidate-by-src-images, team-scoped with ?teamId / ?slug)

Deployment checks

OperationWhat it doesAccess requirement
listDeploymentChecksList checks on a deployment(a read — GET /v1/deployments/{deploymentId}/checks, team-scoped with ?teamId / ?slug)
createDeploymentCheckCreate check on a deployment(a write — POST /v1/deployments/{deploymentId}/checks, team-scoped with ?teamId / ?slug)
getDeploymentCheckGet check(a read — GET /v1/deployments/{deploymentId}/checks/{checkId}, team-scoped with ?teamId / ?slug)
updateDeploymentCheckUpdate check(a write — PATCH /v1/deployments/{deploymentId}/checks/{checkId}, team-scoped with ?teamId / ?slug)
rerequestDeploymentCheckRe-request check(a write — POST /v1/deployments/{deploymentId}/checks/{checkId}/rerequest, team-scoped with ?teamId / ?slug)

Project checks & check runs

OperationWhat it doesAccess requirement
listProjectChecksList project checks(a read — GET /v2/projects/{projectIdOrName}/checks, team-scoped with ?teamId / ?slug)
createProjectCheckCreate project check(a write — POST /v2/projects/{projectIdOrName}/checks, team-scoped with ?teamId / ?slug)
getProjectCheckGet project check(a read — GET /v2/projects/{projectIdOrName}/checks/{checkId}, team-scoped with ?teamId / ?slug)
updateProjectCheckUpdate project check(a write — PATCH /v2/projects/{projectIdOrName}/checks/{checkId}, team-scoped with ?teamId / ?slug)
deleteProjectCheckDelete project check(a destructive write — DELETE /v2/projects/{projectIdOrName}/checks/{checkId}, team-scoped with ?teamId / ?slug)
listProjectCheckRunsList runs of a project check(a read — GET /v2/projects/{projectIdOrName}/checks/{checkId}/runs, team-scoped with ?teamId / ?slug)
listDeploymentCheckRunsList check runs on a deployment(a read — GET /v2/deployments/{deploymentId}/check-runs, team-scoped with ?teamId / ?slug)
createDeploymentCheckRunCreate check run(a write — POST /v2/deployments/{deploymentId}/check-runs, team-scoped with ?teamId / ?slug)
getDeploymentCheckRunGet check run(a read — GET /v2/deployments/{deploymentId}/check-runs/{checkRunId}, team-scoped with ?teamId / ?slug)
updateDeploymentCheckRunUpdate check run(a write — PATCH /v2/deployments/{deploymentId}/check-runs/{checkRunId}, team-scoped with ?teamId / ?slug)

Certificates

OperationWhat it doesAccess requirement
listCertsList certificates(a read — GET /v8/certs, team-scoped with ?teamId / ?slug)
getCertGet certificate(a read — GET /v8/certs/{id}, team-scoped with ?teamId / ?slug)
issueCertIssue certificate(a write — POST /v8/certs, team-scoped with ?teamId / ?slug)
uploadCertUpload certificate(a write — PUT /v8/certs, team-scoped with ?teamId / ?slug)
removeCertRemove certificate(a destructive write — DELETE /v8/certs/{id}, team-scoped with ?teamId / ?slug)

Webhooks

OperationWhat it doesAccess requirement
listWebhooksList webhooks(a read — GET /v1/webhooks, team-scoped with ?teamId / ?slug)
createWebhookCreate webhook(a write — POST /v1/webhooks, team-scoped with ?teamId / ?slug)
getWebhookGet webhook(a read — GET /v1/webhooks/{id}, team-scoped with ?teamId / ?slug)
deleteWebhookDelete webhook(a destructive write — DELETE /v1/webhooks/{id}, team-scoped with ?teamId / ?slug)

Log drains

OperationWhat it doesAccess requirement
listDrainsList drains(a read — GET /v1/drains, team-scoped with ?teamId / ?slug)
createDrainCreate drain(a write — POST /v1/drains, team-scoped with ?teamId / ?slug)
getDrainGet drain(a read — GET /v1/drains/{id}, team-scoped with ?teamId / ?slug)
updateDrainUpdate drain(a write — PATCH /v1/drains/{id}, team-scoped with ?teamId / ?slug)
deleteDrainDelete drain(a destructive write — DELETE /v1/drains/{id}, team-scoped with ?teamId / ?slug)
testDrainValidate drain delivery configuration(a read — POST /v1/drains/test, team-scoped with ?teamId / ?slug)

Teams & members

OperationWhat it doesAccess requirement
listTeamsList teams(a read — GET /v2/teams, account-global, so the token's own scope decides)
getTeamGet team(a read — GET /v2/teams/{teamId}, the team is named in the path so a Team ID is required)
createTeamCreate team(a write — POST /v1/teams, account-global, so the token's own scope decides)
updateTeamUpdate team(a write — PATCH /v2/teams/{teamId}, the team is named in the path so a Team ID is required)
listTeamMembersList team members(a read — GET /v3/teams/{teamId}/members, the team is named in the path so a Team ID is required)
inviteTeamMemberInvite user to team(a write — POST /v2/teams/{teamId}/members, the team is named in the path so a Team ID is required)
updateTeamMemberUpdate team member(a write — PATCH /v1/teams/{teamId}/members/{uid}, the team is named in the path so a Team ID is required)
removeTeamMemberRemove team member(a destructive write — DELETE /v1/teams/{teamId}/members/{uid}, the team is named in the path so a Team ID is required)
deleteTeamInviteDelete team invite code(a destructive write — DELETE /v1/teams/{teamId}/invites/{inviteId}, the team is named in the path so a Team ID is required)
requestTeamAccessRequest access to a team(a write — POST /v1/teams/{teamId}/request, the team is named in the path so a Team ID is required)
getTeamAccessRequestGet team access request status(a read — GET /v1/teams/{teamId}/request/{userId}, the team is named in the path so a Team ID is required)
joinTeamJoin a team(a write — POST /v1/teams/{teamId}/members/teams/join, the team is named in the path so a Team ID is required)

User, events & tokens

OperationWhat it doesAccess requirement
getUserGet authenticated user(a read — GET /v2/user, account-global, so the token's own scope decides)
listUserEventsList account / team events(a read — GET /v3/events, team-scoped with ?teamId / ?slug)
listEventTypesList event types(a read — GET /v1/events/types, team-scoped with ?teamId / ?slug)
listAuthTokensList access tokens(a read — GET /v6/user/tokens, account-global, so the token's own scope decides)
getAuthTokenGet access token metadata(a read — GET /v5/user/tokens/{tokenId}, account-global, so the token's own scope decides)
createAuthTokenCreate access token(a write — POST /v3/user/tokens, team-scoped with ?teamId / ?slug)
deleteAuthTokenDelete access token(a destructive write — DELETE /v3/user/tokens/{tokenId}, account-global, so the token's own scope decides)

Web analytics

OperationWhat it doesAccess requirement
aggregatePageviewsAggregate page views(a read — GET /v1/query/web-analytics/visits/aggregate, team-scoped with ?teamId / ?slug)
countPageviewsCount page views(a read — GET /v1/query/web-analytics/visits/count, team-scoped with ?teamId / ?slug)
aggregateCustomEventsAggregate custom events(a read — GET /v1/query/web-analytics/events/aggregate, team-scoped with ?teamId / ?slug)
countCustomEventsCount custom events(a read — GET /v1/query/web-analytics/events/count, team-scoped with ?teamId / ?slug)

Security & firewall

OperationWhat it doesAccess requirement
updateAttackChallengeModeToggle Attack Challenge mode(a write — POST /v1/security/attack-mode, team-scoped with ?teamId / ?slug)
getActiveFirewallConfigGet active firewall configuration(a read — GET /v1/security/firewall/config, account-global, so the token's own scope decides)
getFirewallConfigVersionGet a firewall configuration version(a read — GET /v1/security/firewall/config/{configVersion}, team-scoped with ?teamId / ?slug)
updateFirewallConfigUpdate firewall configuration(a write — PATCH /v1/security/firewall/config, team-scoped with ?teamId / ?slug)
putFirewallConfigReplace firewall configuration(a write — PUT /v1/security/firewall/config, team-scoped with ?teamId / ?slug)
activateFirewallConfigActivate a firewall configuration version(a write — POST /v1/security/firewall/config/{configVersion}/activate, account-global, so the token's own scope decides)
deleteFirewallConfigVersionDelete a firewall configuration version(a destructive write — DELETE /v1/security/firewall/config/{configVersion}, account-global, so the token's own scope decides)
getFirewallAttackStatusRead active attack data(a read — GET /v1/security/firewall/attack-status, team-scoped with ?teamId / ?slug)
getFirewallEventsRead firewall actions by project(a read — GET /v1/security/firewall/events, account-global, so the token's own scope decides)
listFirewallBypassList system bypass rules(a read — GET /v1/security/firewall/bypass, team-scoped with ?teamId / ?slug)
addFirewallBypassCreate system bypass rule(a write — POST /v1/security/firewall/bypass, team-scoped with ?teamId / ?slug)
removeFirewallBypassRemove system bypass rule(a destructive write — DELETE /v1/security/firewall/bypass, team-scoped with ?teamId / ?slug)
generateFirewallRuleGenerate firewall rule from a description(a read — POST /v1/security/firewall/config/generate-rule, team-scoped with ?teamId / ?slug)

Feature flags

OperationWhat it doesAccess requirement
listFlagsList project flags(a read — GET /v2/projects/{projectIdOrName}/feature-flags/flags, team-scoped with ?teamId / ?slug)
createFlagCreate flag(a write — PUT /v1/projects/{projectIdOrName}/feature-flags/flags, team-scoped with ?teamId / ?slug)
getFlagGet flag(a read — GET /v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}, team-scoped with ?teamId / ?slug)
updateFlagUpdate flag(a write — PATCH /v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}, team-scoped with ?teamId / ?slug)
deleteFlagDelete flag(a destructive write — DELETE /v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}, team-scoped with ?teamId / ?slug)
listFlagVersionsList flag versions(a read — GET /v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}/versions, team-scoped with ?teamId / ?slug)
listFlagSegmentsList flag segments(a read — GET /v1/projects/{projectIdOrName}/feature-flags/segments, team-scoped with ?teamId / ?slug)
createFlagSegmentCreate flag segment(a write — PUT /v1/projects/{projectIdOrName}/feature-flags/segments, team-scoped with ?teamId / ?slug)
getFlagSegmentGet flag segment(a read — GET /v1/projects/{projectIdOrName}/feature-flags/segments/{segmentIdOrSlug}, team-scoped with ?teamId / ?slug)
updateFlagSegmentUpdate flag segment(a write — PATCH /v1/projects/{projectIdOrName}/feature-flags/segments/{segmentIdOrSlug}, team-scoped with ?teamId / ?slug)
deleteFlagSegmentDelete flag segment(a destructive write — DELETE /v1/projects/{projectIdOrName}/feature-flags/segments/{segmentIdOrSlug}, team-scoped with ?teamId / ?slug)
getFlagSettingsGet project flag settings(a read — GET /v1/projects/{projectIdOrName}/feature-flags/settings, team-scoped with ?teamId / ?slug)
updateFlagSettingsUpdate project flag settings(a write — PATCH /v1/projects/{projectIdOrName}/feature-flags/settings, team-scoped with ?teamId / ?slug)
listSdkKeysList flag SDK keys(a read — GET /v1/projects/{projectIdOrName}/feature-flags/sdk-keys, team-scoped with ?teamId / ?slug)
createSdkKeyCreate flag SDK key(a write — PUT /v1/projects/{projectIdOrName}/feature-flags/sdk-keys, team-scoped with ?teamId / ?slug)
deleteSdkKeyDelete flag SDK key(a destructive write — DELETE /v1/projects/{projectIdOrName}/feature-flags/sdk-keys/{hashKey}, team-scoped with ?teamId / ?slug)
listTeamFlagsList all flags for a team(a read — GET /v2/teams/{teamId}/feature-flags/flags, the team is named in the path so a Team ID is required)
listTeamFlagSettingsList team project flag settings(a read — GET /v1/teams/{teamId}/feature-flags/settings, the team is named in the path so a Team ID is required)
getDeploymentFeatureFlagsGet feature flags of a deployment(a read — GET /v1/deployments/{deploymentId}/feature-flags, team-scoped with ?teamId / ?slug)

Rolling releases

OperationWhat it doesAccess requirement
getRollingReleaseGet active rolling release(a read — GET /v1/projects/{idOrName}/rolling-release, team-scoped with ?teamId / ?slug)
getRollingReleaseConfigGet rolling release configuration(a read — GET /v1/projects/{idOrName}/rolling-release/config, team-scoped with ?teamId / ?slug)
updateRollingReleaseConfigUpdate rolling release configuration(a write — PATCH /v1/projects/{idOrName}/rolling-release/config, team-scoped with ?teamId / ?slug)
deleteRollingReleaseConfigDelete rolling release configuration(a destructive write — DELETE /v1/projects/{idOrName}/rolling-release/config, team-scoped with ?teamId / ?slug)
startRollingReleaseStart rolling release(a write — POST /v1/projects/{idOrName}/rolling-release/start, team-scoped with ?teamId / ?slug)
approveRollingReleaseStageApprove next rolling release stage(a write — POST /v1/projects/{idOrName}/rolling-release/approve-stage, team-scoped with ?teamId / ?slug)
completeRollingReleaseComplete rolling release(a write — POST /v1/projects/{idOrName}/rolling-release/complete, team-scoped with ?teamId / ?slug)
getRollingReleaseBillingGet rolling release billing status(a read — GET /v1/projects/{idOrName}/rolling-release/billing, team-scoped with ?teamId / ?slug)

Project routes

OperationWhat it doesAccess requirement
listProjectRoutesGet project routing rules(a read — GET /v1/projects/{projectId}/routes, team-scoped with ?teamId / ?slug)
addProjectRouteAdd routing rule(a write — POST /v1/projects/{projectId}/routes, team-scoped with ?teamId / ?slug)
stageProjectRoutesStage routing rules(a write — PUT /v1/projects/{projectId}/routes, team-scoped with ?teamId / ?slug)
updateProjectRouteEdit routing rule(a write — PATCH /v1/projects/{projectId}/routes/{routeId}, team-scoped with ?teamId / ?slug)
deleteProjectRoutesDelete routing rules(a destructive write — DELETE /v1/projects/{projectId}/routes, team-scoped with ?teamId / ?slug)
generateProjectRouteGenerate routing rule from a description(a read — POST /v1/projects/{projectId}/routes/generate, team-scoped with ?teamId / ?slug)
listProjectRouteVersionsGet routing rule version history(a read — GET /v1/projects/{projectId}/routes/versions, team-scoped with ?teamId / ?slug)
updateProjectRouteVersionPromote / restore a routing rule version(a write — POST /v1/projects/{projectId}/routes/versions, team-scoped with ?teamId / ?slug)

Bulk redirects

OperationWhat it doesAccess requirement
listBulkRedirectsGet project-level redirects(a read — GET /v1/bulk-redirects, team-scoped with ?teamId / ?slug)
stageBulkRedirectsStage new redirects(a write — PUT /v1/bulk-redirects, team-scoped with ?teamId / ?slug)
updateBulkRedirectEdit a redirect(a write — PATCH /v1/bulk-redirects, team-scoped with ?teamId / ?slug)
deleteBulkRedirectsDelete redirects(a destructive write — DELETE /v1/bulk-redirects, team-scoped with ?teamId / ?slug)
restoreBulkRedirectsRestore staged redirects to production(a write — POST /v1/bulk-redirects/restore, team-scoped with ?teamId / ?slug)
listBulkRedirectVersionsGet redirect version history(a read — GET /v1/bulk-redirects/versions, team-scoped with ?teamId / ?slug)
updateBulkRedirectVersionPromote / restore a redirect version(a write — POST /v1/bulk-redirects/versions, team-scoped with ?teamId / ?slug)

Access groups

OperationWhat it doesAccess requirement
listAccessGroupsList access groups(a read — GET /v1/access-groups, team-scoped with ?teamId / ?slug)
createAccessGroupCreate access group(a write — POST /v1/access-groups, team-scoped with ?teamId / ?slug)
getAccessGroupGet access group(a read — GET /v1/access-groups/{idOrName}, team-scoped with ?teamId / ?slug)
updateAccessGroupUpdate access group(a write — POST /v1/access-groups/{idOrName}, team-scoped with ?teamId / ?slug)
deleteAccessGroupDelete access group(a destructive write — DELETE /v1/access-groups/{idOrName}, team-scoped with ?teamId / ?slug)
listAccessGroupMembersList access group members(a read — GET /v1/access-groups/{idOrName}/members, team-scoped with ?teamId / ?slug)
listAccessGroupProjectsList access group projects(a read — GET /v1/access-groups/{idOrName}/projects, team-scoped with ?teamId / ?slug)
addAccessGroupProjectAdd project to access group(a write — POST /v1/access-groups/{accessGroupIdOrName}/projects, team-scoped with ?teamId / ?slug)
getAccessGroupProjectGet access group project(a read — GET /v1/access-groups/{accessGroupIdOrName}/projects/{projectId}, team-scoped with ?teamId / ?slug)
updateAccessGroupProjectUpdate access group project role(a write — PATCH /v1/access-groups/{accessGroupIdOrName}/projects/{projectId}, team-scoped with ?teamId / ?slug)
removeAccessGroupProjectRemove project from access group(a destructive write — DELETE /v1/access-groups/{accessGroupIdOrName}/projects/{projectId}, team-scoped with ?teamId / ?slug)

Integrations & Git

OperationWhat it doesAccess requirement
listIntegrationConfigurationsList integration configurations(a read — GET /v1/integrations/configurations, team-scoped with ?teamId / ?slug)
getIntegrationConfigurationGet integration configuration(a read — GET /v1/integrations/configuration/{id}, team-scoped with ?teamId / ?slug)
deleteIntegrationConfigurationDelete integration configuration(a destructive write — DELETE /v1/integrations/configuration/{id}, team-scoped with ?teamId / ?slug)
listIntegrationProductsList integration configuration products(a read — GET /v1/integrations/configuration/{id}/products, team-scoped with ?teamId / ?slug)
listGitNamespacesList Git namespaces(a read — GET /v1/integrations/git-namespaces, account-global, so the token's own scope decides)
searchGitReposSearch Git repositories(a read — GET /v1/integrations/search-repo, team-scoped with ?teamId / ?slug)

Remote cache artifacts

OperationWhat it doesAccess requirement
getArtifactStatusGet Remote Caching status(a read — GET /v8/artifacts/status, team-scoped with ?teamId / ?slug)
queryArtifactsQuery artifact information(a read — POST /v8/artifacts, team-scoped with ?teamId / ?slug)
deleteAllArtifactsDelete all cache artifacts(a destructive write — DELETE /v8/artifacts, team-scoped with ?teamId / ?slug)

Container registry

OperationWhat it doesAccess requirement
listRegistryRepositoriesList registry repositories(a read — GET /v1/vcr/repository, team-scoped with ?teamId / ?slug)
createRegistryRepositoryCreate registry repository(a write — POST /v1/vcr/repository, team-scoped with ?teamId / ?slug)
getRegistryRepositoryGet registry repository(a read — GET /v1/vcr/repository/{idOrName}, team-scoped with ?teamId / ?slug)
deleteRegistryRepositoryDelete registry repository(a destructive write — DELETE /v1/vcr/repository/{idOrName}, team-scoped with ?teamId / ?slug)
listRegistryImagesList registry images(a read — GET /v1/vcr/repository/{idOrName}/images, team-scoped with ?teamId / ?slug)
getRegistryImageGet registry image(a read — GET /v1/vcr/repository/{idOrName}/images/{imageIdOrDigest}, team-scoped with ?teamId / ?slug)
deleteRegistryImageDelete registry image(a destructive write — DELETE /v1/vcr/repository/{idOrName}/images/{imageId}, team-scoped with ?teamId / ?slug)
listRegistryTagsList registry tags(a read — GET /v1/vcr/repository/{idOrName}/tags, team-scoped with ?teamId / ?slug)
getRegistryTagGet registry tag(a read — GET /v1/vcr/repository/{idOrName}/tags/{tag}, team-scoped with ?teamId / ?slug)

Microfrontends

OperationWhat it doesAccess requirement
listMicrofrontendGroupsList microfrontend groups(a read — GET /v1/microfrontends/groups, team-scoped with ?teamId / ?slug)
createMicrofrontendGroupCreate microfrontend group(a write — POST /v1/microfrontends/group, team-scoped with ?teamId / ?slug)
listMicrofrontendGroupProjectsList projects in a group(a read — GET /v1/microfrontends/groups/{groupId}/projects, team-scoped with ?teamId / ?slug)
getProjectMicrofrontendConfigGet project microfrontend config(a read — GET /v1/microfrontends/projects/{projectIdOrName}/production-mfe-config, team-scoped with ?teamId / ?slug)
getDeploymentMicrofrontendConfigGet deployment microfrontend config(a read — GET /v1/microfrontends/{deploymentId}/config, team-scoped with ?teamId / ?slug)
updateProjectMicrofrontendsUpdate project microfrontend settings(a write — PATCH /v1/projects/{projectId}/microfrontends, team-scoped with ?teamId / ?slug)

Secure Compute networking

OperationWhat it doesAccess requirement
listNetworksList Secure Compute networks(a read — GET /v1/connect/networks, team-scoped with ?teamId / ?slug)
createNetworkCreate Secure Compute network(a write — POST /v1/connect/networks, team-scoped with ?teamId / ?slug)
getNetworkGet Secure Compute network(a read — GET /v1/connect/networks/{networkId}, team-scoped with ?teamId / ?slug)
updateNetworkUpdate Secure Compute network(a write — PATCH /v1/connect/networks/{networkId}, team-scoped with ?teamId / ?slug)
deleteNetworkDelete Secure Compute network(a destructive write — DELETE /v1/connect/networks/{networkId}, team-scoped with ?teamId / ?slug)
updateProjectStaticIpsConfigure static IPs for a project(a write — PATCH /v1/projects/{idOrName}/shared-connect-links, team-scoped with ?teamId / ?slug)

Observability & insights

OperationWhat it doesAccess requirement
queryObservabilityQuery observability metrics(a read — POST /v2/observability/query, account-global, so the token's own scope decides)
getObservabilitySchemaGet observability metric schema(a read — GET /v2/observability/schema, account-global, so the token's own scope decides)
getObservabilityMetricSchemaGet one observability metric schema(a read — GET /v2/observability/schema/{metricId}, account-global, so the token's own scope decides)
listDisabledObservabilityProjectsList disabled Observability Plus projects(a read — GET /v1/observability/manage/configuration/projects, team-scoped with ?teamId / ?slug)
updateObservabilityProjectUpdate Observability Plus for a project(a write — PUT /v1/observability/manage/configuration/projects/{projectIdOrName}, team-scoped with ?teamId / ?slug)
toggleSpeedInsightsToggle Speed Insights for a project(a write — POST /speed-insights/toggle, account-global, so the token's own scope decides)
toggleWebAnalyticsToggle Web Analytics for a project(a write — POST /web/insights/toggle, account-global, so the token's own scope decides)
getProjectTraceGet a project trace by request ID(a read — GET /v1/projects/traces, team-scoped with ?teamId / ?slug)
createTraceSessionCreate a trace session token(a write — POST /v1/projects/traces/session, team-scoped with ?teamId / ?slug)

Domain registrar

OperationWhat it doesAccess requirement
checkDomainAvailabilityCheck domain availability(a read — GET /v1/registrar/domains/{domain}/availability, team-scoped with ?teamId / ?slug)
checkBulkDomainAvailabilityCheck availability of several domains(a read — POST /v1/registrar/domains/availability, team-scoped with ?teamId / ?slug)
getDomainPriceGet domain price(a read — GET /v1/registrar/domains/{domain}/price, team-scoped with ?teamId / ?slug)
listSupportedTldsList supported TLDs(a read — GET /v1/registrar/tlds/supported, team-scoped with ?teamId / ?slug)
getTldGet TLD(a read — GET /v1/registrar/tlds/{tld}, team-scoped with ?teamId / ?slug)
getTldPriceGet TLD price(a read — GET /v1/registrar/tlds/{tld}/price, team-scoped with ?teamId / ?slug)
getDomainAuthCodeGet domain auth code(a read — GET /v1/registrar/domains/{domain}/auth-code, team-scoped with ?teamId / ?slug)
getDomainTransferStatusGet domain transfer status(a read — GET /v1/registrar/domains/{domain}/transfer, team-scoped with ?teamId / ?slug)
getDomainContactSchemaGet domain contact info schema(a read — GET /v1/registrar/domains/{domain}/contact-info/schema, team-scoped with ?teamId / ?slug)
getDomainContactVerificationGet domain contact verification status(a read — GET /v1/registrar/domains/{domain}/contact-verification, team-scoped with ?teamId / ?slug)
updateDomainAutoRenewUpdate domain auto-renew(a write — PATCH /v1/registrar/domains/{domain}/auto-renew, team-scoped with ?teamId / ?slug)
updateDomainNameserversUpdate domain nameservers(a write — PATCH /v1/registrar/domains/{domain}/nameservers, team-scoped with ?teamId / ?slug)
getDomainOrderGet domain order(a read — GET /v1/registrar/orders/{orderId}, team-scoped with ?teamId / ?slug)

Blob stores

OperationWhat it doesAccess requirement
createBlobStoreCreate Blob store(a write — POST /storage/stores/blob, account-global, so the token's own scope decides)
deleteBlobStoreDelete Blob store(a destructive write — DELETE /storage/stores/blob/{id}, account-global, so the token's own scope decides)
getStoreGet storage store(a read — GET /storage/stores/{id}, account-global, so the token's own scope decides)