Detalhes do pacote

@vercel/sdk

vercel102.5k1.9.0

Vercel

Develop. Preview. Ship.

readme (leia-me)

Vercel

Develop. Preview. Ship.

Join the Vercel Community

@vercel/sdk

The @vercel/sdk is a type-safe Typescript SDK that gives you full control over the entire Vercel platform through the Vercel REST API.

Table of Contents

SDK Installation

The SDK can be installed with either npm, pnpm, bun or yarn package managers.

NPM

npm add @vercel/sdk

PNPM

pnpm add @vercel/sdk

Bun

bun add @vercel/sdk

Yarn

yarn add @vercel/sdk zod

# Note that Yarn does not install peer dependencies automatically. You will need
# to install zod as shown above.

[!NOTE] This package is published as an ES Module (ESM) only. For applications using CommonJS, use await import("@vercel/sdk") to import and use this package.

Model Context Protocol (MCP) Server

This SDK is also an installable MCP server where the various SDK methods are exposed as tools that can be invoked by AI applications.

Node.js v20 or greater is required to run the MCP server from npm.

<summary>Claude installation steps</summary> Add the following server definition to your claude_desktop_config.json file: json { "mcpServers": { "Vercel": { "command": "npx", "args": [ "-y", "--package", "@vercel/sdk", "--", "mcp", "start", "--bearer-token", "..." ] } } }
<summary>Cursor installation steps</summary> Create a .cursor/mcp.json file in your project root with the following content: json { "mcpServers": { "Vercel": { "command": "npx", "args": [ "-y", "--package", "@vercel/sdk", "--", "mcp", "start", "--bearer-token", "..." ] } } }

You can also run MCP servers as a standalone binary with no additional dependencies. You must pull these binaries from available Github releases:

curl -L -o mcp-server \
    https://github.com/{org}/{repo}/releases/download/{tag}/mcp-server-bun-darwin-arm64 && \
chmod +x mcp-server

If the repo is a private repo you must add your Github PAT to download a release -H "Authorization: Bearer {GITHUB_PAT}".

{
  "mcpServers": {
    "Todos": {
      "command": "./DOWNLOAD/PATH/mcp-server",
      "args": [
        "start"
      ]
    }
  }
}

For a full list of server arguments, run:

npx -y --package @vercel/sdk -- mcp start --help

Requirements

For supported JavaScript runtimes, please consult RUNTIMES.md.

Access Tokens

You need to pass a valid access token to be able to use any resource or operation. Refer to Creating an Access Token to learn how to create one. Make sure that you create a token with the correct Vercel scope. If you face permission (403) errors when you are already sending a token, it can be one of the following problems:

  • The token you are using has expired. Check the expiry date of the token in the Vercel dashboard.
  • The token does not have access to the correct scope, either not the right team or it does not have account level access.
  • The resource or operation you are trying to use is not available for that team. For example, AccessGroups is an Enterprise only feature and you are using a token for a team on the pro plan.

Authentication

Per-Client Security Schemes

This SDK supports the following security scheme globally:

Name Type Scheme
bearerToken http HTTP Bearer

To authenticate with the API the bearerToken parameter must be set when initializing the SDK client instance. For example:

import { Vercel } from "@vercel/sdk";

const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  const result = await vercel.accessGroups.readAccessGroup({
    idOrName: "ag_1a2b3c4d5e6f7g8h9i0j",
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
  });

  console.log(result);
}

run();

SDK Example Usage

List deployments

List deployments under the authenticated user or team.

import { Vercel } from "@vercel/sdk";

const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  const result = await vercel.deployments.getDeployments({
    app: "docs",
    from: 1612948664566,
    limit: 10,
    projectId: "QmXGTs7mvAMMC7WW5ebrM33qKG32QK3h4vmQMjmY",
    target: "production",
    to: 1612948664566,
    users: "kr1PsOIzqEL5Xg6M4VZcZosf,K4amb7K9dAt5R2vBJWF32bmY",
    since: 1540095775941,
    until: 1540095775951,
    state: "BUILDING,READY",
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
  });

  console.log(result);
}

run();

Update an existing project

Update the fields of a project using either its name or id.

import { Vercel } from "@vercel/sdk";

const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  const result = await vercel.projects.updateProject({
    idOrName: "prj_12HKQaOmR5t5Uy6vdcQsNIiZgHGB",
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
    requestBody: {
      name: "a-project-name",
    },
  });

  console.log(result);
}

run();

Available Resources and Operations

<summary>Available methods</summary> ### accessGroups readAccessGroup - Reads an access group updateAccessGroup - Update an access group deleteAccessGroup - Deletes an access group listAccessGroupMembers - List members of an access group listAccessGroups - List access groups for a team, project or member createAccessGroup - Creates an access group listAccessGroupProjects - List projects of an access group createAccessGroupProject - Create an access group project readAccessGroupProject - Reads an access group project updateAccessGroupProject - Update an access group project deleteAccessGroupProject - Delete an access group project ### aliases listDeploymentAliases - List Deployment Aliases assignAlias - Assign an Alias listAliases - List aliases getAlias - Get an Alias deleteAlias - Delete an Alias patchUrlProtectionBypass - Update the protection bypass for a URL ### artifacts recordEvents - Record an artifacts cache usage event status - Get status of Remote Caching for this principal uploadArtifact - Upload a cache artifact downloadArtifact - Download a cache artifact artifactExists - Check if a cache artifact exists artifactQuery - Query information about an artifact ### authentication exchangeSsoToken - SSO Token Exchange listAuthTokens - List Auth Tokens createAuthToken - Create an Auth Token getAuthToken - Get Auth Token Metadata deleteAuthToken - Delete an authentication token ### certs getCertById - Get cert by id removeCert - Remove cert issueCert - Issue a new cert uploadCert - Upload a cert ### checks createCheck - Creates a new Check getAllChecks - Retrieve a list of all checks getCheck - Get a single check updateCheck - Update a check rerequestCheck - Rerequest a check ### deployments getDeploymentEvents - Get deployment events updateIntegrationDeploymentAction - Update deployment integration action getDeployment - Get a deployment by ID or URL createDeployment - Create a new deployment cancelDeployment - Cancel a deployment uploadFile - Upload Deployment Files listDeploymentFiles - List Deployment Files getDeploymentFileContents - Get Deployment File Contents getDeployments - List deployments deleteDeployment - Delete a Deployment ### dns getRecords - List existing DNS records createRecord - Create a DNS record updateRecord - Update an existing DNS record removeRecord - Delete a DNS record ### domains buyDomain - Purchase a domain checkDomainPrice - Check the price for a domain checkDomainStatus - Check a Domain Availability getDomainTransfer - Get domain transfer info. getDomainConfig - Get a Domain's configuration getDomain - Get Information for a Single Domain getDomains - List all the domains createOrTransferDomain - Register or transfer-in a new Domain patchDomain - Update or move apex domain deleteDomain - Remove a domain by name ### edgeConfig getEdgeConfigs - Get Edge Configs createEdgeConfig - Create an Edge Config getEdgeConfig - Get an Edge Config updateEdgeConfig - Update an Edge Config deleteEdgeConfig - Delete an Edge Config getEdgeConfigItems - Get Edge Config items patchEdgeConfigItems - Update Edge Config items in batch getEdgeConfigSchema - Get Edge Config schema patchEdgeConfigSchema - Update Edge Config schema deleteEdgeConfigSchema - Delete an Edge Config's schema getEdgeConfigItem - Get an Edge Config item getEdgeConfigTokens - Get all tokens of an Edge Config deleteEdgeConfigTokens - Delete one or more Edge Config tokens getEdgeConfigToken - Get Edge Config token meta data createEdgeConfigToken - Create an Edge Config token getEdgeConfigBackup - Get Edge Config backup getEdgeConfigBackups - Get Edge Config backups ### environment createCustomEnvironment - Create a custom environment for the current project. getV9ProjectsIdOrNameCustomEnvironments - Retrieve custom environments getCustomEnvironment - Retrieve a custom environment updateCustomEnvironment - Update a custom environment removeCustomEnvironment - Remove a custom environment ### integrations updateIntegrationDeploymentAction - Update deployment integration action getConfigurations - Get configurations for the authenticated user or team getConfiguration - Retrieve an integration configuration deleteConfiguration - Delete an integration configuration ### logDrains deleteConfigurableLogDrain - Deletes a Configurable Log Drain getIntegrationLogDrains - Retrieves a list of Integration log drains createLogDrain - Creates a new Integration Log Drain deleteIntegrationLogDrain - Deletes the Integration log drain with the provided id ### logs getRuntimeLogs - Get logs for a deployment ### marketplace getAccountInfo - Get Account Information getMember - Get Member Information createEvent - Create Event submitBillingData - Submit Billing Data submitInvoice - Submit Invoice getInvoice - Get Invoice updateInvoice - Invoice Actions submitPrepaymentBalances - Submit Prepayment Balances updateResourceSecrets - Update Resource Secrets (Deprecated) updateResourceSecretsById - Update Resource Secrets importResource - Import Resource exchangeSsoToken - SSO Token Exchange createInstallationIntegrationConfiguration - Create one or multiple experimentation items updateInstallationIntegrationConfiguration - Patch an existing experimentation item deleteInstallationIntegrationConfiguration - Delete an existing experimentation item createInstallationIntegrationEdgeConfig - Get the data of a user-provided Edge Config updateInstallationIntegrationEdgeConfig - Push data into a user-provided Edge Config ### projectMembers getProjectMembers - List project members addProjectMember - Adds a new member to a project. removeProjectMember - Remove a Project Member ### projects updateProjectDataCache - Update the data cache feature getProjects - Retrieve a list of projects createProject - Create a new project updateProject - Update an existing project deleteProject - Delete a Project getProjectDomains - Retrieve project domains by project by id or name getProjectDomain - Get a project domain updateProjectDomain - Update a project domain removeProjectDomain - Remove a domain from a project addProjectDomain - Add a domain to a project moveProjectDomain - Move a project domain verifyProjectDomain - Verify project domain filterProjectEnvs - Retrieve the environment variables of a project by id or name createProjectEnv - Create one or more environment variables getProjectEnv - Retrieve the decrypted value of an environment variable of a project by id removeProjectEnv - Remove an environment variable editProjectEnv - Edit an environment variable createProjectTransferRequest - Create project transfer request acceptProjectTransferRequest - Accept project transfer request updateProjectProtectionBypass - Update Protection Bypass for Automation requestPromote - Points all production domains for a project to the given deploy listPromoteAliases - Gets a list of aliases with status for the current promote pauseProject - Pause a project unpauseProject - Unpause a project ### rollingRelease getRollingReleaseBillingStatus - Get rolling release billing status getRollingReleaseConfig - Get rolling release configuration deleteRollingReleaseConfig - Delete rolling release configuration updateRollingReleaseConfig - Update the rolling release settings for the project getRollingRelease - Get the active rolling release information for a project approveRollingReleaseStage - Update the active rolling release to the next stage for a project completeRollingRelease - Complete the rolling release for the project ### security updateAttackChallengeMode - Update Attack Challenge mode putFirewallConfig - Put Firewall Configuration updateFirewallConfig - Update Firewall Configuration getFirewallConfig - Read Firewall Configuration getActiveAttackStatus - Read active attack data getBypassIp - Read System Bypass addBypassIp - Create System Bypass Rule removeBypassIp - Remove System Bypass Rule ### teams getTeamMembers - List team members inviteUserToTeam - Invite a user requestAccessToTeam - Request access to a team getTeamAccessRequest - Get access request status joinTeam - Join a team updateTeamMember - Update a Team Member removeTeamMember - Remove a Team Member getTeam - Get a Team patchTeam - Update a Team getTeams - List all teams createTeam - Create a Team deleteTeam - Delete a Team deleteTeamInviteCode - Delete a Team invite code ### user listUserEvents - List User Events getAuthUser - Get the User requestDelete - Delete User Account ### webhooks createWebhook - Creates a webhook getWebhooks - Get a list of webhooks getWebhook - Get a webhook deleteWebhook - Deletes a webhook
## Standalone functions All the methods listed above are available as standalone functions. These functions are ideal for use in applications running in the browser, serverless runtimes or other environments where application bundle size is a primary concern. When using a bundler to build your application, all unused functionality will be either excluded from the final bundle or tree-shaken away. To read more about standalone functions, check FUNCTIONS.md.
<summary>Available standalone functions</summary> - accessGroupsCreateAccessGroup - Creates an access group - accessGroupsCreateAccessGroupProject - Create an access group project - accessGroupsDeleteAccessGroup - Deletes an access group - accessGroupsDeleteAccessGroupProject - Delete an access group project - accessGroupsListAccessGroupMembers - List members of an access group - accessGroupsListAccessGroupProjects - List projects of an access group - accessGroupsListAccessGroups - List access groups for a team, project or member - accessGroupsReadAccessGroup - Reads an access group - accessGroupsReadAccessGroupProject - Reads an access group project - accessGroupsUpdateAccessGroup - Update an access group - accessGroupsUpdateAccessGroupProject - Update an access group project - aliasesAssignAlias - Assign an Alias - aliasesDeleteAlias - Delete an Alias - aliasesGetAlias - Get an Alias - aliasesListAliases - List aliases - aliasesListDeploymentAliases - List Deployment Aliases - aliasesPatchUrlProtectionBypass - Update the protection bypass for a URL - artifactsArtifactExists - Check if a cache artifact exists - artifactsArtifactQuery - Query information about an artifact - artifactsDownloadArtifact - Download a cache artifact - artifactsRecordEvents - Record an artifacts cache usage event - artifactsStatus - Get status of Remote Caching for this principal - artifactsUploadArtifact - Upload a cache artifact - authenticationCreateAuthToken - Create an Auth Token - authenticationDeleteAuthToken - Delete an authentication token - authenticationGetAuthToken - Get Auth Token Metadata - authenticationListAuthTokens - List Auth Tokens - certsGetCertById - Get cert by id - certsIssueCert - Issue a new cert - certsRemoveCert - Remove cert - certsUploadCert - Upload a cert - checksCreateCheck - Creates a new Check - checksGetAllChecks - Retrieve a list of all checks - checksGetCheck - Get a single check - checksRerequestCheck - Rerequest a check - checksUpdateCheck - Update a check - deploymentsCancelDeployment - Cancel a deployment - deploymentsCreateDeployment - Create a new deployment - deploymentsDeleteDeployment - Delete a Deployment - deploymentsGetDeployment - Get a deployment by ID or URL - deploymentsGetDeploymentEvents - Get deployment events - deploymentsGetDeploymentFileContents - Get Deployment File Contents - deploymentsGetDeployments - List deployments - deploymentsListDeploymentFiles - List Deployment Files - deploymentsUpdateIntegrationDeploymentAction - Update deployment integration action - deploymentsUpdateIntegrationDeploymentAction - Update deployment integration action - deploymentsUploadFile - Upload Deployment Files - dnsCreateRecord - Create a DNS record - dnsGetRecords - List existing DNS records - dnsRemoveRecord - Delete a DNS record - dnsUpdateRecord - Update an existing DNS record - domainsBuyDomain - Purchase a domain - domainsCheckDomainPrice - Check the price for a domain - domainsCheckDomainStatus - Check a Domain Availability - domainsCreateOrTransferDomain - Register or transfer-in a new Domain - domainsDeleteDomain - Remove a domain by name - domainsGetDomain - Get Information for a Single Domain - domainsGetDomainConfig - Get a Domain's configuration - domainsGetDomains - List all the domains - domainsGetDomainTransfer - Get domain transfer info. - domainsPatchDomain - Update or move apex domain - edgeConfigCreateEdgeConfig - Create an Edge Config - edgeConfigCreateEdgeConfigToken - Create an Edge Config token - edgeConfigDeleteEdgeConfig - Delete an Edge Config - edgeConfigDeleteEdgeConfigSchema - Delete an Edge Config's schema - edgeConfigDeleteEdgeConfigTokens - Delete one or more Edge Config tokens - edgeConfigGetEdgeConfig - Get an Edge Config - edgeConfigGetEdgeConfigBackup - Get Edge Config backup - edgeConfigGetEdgeConfigBackups - Get Edge Config backups - edgeConfigGetEdgeConfigItem - Get an Edge Config item - edgeConfigGetEdgeConfigItems - Get Edge Config items - edgeConfigGetEdgeConfigs - Get Edge Configs - edgeConfigGetEdgeConfigSchema - Get Edge Config schema - edgeConfigGetEdgeConfigToken - Get Edge Config token meta data - edgeConfigGetEdgeConfigTokens - Get all tokens of an Edge Config - edgeConfigPatchEdgeConfigItems - Update Edge Config items in batch - edgeConfigPatchEdgeConfigSchema - Update Edge Config schema - edgeConfigUpdateEdgeConfig - Update an Edge Config - environmentCreateCustomEnvironment - Create a custom environment for the current project. - environmentGetCustomEnvironment - Retrieve a custom environment - environmentGetV9ProjectsIdOrNameCustomEnvironments - Retrieve custom environments - environmentRemoveCustomEnvironment - Remove a custom environment - environmentUpdateCustomEnvironment - Update a custom environment - integrationsDeleteConfiguration - Delete an integration configuration - integrationsGetConfiguration - Retrieve an integration configuration - integrationsGetConfigurations - Get configurations for the authenticated user or team - logDrainsCreateLogDrain - Creates a new Integration Log Drain - logDrainsDeleteConfigurableLogDrain - Deletes a Configurable Log Drain - logDrainsDeleteIntegrationLogDrain - Deletes the Integration log drain with the provided id - logDrainsGetIntegrationLogDrains - Retrieves a list of Integration log drains - logsGetRuntimeLogs - Get logs for a deployment - marketplaceCreateEvent - Create Event - marketplaceCreateInstallationIntegrationConfiguration - Create one or multiple experimentation items - marketplaceCreateInstallationIntegrationEdgeConfig - Get the data of a user-provided Edge Config - marketplaceDeleteInstallationIntegrationConfiguration - Delete an existing experimentation item - marketplaceExchangeSsoToken - SSO Token Exchange - marketplaceExchangeSsoToken - SSO Token Exchange - marketplaceGetAccountInfo - Get Account Information - marketplaceGetInvoice - Get Invoice - marketplaceGetMember - Get Member Information - marketplaceImportResource - Import Resource - marketplaceSubmitBillingData - Submit Billing Data - marketplaceSubmitInvoice - Submit Invoice - marketplaceSubmitPrepaymentBalances - Submit Prepayment Balances - marketplaceUpdateInstallationIntegrationConfiguration - Patch an existing experimentation item - marketplaceUpdateInstallationIntegrationEdgeConfig - Push data into a user-provided Edge Config - marketplaceUpdateInvoice - Invoice Actions - marketplaceUpdateResourceSecrets - Update Resource Secrets (Deprecated) - marketplaceUpdateResourceSecretsById - Update Resource Secrets - projectMembersAddProjectMember - Adds a new member to a project. - projectMembersGetProjectMembers - List project members - projectMembersRemoveProjectMember - Remove a Project Member - projectsAcceptProjectTransferRequest - Accept project transfer request - projectsAddProjectDomain - Add a domain to a project - projectsCreateProject - Create a new project - projectsCreateProjectEnv - Create one or more environment variables - projectsCreateProjectTransferRequest - Create project transfer request - projectsDeleteProject - Delete a Project - projectsEditProjectEnv - Edit an environment variable - projectsFilterProjectEnvs - Retrieve the environment variables of a project by id or name - projectsGetProjectDomain - Get a project domain - projectsGetProjectDomains - Retrieve project domains by project by id or name - projectsGetProjectEnv - Retrieve the decrypted value of an environment variable of a project by id - projectsGetProjects - Retrieve a list of projects - projectsListPromoteAliases - Gets a list of aliases with status for the current promote - projectsMoveProjectDomain - Move a project domain - projectsPauseProject - Pause a project - projectsRemoveProjectDomain - Remove a domain from a project - projectsRemoveProjectEnv - Remove an environment variable - projectsRequestPromote - Points all production domains for a project to the given deploy - projectsUnpauseProject - Unpause a project - projectsUpdateProject - Update an existing project - projectsUpdateProjectDataCache - Update the data cache feature - projectsUpdateProjectDomain - Update a project domain - projectsUpdateProjectProtectionBypass - Update Protection Bypass for Automation - projectsVerifyProjectDomain - Verify project domain - rollingReleaseApproveRollingReleaseStage - Update the active rolling release to the next stage for a project - rollingReleaseCompleteRollingRelease - Complete the rolling release for the project - rollingReleaseDeleteRollingReleaseConfig - Delete rolling release configuration - rollingReleaseGetRollingRelease - Get the active rolling release information for a project - rollingReleaseGetRollingReleaseBillingStatus - Get rolling release billing status - rollingReleaseGetRollingReleaseConfig - Get rolling release configuration - rollingReleaseUpdateRollingReleaseConfig - Update the rolling release settings for the project - securityAddBypassIp - Create System Bypass Rule - securityGetActiveAttackStatus - Read active attack data - securityGetBypassIp - Read System Bypass - securityGetFirewallConfig - Read Firewall Configuration - securityPutFirewallConfig - Put Firewall Configuration - securityRemoveBypassIp - Remove System Bypass Rule - securityUpdateAttackChallengeMode - Update Attack Challenge mode - securityUpdateFirewallConfig - Update Firewall Configuration - teamsCreateTeam - Create a Team - teamsDeleteTeam - Delete a Team - teamsDeleteTeamInviteCode - Delete a Team invite code - teamsGetTeam - Get a Team - teamsGetTeamAccessRequest - Get access request status - teamsGetTeamMembers - List team members - teamsGetTeams - List all teams - teamsInviteUserToTeam - Invite a user - teamsJoinTeam - Join a team - teamsPatchTeam - Update a Team - teamsRemoveTeamMember - Remove a Team Member - teamsRequestAccessToTeam - Request access to a team - teamsUpdateTeamMember - Update a Team Member - userGetAuthUser - Get the User - userListUserEvents - List User Events - userRequestDelete - Delete User Account - webhooksCreateWebhook - Creates a webhook - webhooksDeleteWebhook - Deletes a webhook - webhooksGetWebhook - Get a webhook - webhooksGetWebhooks - Get a list of webhooks
## File uploads Certain SDK methods accept files as part of a multi-part request. It is possible and typically recommended to upload files as a stream rather than reading the entire contents into memory. This avoids excessive memory consumption and potentially crashing with out-of-memory errors when working with very large files. The following example demonstrates how to attach a file stream to a request. > [!TIP] > > Depending on your JavaScript runtime, there are convenient utilities that return a handle to a file without reading the entire contents into memory: > > - Node.js v20+: Since v20, Node.js comes with a native openAsBlob function in node:fs. > - Bun: The native Bun.file function produces a file handle that can be used for streaming file uploads. > - Browsers: All supported browsers return an instance to a File when reading the value from an <input type="file"> element. > - Node.js v18: A file stream can be created using the fileFrom helper from fetch-blob/from.js. typescript import { Vercel } from "@vercel/sdk"; import { openAsBlob } from "node:fs"; const vercel = new Vercel({ bearerToken: "<YOUR_BEARER_TOKEN_HERE>", }); async function run() { const result = await vercel.artifacts.uploadArtifact({ contentLength: 3848.22, xArtifactDuration: 400, xArtifactClientCi: "VERCEL", xArtifactClientInteractive: 0, xArtifactTag: "Tc0BmHvJYMIYJ62/zx87YqO0Flxk+5Ovip25NY825CQ=", hash: "12HKQaOmR5t5Uy6vdcQsNIiZgHGB", teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l", slug: "my-team-url-slug", requestBody: await openAsBlob("example.file"), }); console.log(result); } run(); ## Retries Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK. To change the default retry strategy for a single API call, simply provide a retryConfig object to the call: typescript import { Vercel } from "@vercel/sdk"; const vercel = new Vercel({ bearerToken: "<YOUR_BEARER_TOKEN_HERE>", }); async function run() { const result = await vercel.accessGroups.readAccessGroup({ idOrName: "ag_1a2b3c4d5e6f7g8h9i0j", teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l", slug: "my-team-url-slug", }, { retries: { strategy: "backoff", backoff: { initialInterval: 1, maxInterval: 50, exponent: 1.1, maxElapsedTime: 100, }, retryConnectionErrors: false, }, }); console.log(result); } run(); If you'd like to override the default retry strategy for all operations that support retries, you can provide a retryConfig at SDK initialization: typescript import { Vercel } from "@vercel/sdk"; const vercel = new Vercel({ retryConfig: { strategy: "backoff", backoff: { initialInterval: 1, maxInterval: 50, exponent: 1.1, maxElapsedTime: 100, }, retryConnectionErrors: false, }, bearerToken: "<YOUR_BEARER_TOKEN_HERE>", }); async function run() { const result = await vercel.accessGroups.readAccessGroup({ idOrName: "ag_1a2b3c4d5e6f7g8h9i0j", teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l", slug: "my-team-url-slug", }); console.log(result); } run(); ## Error Handling VercelError is the base class for all HTTP error responses. It has the following properties: | Property | Type | Description | | ------------------- | ---------- | --------------------------------------------------------------------------------------- | | error.message | string | Error message | | error.statusCode | number | HTTP response status code eg 404 | | error.headers | Headers | HTTP response headers | | error.body | string | HTTP body. Can be empty string if no body is returned. | | error.rawResponse | Response | Raw HTTP response | | error.data$ | | Optional. Some errors may contain structured data. See Error Classes. | ### Example typescript import { Vercel } from "@vercel/sdk"; import { VercelBadRequestError } from "@vercel/sdk/models/vercelbadrequesterror.js"; import { VercelError } from "@vercel/sdk/models/vercelerror.js.js"; const vercel = new Vercel({ bearerToken: "<YOUR_BEARER_TOKEN_HERE>", }); async function run() { try { const result = await vercel.accessGroups.readAccessGroup({ idOrName: "ag_1a2b3c4d5e6f7g8h9i0j", teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l", slug: "my-team-url-slug", }); console.log(result); } catch (error) { // The base class for HTTP error responses if (error instanceof VercelError) { console.log(error.message); console.log(error.statusCode); console.log(error.body); console.log(error.headers); // Depending on the method different errors may be thrown if (error instanceof VercelBadRequestError) { console.log(error.data$.error); // models.ErrorT } } } } run(); ### Error Classes Primary errors:
VercelError: The base class for HTTP error responses. VercelBadRequestError: Status code 400. VercelForbiddenError: Status code 401.
<summary>Less common errors (8)</summary>
Network errors: ConnectionError: HTTP client was unable to make a request to a server. RequestTimeoutError: HTTP request timed out due to an AbortSignal signal. RequestAbortedError: HTTP request was aborted by the client. InvalidRequestError: Any input used to create a request is invalid. UnexpectedClientError: Unrecognised or unexpected error. Inherit from VercelError: VercelNotFoundError: Status code 404. Applicable to 100 of 171 methods. VercelRateLimitError: . Status code 429. Applicable to 1 of 171 methods. ResponseValidationError: Type mismatch between the data returned from the server and the structure expected by the SDK. See error.rawValue for the raw value and error.pretty() for a nicely formatted multi-line string.

* Check the method documentation to see if the error is applicable.

Server Selection

Override Server URL Per-Client

The default server can be overridden globally by passing a URL to the serverURL: string optional parameter when initializing the SDK client instance. For example:

import { Vercel } from "@vercel/sdk";

const vercel = new Vercel({
  serverURL: "https://api.vercel.com",
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  const result = await vercel.accessGroups.readAccessGroup({
    idOrName: "ag_1a2b3c4d5e6f7g8h9i0j",
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
  });

  console.log(result);
}

run();

Custom HTTP Client

The TypeScript SDK makes API calls using an HTTPClient that wraps the native Fetch API. This client is a thin wrapper around fetch and provides the ability to attach hooks around the request lifecycle that can be used to modify the request or handle errors and response.

The HTTPClient constructor takes an optional fetcher argument that can be used to integrate a third-party HTTP client or when writing tests to mock out the HTTP client and feed in fixtures.

The following example shows how to use the "beforeRequest" hook to to add a custom header and a timeout to requests and how to use the "requestError" hook to log errors:

import { Vercel } from "@vercel/sdk";
import { HTTPClient } from "@vercel/sdk/lib/http";

const httpClient = new HTTPClient({
  // fetcher takes a function that has the same signature as native `fetch`.
  fetcher: (request) => {
    return fetch(request);
  }
});

httpClient.addHook("beforeRequest", (request) => {
  const nextRequest = new Request(request, {
    signal: request.signal || AbortSignal.timeout(5000)
  });

  nextRequest.headers.set("x-custom-header", "custom value");

  return nextRequest;
});

httpClient.addHook("requestError", (error, request) => {
  console.group("Request Error");
  console.log("Reason:", `${error}`);
  console.log("Endpoint:", `${request.method} ${request.url}`);
  console.groupEnd();
});

const sdk = new Vercel({ httpClient });

Debugging

You can setup your SDK to emit debug logs for SDK requests and responses.

You can pass a logger that matches console's interface as an SDK option.

[!WARNING] Beware that debug logging will reveal secrets, like API tokens in headers, in log messages printed to a console or files. It's recommended to use this feature only during local development and not in production.

import { Vercel } from "@vercel/sdk";

const sdk = new Vercel({ debugLogger: console });

Development

Maturity

This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally looking for the latest version.

Contributions

While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation. We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.

SDK Created by Speakeasy

changelog (log de mudanças)

2024-09-12 00:25:13

Changes

Based on:

2024-09-24 21:05:38

Changes

Based on:

2024-09-27 16:16:59

Changes

Based on:

2024-11-06 15:50:38

Changes

Based on:

2024-11-14 19:36:49

Changes

Based on:

2024-11-25 16:32:29

Changes

Based on:

2024-12-03 20:44:19

Changes

Based on:

2024-12-05 16:59:34

Changes

Based on:

2024-12-05 19:48:36

Changes

Based on:

2024-12-18 20:51:51

Changes

Based on:

2025-01-03 15:08:26

Changes

Based on:

2025-01-06 23:17:31

Changes

Based on:

2025-01-16 21:58:18

Changes

Based on:

2025-01-20 19:39:52

Changes

Based on:

2025-03-07 23:49:17

Changes

Based on:

2025-03-13 22:52:31

Changes

Based on:

2025-04-03 17:15:37

Changes

Based on:

2025-04-11 21:41:16

Changes

Based on:

2025-04-14 20:44:39

Changes

Based on:

2025-04-17 00:07:13

Changes

Based on:

2025-04-28 00:07:28

Changes

Based on:

2025-04-28 22:03:54

Changes

Based on:

2025-04-29 20:43:17

Changes

Based on:

2025-04-30 00:07:18

Changes

Based on:

2025-05-02 00:07:18

Changes

Based on:

2025-05-05 21:01:52

Changes

Based on:

2025-05-06 20:39:53

Changes

Based on:

2025-05-07 13:34:51

Changes

Based on:

2025-05-07 22:15:40

Changes

Based on:

2025-05-08 23:17:03

Changes

Based on:

2025-05-09 15:50:14

Changes

Based on:

2025-05-14 14:58:20

Changes

Based on:

2025-05-16 00:07:19

Changes

Based on:

2025-05-21 00:07:21

Changes

Based on:

2025-05-22 00:07:13

Changes

Based on:

2025-05-27 16:45:05

Changes

Based on:

2025-06-11 15:54:00

Changes

Based on:

2025-06-11 22:11:32

Changes

Based on:

2025-06-12 16:14:50

Changes

Based on:

2025-06-16 00:07:50

Changes

Based on:

2025-06-17 16:21:43

Changes

Based on:

2025-06-19 00:07:32

Changes

Based on:

2025-06-24 02:24:56

Changes

Based on:

2025-06-25 16:01:10

Changes

Based on: