# Vercel (/integrations/vercel)





{/* MANUAL-CONTENT-START:intro */}

Use [Vercel](https://vercel.com/) to manage deployments, projects, domains, DNS records, environment variables, aliases, and Edge Config from a workflow. Deployment, project, and domain events can trigger workflows.

{/* MANUAL-CONTENT-END */}

## Use the block [#usage-instructions]

Integrate with Vercel to manage deployments, projects, domains, DNS records, environment variables, aliases, edge configs, teams, and more.

## Actions [#actions]

### Vercel List Deployments [#vercel-list-deployments]

List deployments for a Vercel project or team

<ReferenceDetails>
  #### Input [#input]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | No | Filter deployments by project ID or name |
  | `target` | string | No | Filter by environment: production or staging |
  | `state` | string | No | Filter by state: BUILDING, ERROR, INITIALIZING, QUEUED, READY, CANCELED, BLOCKED |
  | `app` | string | No | Filter by deployment name |
  | `since` | number | No | Get deployments created after this JavaScript timestamp |
  | `until` | number | No | Get deployments created before this JavaScript timestamp |
  | `limit` | number | No | Maximum number of deployments to return per request |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output]

  | Parameter | Type | Description |
  | - | - | - |
  | `deployments` | array | List of deployments |
  | ↳ `uid` | string | Unique deployment identifier |
  | ↳ `name` | string | Deployment name |
  | ↳ `url` | string | Deployment URL |
  | ↳ `state` | string | Deployment state: BUILDING, ERROR, INITIALIZING, QUEUED, READY, CANCELED, DELETED, BLOCKED |
  | ↳ `target` | string | Target environment |
  | ↳ `created` | number | Creation timestamp |
  | ↳ `projectId` | string | Associated project ID |
  | ↳ `source` | string | Deployment source: api-trigger-git-deploy, cli, clone/repo, git, import, import/repo, redeploy, v0-web |
  | ↳ `inspectorUrl` | string | Vercel inspector URL |
  | ↳ `checksState` | string | Checks state: completed, registered, running |
  | ↳ `checksConclusion` | string | Checks conclusion: succeeded, failed, skipped, canceled |
  | ↳ `errorMessage` | string | Deployment error message |
  | ↳ `creator` | object | Creator information |
  | ↳ `uid` | string | Creator user ID |
  | ↳ `email` | string | Creator email |
  | ↳ `username` | string | Creator username |
  | ↳ `meta` | object | Git provider metadata (key-value strings) |
  | `count` | number | Number of deployments returned |
  | `hasMore` | boolean | Whether more deployments are available |
</ReferenceDetails>

### Vercel Get Deployment [#vercel-get-deployment]

Get details of a specific Vercel deployment

<ReferenceDetails>
  #### Input [#input-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | The unique deployment identifier or hostname |
  | `withGitRepoInfo` | string | No | Whether to add in gitRepo information (true/false) |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-1]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Deployment ID |
  | `name` | string | Deployment name |
  | `url` | string | Unique deployment URL |
  | `readyState` | string | Deployment ready state: QUEUED, BUILDING, ERROR, INITIALIZING, READY, CANCELED |
  | `status` | string | Deployment status |
  | `target` | string | Target environment |
  | `createdAt` | number | Creation timestamp in milliseconds |
  | `buildingAt` | number | Build start timestamp |
  | `ready` | number | Ready timestamp |
  | `source` | string | Deployment source: cli, git, redeploy, import, v0-web, etc. |
  | `alias` | array | Assigned aliases |
  | `regions` | array | Deployment regions |
  | `inspectorUrl` | string | Vercel inspector URL |
  | `projectId` | string | Associated project ID |
  | `creator` | object | Creator information |
  | ↳ `uid` | string | Creator user ID |
  | ↳ `username` | string | Creator username |
  | `project` | object | Associated project |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | ↳ `framework` | string | Project framework |
  | `meta` | object | Deployment metadata (key-value strings) |
  | ↳ `githubCommitSha` | string | GitHub commit SHA |
  | ↳ `githubCommitMessage` | string | GitHub commit message |
  | ↳ `githubCommitRef` | string | GitHub branch/ref |
  | ↳ `githubRepo` | string | GitHub repository |
  | ↳ `githubOrg` | string | GitHub organization |
  | ↳ `githubCommitAuthorName` | string | Commit author name |
  | `gitSource` | object | Git source information |
  | ↳ `type` | string | Git provider type (e.g., github, gitlab, bitbucket) |
  | ↳ `ref` | string | Git ref (branch or tag) |
  | ↳ `sha` | string | Git commit SHA |
  | ↳ `repoId` | string | Repository ID |
  | `errorCode` | string | Deployment error code |
  | `errorMessage` | string | Deployment error message |
  | `aliasAssigned` | boolean | Whether the alias has been assigned |
</ReferenceDetails>

### Vercel Create Deployment [#vercel-create-deployment]

Create a new deployment or redeploy an existing one

<ReferenceDetails>
  #### Input [#input-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `name` | string | Yes | Project name for the deployment |
  | `project` | string | No | Project ID (overrides name for project lookup) |
  | `deploymentId` | string | No | Existing deployment ID to redeploy |
  | `target` | string | No | Target environment: production, staging, or a custom environment identifier |
  | `gitSource` | string | No | JSON string defining the Git Repository source to deploy (e.g. \{"type":"github","repo":"owner/repo","ref":"main"}) |
  | `forceNew` | string | No | Forces a new deployment even if there is a previous similar deployment (0 or 1) |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-2]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Deployment ID |
  | `name` | string | Deployment name |
  | `url` | string | Unique deployment URL |
  | `readyState` | string | Deployment ready state: QUEUED, BUILDING, ERROR, INITIALIZING, READY, CANCELED |
  | `projectId` | string | Associated project ID |
  | `createdAt` | number | Creation timestamp in milliseconds |
  | `alias` | array | Assigned aliases |
  | `target` | string | Target environment |
  | `inspectorUrl` | string | Vercel inspector URL |
  | `errorCode` | string | Deployment error code |
  | `errorMessage` | string | Deployment error message |
  | `aliasAssigned` | boolean | Whether the alias has been assigned |
</ReferenceDetails>

### Vercel Cancel Deployment [#vercel-cancel-deployment]

Cancel a running Vercel deployment

<ReferenceDetails>
  #### Input [#input-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | The deployment ID to cancel |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-3]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Deployment ID |
  | `name` | string | Deployment name |
  | `state` | string | Deployment state after cancellation |
  | `url` | string | Deployment URL |
  | `status` | string | Deployment status |
  | `projectId` | string | Associated project ID |
  | `inspectorUrl` | string | Vercel inspector URL |
</ReferenceDetails>

### Vercel Delete Deployment [#vercel-delete-deployment]

Delete a Vercel deployment

<ReferenceDetails>
  #### Input [#input-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | The deployment ID or URL to delete |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-4]

  | Parameter | Type | Description |
  | - | - | - |
  | `uid` | string | The removed deployment ID |
  | `state` | string | Deployment state after deletion (DELETED) |
</ReferenceDetails>

### Vercel Get Deployment Events [#vercel-get-deployment-events]

Get build and runtime events for a Vercel deployment

<ReferenceDetails>
  #### Input [#input-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | The unique deployment identifier or hostname |
  | `direction` | string | No | Order of events by timestamp: backward or forward (default: forward) |
  | `follow` | number | No | When set to 1, returns live events as they happen |
  | `limit` | number | No | Maximum number of events to return (-1 for all) |
  | `since` | number | No | Timestamp to start pulling build logs from |
  | `until` | number | No | Timestamp to stop pulling build logs at |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-5]

  | Parameter | Type | Description |
  | - | - | - |
  | `events` | array | List of deployment events |
  | ↳ `type` | string | Event type: delimiter, command, stdout, stderr, exit, deployment-state, middleware, middleware-invocation, edge-function-invocation, metric, report, fatal |
  | ↳ `created` | number | Event creation timestamp |
  | ↳ `date` | number | Event date timestamp |
  | ↳ `text` | string | Event text content |
  | ↳ `serial` | string | Event serial identifier |
  | ↳ `deploymentId` | string | Associated deployment ID |
  | ↳ `id` | string | Event unique identifier |
  | ↳ `level` | string | Event level: error or warning |
  | ↳ `info` | object | Build step info (type, name, entrypoint, path, step, readyState) |
  | `count` | number | Number of events returned |
</ReferenceDetails>

### Vercel List Deployment Files [#vercel-list-deployment-files]

List files in a Vercel deployment

<ReferenceDetails>
  #### Input [#input-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | The deployment ID to list files for |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-6]

  | Parameter | Type | Description |
  | - | - | - |
  | `files` | array | List of deployment files |
  | ↳ `name` | string | The name of the file tree entry |
  | ↳ `type` | string | File type: directory, file, symlink, lambda, middleware, or invalid |
  | ↳ `uid` | string | Unique file identifier (only valid for file type) |
  | ↳ `mode` | number | File mode indicating file type and permissions |
  | ↳ `contentType` | string | Content-type of the file (only valid for file type) |
  | ↳ `children` | array | Child files of the directory (only valid for directory type) |
  | ↳ `name` | string | File name |
  | ↳ `type` | string | Entry type |
  | ↳ `uid` | string | File identifier |
  | `count` | number | Number of files returned |
</ReferenceDetails>

### Vercel Promote Deployment [#vercel-promote-deployment]

Promote a deployment by pointing the production deployment to the given deployment

<ReferenceDetails>
  #### Input [#input-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `deploymentId` | string | Yes | The ID of the deployment to promote to production |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-7]

  | Parameter | Type | Description |
  | - | - | - |
  | `promoted` | boolean | Whether the deployment was promoted to production |
</ReferenceDetails>

### Vercel List Projects [#vercel-list-projects]

List all projects in a Vercel team or account

<ReferenceDetails>
  #### Input [#input-8]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `search` | string | No | Search projects by name |
  | `limit` | number | No | Maximum number of projects to return |
  | `from` | string | No | Continuation token for pagination, taken from the previous response's pagination.next value. Query only projects updated after this timestamp or continuation token. |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-8]

  | Parameter | Type | Description |
  | - | - | - |
  | `projects` | array | List of projects |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | ↳ `framework` | string | Framework |
  | ↳ `rootDirectory` | string | Root directory of the project |
  | ↳ `nodeVersion` | string | Node.js version |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last updated timestamp |
  | `count` | number | Number of projects returned |
  | `hasMore` | boolean | Whether more projects are available |
  | `nextFrom` | string | Continuation token to pass as `from` to fetch the next page |
</ReferenceDetails>

### Vercel Get Project [#vercel-get-project]

Get details of a specific Vercel project

<ReferenceDetails>
  #### Input [#input-9]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-9]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Project ID |
  | `name` | string | Project name |
  | `framework` | string | Project framework |
  | `rootDirectory` | string | Root directory of the project |
  | `nodeVersion` | string | Node.js version |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last updated timestamp |
  | `link` | object | Git repository connection |
  | ↳ `type` | string | Repository type (github, gitlab, bitbucket) |
  | ↳ `repo` | string | Repository name |
  | ↳ `org` | string | Organization or owner |
</ReferenceDetails>

### Vercel Create Project [#vercel-create-project]

Create a new Vercel project

<ReferenceDetails>
  #### Input [#input-10]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `name` | string | Yes | Project name |
  | `framework` | string | No | Project framework (e.g. nextjs, remix, vite) |
  | `gitRepository` | json | No | Git repository connection object with type and repo |
  | `buildCommand` | string | No | Custom build command |
  | `outputDirectory` | string | No | Custom output directory |
  | `installCommand` | string | No | Custom install command |
  | `rootDirectory` | string | No | Subdirectory of the repository the project lives in (for monorepos) |
  | `nodeVersion` | string | No | Node.js version to use (e.g. 22.x, 20.x, 18.x) |
  | `devCommand` | string | No | Custom dev server command |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-10]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Project ID |
  | `name` | string | Project name |
  | `framework` | string | Project framework |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last updated timestamp |
</ReferenceDetails>

### Vercel Update Project [#vercel-update-project]

Update an existing Vercel project

<ReferenceDetails>
  #### Input [#input-11]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `name` | string | No | New project name |
  | `framework` | string | No | Project framework (e.g. nextjs, remix, vite) |
  | `buildCommand` | string | No | Custom build command |
  | `outputDirectory` | string | No | Custom output directory |
  | `installCommand` | string | No | Custom install command |
  | `rootDirectory` | string | No | Subdirectory of the repository the project lives in (for monorepos) |
  | `nodeVersion` | string | No | Node.js version to use (e.g. 22.x, 20.x, 18.x) |
  | `devCommand` | string | No | Custom dev server command |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-11]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Project ID |
  | `name` | string | Project name |
  | `framework` | string | Project framework |
  | `updatedAt` | number | Last updated timestamp |
</ReferenceDetails>

### Vercel Delete Project [#vercel-delete-project]

Delete a Vercel project

<ReferenceDetails>
  #### Input [#input-12]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-12]

  | Parameter | Type | Description |
  | - | - | - |
  | `deleted` | boolean | Whether the project was successfully deleted |
</ReferenceDetails>

### Vercel Pause Project [#vercel-pause-project]

Pause a Vercel project

<ReferenceDetails>
  #### Input [#input-13]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-13]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Project ID |
  | `name` | string | Project name |
  | `paused` | boolean | Whether the project is paused |
</ReferenceDetails>

### Vercel Unpause Project [#vercel-unpause-project]

Unpause a Vercel project

<ReferenceDetails>
  #### Input [#input-14]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-14]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Project ID |
  | `name` | string | Project name |
  | `paused` | boolean | Whether the project is paused |
</ReferenceDetails>

### Vercel List Project Domains [#vercel-list-project-domains]

List all domains for a Vercel project

<ReferenceDetails>
  #### Input [#input-15]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |
  | `limit` | number | No | Maximum number of domains to return |

  #### Output [#output-15]

  | Parameter | Type | Description |
  | - | - | - |
  | `domains` | array | List of project domains |
  | ↳ `name` | string | Domain name |
  | ↳ `apexName` | string | Apex domain name |
  | ↳ `projectId` | string | Project ID the domain belongs to |
  | ↳ `redirect` | string | Redirect target |
  | ↳ `redirectStatusCode` | number | Redirect status code |
  | ↳ `verified` | boolean | Whether the domain is verified |
  | ↳ `gitBranch` | string | Git branch for the domain |
  | ↳ `verification` | array | Domain verification challenges (type, domain, value, reason) |
  | ↳ `type` | string | Challenge type |
  | ↳ `domain` | string | Domain to add the record to |
  | ↳ `value` | string | Expected record value |
  | ↳ `reason` | string | Why verification is needed |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last updated timestamp |
  | `count` | number | Number of domains returned |
  | `hasMore` | boolean | Whether more domains are available |
</ReferenceDetails>

### Vercel Add Project Domain [#vercel-add-project-domain]

Add a domain to a Vercel project

<ReferenceDetails>
  #### Input [#input-16]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `domain` | string | Yes | Domain name to add |
  | `redirect` | string | No | Target domain for redirect |
  | `redirectStatusCode` | number | No | HTTP status code for redirect (301, 302, 307, 308) |
  | `gitBranch` | string | No | Git branch to link the domain to |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-16]

  | Parameter | Type | Description |
  | - | - | - |
  | `name` | string | Domain name |
  | `apexName` | string | Apex domain name |
  | `projectId` | string | Project ID the domain belongs to |
  | `verified` | boolean | Whether the domain is verified |
  | `gitBranch` | string | Git branch for the domain |
  | `redirect` | string | Redirect target domain |
  | `redirectStatusCode` | number | HTTP status code for redirect (301, 302, 307, 308) |
  | `verification` | array | Domain verification challenges (type, domain, value, reason) |
  | ↳ `type` | string | Challenge type |
  | ↳ `domain` | string | Domain to add the record to |
  | ↳ `value` | string | Expected record value |
  | ↳ `reason` | string | Why verification is needed |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last updated timestamp |
</ReferenceDetails>

### Vercel Remove Project Domain [#vercel-remove-project-domain]

Remove a domain from a Vercel project

<ReferenceDetails>
  #### Input [#input-17]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `domain` | string | Yes | Domain name to remove |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-17]

  | Parameter | Type | Description |
  | - | - | - |
  | `deleted` | boolean | Whether the domain was successfully removed |
</ReferenceDetails>

### Vercel Update Project Domain [#vercel-update-project-domain]

Update a project domain's configuration on Vercel

<ReferenceDetails>
  #### Input [#input-18]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `domain` | string | Yes | Domain name to update |
  | `redirect` | string | No | Target destination domain for redirect |
  | `redirectStatusCode` | number | No | HTTP status code for redirect (301, 302, 307, 308) |
  | `gitBranch` | string | No | Git branch to link the domain to |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-18]

  | Parameter | Type | Description |
  | - | - | - |
  | `name` | string | Domain name |
  | `apexName` | string | Apex domain name |
  | `projectId` | string | Project ID the domain belongs to |
  | `verified` | boolean | Whether the domain is verified |
  | `redirect` | string | Redirect target domain |
  | `redirectStatusCode` | number | HTTP status code for redirect (301, 302, 307, 308) |
  | `gitBranch` | string | Git branch for the domain |
  | `verification` | array | Domain verification challenges (type, domain, value, reason) |
  | ↳ `type` | string | Challenge type |
  | ↳ `domain` | string | Domain to add the record to |
  | ↳ `value` | string | Expected record value |
  | ↳ `reason` | string | Why verification is needed |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last updated timestamp |
</ReferenceDetails>

### Vercel Verify Project Domain [#vercel-verify-project-domain]

Verify a Vercel project domain by checking its verification challenge

<ReferenceDetails>
  #### Input [#input-19]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `domain` | string | Yes | Domain name to verify |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-19]

  | Parameter | Type | Description |
  | - | - | - |
  | `name` | string | Domain name |
  | `apexName` | string | Apex domain name |
  | `projectId` | string | Project ID |
  | `verified` | boolean | Whether the domain is verified |
  | `redirect` | string | Redirect target domain |
  | `redirectStatusCode` | number | Redirect status code (301, 302, 307, 308) |
  | `gitBranch` | string | Git branch linked to the domain |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
</ReferenceDetails>

### Vercel Get Environment Variables [#vercel-get-environment-variables]

Retrieve environment variables for a Vercel project

<ReferenceDetails>
  #### Input [#input-20]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `decrypt` | boolean | No | If true, decrypted variable values are returned instead of ciphertext |
  | `gitBranch` | string | No | Filter results to the environment variables for this git branch (must have target=preview) |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-20]

  | Parameter | Type | Description |
  | - | - | - |
  | `envs` | array | List of environment variables |
  | ↳ `id` | string | Environment variable ID |
  | ↳ `key` | string | Variable name |
  | ↳ `value` | string | Variable value |
  | ↳ `type` | string | Variable type (secret, system, encrypted, plain, sensitive) |
  | ↳ `target` | array | Target environments |
  | ↳ `gitBranch` | string | Git branch filter |
  | ↳ `comment` | string | Comment providing context for the variable |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | `count` | number | Number of environment variables returned |
</ReferenceDetails>

### Vercel Create Environment Variable [#vercel-create-environment-variable]

Create an environment variable for a Vercel project

<ReferenceDetails>
  #### Input [#input-21]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `key` | string | Yes | Environment variable name |
  | `value` | string | Yes | Environment variable value |
  | `target` | string | Yes | Comma-separated list of target environments (production, preview, development) |
  | `type` | string | No | Variable type: system, encrypted, plain, or sensitive (default: plain) |
  | `gitBranch` | string | No | Git branch to associate with the variable (requires target to include preview) |
  | `comment` | string | No | Comment to add context to the variable (max 500 characters) |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-21]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Environment variable ID |
  | `key` | string | Variable name |
  | `value` | string | Variable value |
  | `type` | string | Variable type (secret, system, encrypted, plain, sensitive) |
  | `target` | array | Target environments |
  | `gitBranch` | string | Git branch filter |
  | `comment` | string | Comment providing context for the variable |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
</ReferenceDetails>

### Vercel Update Environment Variable [#vercel-update-environment-variable]

Update an environment variable for a Vercel project

<ReferenceDetails>
  #### Input [#input-22]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `envId` | string | Yes | Environment variable ID to update |
  | `key` | string | No | New variable name |
  | `value` | string | No | New variable value |
  | `target` | string | No | Comma-separated list of target environments (production, preview, development) |
  | `type` | string | No | Variable type: system, encrypted, plain, or sensitive |
  | `gitBranch` | string | No | Git branch to associate with the variable (requires target to include preview) |
  | `comment` | string | No | Comment to add context to the variable (max 500 characters) |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-22]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Environment variable ID |
  | `key` | string | Variable name |
  | `value` | string | Variable value |
  | `type` | string | Variable type (secret, system, encrypted, plain, sensitive) |
  | `target` | array | Target environments |
  | `gitBranch` | string | Git branch filter |
  | `comment` | string | Comment providing context for the variable |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
</ReferenceDetails>

### Vercel Delete Environment Variable [#vercel-delete-environment-variable]

Delete an environment variable from a Vercel project

<ReferenceDetails>
  #### Input [#input-23]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | Yes | Project ID or name |
  | `envId` | string | Yes | Environment variable ID to delete |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-23]

  | Parameter | Type | Description |
  | - | - | - |
  | `deleted` | boolean | Whether the environment variable was successfully deleted |
</ReferenceDetails>

### Vercel List Domains [#vercel-list-domains]

List all domains in a Vercel account or team

<ReferenceDetails>
  #### Input [#input-24]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `limit` | number | No | Maximum number of domains to return (default 20) |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-24]

  | Parameter | Type | Description |
  | - | - | - |
  | `domains` | array | List of domains |
  | ↳ `id` | string | Domain ID |
  | ↳ `name` | string | Domain name |
  | ↳ `verified` | boolean | Whether domain is verified |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `expiresAt` | number | Expiration timestamp |
  | ↳ `serviceType` | string | Service type (zeit.world, external, na) |
  | ↳ `nameservers` | array | Current nameservers |
  | ↳ `intendedNameservers` | array | Intended nameservers |
  | ↳ `renew` | boolean | Whether auto-renewal is enabled |
  | ↳ `boughtAt` | number | Purchase timestamp |
  | ↳ `transferredAt` | number | Transfer completion timestamp |
  | ↳ `creator` | object | Domain creator (id, username, email) |
  | ↳ `id` | string | Creator ID |
  | ↳ `username` | string | Creator username |
  | ↳ `email` | string | Creator email |
  | ↳ `customNameservers` | array | Custom nameservers |
  | ↳ `userId` | string | Owner user ID |
  | ↳ `teamId` | string | Owner team ID |
  | ↳ `transferStartedAt` | number | Transfer start timestamp |
  | `count` | number | Number of domains returned |
  | `hasMore` | boolean | Whether more domains are available |
</ReferenceDetails>

### Vercel Get Domain [#vercel-get-domain]

Get information about a specific domain in a Vercel account

<ReferenceDetails>
  #### Input [#input-25]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `domain` | string | Yes | The domain name to retrieve |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-25]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Domain ID |
  | `name` | string | Domain name |
  | `verified` | boolean | Whether domain is verified |
  | `createdAt` | number | Creation timestamp |
  | `expiresAt` | number | Expiration timestamp |
  | `serviceType` | string | Service type (zeit.world, external, na) |
  | `nameservers` | array | Current nameservers |
  | `intendedNameservers` | array | Intended nameservers |
  | `customNameservers` | array | Custom nameservers |
  | `renew` | boolean | Whether auto-renewal is enabled |
  | `boughtAt` | number | Purchase timestamp |
  | `transferredAt` | number | Transfer completion timestamp |
  | `creator` | object | Domain creator (id, username, email) |
  | ↳ `id` | string | Creator ID |
  | ↳ `username` | string | Creator username |
  | ↳ `email` | string | Creator email |
  | `userId` | string | Owner user ID |
  | `teamId` | string | Owner team ID |
  | `transferStartedAt` | number | Transfer start timestamp |
</ReferenceDetails>

### Vercel Add Domain [#vercel-add-domain]

Add a new domain to a Vercel account or team

<ReferenceDetails>
  #### Input [#input-26]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `name` | string | Yes | The domain name to add |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-26]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Domain ID |
  | `name` | string | Domain name |
  | `verified` | boolean | Whether domain is verified |
  | `createdAt` | number | Creation timestamp |
  | `serviceType` | string | Service type (zeit.world, external, na) |
  | `nameservers` | array | Current nameservers |
  | `intendedNameservers` | array | Intended nameservers |
  | `expiresAt` | number | Expiration timestamp |
  | `customNameservers` | array | Custom nameservers |
  | `renew` | boolean | Whether auto-renewal is enabled |
  | `boughtAt` | number | Purchase timestamp |
  | `transferredAt` | number | Transfer completion timestamp |
  | `creator` | object | Domain creator (id, username, email) |
  | ↳ `id` | string | Creator ID |
  | ↳ `username` | string | Creator username |
  | ↳ `email` | string | Creator email |
</ReferenceDetails>

### Vercel Delete Domain [#vercel-delete-domain]

Delete a domain from a Vercel account or team

<ReferenceDetails>
  #### Input [#input-27]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `domain` | string | Yes | The domain name to delete |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-27]

  | Parameter | Type | Description |
  | - | - | - |
  | `uid` | string | The ID of the deleted domain |
  | `deleted` | boolean | Whether the domain was deleted |
</ReferenceDetails>

### Vercel Get Domain Config [#vercel-get-domain-config]

Get the configuration for a domain in a Vercel account

<ReferenceDetails>
  #### Input [#input-28]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `domain` | string | Yes | The domain name to get configuration for |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-28]

  | Parameter | Type | Description |
  | - | - | - |
  | `configuredBy` | string | How the domain is configured (CNAME, A, http, dns-01, or null) |
  | `acceptedChallenges` | array | Accepted challenge types for certificate issuance (dns-01, http-01) |
  | `misconfigured` | boolean | Whether the domain is misconfigured for TLS certificate generation |
  | `recommendedIPv4` | array | Recommended IPv4 addresses with rank values |
  | ↳ `rank` | number | Priority rank (1 is preferred) |
  | ↳ `value` | array | IPv4 addresses |
  | `recommendedCNAME` | array | Recommended CNAME records with rank values |
  | ↳ `rank` | number | Priority rank (1 is preferred) |
  | ↳ `value` | string | CNAME value |
</ReferenceDetails>

### Vercel List DNS Records [#vercel-list-dns-records]

List all DNS records for a domain in a Vercel account

<ReferenceDetails>
  #### Input [#input-29]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `domain` | string | Yes | The domain name to list records for |
  | `limit` | number | No | Maximum number of records to return |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-29]

  | Parameter | Type | Description |
  | - | - | - |
  | `records` | array | List of DNS records |
  | ↳ `id` | string | Record ID |
  | ↳ `slug` | string | Record slug |
  | ↳ `name` | string | Record name |
  | ↳ `type` | string | Record type (A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, SRV, TXT, NS) |
  | ↳ `value` | string | Record value |
  | ↳ `ttl` | number | Time to live in seconds |
  | ↳ `mxPriority` | number | MX record priority |
  | ↳ `priority` | number | Record priority |
  | ↳ `creator` | string | Creator identifier |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | ↳ `comment` | string | Record comment |
  | `count` | number | Number of records returned |
  | `hasMore` | boolean | Whether more records are available |
</ReferenceDetails>

### Vercel Create DNS Record [#vercel-create-dns-record]

Create a DNS record for a domain in a Vercel account

<ReferenceDetails>
  #### Input [#input-30]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `domain` | string | Yes | The domain name to create the record for |
  | `recordName` | string | Yes | The subdomain or record name |
  | `recordType` | string | Yes | DNS record type (A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, SRV, TXT, NS) |
  | `value` | string | No | The value of the DNS record (not used for SRV/HTTPS records) |
  | `ttl` | number | No | Time to live in seconds |
  | `mxPriority` | number | No | Priority for MX records |
  | `srvTarget` | string | No | Target hostname for SRV records (required when recordType is SRV) |
  | `srvWeight` | number | No | Weight for SRV records (required when recordType is SRV) |
  | `srvPort` | number | No | Port for SRV records (required when recordType is SRV) |
  | `srvPriority` | number | No | Priority for SRV records (required when recordType is SRV) |
  | `httpsTarget` | string | No | Target hostname for HTTPS records (required when recordType is HTTPS) |
  | `httpsPriority` | number | No | Priority for HTTPS records (required when recordType is HTTPS) |
  | `httpsParams` | string | No | Optional service parameters for HTTPS records (e.g. "alpn=h2,h3") |
  | `comment` | string | No | A comment to add context on what this DNS record is for (max 500 characters) |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-30]

  | Parameter | Type | Description |
  | - | - | - |
  | `uid` | string | The DNS record ID |
  | `updated` | number | Timestamp of the update |
</ReferenceDetails>

### Vercel Update DNS Record [#vercel-update-dns-record]

Update an existing DNS record for a domain in a Vercel account

<ReferenceDetails>
  #### Input [#input-31]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `recordId` | string | Yes | The ID of the DNS record to update |
  | `name` | string | No | The name of the DNS record |
  | `value` | string | No | The value of the DNS record |
  | `type` | string | No | DNS record type (A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, SRV, TXT, NS) |
  | `ttl` | number | No | Time to live in seconds (60 to 2147483647) |
  | `mxPriority` | number | No | Priority for MX records |
  | `srvTarget` | string | No | Target hostname for SRV records (required together when updating SRV data) |
  | `srvWeight` | number | No | Weight for SRV records (required together when updating SRV data) |
  | `srvPort` | number | No | Port for SRV records (required together when updating SRV data) |
  | `srvPriority` | number | No | Priority for SRV records (required together when updating SRV data) |
  | `httpsTarget` | string | No | Target hostname for HTTPS records (required together when updating HTTPS data) |
  | `httpsPriority` | number | No | Priority for HTTPS records (required together when updating HTTPS data) |
  | `httpsParams` | string | No | Optional service parameters for HTTPS records (e.g. "alpn=h2,h3") |
  | `comment` | string | No | A comment to add context on what this DNS record is for (max 500 characters) |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-31]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | The DNS record ID |
  | `name` | string | The name of the DNS record |
  | `type` | string | The record class (record or record-sys) |
  | `value` | string | The value of the DNS record |
  | `creator` | string | The creator of the DNS record |
  | `domain` | string | The domain the record belongs to |
  | `ttl` | number | Time to live in seconds |
  | `comment` | string | Comment providing context for the record |
  | `recordType` | string | DNS record type (A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, NS, SRV, TXT) |
  | `createdAt` | number | Timestamp of record creation |
</ReferenceDetails>

### Vercel Delete DNS Record [#vercel-delete-dns-record]

Delete a DNS record for a domain in a Vercel account

<ReferenceDetails>
  #### Input [#input-32]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `domain` | string | Yes | The domain name the record belongs to |
  | `recordId` | string | Yes | The ID of the DNS record to delete |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-32]

  | Parameter | Type | Description |
  | - | - | - |
  | `deleted` | boolean | Whether the record was deleted |
</ReferenceDetails>

### Vercel List Aliases [#vercel-list-aliases]

List aliases for a Vercel project or team

<ReferenceDetails>
  #### Input [#input-33]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | No | Filter aliases by project ID |
  | `domain` | string | No | Filter aliases by domain |
  | `limit` | number | No | Maximum number of aliases to return |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-33]

  | Parameter | Type | Description |
  | - | - | - |
  | `aliases` | array | List of aliases |
  | ↳ `uid` | string | Alias ID |
  | ↳ `alias` | string | Alias hostname |
  | ↳ `deploymentId` | string | Associated deployment ID |
  | ↳ `projectId` | string | Associated project ID |
  | ↳ `createdAt` | number | Creation timestamp in milliseconds |
  | ↳ `updatedAt` | number | Last update timestamp in milliseconds |
  | ↳ `deployment` | object | Associated deployment (id, url) |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `redirect` | string | Target domain for redirect aliases |
  | ↳ `redirectStatusCode` | number | HTTP status code for redirect (301, 302, 307, or 308) |
  | `count` | number | Number of aliases returned |
  | `hasMore` | boolean | Whether more aliases are available |
</ReferenceDetails>

### Vercel Get Alias [#vercel-get-alias]

Get details about a specific alias by ID or hostname

<ReferenceDetails>
  #### Input [#input-34]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `aliasId` | string | Yes | Alias ID or hostname to look up |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-34]

  | Parameter | Type | Description |
  | - | - | - |
  | `uid` | string | Alias ID |
  | `alias` | string | Alias hostname |
  | `deploymentId` | string | Associated deployment ID |
  | `projectId` | string | Associated project ID |
  | `createdAt` | number | Creation timestamp in milliseconds |
  | `updatedAt` | number | Last update timestamp in milliseconds |
  | `redirect` | string | Target domain for redirect aliases |
  | `redirectStatusCode` | number | HTTP status code for redirect (301, 302, 307, or 308) |
  | `deployment` | object | Associated deployment (id, url) |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
</ReferenceDetails>

### Vercel Create Alias [#vercel-create-alias]

Assign an alias (domain/subdomain) to a deployment

<ReferenceDetails>
  #### Input [#input-35]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | Deployment ID to assign the alias to |
  | `alias` | string | Yes | The domain or subdomain to assign as an alias |
  | `redirect` | string | No | Hostname to 307-redirect the alias to instead of serving the deployment directly |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-35]

  | Parameter | Type | Description |
  | - | - | - |
  | `uid` | string | Alias ID |
  | `alias` | string | Alias hostname |
  | `created` | string | Creation timestamp as ISO 8601 date-time string |
  | `oldDeploymentId` | string | ID of the previously aliased deployment, if the alias was reassigned |
</ReferenceDetails>

### Vercel Delete Alias [#vercel-delete-alias]

Delete an alias by its ID

<ReferenceDetails>
  #### Input [#input-36]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `aliasId` | string | Yes | Alias ID to delete |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-36]

  | Parameter | Type | Description |
  | - | - | - |
  | `status` | string | Deletion status (SUCCESS) |
</ReferenceDetails>

### Vercel List Edge Configs [#vercel-list-edge-configs]

List all Edge Config stores for a team

<ReferenceDetails>
  #### Input [#input-37]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-37]

  | Parameter | Type | Description |
  | - | - | - |
  | `edgeConfigs` | array | List of Edge Config stores |
  | ↳ `id` | string | Edge Config ID |
  | ↳ `slug` | string | Edge Config slug |
  | ↳ `ownerId` | string | Owner ID |
  | ↳ `digest` | string | Content digest hash |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | ↳ `itemCount` | number | Number of items |
  | ↳ `sizeInBytes` | number | Size in bytes |
  | `count` | number | Number of Edge Configs returned |
</ReferenceDetails>

### Vercel Get Edge Config [#vercel-get-edge-config]

Get details about a specific Edge Config store

<ReferenceDetails>
  #### Input [#input-38]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `edgeConfigId` | string | Yes | Edge Config ID to look up |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-38]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Edge Config ID |
  | `slug` | string | Edge Config slug |
  | `ownerId` | string | Owner ID |
  | `digest` | string | Content digest hash |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `itemCount` | number | Number of items |
  | `sizeInBytes` | number | Size in bytes |
</ReferenceDetails>

### Vercel Create Edge Config [#vercel-create-edge-config]

Create a new Edge Config store

<ReferenceDetails>
  #### Input [#input-39]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `slug` | string | Yes | The name/slug for the new Edge Config |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-39]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Edge Config ID |
  | `slug` | string | Edge Config slug |
  | `ownerId` | string | Owner ID |
  | `digest` | string | Content digest hash |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last update timestamp |
  | `itemCount` | number | Number of items |
  | `sizeInBytes` | number | Size in bytes |
</ReferenceDetails>

### Vercel Get Edge Config Items [#vercel-get-edge-config-items]

Get all items in an Edge Config store

<ReferenceDetails>
  #### Input [#input-40]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `edgeConfigId` | string | Yes | Edge Config ID to get items from |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-40]

  | Parameter | Type | Description |
  | - | - | - |
  | `items` | array | List of Edge Config items |
  | ↳ `key` | string | Item key |
  | ↳ `value` | json | Item value |
  | ↳ `description` | string | Item description |
  | ↳ `edgeConfigId` | string | Parent Edge Config ID |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | `count` | number | Number of items returned |
</ReferenceDetails>

### Vercel Update Edge Config Items [#vercel-update-edge-config-items]

Create, update, upsert, or delete items in an Edge Config store

<ReferenceDetails>
  #### Input [#input-41]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `edgeConfigId` | string | Yes | Edge Config ID to update items in |
  | `items` | json | Yes | Array of operations: \[\{operation: "create"\|"update"\|"upsert"\|"delete", key: string, value?: any}] |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-41]

  | Parameter | Type | Description |
  | - | - | - |
  | `status` | string | Operation status |
</ReferenceDetails>

### Vercel Delete Edge Config [#vercel-delete-edge-config]

Delete an Edge Config store by ID

<ReferenceDetails>
  #### Input [#input-42]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `edgeConfigId` | string | Yes | Edge Config ID to delete |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-42]

  | Parameter | Type | Description |
  | - | - | - |
  | `deleted` | boolean | Whether the Edge Config was successfully deleted |
</ReferenceDetails>

### Vercel List Webhooks [#vercel-list-webhooks]

List webhooks for a Vercel project or team

<ReferenceDetails>
  #### Input [#input-43]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `projectId` | string | No | Filter webhooks by project ID |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-43]

  | Parameter | Type | Description |
  | - | - | - |
  | `webhooks` | array | List of webhooks |
  | ↳ `id` | string | Webhook ID |
  | ↳ `url` | string | Webhook URL |
  | ↳ `events` | array | Events the webhook listens to |
  | ↳ `ownerId` | string | Owner ID |
  | ↳ `projectIds` | array | Associated project IDs |
  | ↳ `projectsMetadata` | array | Metadata for the projects the webhook is associated with |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last updated timestamp |
  | `count` | number | Number of webhooks returned |
</ReferenceDetails>

### Vercel Get Webhook [#vercel-get-webhook]

Get details about a specific Vercel webhook

<ReferenceDetails>
  #### Input [#input-44]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `webhookId` | string | Yes | Webhook ID to look up |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-44]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Webhook ID |
  | `url` | string | Webhook URL |
  | `events` | array | Events the webhook listens to |
  | `ownerId` | string | Owner ID |
  | `projectIds` | array | Associated project IDs |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last updated timestamp |
</ReferenceDetails>

### Vercel Create Webhook [#vercel-create-webhook]

Create a new webhook for a Vercel team

<ReferenceDetails>
  #### Input [#input-45]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `url` | string | Yes | Webhook URL (must be https) |
  | `events` | string | Yes | Comma-separated event names to subscribe to |
  | `projectIds` | string | No | Comma-separated project IDs to scope the webhook to |
  | `teamId` | string | No | Team ID to scope the webhook to (optional; omit for personal account) |

  #### Output [#output-45]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Webhook ID |
  | `url` | string | Webhook URL |
  | `secret` | string | Webhook signing secret |
  | `events` | array | Events the webhook listens to |
  | `ownerId` | string | Owner ID |
  | `projectIds` | array | Associated project IDs |
  | `createdAt` | number | Creation timestamp |
  | `updatedAt` | number | Last updated timestamp |
</ReferenceDetails>

### Vercel Delete Webhook [#vercel-delete-webhook]

Delete a webhook from a Vercel team

<ReferenceDetails>
  #### Input [#input-46]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `webhookId` | string | Yes | The webhook ID to delete |
  | `teamId` | string | No | Team ID to scope the request |

  #### Output [#output-46]

  | Parameter | Type | Description |
  | - | - | - |
  | `deleted` | boolean | Whether the webhook was successfully deleted |
</ReferenceDetails>

### Vercel Create Check [#vercel-create-check]

Create a new deployment check

<ReferenceDetails>
  #### Input [#input-47]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | Deployment ID to create the check for |
  | `name` | string | Yes | Name of the check (max 100 characters) |
  | `blocking` | boolean | Yes | Whether the check blocks the deployment |
  | `path` | string | No | Page path being checked |
  | `detailsUrl` | string | No | URL with details about the check |
  | `externalId` | string | No | External identifier for the check |
  | `rerequestable` | boolean | No | Whether the check can be rerequested |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-47]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Check ID |
  | `name` | string | Check name |
  | `status` | string | Check status: registered, running, or completed |
  | `conclusion` | string | Check conclusion: canceled, failed, neutral, succeeded, skipped, or stale |
  | `blocking` | boolean | Whether the check blocks the deployment |
  | `deploymentId` | string | Associated deployment ID |
  | `integrationId` | string | Associated integration ID |
  | `externalId` | string | External identifier |
  | `detailsUrl` | string | URL with details about the check |
  | `path` | string | Page path being checked |
  | `rerequestable` | boolean | Whether the check can be rerequested |
  | `createdAt` | number | Creation timestamp in milliseconds |
  | `updatedAt` | number | Last update timestamp in milliseconds |
  | `startedAt` | number | Start timestamp in milliseconds |
  | `completedAt` | number | Completion timestamp in milliseconds |
  | `output` | json | Check result output including metrics (FCP, LCP, CLS, TBT, virtualExperienceScore) |
</ReferenceDetails>

### Vercel Get Check [#vercel-get-check]

Get details of a specific deployment check

<ReferenceDetails>
  #### Input [#input-48]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | Deployment ID the check belongs to |
  | `checkId` | string | Yes | Check ID to retrieve |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-48]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Check ID |
  | `name` | string | Check name |
  | `status` | string | Check status: registered, running, or completed |
  | `conclusion` | string | Check conclusion: canceled, failed, neutral, succeeded, skipped, or stale |
  | `blocking` | boolean | Whether the check blocks the deployment |
  | `deploymentId` | string | Associated deployment ID |
  | `integrationId` | string | Associated integration ID |
  | `externalId` | string | External identifier |
  | `detailsUrl` | string | URL with details about the check |
  | `path` | string | Page path being checked |
  | `rerequestable` | boolean | Whether the check can be rerequested |
  | `createdAt` | number | Creation timestamp in milliseconds |
  | `updatedAt` | number | Last update timestamp in milliseconds |
  | `startedAt` | number | Start timestamp in milliseconds |
  | `completedAt` | number | Completion timestamp in milliseconds |
  | `output` | json | Check result output including metrics (FCP, LCP, CLS, TBT, virtualExperienceScore) |
</ReferenceDetails>

### Vercel List Checks [#vercel-list-checks]

List all checks for a deployment

<ReferenceDetails>
  #### Input [#input-49]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | Deployment ID to list checks for |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-49]

  | Parameter | Type | Description |
  | - | - | - |
  | `checks` | array | List of deployment checks |
  | ↳ `id` | string | Check ID |
  | ↳ `name` | string | Check name |
  | ↳ `status` | string | Check status |
  | ↳ `conclusion` | string | Check conclusion |
  | ↳ `blocking` | boolean | Whether the check blocks the deployment |
  | ↳ `deploymentId` | string | Associated deployment ID |
  | ↳ `integrationId` | string | Associated integration ID |
  | ↳ `externalId` | string | External identifier |
  | ↳ `detailsUrl` | string | URL with details about the check |
  | ↳ `path` | string | Page path being checked |
  | ↳ `rerequestable` | boolean | Whether the check can be rerequested |
  | ↳ `createdAt` | number | Creation timestamp |
  | ↳ `updatedAt` | number | Last update timestamp |
  | ↳ `startedAt` | number | Start timestamp |
  | ↳ `completedAt` | number | Completion timestamp |
  | ↳ `output` | json | Check result output including metrics |
  | `count` | number | Total number of checks |
</ReferenceDetails>

### Vercel Update Check [#vercel-update-check]

Update an existing deployment check

<ReferenceDetails>
  #### Input [#input-50]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | Deployment ID the check belongs to |
  | `checkId` | string | Yes | Check ID to update |
  | `name` | string | No | Updated name of the check |
  | `status` | string | No | Updated status: running or completed |
  | `conclusion` | string | No | Check conclusion: canceled, failed, neutral, succeeded, or skipped |
  | `detailsUrl` | string | No | URL with details about the check |
  | `externalId` | string | No | External identifier for the check |
  | `path` | string | No | Page path being checked |
  | `output` | string | No | JSON string with check output metrics |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |

  #### Output [#output-50]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Check ID |
  | `name` | string | Check name |
  | `status` | string | Check status: registered, running, or completed |
  | `conclusion` | string | Check conclusion: canceled, failed, neutral, succeeded, skipped, or stale |
  | `blocking` | boolean | Whether the check blocks the deployment |
  | `deploymentId` | string | Associated deployment ID |
  | `integrationId` | string | Associated integration ID |
  | `externalId` | string | External identifier |
  | `detailsUrl` | string | URL with details about the check |
  | `path` | string | Page path being checked |
  | `rerequestable` | boolean | Whether the check can be rerequested |
  | `createdAt` | number | Creation timestamp in milliseconds |
  | `updatedAt` | number | Last update timestamp in milliseconds |
  | `startedAt` | number | Start timestamp in milliseconds |
  | `completedAt` | number | Completion timestamp in milliseconds |
  | `output` | json | Check result output including metrics (FCP, LCP, CLS, TBT, virtualExperienceScore) |
</ReferenceDetails>

### Vercel Rerequest Check [#vercel-rerequest-check]

Rerequest a deployment check

<ReferenceDetails>
  #### Input [#input-51]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `deploymentId` | string | Yes | Deployment ID the check belongs to |
  | `checkId` | string | Yes | Check ID to rerequest |
  | `teamId` | string | No | Team ID to scope the request |
  | `slug` | string | No | Team slug to scope the request (alternative to teamId) |
  | `autoUpdate` | boolean | No | Whether to mark the check as running immediately on rerequest |

  #### Output [#output-51]

  | Parameter | Type | Description |
  | - | - | - |
  | `rerequested` | boolean | Whether the check was successfully rerequested |
</ReferenceDetails>

### Vercel List Teams [#vercel-list-teams]

List all teams in a Vercel account

<ReferenceDetails>
  #### Input [#input-52]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `limit` | number | No | Maximum number of teams to return |
  | `since` | number | No | Timestamp in milliseconds to only include teams created since then |
  | `until` | number | No | Timestamp in milliseconds to only include teams created until then |

  #### Output [#output-52]

  | Parameter | Type | Description |
  | - | - | - |
  | `teams` | array | List of teams |
  | ↳ `id` | string | Team ID |
  | ↳ `slug` | string | Team slug |
  | ↳ `name` | string | Team name |
  | ↳ `avatar` | string | Avatar file ID |
  | ↳ `description` | string | Short team description |
  | ↳ `stagingPrefix` | string | Prefix used for staging deployments |
  | ↳ `createdAt` | number | Creation timestamp in milliseconds |
  | ↳ `updatedAt` | number | Last update timestamp in milliseconds |
  | ↳ `creatorId` | string | User ID of team creator |
  | ↳ `membership` | object | Current user membership details |
  | ↳ `role` | string | Membership role |
  | ↳ `confirmed` | boolean | Whether membership is confirmed |
  | ↳ `created` | number | Membership creation timestamp |
  | ↳ `uid` | string | User ID of the member |
  | ↳ `teamId` | string | Team ID |
  | `count` | number | Number of teams returned |
  | `pagination` | object | Pagination information |
  | ↳ `count` | number | Items in current page |
  | ↳ `next` | number | Timestamp for next page request |
  | ↳ `prev` | number | Timestamp for previous page request |
</ReferenceDetails>

### Vercel Get Team [#vercel-get-team]

Get information about a specific Vercel team

<ReferenceDetails>
  #### Input [#input-53]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `teamId` | string | Yes | The team ID to retrieve |

  #### Output [#output-53]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | Team ID |
  | `slug` | string | Team slug |
  | `name` | string | Team name |
  | `avatar` | string | Avatar file ID |
  | `description` | string | Short team description |
  | `stagingPrefix` | string | Prefix used for staging deployments |
  | `createdAt` | number | Creation timestamp in milliseconds |
  | `updatedAt` | number | Last update timestamp in milliseconds |
  | `creatorId` | string | User ID of team creator |
  | `membership` | object | Current user membership details |
  | ↳ `uid` | string | User ID of the member |
  | ↳ `teamId` | string | Team ID |
  | ↳ `role` | string | Membership role |
  | ↳ `confirmed` | boolean | Whether membership is confirmed |
  | ↳ `created` | number | Membership creation timestamp |
  | ↳ `createdAt` | number | Membership creation timestamp (milliseconds) |
  | ↳ `accessRequestedAt` | number | When access was requested |
  | ↳ `teamRoles` | array | Team role assignments |
  | ↳ `teamPermissions` | array | Team permission assignments |
</ReferenceDetails>

### Vercel List Team Members [#vercel-list-team-members]

List all members of a Vercel team

<ReferenceDetails>
  #### Input [#input-54]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |
  | `teamId` | string | Yes | The team ID to list members for |
  | `limit` | number | No | Maximum number of members to return |
  | `role` | string | No | Filter by role (OWNER, MEMBER, DEVELOPER, SECURITY, BILLING, VIEWER, VIEWER\_FOR\_PLUS, CONTRIBUTOR) |
  | `since` | number | No | Timestamp in milliseconds to only include members added since then |
  | `until` | number | No | Timestamp in milliseconds to only include members added until then |
  | `search` | string | No | Search team members by their name, username, and email |

  #### Output [#output-54]

  | Parameter | Type | Description |
  | - | - | - |
  | `members` | array | List of team members |
  | ↳ `uid` | string | Member user ID |
  | ↳ `email` | string | Member email |
  | ↳ `username` | string | Member username |
  | ↳ `name` | string | Member full name |
  | ↳ `avatar` | string | Avatar file ID |
  | ↳ `role` | string | Member role |
  | ↳ `confirmed` | boolean | Whether membership is confirmed |
  | ↳ `createdAt` | number | Join timestamp in milliseconds |
  | ↳ `accessRequestedAt` | number | When access was requested in milliseconds |
  | ↳ `isEnterpriseManaged` | boolean | Whether the member is enterprise managed |
  | ↳ `joinedFrom` | object | Origin of how the member joined |
  | ↳ `origin` | string | Join origin identifier |
  | `count` | number | Number of members returned |
  | `pagination` | object | Pagination information |
  | ↳ `hasNext` | boolean | Whether there are more pages |
  | ↳ `count` | number | Items in current page |
  | ↳ `next` | number | Timestamp to request the next page |
  | ↳ `prev` | number | Timestamp to request the previous page |
</ReferenceDetails>

### Vercel Get User [#vercel-get-user]

Get information about the authenticated Vercel user

<ReferenceDetails>
  #### Input [#input-55]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Vercel Access Token |

  #### Output [#output-55]

  | Parameter | Type | Description |
  | - | - | - |
  | `id` | string | User ID |
  | `email` | string | User email |
  | `username` | string | Username |
  | `name` | string | Display name |
  | `avatar` | string | SHA1 hash of the avatar |
  | `defaultTeamId` | string | Default team ID |
  | `createdAt` | number | Account creation timestamp in milliseconds |
  | `stagingPrefix` | string | Prefix for preview deployment URLs |
  | `softBlock` | object | Account restriction details if blocked |
  | ↳ `blockedAt` | number | When the account was blocked |
  | ↳ `reason` | string | Reason for the block |
  | `hasTrialAvailable` | boolean | Whether a trial is available |
</ReferenceDetails>

## Triggers [#triggers]

A trigger starts a workflow when a supported event occurs in this service.

### Vercel Deployment Canceled [#vercel-deployment-canceled]

Trigger workflow when a deployment is canceled

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Required to create the webhook in Vercel. |
  | `teamId` | string | No | Scope webhook to a specific team |
  | `filterProjectIds` | string | No | Limit webhook to specific projects |

  #### Output [#output-56]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., deployment.created) |
  | `id` | string | Unique webhook delivery ID (string) |
  | `createdAt` | number | Event timestamp in milliseconds |
  | `region` | string | Region where the event occurred |
  | `payload` | json | Raw event payload from Vercel |
  | `links` | object | |
  | ↳ `deployment` | string | Vercel Dashboard URL for the deployment |
  | ↳ `project` | string | Vercel Dashboard URL for the project |
  | `regions` | json | Regions associated with the deployment (array), when provided by Vercel |
  | `deployment` | object | |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `name` | string | Deployment name |
  | ↳ `meta` | json | Deployment metadata map (e.g. Git metadata), per Vercel Webhooks API |
  | `project` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | `team` | object | |
  | ↳ `id` | string | Team ID |
  | `user` | object | |
  | ↳ `id` | string | User ID |
  | `target` | string | Deployment target (production, staging, or preview) |
  | `plan` | string | Account plan type |
  | `domain` | object | |
  | ↳ `name` | string | Domain name |
  | ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload |
</ReferenceDetails>

### Vercel Deployment Created [#vercel-deployment-created]

Trigger workflow when a new deployment is created

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-1]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Required to create the webhook in Vercel. |
  | `teamId` | string | No | Scope webhook to a specific team |
  | `filterProjectIds` | string | No | Limit webhook to specific projects |

  #### Output [#output-57]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., deployment.created) |
  | `id` | string | Unique webhook delivery ID (string) |
  | `createdAt` | number | Event timestamp in milliseconds |
  | `region` | string | Region where the event occurred |
  | `payload` | json | Raw event payload from Vercel |
  | `links` | object | |
  | ↳ `deployment` | string | Vercel Dashboard URL for the deployment |
  | ↳ `project` | string | Vercel Dashboard URL for the project |
  | `regions` | json | Regions associated with the deployment (array), when provided by Vercel |
  | `deployment` | object | |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `name` | string | Deployment name |
  | ↳ `meta` | json | Deployment metadata map (e.g. Git metadata), per Vercel Webhooks API |
  | `project` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | `team` | object | |
  | ↳ `id` | string | Team ID |
  | `user` | object | |
  | ↳ `id` | string | User ID |
  | `target` | string | Deployment target (production, staging, or preview) |
  | `plan` | string | Account plan type |
  | `domain` | object | |
  | ↳ `name` | string | Domain name |
  | ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload |
</ReferenceDetails>

### Vercel Deployment Error [#vercel-deployment-error]

Trigger workflow when a deployment fails

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-2]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Required to create the webhook in Vercel. |
  | `teamId` | string | No | Scope webhook to a specific team |
  | `filterProjectIds` | string | No | Limit webhook to specific projects |

  #### Output [#output-58]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., deployment.created) |
  | `id` | string | Unique webhook delivery ID (string) |
  | `createdAt` | number | Event timestamp in milliseconds |
  | `region` | string | Region where the event occurred |
  | `payload` | json | Raw event payload from Vercel |
  | `links` | object | |
  | ↳ `deployment` | string | Vercel Dashboard URL for the deployment |
  | ↳ `project` | string | Vercel Dashboard URL for the project |
  | `regions` | json | Regions associated with the deployment (array), when provided by Vercel |
  | `deployment` | object | |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `name` | string | Deployment name |
  | ↳ `meta` | json | Deployment metadata map (e.g. Git metadata), per Vercel Webhooks API |
  | `project` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | `team` | object | |
  | ↳ `id` | string | Team ID |
  | `user` | object | |
  | ↳ `id` | string | User ID |
  | `target` | string | Deployment target (production, staging, or preview) |
  | `plan` | string | Account plan type |
  | `domain` | object | |
  | ↳ `name` | string | Domain name |
  | ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload |
</ReferenceDetails>

### Vercel Deployment Ready [#vercel-deployment-ready]

Trigger workflow when a deployment is ready to serve traffic

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-3]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Required to create the webhook in Vercel. |
  | `teamId` | string | No | Scope webhook to a specific team |
  | `filterProjectIds` | string | No | Limit webhook to specific projects |

  #### Output [#output-59]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., deployment.created) |
  | `id` | string | Unique webhook delivery ID (string) |
  | `createdAt` | number | Event timestamp in milliseconds |
  | `region` | string | Region where the event occurred |
  | `payload` | json | Raw event payload from Vercel |
  | `links` | object | |
  | ↳ `deployment` | string | Vercel Dashboard URL for the deployment |
  | ↳ `project` | string | Vercel Dashboard URL for the project |
  | `regions` | json | Regions associated with the deployment (array), when provided by Vercel |
  | `deployment` | object | |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `name` | string | Deployment name |
  | ↳ `meta` | json | Deployment metadata map (e.g. Git metadata), per Vercel Webhooks API |
  | `project` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | `team` | object | |
  | ↳ `id` | string | Team ID |
  | `user` | object | |
  | ↳ `id` | string | User ID |
  | `target` | string | Deployment target (production, staging, or preview) |
  | `plan` | string | Account plan type |
  | `domain` | object | |
  | ↳ `name` | string | Domain name |
  | ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload |
</ReferenceDetails>

### Vercel Domain Created [#vercel-domain-created]

Trigger workflow when a domain is created

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-4]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Required to create the webhook in Vercel. |
  | `teamId` | string | No | Scope webhook to a specific team |
  | `filterProjectIds` | string | No | Limit webhook to specific projects |

  #### Output [#output-60]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., deployment.created) |
  | `id` | string | Unique webhook delivery ID (string) |
  | `createdAt` | number | Event timestamp in milliseconds |
  | `region` | string | Region where the event occurred |
  | `payload` | json | Raw event payload from Vercel |
  | `links` | object | |
  | ↳ `deployment` | string | Vercel Dashboard URL for the deployment |
  | ↳ `project` | string | Vercel Dashboard URL for the project |
  | `regions` | json | Regions associated with the deployment (array), when provided by Vercel |
  | `deployment` | object | |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `name` | string | Deployment name |
  | ↳ `meta` | json | Deployment metadata map (e.g. Git metadata), per Vercel Webhooks API |
  | `target` | string | Deployment target (production, staging, or preview) |
  | `plan` | string | Account plan type |
  | `domain` | object | |
  | ↳ `name` | string | Domain name |
  | ↳ `delegated` | boolean | Whether the domain was delegated/shared (domain.created), per Vercel Webhooks API |
  | `project` | object | |
  | ↳ `id` | string | Project ID |
  | `team` | object | |
  | ↳ `id` | string | Team ID |
  | `user` | object | |
  | ↳ `id` | string | User ID |
</ReferenceDetails>

### Vercel Project Created [#vercel-project-created]

Trigger workflow when a new project is created

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-5]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Required to create the webhook in Vercel. |
  | `teamId` | string | No | Scope webhook to a specific team |
  | `filterProjectIds` | string | No | Limit webhook to specific projects |

  #### Output [#output-61]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., deployment.created) |
  | `id` | string | Unique webhook delivery ID (string) |
  | `createdAt` | number | Event timestamp in milliseconds |
  | `region` | string | Region where the event occurred |
  | `payload` | json | Raw event payload from Vercel |
  | `links` | object | |
  | ↳ `deployment` | string | Vercel Dashboard URL for the deployment |
  | ↳ `project` | string | Vercel Dashboard URL for the project |
  | `regions` | json | Regions associated with the deployment (array), when provided by Vercel |
  | `deployment` | object | |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `name` | string | Deployment name |
  | ↳ `meta` | json | Deployment metadata map (e.g. Git metadata), per Vercel Webhooks API |
  | `project` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | `team` | object | |
  | ↳ `id` | string | Team ID |
  | `user` | object | |
  | ↳ `id` | string | User ID |
  | `target` | string | Deployment target (production, staging, or preview) |
  | `plan` | string | Account plan type |
  | `domain` | object | |
  | ↳ `name` | string | Domain name |
  | ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload |
</ReferenceDetails>

### Vercel Project Removed [#vercel-project-removed]

Trigger workflow when a project is removed

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-6]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Required to create the webhook in Vercel. |
  | `teamId` | string | No | Scope webhook to a specific team |
  | `filterProjectIds` | string | No | Limit webhook to specific projects |

  #### Output [#output-62]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., deployment.created) |
  | `id` | string | Unique webhook delivery ID (string) |
  | `createdAt` | number | Event timestamp in milliseconds |
  | `region` | string | Region where the event occurred |
  | `payload` | json | Raw event payload from Vercel |
  | `links` | object | |
  | ↳ `deployment` | string | Vercel Dashboard URL for the deployment |
  | ↳ `project` | string | Vercel Dashboard URL for the project |
  | `regions` | json | Regions associated with the deployment (array), when provided by Vercel |
  | `deployment` | object | |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `name` | string | Deployment name |
  | ↳ `meta` | json | Deployment metadata map (e.g. Git metadata), per Vercel Webhooks API |
  | `project` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | `team` | object | |
  | ↳ `id` | string | Team ID |
  | `user` | object | |
  | ↳ `id` | string | User ID |
  | `target` | string | Deployment target (production, staging, or preview) |
  | `plan` | string | Account plan type |
  | `domain` | object | |
  | ↳ `name` | string | Domain name |
  | ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload |
</ReferenceDetails>

### Vercel Webhook (Common Events) [#vercel-webhook-common-events]

Trigger on a curated set of common Vercel events (deployments, projects, domains, edge config). Pick a specific trigger to listen to one event type only.

<ReferenceDetails label="Configuration and outputs">
  #### Configuration [#configuration-7]

  | Parameter | Type | Required | Description |
  | - | - | - | - |
  | `apiKey` | string | Yes | Required to create the webhook in Vercel. |
  | `teamId` | string | No | Scope webhook to a specific team |
  | `filterProjectIds` | string | No | Limit webhook to specific projects |

  #### Output [#output-63]

  | Parameter | Type | Description |
  | - | - | - |
  | `type` | string | Event type (e.g., deployment.created) |
  | `id` | string | Unique webhook delivery ID (string) |
  | `createdAt` | number | Event timestamp in milliseconds |
  | `region` | string | Region where the event occurred |
  | `payload` | json | Full event payload |
  | `links` | object | |
  | ↳ `deployment` | string | Vercel Dashboard URL for the deployment |
  | ↳ `project` | string | Vercel Dashboard URL for the project |
  | `regions` | json | Regions associated with the deployment (array), when provided by Vercel |
  | `deployment` | object | |
  | ↳ `id` | string | Deployment ID |
  | ↳ `url` | string | Deployment URL |
  | ↳ `name` | string | Deployment name |
  | ↳ `meta` | json | Deployment metadata map (e.g. Git metadata), per Vercel Webhooks API |
  | `project` | object | |
  | ↳ `id` | string | Project ID |
  | ↳ `name` | string | Project name |
  | `team` | object | |
  | ↳ `id` | string | Team ID |
  | `user` | object | |
  | ↳ `id` | string | User ID |
  | `target` | string | Deployment target (production, staging, or preview) |
  | `plan` | string | Account plan type |
  | `domain` | object | |
  | ↳ `name` | string | Domain name |
  | ↳ `delegated` | boolean | Whether the domain was delegated/shared when present on the payload |
</ReferenceDetails>
