| vercel-token | Vercel token | yes | — |
| vercel-args | Ad-hoc CLI flags forwarded directly to the Vercel CLI (e.g. "--prod --force"). The CLI is the default deployment mode. Mutually exclusive with experimental-api. | no | "" |
| github-comment | if you want to comment on pr and commit, set true, default: true | no | true |
| github-token | if you want to comment on pr and commit, set token | no | — |
| github-deployment | if you want to create github deployment, set true, default: false | no | false |
| github-deployment-environment | The environment for the GitHub deployment (e.g., production, staging, preview). If not specified, auto-detects: "production" when vercel-args contains --prod or --production, otherwise "preview". | no | "" |
| working-directory | the working directory | no | — |
| vercel-project-id | Vercel CLI 17+, ❗️ The `name` property in vercel.json is deprecated (https://zeit.ink/5F) | no | — |
| vercel-org-id | Vercel team ID (also used as teamId for API deployments). Vercel CLI 17+, ❗️ The `name` property in vercel.json is deprecated (https://zeit.ink/5F) | no | — |
| vercel-project-name | The name of the project; if absent we'll use the `vercel inspect` command to determine. | no | — |
| vercel-version | vercel-cli package version | no | — |
| scope | Team slug for the Vercel CLI --scope flag (used in the default CLI deployment mode). Prefer vercel-org-id, which works for both CLI and experimental API modes. | no | — |
| zeit-token | zeit.co token | no | — |
| now-args | — | no | "" |
| now-project-id | Vercel CLI 17+, ❗️ The `name` property in vercel.json is deprecated (https://zeit.ink/5F) | no | — |
| now-org-id | Vercel CLI 17+, ❗️ The `name` property in vercel.json is deprecated (https://zeit.ink/5F) | no | — |
| alias-domains | You can assign a domain to this deployment. Please note that this domain must have been configured in the project. You can use pull request number via `{{PR_NUMBER}}` and branch via `{{BRANCH}}` | no | "" |
| target | Deployment target: "production" or "preview" (default: preview). Replaces --prod flag in vercel-args. | no | preview |
| prebuilt | Deploy prebuilt output (default: false). Replaces --prebuilt flag in vercel-args. | no | false |
| vercel-build | Run "vercel pull" + "vercel build" inside the action before deploying, then upload the resulting .vercel/output via the prebuilt deploy path. Mutually exclusive with prebuilt. Default: false. | no | false |
| vercel-output-dir | Path to the prebuilt output directory. Defaults to {working-directory}/.vercel/output when prebuilt is true. | no | "" |
| force | Force new deployment, bypassing dedupe and build cache (default: false). Replaces --force flag in vercel-args. | no | false |
| env | Environment variables for the deployment (KEY=VALUE per line). Replaces --env flags in vercel-args. | no | "" |
| build-env | Build-time environment variables (KEY=VALUE per line). Replaces --build-env flags in vercel-args. | no | "" |
| regions | Deployment regions, comma-separated (e.g. "iad1,sfo1"). | no | "" |
| archive | Upload format: "tgz" for compressed archive, or empty for individual files. | no | "" |
| root-directory | Root directory of the project relative to the repository root. | no | "" |
| auto-assign-custom-domains | Automatically assign custom domains to this deployment (default: true). | no | true |
| custom-environment | Custom environment slug or ID for the deployment. | no | "" |
| public | Make deployment source publicly accessible (default: false). | no | false |
| with-cache | Retain build cache from previous deployments (default: false). | no | false |
| experimental-api | Opt in to the experimental API-based deployment via @vercel/client. The CLI is the default and recommended path. The API client relies on an internal Vercel package without semver guarantees and may break across updates. Mutually exclusive with vercel-args (default: false). | no | false |