# Vercel on boxd

> Vercel is a platform for frontend frameworks and static sites, enabling developers to host websites and web services that deploy instantly, scale automatically, and require minimal configuration.

- Page: https://boxd.sh/integrations/vercel/
- CLI: `run vercel` (146 commands, 20 marked common)
- SDK: `import { vercel } from "@boxd/run"`; every parameter and response type is at `@boxd/run/vercel`
- Triggers: none
- Connect: `run auth vercel` (API key), or https://app.boxd.sh/integrations/detail/vercel
- All integrations: https://boxd.sh/integrations/ (Markdown: https://boxd.sh/integrations/index.md)

## From the shell

```sh
run auth vercel      # once: prints a link to connect your account
run vercel           # list its commands
run vercel get-projects
```

Parameters are flags (`--flag value`); object and array parameters take a JSON string. Output is YAML, or JSON with `--json`. Calls use your own connection; `--scope <name>` uses a connection shared with your team.

## From a script

```ts
import { every, vercel } from "@boxd/run";

every("1 hour", async () => {
  const result = await vercel.getProjects({});
  console.log(result);
});
```

Run it with `run vercel.run.ts`. Vercel has no triggers; `every()` polls on a schedule, keeps the script running as a job, and wakes the machine when it is due.

## Commands

Required flags are listed; `run vercel <command> --help` lists the optional ones. "common" marks what `run vercel` shows without `--all`.

| Command | SDK method | Required flags | Optional | Description |
|---|---|---|---|---|
| `add-environment-variable` ·common | `vercel.addEnvironmentVariable()` | `--idOrName` `--key` `--target` `--type` `--value` | 6 | Add an environment variable to a Vercel project |
| `add-project-domain` ·common | `vercel.addProjectDomain()` | `--idOrName` `--name` | 6 | Attach a custom domain to a Vercel project |
| `assign-alias` ·common | `vercel.assignAlias()` | `--alias` `--id` | 3 | Assign an alias to a specific Vercel deployment |
| `batch-remove-project-env` | `vercel.batchRemoveProjectEnv()` | `--idOrName` `--ids` | 2 | Batch remove environment variables from a Vercel project |
| `buy-domains` | `vercel.buyDomains()` | `--contactInformation` `--domains` | 2 | Purchase multiple domains through Vercel's domain registrar |
| `buy-single-domain` | `vercel.buySingleDomain()` | `--autoRenew` `--contactInformation` `--domain` `--expectedPrice` `--years` | 1 | Purchase a domain through Vercel's domain registrar |
| `check-cache-artifact-exists` | `vercel.checkCacheArtifactExists()` | `--hash` | 2 | Check if a cache artifact exists by its hash |
| `check-domain-availability` | `vercel.checkDomainAvailability()` | `--domain` | 2 | Check if a domain is available for registration |
| `check-domain-price` ·deprecated | `vercel.checkDomainPrice()` | `--domain` | 1 | Use check-domain-price2 instead |
| `check-domain-price2` | `vercel.checkDomainPrice2()` | `--domain` | 2 | Check pricing for a domain including purchase, renewal, and transfer costs |
| `create-auth-token` | `vercel.createAuthToken()` | `--name` | 3 | Create a new authentication token |
| `create-deployment` ·common ·deprecated | `vercel.createDeployment()` | `--name` | 15 | Use create-new-deployment instead |
| `create-dns-record` | `vercel.createDnsRecord()` | `--domain` `--name` `--type` | 8 | Create a new DNS record for a domain |
| `create-edge-config` ·common | `vercel.createEdgeConfig()` | `--slug` | 3 | Creates a new Edge Config for storing key-value data at the edge |
| `create-edge-config-token` | `vercel.createEdgeConfigToken()` | `--edgeConfigId` `--label` | 2 | Create a read access token for a specific Edge Config |
| `create-new-deployment` ·common | `vercel.createNewDeployment()` | `--name` | 12 | Create a new deployment |
| `create-or-transfer-domain` | `vercel.createOrTransferDomain()` | `--name` | 6 | Add an existing domain to the Vercel platform |
| `create-project` ·common ·deprecated | `vercel.createProject()` | `--name` | 5 | Use VERCEL_VERCEL_CREATE_PROJECT2 instead |
| `create-project-env` ·deprecated | `vercel.createProjectEnv()` | `--idOrName` `--key` `--type` `--value` | 8 | Use add-environment-variable instead |
| `create-project-transfer-request` | `vercel.createProjectTransferRequest()` | `--idOrName` | 4 | Create a project transfer request |
| `create-project2` | `vercel.createProject2()` | `--name` | 23 | Create a new Vercel project with comprehensive configuration options |
| `create-shared-env-variable` | `vercel.createSharedEnvVariable()` | `--evs` | 6 | Create one or more shared environment variables in Vercel |
| `create-webhook` | `vercel.createWebhook()` | `--events` `--url` | 3 | Create a webhook for receiving notifications about Vercel events |
| `dangerously-delete-by-src-images` | `vercel.dangerouslyDeleteBySrcImages()` | `--projectIdOrName` `--srcImages` | 3 | Dangerously delete edge cache by source image URLs |
| `dangerously-delete-by-tags` | `vercel.dangerouslyDeleteByTags()` | `--projectIdOrName` `--tags` | 4 | Dangerously delete edge cache by tags |
| `delete-alias` | `vercel.deleteAlias()` | `--aliasId` | 2 | Delete an alias from Vercel |
| `delete-auth-token` ·common | `vercel.deleteAuthToken()` | `--tokenId` | 0 | Delete an authentication token |
| `delete-data-cache-purge-all` | `vercel.deleteDataCachePurgeAll()` | `--projectIdOrName` | 1 | Purge all data cache entries for a specific project |
| `delete-deployment` | `vercel.deleteDeployment()` | `--id` | 3 | Permanently delete a Vercel deployment by its ID or URL |
| `delete-dns-record` | `vercel.deleteDnsRecord()` | `--domain` `--recordId` | 2 | Delete a DNS record from a domain |
| `delete-domain` | `vercel.deleteDomain()` | `--domain` | 2 | Remove a domain by name from Vercel |
| `delete-edge-config` | `vercel.deleteEdgeConfig()` | `--edgeConfigId` | 2 | Delete an Edge Config by its unique identifier |
| `delete-edge-config-tokens` | `vercel.deleteEdgeConfigTokens()` | `--edgeConfigId` `--tokens` | 2 | Delete one or more Edge Config tokens |
| `delete-project` | `vercel.deleteProject()` | `--idOrName` | 2 | Delete a Vercel project by ID or name |
| `delete-project-env` | `vercel.deleteProjectEnv()` | `--id` `--idOrName` | 3 | Remove an environment variable from a Vercel project |
| `delete-rolling-release-config` | `vercel.deleteRollingReleaseConfig()` | `--idOrName` | 2 | Delete rolling release configuration for a project |
| `delete-shared-env-variable` | `vercel.deleteSharedEnvVariable()` | `--ids` | 2 | Delete one or more shared environment variables |
| `delete-webhook` | `vercel.deleteWebhook()` | `--id` | 2 | Delete a webhook by its unique ID to stop receiving event notifications |
| `download-artifact` | `vercel.downloadArtifact()` | `--hash` | 4 | Download a cache artifact from Vercel's Remote Cache by its hash |
| `edit-project-env` | `vercel.editProjectEnv()` | `--id` `--idOrName` | 9 | Edit an environment variable in a Vercel project |
| `filter-project-envs` | `vercel.filterProjectEnvs()` | `--idOrName` | 7 | Retrieve environment variables of a Vercel project by id or name |
| `get-active-attack-status` | `vercel.getActiveAttackStatus()` | `--projectId` | 3 | Read active attack data from Vercel Firewall for a specific project |
| `get-alias` | `vercel.getAlias()` | `--idOrAlias` | 6 | Retrieve information about a Vercel alias by ID or alias name |
| `get-all-log-drains` | `vercel.getAllLogDrains()` | — | 5 | Retrieve a list of all log drains (deprecated) |
| `get-artifact-info` | `vercel.getArtifactInfo()` | `--hashes` | 2 | Query information about artifacts by their hashes |
| `get-auth-token` | `vercel.getAuthToken()` | `--tokenId` | 0 | Retrieve metadata for an authentication token |
| `get-auth-user` ·common | `vercel.getAuthUser()` | — | 0 | Get the authenticated user's profile |
| `get-bulk-availability` | `vercel.getBulkAvailability()` | `--domains` | 1 | Check availability for multiple domains at once |
| `get-cache-status` | `vercel.getCacheStatus()` | — | 2 | Get the status of Remote Caching for the principal |
| `get-certs` | `vercel.getCerts()` | — | 5 | Retrieve SSL/TLS certificates for the authenticated user or team |
| `get-configurations` | `vercel.getConfigurations()` | `--view` | 4 | Get configurations for the authenticated user or team |
| `get-contact-info-schema` | `vercel.getContactInfoSchema()` | `--domain` | 2 | Retrieve the contact information schema for a domain's top-level domain (TLD) |
| `get-deployment` ·common | `vercel.getDeployment()` | `--idOrUrl` | 3 | Get a deployment by ID or URL |
| `get-deployment-details` ·common ·deprecated | `vercel.getDeploymentDetails()` | `--idOrUrl` | 3 | Use VERCEL_VERCEL_GET_DEPLOYMENT instead |
| `get-deployment-events` ·deprecated | `vercel.getDeploymentEvents()` | `--idOrUrl` | 11 | Use VERCEL_VERCEL_GET_DEPLOYMENT_EVENTS2 instead |
| `get-deployment-events2` | `vercel.getDeploymentEvents2()` | `--idOrUrl` | 11 | Get deployment events for a specific Vercel deployment by ID or URL |
| `get-deployment-file-contents` | `vercel.getDeploymentFileContents()` | `--fileId` `--id` | 3 | Retrieve the contents of a specific file from a Vercel deployment |
| `get-deployment-logs` ·deprecated | `vercel.getDeploymentLogs()` | `--idOrUrl` | 9 | Use VERCEL_VERCEL_GET_DEPLOYMENT_EVENTS2 instead |
| `get-deployment-logs2` | `vercel.getDeploymentLogs2()` | `--deploymentId` `--projectId` | 3 | Retrieve runtime logs for a specific Vercel deployment by project and deployment ID |
| `get-deployments` ·common | `vercel.getDeployments()` | — | 16 | List deployments from Vercel |
| `get-domain` | `vercel.getDomain()` | `--domain` | 2 | Retrieve complete information for a single domain |
| `get-domain-config` | `vercel.getDomainConfig()` | `--domain` | 4 | Get a domain's configuration details from Vercel |
| `get-domain-transfer-info` | `vercel.getDomainTransferInfo()` | `--domain` | 2 | Get information required to transfer a domain to Vercel |
| `get-drains` | `vercel.getDrains()` | — | 4 | Retrieve a list of all drains |
| `get-edge-config` | `vercel.getEdgeConfig()` | `--edgeConfigId` | 2 | Retrieve detailed information about a specific Edge Config by ID |
| `get-edge-config-backup` | `vercel.getEdgeConfigBackup()` | `--backupId` `--edgeConfigId` | 2 | Retrieve a specific backup version of an Edge Config |
| `get-edge-config-item` | `vercel.getEdgeConfigItem()` | `--edgeConfigId` `--edgeConfigItemKey` | 2 | Retrieve a specific item within an Edge Config |
| `get-edge-config-schema` | `vercel.getEdgeConfigSchema()` | `--edgeConfigId` | 2 | Retrieve the JSON schema of a specific Edge Config |
| `get-edge-config-token` | `vercel.getEdgeConfigToken()` | `--edgeConfigId` `--token` | 2 | Retrieve details of a specific token associated with an Edge Config |
| `get-firewall-config` | `vercel.getFirewallConfig()` | `--configVersion` `--projectId` | 2 | Retrieve firewall configuration for a Vercel project |
| `get-git-namespaces` | `vercel.getGitNamespaces()` | `--provider` | 1 | List Git namespaces (organizations/users) by provider |
| `get-project` ·common ·deprecated | `vercel.getProject()` | `--projectIdOrName` | 1 | Use VERCEL_VERCEL_GET_PROJECT2 instead |
| `get-project-domain` | `vercel.getProjectDomain()` | `--domain` `--idOrName` | 2 | Retrieve details about a specific domain attached to a Vercel project |
| `get-project-domains` | `vercel.getProjectDomains()` | `--idOrName` | 13 | Retrieve all domains attached to a Vercel project |
| `get-project-env` | `vercel.getProjectEnv()` | `--id` `--idOrName` | 2 | Retrieve the decrypted value of an environment variable from a Vercel project |
| `get-project2` | `vercel.getProject2()` | `--idOrName` | 2 | Find a project by ID or name with comprehensive details |
| `get-projects` ·common | `vercel.getProjects()` | — | 16 | Retrieve a list of projects from Vercel |
| `get-promote-aliases` | `vercel.getPromoteAliases()` | `--projectId` | 6 | Get a list of aliases with status for the current promote operation |
| `get-rolling-release` | `vercel.getRollingRelease()` | `--idOrName` | 3 | Retrieve active rolling release information for a Vercel project |
| `get-rolling-release-billing-status` | `vercel.getRollingReleaseBillingStatus()` | `--idOrName` | 2 | Retrieve the rolling release billing status for a Vercel project |
| `get-rolling-release-config` | `vercel.getRollingReleaseConfig()` | `--idOrName` | 2 | Get rolling release configuration for a Vercel project |
| `get-runtime-logs` ·deprecated | `vercel.getRuntimeLogs()` | `--deploymentId` `--projectId` | 2 | Use get-deployment-logs2 instead |
| `get-shared-env-var` | `vercel.getSharedEnvVar()` | `--id` | 2 | Retrieve the decrypted value of a Shared Environment Variable by id |
| `get-shared-env-variables` | `vercel.getSharedEnvVariables()` | — | 7 | List all shared environment variables for a team |
| `get-team` | `vercel.getTeam()` | `--teamId` | 1 | Retrieves detailed information about a specific Vercel team by its ID or slug |
| `get-teams` | `vercel.getTeams()` | — | 3 | List all teams accessible to the authenticated user with detailed information |
| `get-tld-info` | `vercel.getTldInfo()` | `--tld` | 1 | Get information about a specific top-level domain (TLD) |
| `get-tld-price` | `vercel.getTldPrice()` | `--tld` | 2 | Get pricing information for a specific top-level domain (TLD) |
| `get-user-events` | `vercel.getUserEvents()` | — | 10 | List user events |
| `get-webhook` | `vercel.getWebhook()` | `--id` | 2 | Retrieve details of a specific webhook by ID |
| `invalidate-cache-by-src-images` | `vercel.invalidateCacheBySrcImages()` | `--projectIdOrName` `--srcImages` | 2 | Invalidate edge cache by source image URLs |
| `invalidate-cache-by-tags` | `vercel.invalidateCacheByTags()` | `--projectIdOrName` `--tags` | 3 | Invalidate edge cache by tags |
| `list-aliases` | `vercel.listAliases()` | — | 9 | List aliases from Vercel API |
| `list-all-deployments` ·common ·deprecated | `vercel.listAllDeployments()` | — | 13 | Use get-deployments instead |
| `list-auth-tokens` ·common | `vercel.listAuthTokens()` | — | 1 | List authentication tokens |
| `list-deployment-aliases` | `vercel.listDeploymentAliases()` | `--id` | 2 | List all aliases assigned to a specific deployment |
| `list-deployment-checks` | `vercel.listDeploymentChecks()` | `--deploymentId` | 2 | Retrieve a list of checks for a specific deployment |
| `list-deployment-files` | `vercel.listDeploymentFiles()` | `--id` | 2 | List all files in a specific deployment |
| `list-dns-records` | `vercel.listDnsRecords()` | `--domain` | 5 | List existing DNS records for a domain |
| `list-domains` ·common | `vercel.listDomains()` | — | 5 | List all domains from Vercel |
| `list-edge-config-backups` | `vercel.listEdgeConfigBackups()` | `--edgeConfigId` | 5 | Retrieve backups for a specific Edge Config |
| `list-edge-config-items` | `vercel.listEdgeConfigItems()` | `--edgeConfigId` | 2 | Retrieve all items from a specific Edge Config |
| `list-edge-config-tokens` | `vercel.listEdgeConfigTokens()` | `--edgeConfigId` | 2 | Get all tokens of an Edge Config |
| `list-edge-configs` | `vercel.listEdgeConfigs()` | — | 2 | Retrieve all Edge Configs for an account or team |
| `list-env-variables` ·common ·deprecated | `vercel.listEnvVariables()` | `--projectId` | 4 | Use FilterProjectEnvs instead |
| `list-firewall-events` | `vercel.listFirewallEvents()` | `--projectId` | 4 | Retrieve firewall events and security actions for a specific Vercel project |
| `list-integration-log-drains` | `vercel.listIntegrationLogDrains()` | — | 2 | Retrieves a list of Integration log drains for a team or account |
| `list-project-custom-environments` | `vercel.listProjectCustomEnvironments()` | `--idOrName` | 3 | Retrieve custom environments for a Vercel project |
| `list-project-members` | `vercel.listProjectMembers()` | `--idOrName` | 6 | List all members of a Vercel project |
| `list-projects` ·common ·deprecated | `vercel.listProjects()` | — | 5 | Use GetProjects instead |
| `list-supported-tlds` | `vercel.listSupportedTlds()` | — | 1 | Retrieve all TLDs (top-level domains) supported by Vercel for domain registration |
| `list-team-members` | `vercel.listTeamMembers()` | `--teamId` | 7 | List all members of a Vercel team |
| `list-teams` ·deprecated | `vercel.listTeams()` | — | 3 | Use VERCEL_VERCEL_GET_TEAMS instead |
| `list-webhooks` | `vercel.listWebhooks()` | — | 3 | Retrieve a list of all webhooks for the authenticated account or team |
| `move-project-domain` | `vercel.moveProjectDomain()` | `--domain` `--idOrName` `--projectId` | 5 | Move a domain from one Vercel project to another |
| `pause-project` | `vercel.pauseProject()` | `--projectId` | 2 | Pause a Vercel project |
| `read-firewall-config` | `vercel.readFirewallConfig()` | `--projectId` | 1 | Read firewall configuration for a Vercel project |
| `record-events` | `vercel.recordEvents()` | `--events` | 4 | Record artifacts cache usage events |
| `remove-project-domain` | `vercel.removeProjectDomain()` | `--domain` `--idOrName` | 3 | Remove a domain from a Vercel project |
| `replace-firewall-config` | `vercel.replaceFirewallConfig()` | `--firewallEnabled` `--projectId` | 7 | Update firewall configuration for a Vercel project |
| `request-delete-user` | `vercel.requestDeleteUser()` | — | 1 | Initiate user account deletion on Vercel |
| `request-promote` | `vercel.requestPromote()` | `--deploymentId` `--projectId` | 2 | Promote a deployment to production by pointing all production domains for a project to the given deployment |
| `search-repo` | `vercel.searchRepo()` | — | 7 | Search and list Git repositories linked to a namespace by provider |
| `test-drain` | `vercel.testDrain()` | `--delivery` `--schemas` | 2 | Validate a drain delivery configuration by sending a test request |
| `transfer-in-domain` | `vercel.transferInDomain()` | `--authCode` `--autoRenew` `--contactInformation` `--domain` `--expectedPrice` `--years` | 1 | Transfer a domain to Vercel from another registrar |
| `unlink-shared-env-variable` | `vercel.unlinkSharedEnvVariable()` | `--id` `--projectId` | 2 | Disconnect a shared environment variable from a Vercel project |
| `unpause-project` | `vercel.unpauseProject()` | `--projectId` | 2 | Unpause a specific project by its ID |
| `update-attack-challenge-mode` | `vercel.updateAttackChallengeMode()` | `--attackModeActiveUntil` `--attackModeEnabled` `--projectId` | 2 | Update Attack Challenge mode for a Vercel project |
| `update-dns-record` | `vercel.updateDnsRecord()` | `--recordId` | 10 | Update an existing DNS record |
| `update-domain` | `vercel.updateDomain()` | `--domain` `--op` | 6 | Update or move an apex domain on Vercel |
| `update-edge-config` | `vercel.updateEdgeConfig()` | `--edgeConfigId` `--slug` | 2 | Update an Edge Config by changing its slug |
| `update-edge-config-items` | `vercel.updateEdgeConfigItems()` | `--edgeConfigId` `--items` | 3 | Update items within a specific Edge Config |
| `update-edge-config-schema` | `vercel.updateEdgeConfigSchema()` | `--edgeConfigId` `--requestBody` | 3 | Update the JSON Schema for an Edge Config |
| `update-firewall-config` | `vercel.updateFirewallConfig()` | `--action` `--projectId` | 4 | Incrementally update Vercel Firewall configuration for a project using PATCH |
| `update-project` ·common ·deprecated | `vercel.updateProject()` | `--idOrName` | 26 | Use VERCEL_VERCEL_UPDATE_PROJECT2 instead |
| `update-project-data-cache` | `vercel.updateProjectDataCache()` | `--projectId` | 3 | Update the data cache feature for a Vercel project |
| `update-project-domain` | `vercel.updateProjectDomain()` | `--domain` `--idOrName` | 5 | Update a project domain in Vercel |
| `update-project-protection-bypass` | `vercel.updateProjectProtectionBypass()` | `--idOrName` | 5 | Update protection bypass for automation on a Vercel project |
| `update-project2` | `vercel.updateProject2()` | `--idOrName` | 33 | Update an existing Vercel project configuration |
| `update-shared-env-variable` | `vercel.updateSharedEnvVariable()` | `--updates` | 2 | Update one or more shared environment variables |
| `update-static-ips` | `vercel.updateStaticIps()` | `--idOrName` | 4 | Configure Static IPs for a Vercel project |
| `update-team` | `vercel.updateTeam()` | `--teamId` | 17 | Update a Vercel team's configuration |
| `update-url-protection-bypass` | `vercel.updateUrlProtectionBypass()` | `--id` | 6 | Update the protection bypass for a URL |
| `upload-artifact` | `vercel.uploadArtifact()` | `--artifact` `--hash` | 6 | Upload a cache artifact to Vercel |
| `upload-file` | `vercel.uploadFile()` | `--file-to-upload` | 6 | Upload deployment files to Vercel |
| `verify-project-domain` | `vercel.verifyProjectDomain()` | `--domain` `--idOrName` | 2 | Attempts to verify a project domain by checking if DNS challenges are correctly configured |

## Docs

- [run CLI](https://docs.boxd.sh/cli/run): Call connected integrations from the shell, connect new ones, and run automations.
- [Quickstart](https://docs.boxd.sh/guides/integrations/quickstart): Connect an integration, call it from the shell, and turn a script into an automation.
- [Connections](https://docs.boxd.sh/guides/integrations/connections): Connect an account once, for yourself or for your whole organization.
- [Scripts](https://docs.boxd.sh/guides/automations/scripts): Typed integrations, triggers, schedules and state in a .run.ts file.
- [Jobs](https://docs.boxd.sh/guides/automations/jobs): How a script becomes a background job: states, retries, sleep and wake.
- [Beyond the catalog](https://docs.boxd.sh/guides/automations/beyond-the-catalog): Reach your own APIs, databases and cloud accounts from a script.
