{"note":"OpenAPI conversion -- returning structured metadata","name":"vercel","description":"Vercel API","version":"0.0.1","base_url":"https://api.vercel.com","endpoints":419,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Vercel API\n@base https://api.vercel.com\n@version 0.0.1\n@auth Bearer bearer | OAuth2\n@endpoints 419\n@hint download_for_search\n@toc access-groups(11), ai-gateway(12), artifacts(7), billing(3), bulk-redirects(7), projects(81), deployments(21), connect(18), networking(5), domains(15), registrar(19), log-drains(4), drains(6), edge-cache(4), global-config(18), env(6), events(2), teams(19), integrations(12), installations(25), api-keys(1), kms(13), microfrontends(5), observability(5), sandboxes(30), security(13), speed-insights(1), storage(4), files(1), user(6), vcr(13), v2(1), {teamSlug}(13), web(1), query(4), webhooks(4), aliases(4), certs(5)\n\n@group access-groups\n@endpoint GET /v1/access-groups/{idOrName}\n@desc Reads an access group\n@required {idOrName: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {accessGroupId: str, createdAt: str, entitlements: [str], isDsyncManaged: bool, membersCount: num, name: str, projectsCount: num, teamId: str, teamPermissions: [str], teamRoles: [str], updatedAt: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v1/access-groups/{idOrName}\n@desc Update an access group\n@required {idOrName: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str # The name of the access group, projects: [map{projectId!: str, role!: str}], membersToAdd: [str] # List of members to add to the access group., membersToRemove: [str] # List of members to remove from the access group.}\n@returns(200) {accessGroupId: str, createdAt: str, entitlements: [str], membersCount: num, name: str, projectsCount: num, teamId: str, teamPermissions: [str], teamRoles: [str], updatedAt: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint DELETE /v1/access-groups/{idOrName}\n@desc Deletes an access group\n@required {idOrName: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/access-groups/{idOrName}/members\n@desc List members of an access group\n@required {idOrName: str # The ID or name of the Access Group.}\n@optional {limit: int # Limit how many access group members should be returned., next: str # Continuation cursor to retrieve the next page of results., search: str # Search project members by their name, username, and email., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {members: [map], pagination: map{count: num, next: str?}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/access-groups\n@desc List access groups for a team, project or member\n@optional {projectId: str # Filter access groups by project., search: str # Search for access groups by name., membersLimit: int # Number of members to include in the response., projectsLimit: int # Number of projects to include in the response., limit: int # Limit how many access group should be returned., next: str # Continuation cursor to retrieve the next page of results., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v1/access-groups\n@desc Creates an access group\n@required {name: str # The name of the access group}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., projects: [map{projectId!: str, role!: str}], membersToAdd: [str] # List of members to add to the access group.}\n@returns(200) {accessGroupId: str, createdAt: str, entitlements: [str], membersCount: num, name: str, projectsCount: num, teamId: str, teamPermissions: [str], teamRoles: [str], updatedAt: str}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/access-groups/{idOrName}/projects\n@desc List projects of an access group\n@required {idOrName: str # The ID or name of the Access Group.}\n@optional {limit: int # Limit how many access group projects should be returned., next: str # Continuation cursor to retrieve the next page of results., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {pagination: map{count: num, next: str?}, projects: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v1/access-groups/{accessGroupIdOrName}/projects\n@desc Create an access group project\n@required {accessGroupIdOrName: str, projectId: str # The ID of the project., role: str(ADMIN/PROJECT_VIEWER/PROJECT_DEVELOPER) # The project role that will be added to this Access Group.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {accessGroupId: str, createdAt: str, projectId: str, role: str, teamId: str, updatedAt: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/access-groups/{accessGroupIdOrName}/projects/{projectId}\n@desc Reads an access group project\n@required {accessGroupIdOrName: str, projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {accessGroupId: str, createdAt: str, projectId: str, role: str, teamId: str, updatedAt: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint PATCH /v1/access-groups/{accessGroupIdOrName}/projects/{projectId}\n@desc Update an access group project\n@required {accessGroupIdOrName: str, projectId: str, role: str(ADMIN/PROJECT_VIEWER/PROJECT_DEVELOPER) # The project role that will be added to this Access Group.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {accessGroupId: str, createdAt: str, projectId: str, role: str, teamId: str, updatedAt: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint DELETE /v1/access-groups/{accessGroupIdOrName}/projects/{projectId}\n@desc Delete an access group project\n@required {accessGroupIdOrName: str, projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group ai-gateway\n@endpoint POST /v1/ai-gateway/virtual-model-configs\n@desc Create virtual model config\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(201) {allowFallbackFromFast: bool, baseUrl: str, byokCredentialIds: [str], caching: str, createdAt: num, createdBy: str, deleted: bool, description: str, disallowPromptTraining: bool, displayName: str, has: [str], hipaaCompliant: bool, inferenceRegion: map{geoRegion: str, providerRegion: str, providers: map, scope: str}, instanceId: str, kind: str, models: [str], modelSlug: str, observabilityTags: [str], ownerId: str, providerOnly: [str], providerOptions: map, providerOrder: [str], providerTimeouts: map{byok: map}, selector: str, serviceTier: str, sort: str, speed: str, status: str, updatedAt: num, updatedBy: str, virtualModelSlug: str, visibility: str, zeroDataRetention: bool}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410, 429, 500}\n\n@endpoint GET /v1/ai-gateway/virtual-model-configs\n@desc Get virtual model config\n@optional {ownerId: str, virtualModelSlug: str, limit: int, cursor: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint PATCH /v1/ai-gateway/virtual-model-configs\n@desc Update virtual model config\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {allowFallbackFromFast: bool, baseUrl: str, byokCredentialIds: [str], caching: str, createdAt: num, createdBy: str, deleted: bool, description: str, disallowPromptTraining: bool, displayName: str, has: [str], hipaaCompliant: bool, inferenceRegion: map{geoRegion: str, providerRegion: str, providers: map, scope: str}, instanceId: str, kind: str, models: [str], modelSlug: str, observabilityTags: [str], ownerId: str, providerOnly: [str], providerOptions: map, providerOrder: [str], providerTimeouts: map{byok: map}, selector: str, serviceTier: str, sort: str, speed: str, status: str, updatedAt: num, updatedBy: str, virtualModelSlug: str, visibility: str, zeroDataRetention: bool}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429, 500}\n\n@endpoint DELETE /v1/ai-gateway/virtual-model-configs\n@desc Delete virtual model config\n@required {virtualModelSlug: str}\n@optional {ownerId: str, updatedBy: str, actingIp: str, actingUserAgent: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint GET /v1/ai-gateway/virtual-model-configs/list\n@desc List virtual model configs\n@optional {ownerId: str, limit: int, cursor: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {cursor: str?, virtualModelConfigs: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint GET /v1/ai-gateway/virtual-model-configs/{vmcSlug}\n@desc Get virtual model config\n@required {vmcSlug: str}\n@optional {ownerId: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {allowFallbackFromFast: bool, baseUrl: str, byokCredentialIds: [str], caching: str, createdAt: num, createdBy: str, deleted: bool, description: str, disallowPromptTraining: bool, displayName: str, has: [str], hipaaCompliant: bool, inferenceRegion: map{geoRegion: str, providerRegion: str, providers: map, scope: str}, instanceId: str, kind: str, models: [str], modelSlug: str, observabilityTags: [str], ownerId: str, providerOnly: [str], providerOptions: map, providerOrder: [str], providerTimeouts: map{byok: map}, selector: str, serviceTier: str, sort: str, speed: str, status: str, updatedAt: num, updatedBy: str, virtualModelSlug: str, visibility: str, zeroDataRetention: bool}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint PATCH /v1/ai-gateway/virtual-model-configs/{vmcSlug}\n@desc Update virtual model config\n@required {vmcSlug: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {allowFallbackFromFast: bool, baseUrl: str, byokCredentialIds: [str], caching: str, createdAt: num, createdBy: str, deleted: bool, description: str, disallowPromptTraining: bool, displayName: str, has: [str], hipaaCompliant: bool, inferenceRegion: map{geoRegion: str, providerRegion: str, providers: map, scope: str}, instanceId: str, kind: str, models: [str], modelSlug: str, observabilityTags: [str], ownerId: str, providerOnly: [str], providerOptions: map, providerOrder: [str], providerTimeouts: map{byok: map}, selector: str, serviceTier: str, sort: str, speed: str, status: str, updatedAt: num, updatedBy: str, virtualModelSlug: str, visibility: str, zeroDataRetention: bool}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429, 500}\n\n@endpoint DELETE /v1/ai-gateway/virtual-model-configs/{vmcSlug}\n@desc Delete virtual model config\n@required {vmcSlug: str}\n@optional {ownerId: str, updatedBy: str, actingIp: str, actingUserAgent: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint POST /v1/ai-gateway/rules\n@desc Create rule\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(201) {action: map{reason: str, rewriteModel: str}, createdAt: num, createdBy: str, deleted: bool, description: str, enabled: bool, match: map{model: str}, ownerId: str, ruleId: str, type: str, updatedAt: num, updatedBy: str}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410, 500}\n\n@endpoint GET /v1/ai-gateway/rules\n@desc List rules\n@optional {includeDisabled: str(true/false), teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {rules: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint PATCH /v1/ai-gateway/rules\n@desc Update rule\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {action: map{reason: str, rewriteModel: str}, createdAt: num, createdBy: str, deleted: bool, description: str, enabled: bool, match: map{model: str}, ownerId: str, ruleId: str, type: str, updatedAt: num, updatedBy: str}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint DELETE /v1/ai-gateway/rules\n@desc Delete rule\n@required {ruleId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endgroup\n\n@group artifacts\n@endpoint POST /v8/artifacts/events\n@desc Record an artifacts cache usage event\n@optional {x-artifact-client-ci: str # The continuous integration or delivery environment where this artifact is downloaded., x-artifact-client-interactive: int # 1 if the client is an interactive shell. Otherwise 0, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) Success. Event recorded.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the headers is invalid, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. You do not have permission to access this resource., 410}\n\n@endpoint GET /v8/artifacts/status\n@desc Get status of Remote Caching for this principal\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 410}\n\n@endpoint PUT /v8/artifacts/{hash}\n@desc Upload a cache artifact\n@required {Content-Length: num # The artifact size in bytes, hash: str # The artifact hash}\n@optional {x-artifact-duration: num # The time taken to generate the uploaded artifact in milliseconds., x-artifact-client-ci: str # The continuous integration or delivery environment where this artifact was generated., x-artifact-client-interactive: int # 1 if the client is an interactive shell. Otherwise 0, x-artifact-tag: str # The base64 encoded tag for this artifact. The value is sent back to clients when the artifact is downloaded as the header `x-artifact-tag`, x-artifact-sha: str # The SHA of the source control revision that generated this artifact., x-artifact-dirty-hash: str # A hash representing uncommitted changes in the working directory when this artifact was generated., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(202) {urls: [str]} # File successfully uploaded\n@errors {400: One of the provided values in the request query is invalid. One of the provided values in the headers is invalid File size is not valid, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. You do not have permission to access this resource., 410}\n\n@endpoint GET /v8/artifacts/{hash}\n@desc Download a cache artifact\n@required {hash: str # The artifact hash}\n@optional {x-artifact-client-ci: str # The continuous integration or delivery environment where this artifact is downloaded., x-artifact-client-interactive: int # 1 if the client is an interactive shell. Otherwise 0, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The artifact was found and is downloaded as a stream. Content-Length should be verified.\n@errors {400: One of the provided values in the request query is invalid. One of the provided values in the headers is invalid, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. You do not have permission to access this resource., 404: The artifact was not found, 410}\n\n@endpoint HEAD /v8/artifacts/{hash}\n@desc Check if a cache artifact exists\n@required {hash: str # The artifact hash}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The artifact was found and headers are returned\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. You do not have permission to access this resource., 404: The artifact was not found, 410}\n\n@endpoint POST /v8/artifacts\n@desc Query information about an artifact\n@required {hashes: [str] # artifact hashes}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: The customer has reached their spend cap limit and has been paused. An owner can disable the cap or raise the limit in settings. The Remote Caching usage limit has been reached for this account for this billing cycle. Remote Caching has been disabled for this team or user. An owner can enable it in the billing settings. You do not have permission to access this resource., 410}\n\n@endpoint DELETE /v8/artifacts\n@desc Delete all cache artifacts\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {deletedCount: num} # Success. All cache artifacts for the account were deleted.\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group billing\n@endpoint GET /v1/billing/charges\n@desc List FOCUS billing charges\n@required {from: str # Inclusive start of the date range as an ISO 8601 date-time string in UTC., to: str # Exclusive end of the date range as an ISO 8601 date-time string in UTC.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500, 503}\n\n@endpoint GET /v1/billing/contract-commitments\n@desc List FOCUS contract commitments\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/billing/buy\n@desc Purchase credits\n@required {item: map{type!: str, creditType!: str, amount!: int}}\n@optional {source: str # The source of the purchase request. Defaults to `api` if not specified., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 409, 410, 500}\n\n@endgroup\n\n@group bulk-redirects\n@endpoint PUT /v1/bulk-redirects\n@desc Stages new redirects for a project.\n@required {projectId: str, teamId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., overwrite: bool, name: str, redirects: [map{source!: str, destination!: str, statusCode: any, permanent: bool, caseSensitive: bool, query: bool, preserveQueryParams: bool}]=}\n@returns(200) {alias: str?, version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, key: str, lastModified: num, name: str, redirectCount: num}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint GET /v1/bulk-redirects\n@desc Gets project-level redirects.\n@required {projectId: str}\n@optional {versionId: str, q: str, diff: any, page: int, per_page: int, sort_by: str(source/destination/statusCode), sort_order: str(asc/desc), teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/bulk-redirects\n@desc Delete project-level redirects.\n@required {projectId: str, redirects: [str] # The redirects to delete. The source of the redirect is used to match the redirect to delete.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint PATCH /v1/bulk-redirects\n@desc Edit a project-level redirect.\n@required {projectId: str, redirect: map{source!: str, destination: str, statusCode: num, permanent: bool, caseSensitive: bool, query: bool, preserveQueryParams: bool} # The redirect object to edit. The source field is used to match the redirect to modify.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str, restore: bool # If true, restores the redirect from the latest production version to staging.}\n@returns(200) {alias: str?, version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, key: str, lastModified: num, name: str, redirectCount: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint POST /v1/bulk-redirects/restore\n@desc Restore staged project-level redirects to their production version.\n@required {projectId: str, redirects: [str] # The redirects to restore. The source of the redirect is used to match the redirect to restore.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str}\n@returns(200) {failedToRestore: [str], restored: [str], version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, key: str, lastModified: num, name: str, redirectCount: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint GET /v1/bulk-redirects/versions\n@desc Get the version history for a project's redirects.\n@required {projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {versions: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint POST /v1/bulk-redirects/versions\n@desc Promote a staging version to production or restore a previous production version.\n@required {projectId: str, id: str, action: str(promote/restore/discard)}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str}\n@returns(200) {version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, key: str, lastModified: num, name: str, redirectCount: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endgroup\n\n@group projects\n@endpoint GET /v2/projects/{projectIdOrName}/checks\n@desc List all checks for a project\n@required {projectIdOrName: str}\n@optional {blocks: str(build-start/deployment-start/deployment-alias/deployment-promotion/none), teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {checks: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint POST /v2/projects/{projectIdOrName}/checks\n@desc Create a check\n@required {projectIdOrName: str, name: str, requires: str(build-ready/deployment-url/none)=deployment-url}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., isRerequestable: bool, targets: [str], blocks: str(build-start/deployment-start/deployment-alias/deployment-promotion/none)=deployment-alias, source: map, timeout: num=300}\n@returns(200) {blocks: str, createdAt: num, deletedAt: num, id: str, isRerequestable: bool, name: str, ownerId: str, projectId: str, requires: str, source: any, sourceIntegrationConfigurationId: str, sourceKind: str, targets: [str], timeout: num, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint GET /v2/projects/{projectIdOrName}/checks/{checkId}\n@desc Get a check\n@required {projectIdOrName: str, checkId: str # The ID of the resource that will be updated.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {blocks: str, createdAt: num, deletedAt: num, id: str, isRerequestable: bool, name: str, ownerId: str, projectId: str, requires: str, source: any, sourceIntegrationConfigurationId: str, sourceKind: str, targets: [str], timeout: num, updatedAt: num}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint PATCH /v2/projects/{projectIdOrName}/checks/{checkId}\n@desc Update a check\n@required {projectIdOrName: str, checkId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str, isRerequestable: bool, requires: str(build-ready/deployment-url/none)=deployment-url, targets: [str], blocks: str(build-start/deployment-start/deployment-alias/deployment-promotion/none)=deployment-alias, timeout: num=300}\n@returns(200) {blocks: str, createdAt: num, deletedAt: num, id: str, isRerequestable: bool, name: str, ownerId: str, projectId: str, requires: str, source: any, sourceIntegrationConfigurationId: str, sourceKind: str, targets: [str], timeout: num, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint DELETE /v2/projects/{projectIdOrName}/checks/{checkId}\n@desc Delete a check\n@required {projectIdOrName: str, checkId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {success: bool}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint GET /v2/projects/{projectIdOrName}/checks/{checkId}/runs\n@desc List runs for a check\n@required {projectIdOrName: str, checkId: str # The ID of the resource that will be updated.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {runs: [any]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endgroup\n\n@group deployments\n@endpoint GET /v2/deployments/{deploymentId}/check-runs\n@desc List check runs for a deployment\n@required {deploymentId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {runs: [any]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint POST /v2/deployments/{deploymentId}/check-runs\n@desc Create a check run\n@required {deploymentId: str, checkId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint GET /v2/deployments/{deploymentId}/check-runs/{checkRunId}\n@desc Get a check run\n@required {deploymentId: str, checkRunId: str # The ID of the resource that will be updated.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint PATCH /v2/deployments/{deploymentId}/check-runs/{checkRunId}\n@desc Update a check run\n@required {deploymentId: str, checkRunId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., externalId: str, externalUrl: str(uri), status: str(queued/running/completed), output: map, completedAt: num, conclusion: str(canceled/skipped/timeout/failed/neutral/succeeded), conclusionText: str}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 413: The output provided is too large, 500}\n\n@endpoint POST /v1/deployments/{deploymentId}/checks\n@desc Creates a new Check\n@required {deploymentId: str # The deployment to create the check for., name: str # The name of the check being created, blocking: bool # Whether the check should block a deployment from succeeding}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., path: str # Path of the page that is being checked, detailsUrl: str # URL to display for further details, externalId: str # An identifier that can be used as an external reference, rerequestable: bool # Whether a user should be able to request for the check to be rerun if it fails}\n@returns(200) {blocking: bool, completedAt: num, conclusion: str, createdAt: num, deploymentId: str, detailsUrl: str, externalId: str, id: str, integrationId: str, name: str, output: map{metrics: map{CLS: map{previousValue: num, source: str, value: num?}, FCP: map{previousValue: num, source: str, value: num?}, LCP: map{previousValue: num, source: str, value: num?}, TBT: map{previousValue: num, source: str, value: num?}, virtualExperienceScore: map{previousValue: num, source: str, value: num?}}}, path: str, rerequestable: bool, startedAt: num, status: str, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. Cannot create check for finished deployment The provided token is not from an OAuth2 Client, 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The deployment was not found, 410}\n\n@endpoint GET /v1/deployments/{deploymentId}/checks\n@desc Retrieve a list of all checks\n@required {deploymentId: str # The deployment to get all checks for}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {checks: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The deployment was not found, 410}\n\n@endpoint GET /v1/deployments/{deploymentId}/checks/{checkId}\n@desc Get a single check\n@required {deploymentId: str # The deployment to get the check for., checkId: str # The check to fetch}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {blocking: bool, completedAt: num, conclusion: str, createdAt: num, deploymentId: str, detailsUrl: str, externalId: str, id: str, integrationId: str, name: str, output: map{metrics: map{CLS: map{previousValue: num, source: str, value: num?}, FCP: map{previousValue: num, source: str, value: num?}, LCP: map{previousValue: num, source: str, value: num?}, TBT: map{previousValue: num, source: str, value: num?}, virtualExperienceScore: map{previousValue: num, source: str, value: num?}}}, path: str, rerequestable: bool, startedAt: num, status: str, updatedAt: num}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource. The provided token is not from an OAuth2 Client that created the Check, 404: Check was not found The deployment was not found, 410}\n\n@endpoint PATCH /v1/deployments/{deploymentId}/checks/{checkId}\n@desc Update a check\n@required {deploymentId: str # The deployment to update the check for., checkId: str # The check being updated}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str # The name of the check being created, path: str # Path of the page that is being checked, status: any(running/completed) # The current status of the check, conclusion: any(canceled/failed/neutral/succeeded/skipped) # The result of the check being run, detailsUrl: str # A URL a user may visit to see more information about the check, output: map{metrics: map} # The results of the check Run, externalId: str # An identifier that can be used as an external reference}\n@returns(200) {blocking: bool, completedAt: num, conclusion: str, createdAt: num, deploymentId: str, detailsUrl: str, externalId: str, id: str, integrationId: str, name: str, output: map{metrics: map{CLS: map{previousValue: num, source: str, value: num?}, FCP: map{previousValue: num, source: str, value: num?}, LCP: map{previousValue: num, source: str, value: num?}, TBT: map{previousValue: num, source: str, value: num?}, virtualExperienceScore: map{previousValue: num, source: str, value: num?}}}, path: str, rerequestable: bool, startedAt: num, status: str, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. The provided token is not from an OAuth2 Client, 401: The request is not authorized., 403: You do not have permission to access this resource., 404: Check was not found The deployment was not found, 410, 413: The output provided is too large}\n\n@endpoint POST /v1/deployments/{deploymentId}/checks/{checkId}/rerequest\n@desc Rerequest a check\n@required {deploymentId: str # The deployment to rerun the check for., checkId: str # The check to rerun}\n@optional {autoUpdate: bool # Mark the check as running, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The deployment was not found Check was not found, 410}\n\n@endgroup\n\n@group connect\n@endpoint GET /v1/connect/networks\n@desc List Secure Compute networks\n@optional {includeHostedZones: bool=true # Whether to include Hosted Zones in the response, includePeeringConnections: bool=true # Whether to include VPC Peering connections in the response, includeProjects: bool=true # Whether to include projects in the response, search: str # The query to use as a filter for returned networks, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v1/connect/networks\n@desc Create a Secure Compute network\n@required {cidr: str # The CIDR block of the network, name: str # The name of the network, region: str # The region where the network will be created}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., awsAvailabilityZoneIds: [str]}\n@returns(201) {awsAccountId: str, awsAvailabilityZoneIds: [str], awsRegion: str, cidr: str, createdAt: num, egressIpAddresses: [str], hostedZones: map{count: num}, id: str, name: str, peeringConnections: map{count: num}, projects: map{count: num, ids: [str]}, region: str, status: str, teamId: str, vpcId: str}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 409, 410}\n\n@endpoint DELETE /v1/connect/networks/{networkId}\n@desc Delete a Secure Compute network\n@required {networkId: str # The ID of the network to delete}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 409, 410}\n\n@endpoint PATCH /v1/connect/networks/{networkId}\n@desc Update a Secure Compute network\n@required {networkId: str # The unique identifier of the Secure Compute network, name: str # The name of the Secure Compute network}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {awsAccountId: str, awsAvailabilityZoneIds: [str], awsRegion: str, cidr: str, createdAt: num, egressIpAddresses: [str], hostedZones: map{count: num}, id: str, name: str, peeringConnections: map{count: num}, projects: map{count: num, ids: [str]}, region: str, status: str, teamId: str, vpcId: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/connect/networks/{networkId}\n@desc Read a Secure Compute network\n@required {networkId: str # The unique identifier of the Secure Compute network}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {awsAccountId: str, awsAvailabilityZoneIds: [str], awsRegion: str, cidr: str, createdAt: num, egressIpAddresses: [str], hostedZones: map{count: num}, id: str, name: str, peeringConnections: map{count: num}, projects: map{count: num, ids: [str]}, region: str, status: str, teamId: str, vpcId: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group networking\n@endpoint POST /v1/networking/privatelink/endpoints\n@desc Create a PrivateLink endpoint\n@required {projectId: str # The project ID to create the PrivateLink endpoint for., name: str # The name of the PrivateLink endpoint, used as its label in the Vercel dashboard., vercelRegion: str # The Vercel region to provision the endpoint in. Advanced Networking must be enabled for the project in that region. The endpoint service itself may live in another AWS region., awsServiceName: str # The name of the AWS VPC endpoint service to connect to. Its AWS region is read from the name; when that region differs from the one behind `vercelRegion`, the service must allow cross-region access.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., enablePrivateDns: bool # Whether to resolve the endpoint service through its private DNS names, which are then returned in `privateDnsNames`. Defaults to `false`, in which case the endpoint is reachable through the DNS names in `awsDnsEntries`.}\n@returns(201) {awsDnsEntries: [str], awsServiceName: str, createdAt: num, endpointId: str, name: str, privateDnsNames: [str], projectId: str, status: str, statusMessage: str, teamId: str, updatedAt: num, vercelRegion: str, vpcEndpointId: str} # The PrivateLink endpoint was created and is being provisioned.\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/networking/privatelink/endpoints\n@desc List PrivateLink endpoints\n@required {projectId: str # The project ID to list PrivateLink endpoints for.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The PrivateLink endpoints of the project.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/networking/privatelink/endpoints/{endpointId}\n@desc Read a PrivateLink endpoint\n@required {projectId: str # The project ID the PrivateLink endpoint belongs to., endpointId: str # The unique identifier of the PrivateLink endpoint.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {awsDnsEntries: [str], awsServiceName: str, createdAt: num, endpointId: str, name: str, privateDnsNames: [str], projectId: str, status: str, statusMessage: str, teamId: str, updatedAt: num, vercelRegion: str, vpcEndpointId: str} # The requested PrivateLink endpoint.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/networking/privatelink/endpoints/{endpointId}\n@desc Delete a PrivateLink endpoint\n@required {projectId: str # The project ID the PrivateLink endpoint belongs to., endpointId: str # The unique identifier of the PrivateLink endpoint.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204) The PrivateLink endpoint was deleted.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint PATCH /v1/networking/privatelink/endpoints/{endpointId}\n@desc Update a PrivateLink endpoint\n@required {projectId: str # The project ID the PrivateLink endpoint belongs to., endpointId: str # The unique identifier of the PrivateLink endpoint.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str # A new name for the PrivateLink endpoint. When omitted, the current name is kept., enablePrivateDns: bool # When `true`, resolves the endpoint service through its private DNS names, which are then returned in `privateDnsNames`. When `false`, clears them. When omitted, the current setting is kept. At least one of `name` or `enablePrivateDns` must be provided.}\n@returns(200) {awsDnsEntries: [str], awsServiceName: str, createdAt: num, endpointId: str, name: str, privateDnsNames: [str], projectId: str, status: str, statusMessage: str, teamId: str, updatedAt: num, vercelRegion: str, vpcEndpointId: str} # The updated PrivateLink endpoint.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endgroup\n\n@group connect\n@endpoint GET /v2/connect/connectors\n@desc List connectors\n@optional {limit: int # Maximum number of connectors to return. Defaults to 20., cursor: str # Cursor from `pagination.next` on the previous response., projectId: str # Return only connectors connected to this project., search: str # Search connector names, UIDs, and services., type: str # Comma-separated connector types: `slack`, `discord`, `github`, `linear`, `linq`, `salesforce`, `sendblue`, `snowflake`, `snowflake-wif`, `microsoft-entra`, `api-key`, `photon`, `oauth`, or `custom`., service: str # Comma-separated provider or service identifiers., sort: str(name/createdAt/updatedAt) # Sort by name in ascending order, or by creation or update time in descending order., teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(200) {connectors: [map], pagination: map{next: str?}} # A page of connectors.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410: The requested resource is no longer available., 422: The request cannot be completed in the current state.}\n\n@endpoint GET /v1/connect/connectors/{connector}\n@desc Get a connector\n@required {connector: str # Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.}\n@optional {teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(200) {accentColor: str, appTokens: map{crossInstallation: bool, permissionsUrl: str, requiresReinstallation: bool, scopes: [str], supportedAuthorizationDetails: [str], supportsRefinement: bool, supportsResources: bool}, backgroundColor: str, clientUrl: str?, connectionMethod: str, createdAt: num, createdBy: any, creationMode: str, defaultInstallationId: str, devsite: str, displayName: str, docsite: str, events: [str], icon: str, id: str, knownStale: bool, managed: map{sync: bool}, name: str, redirectUri: str, reinstallAt: num, service: str, supportedSubjectTypes: [str], supportsIcon: any, supportsInstallation: bool, supportsRevocation: bool, supportsTriggers: bool, target: str, triggerDestinations: [map], triggers: map{enabled: bool}, type: str, typeIcon: str, typeName: str, uid: str, updatedAt: num, updatedBy: any, userTokens: map{crossInstallation: bool, manualCredentialInput: bool, scopes: [str], supportedAuthorizationDetails: [str], supportsRefinement: bool, supportsResources: bool}, website: str} # The connector.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 409: The request conflicts with the current resource state., 410: The requested resource is no longer available., 422: The request cannot be completed in the current state.}\n\n@endpoint DELETE /v1/connect/connectors/{connector}\n@desc Delete a connector\n@required {connector: str # Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.}\n@optional {teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(204) The connector, its project connections, and its installation records were deleted.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 409: The request conflicts with the current resource state., 410: The requested resource is no longer available., 422: The request cannot be completed in the current state., 502: A dependency returned an invalid or unsuccessful response.}\n\n@endpoint POST /v1/connect/connectors\n@desc Create a connector\n@required {data: any # Provider configuration. With type, provide the complete configuration for that type. With service and connectionMethod, provide only credentials and preferences; Connect supplies the type, endpoints, templates, and defaults. Other connector types accept an arbitrary object.}\n@optional {teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., icon: str # SHA-1 digest of a PNG or JPEG icon that is at least 640 by 640 pixels. This field does not accept a URL or image bytes.  First compute the digest and upload the raw image with [POST /v2/files](https://vercel.com/docs/rest-api/deployments/upload-deployment-files). Send `Content-Length` and the same 40-character digest in `x-vercel-digest`. Then set `icon` to that digest.  ```js import { createHash } from 'node:crypto'; import { readFile } from 'node:fs/promises';  const VERCEL_TOKEN = process.env.VERCEL_TOKEN; const connectorId = 'scl_...'; const bytes = await readFile('icon.png'); const digest = createHash('sha1').update(bytes).digest('hex');  await fetch('https://api.vercel.com/v2/files', {   method: 'POST',   headers: {     Authorization: `Bearer ${VERCEL_TOKEN}`,     'Content-Type': 'application/octet-stream',     'Content-Length': String(bytes.length),     'x-vercel-digest': digest,   },   body: bytes, });  await fetch(`https://api.vercel.com/v2/connect/connectors/${connectorId}`, {   method: 'PATCH',   headers: {     Authorization: `Bearer ${VERCEL_TOKEN}`,     'Content-Type': 'application/json',   },   body: JSON.stringify({ icon: digest }), }); ```, backgroundColor: str # Branding background color (6-digit hex, for example, accentColor: str # Branding accent color (6-digit hex, for example, type: str # Connector implementation type for full configuration. Known types: api-key, discord, github, linear, linq, microsoft-entra, oauth, photon, salesforce, sendblue, slack, snowflake, snowflake-wif. Optional when service and connectionMethod select the type., service: str # Service slug or URL for which the connector is used. Required when connectionMethod is set. Service alone does not enable preset configuration., connectionMethod: str # Connection method slug of the service. Use it with service to select preset configuration., params: map # Values for the selected connection method's template fields. Requires connectionMethod., target: str # Which of the service's targets this connector is for. Requires \\\"connectionMethod\\\" and must be one that method serves. Optional., uid: str # Optional team-scoped unique identifier for the connector. If omitted or empty, Connect generates a value., name: str # Connector name. The value is trimmed and cannot contain control characters. If omitted or empty, the project name is used. A name or projectId is required. API key connectors require name., projectId: str # Project to connect during creation. If environments is omitted, the connection uses development, preview, and production., environments: [any] # Environments for the project connection. Requires projectId. Use one or more built-in environment names or stable custom environment IDs that belong to the project. Duplicate values are accepted and removed., triggers: bool # Whether the triggers are enabled for this connector., triggerType: str # Trigger driver type. Resolved automatically from the service or known service registry when not provided. Only set when using the newly decoupled triggers resolution flow., triggerData: map # Trigger-specific credentials (e.g. webhook signing secret). Validated and encrypted against the trigger type definition., triggerDestination: any # Initial trigger destination. Requires triggers to be enabled and a projectId here or at the top level. Connector responses expose the resulting set as triggerDestinations. Replace the complete set with PATCH /v1/connect/connectors/{connector}/trigger-destinations., events: [str] # Default trigger events for this connector.}\n@returns(201) {accentColor: str, appTokens: map{crossInstallation: bool, permissionsUrl: str, requiresReinstallation: bool, scopes: [str], supportedAuthorizationDetails: [str], supportsRefinement: bool, supportsResources: bool}, backgroundColor: str, clientUrl: str?, connectionMethod: str, createdAt: num, createdBy: any, creationMode: str, defaultInstallationId: str, devsite: str, displayName: str, docsite: str, events: [str], icon: str, id: str, knownStale: bool, managed: map{sync: bool}, name: str, redirectUri: str, reinstallAt: num, service: str, supportedSubjectTypes: [str], supportsIcon: any, supportsInstallation: bool, supportsRevocation: bool, supportsTriggers: bool, target: str, triggerDestinations: [map], triggers: map{enabled: bool}, type: str, typeIcon: str, typeName: str, uid: str, updatedAt: num, updatedBy: any, userTokens: map{crossInstallation: bool, manualCredentialInput: bool, scopes: [str], supportedAuthorizationDetails: [str], supportsRefinement: bool, supportsResources: bool}, website: str} # The connector was created.\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 409: The request conflicts with the current resource state., 410: The requested resource is no longer available., 422: The request cannot be completed in the current state., 500: An internal error occurred., 502: A dependency returned an invalid or unsuccessful response.}\n\n@endpoint PATCH /v2/connect/connectors/{connector}\n@desc Update a connector\n@required {connector: str # Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.}\n@optional {teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., triggers: bool # Whether the triggers are enabled for this connector., events: [str] # Default trigger events for this connector., data: any # Provider configuration fields for the connector type., icon: str # SHA-1 digest of a PNG or JPEG icon that is at least 640 by 640 pixels. This field does not accept a URL or image bytes.  First compute the digest and upload the raw image with [POST /v2/files](https://vercel.com/docs/rest-api/deployments/upload-deployment-files). Send `Content-Length` and the same 40-character digest in `x-vercel-digest`. Then set `icon` to that digest.  ```js import { createHash } from 'node:crypto'; import { readFile } from 'node:fs/promises';  const VERCEL_TOKEN = process.env.VERCEL_TOKEN; const connectorId = 'scl_...'; const bytes = await readFile('icon.png'); const digest = createHash('sha1').update(bytes).digest('hex');  await fetch('https://api.vercel.com/v2/files', {   method: 'POST',   headers: {     Authorization: `Bearer ${VERCEL_TOKEN}`,     'Content-Type': 'application/octet-stream',     'Content-Length': String(bytes.length),     'x-vercel-digest': digest,   },   body: bytes, });  await fetch(`https://api.vercel.com/v2/connect/connectors/${connectorId}`, {   method: 'PATCH',   headers: {     Authorization: `Bearer ${VERCEL_TOKEN}`,     'Content-Type': 'application/json',   },   body: JSON.stringify({ icon: digest }), }); ```, backgroundColor: str, accentColor: str, uid: str # Full team-scoped UID, such as `slack/my-bot`. It cannot contain whitespace, `%`, `#`, control characters, or Vercel-owned namespaces. Changing it breaks callers that use the old UID. The stable connector ID does not change., name: str # Display name for the connector. It is trimmed and cannot be empty or contain control characters.}\n@returns(200) {connector: map{accentColor: str, appTokens: map{crossInstallation: bool, permissionsUrl: str, requiresReinstallation: bool, scopes: [str], supportedAuthorizationDetails: [str], supportsRefinement: bool, supportsResources: bool}, backgroundColor: str, clientUrl: str?, connectionMethod: str, createdAt: num, createdBy: any, creationMode: str, defaultInstallationId: str, devsite: str, displayName: str, docsite: str, events: [str], icon: str, id: str, knownStale: bool, managed: map{sync: bool}, name: str, redirectUri: str, reinstallAt: num, service: str, supportedSubjectTypes: [str], supportsIcon: any, supportsInstallation: bool, supportsRevocation: bool, supportsTriggers: bool, target: str, triggerDestinations: [map], triggers: map{enabled: bool}, type: str, typeIcon: str, typeName: str, uid: str, updatedAt: num, updatedBy: any, userTokens: map{crossInstallation: bool, manualCredentialInput: bool, scopes: [str], supportedAuthorizationDetails: [str], supportsRefinement: bool, supportsResources: bool}, website: str}, reconsentNeeded: map{scope: str}, reinstallNeeded: bool, serviceSync: map{errors: [map], status: str}} # The updated connector and any required service-side follow-up signals.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 409: The request conflicts with the current resource state., 410: The requested resource is no longer available., 422: The request cannot be completed in the current state., 502: A dependency returned an invalid or unsuccessful response.}\n\n@endpoint PATCH /v1/connect/connectors/{connector}/trigger-destinations\n@desc Update connector trigger destinations\n@required {connector: str # Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`., destinations: [any] # Complete replacement set of trigger destinations. An empty array removes all destinations. Connector get and list responses expose the saved set as triggerDestinations.}\n@optional {teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(200) {accentColor: str, appTokens: map{crossInstallation: bool, permissionsUrl: str, requiresReinstallation: bool, scopes: [str], supportedAuthorizationDetails: [str], supportsRefinement: bool, supportsResources: bool}, backgroundColor: str, clientUrl: str?, connectionMethod: str, createdAt: num, createdBy: any, creationMode: str, defaultInstallationId: str, devsite: str, displayName: str, docsite: str, events: [str], icon: str, id: str, knownStale: bool, managed: map{sync: bool}, name: str, redirectUri: str, reinstallAt: num, service: str, supportedSubjectTypes: [str], supportsIcon: any, supportsInstallation: bool, supportsRevocation: bool, supportsTriggers: bool, target: str, triggerDestinations: [map], triggers: map{enabled: bool}, type: str, typeIcon: str, typeName: str, uid: str, updatedAt: num, updatedBy: any, userTokens: map{crossInstallation: bool, manualCredentialInput: bool, scopes: [str], supportedAuthorizationDetails: [str], supportsRefinement: bool, supportsResources: bool}, website: str} # The connector with its replaced trigger destinations.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 409: The request conflicts with the current resource state., 410: The requested resource is no longer available., 422: The request cannot be completed in the current state.}\n\n@endpoint GET /v2/connect/connectors/{connector}/projects\n@desc List projects for a connector\n@required {connector: str # Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`.}\n@optional {limit: int # Maximum number of project connections to return. Defaults to 50., cursor: str # Cursor from `pagination.next` on the previous response., teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(200) {pagination: map{next: str?}, projects: [map]} # A page of project connections for the connector.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 409: The request conflicts with the current resource state., 410: The requested resource is no longer available., 422: The request cannot be completed in the current state.}\n\n@endpoint GET /v1/connect/connectors/{connector}/projects/{projectId}\n@desc Get a connector project connection\n@required {connector: str # Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`., projectId: str # Vercel project ID.}\n@optional {teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(200) {connectorId: str, createdAt: num, enabledEnvironments: [any], project: map{customEnvironments: [map], id: str, name: str}, updatedAt: num} # The connector project connection.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 410: The requested resource is no longer available.}\n\n@endpoint POST /v1/connect/connectors/{connector}/projects/{projectId}\n@desc Create or update a connector project connection\n@required {connector: str # Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`., projectId: str # Vercel project ID., environments: [any] # One or more built-in environment names or stable custom environment IDs that belong to the project. Duplicate values are accepted and removed.}\n@optional {teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(200) {connectorId: str, createdAt: num, enabledEnvironments: [any], project: map{customEnvironments: [map], id: str, name: str}, updatedAt: num} # The connector project connection was created or updated.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 410: The requested resource is no longer available.}\n\n@endpoint DELETE /v1/connect/connectors/{connector}/projects/{projectId}\n@desc Disconnect a connector from a project\n@required {connector: str # Stable connector ID or URL-encoded team-scoped UID. Examples: `scl_abc123` or `slack%2Fmy-bot`., projectId: str # Vercel project ID.}\n@optional {teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(204) The connector was disconnected from the project.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 410: The requested resource is no longer available.}\n\n@endpoint GET /v2/connect/projects/{projectId}/connectors\n@desc List connectors for a project\n@required {projectId: str # Vercel project ID.}\n@optional {limit: int # Maximum number of connector connections to return. Defaults to 50., cursor: str # Cursor from `pagination.next` on the previous response., teamId: str # The team ID that scopes the request. Do not send it with slug. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected., slug: str # The team slug that scopes the request. Do not send it with teamId. If both are omitted, Vercel uses the team associated with the token or the authenticated user's default team. The request returns 401 if no team can be selected.}\n@returns(200) {connectors: [map], pagination: map{next: str?}} # A page of connector connections for the project.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The requested resource was not found., 410: The requested resource is no longer available.}\n\n@endpoint POST /v1/connect/token/{connector}\n@desc Get a Connect token\n@required {connector: str}\n@optional {subject: any, installationId: str, audience: [str], scopes: [str], resources: [str], authorizationDetails: [map{type: str}], validityBufferMs: num}\n@returns(200) {authorizationId: str, claims: map, connector: map{id: str, type: str, uid: str}, expiresAt: num, externalSubject: str, installationId: str, metadata: map, name: str, tenantId: str, token: str, tokenGroupId: str, tokenId: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 501}\n\n@endpoint POST /v1/connect/authorize/{connector}\n@desc Create a Connect authorization request\n@required {connector: str}\n@optional {subject: any, installationId: str, audience: [str], scopes: [str], resources: [str], authorizationDetails: [map{type: str}], validityBufferMs: num, returnUrl: str, webhook: str, prompt: str, deviceCode: bool, expiresInMs: num, additionalParams: map}\n@returns(200) {connector: map{displayName: str, id: str, name: str, service: str, serviceName: str, type: str, uid: str}, deviceCode: str, expiresAt: num, request: str, url: str, verifier: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 501}\n\n@endgroup\n\n@group deployments\n@endpoint GET /v3/deployments/{idOrUrl}/events\n@desc Get deployment events\n@required {idOrUrl: str # The unique identifier or hostname of the deployment.}\n@optional {direction: str(backward/forward)=forward # Order of the returned events based on the timestamp., follow: num(0/1) # When enabled, this endpoint will return live events as they happen., limit: num # Maximum number of events to return. Provide `-1` to return all available logs., name: str # Deployment build ID., since: num # Timestamp for when build logs should be pulled from., until: num # Timestamp for when the build logs should be pulled up until., statusCode: any # HTTP status code range to filter events by., delimiter: num(0/1), builds: num(0/1), teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint PATCH /v1/deployments/{deploymentId}/integrations/{integrationConfigurationId}/resources/{resourceId}/actions/{action}\n@desc Update deployment integration action\n@required {deploymentId: str, integrationConfigurationId: str, resourceId: str, action: str}\n@optional {status: str(running/succeeded/failed), statusText: str, statusUrl: str(uri), outcomes: [any]}\n@returns(202)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v13/deployments/{idOrUrl}\n@desc Get a deployment by ID or URL\n@required {idOrUrl: str # The unique identifier or hostname of the deployment.}\n@optional {withGitRepoInfo: str # When `true`, the response includes the `gitSource` object with the commit SHA, branch name, and connected repository metadata. Defaults to `false`., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) Returns a reduced view of the deployment with public information only. Private fields are omitted when the requester is not the deployment owner. Returns the deployment object for the authenticated owner, including private fields such as environment variables, build log URLs, and internal metadata. Returns the reduced deployment view for anonymous (`vcn_`) callers. Pool-team details are withheld.\n@errors {400: One of the provided values in the request query is invalid., 403: You do not have permission to access this resource., 404: The deployment was not found, 410, 429}\n\n@endpoint POST /v13/deployments\n@desc Create a new deployment\n@required {name: str # A string with the project name used in the deployment URL}\n@optional {forceNew: any(0/1) # Forces a new deployment even if there is a previous similar deployment. Set to `1` to bypass deployment deduplication and always trigger a fresh build., skipAutoDetectionConfirmation: any(0/1) # Set to `1` to skip framework auto-detection and proceed without confirmation. By default, if Vercel detects a framework that differs from the project setting, the API returns a `400` asking you to confirm. Use this to suppress that check in automated pipelines., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., buildMachine: str # Selects a custom build machine for this deployment without changing project settings., customEnvironmentSlugOrId: str # The slug or ID of a custom environment to deploy to, overriding the default target environment. When omitted, the deployment targets the environment inferred from the branch (production or preview)., deploymentId: str # The ID of an existing deployment to redeploy. All project settings and environment variables are inherited from the original unless explicitly overridden in this request. The redeployment gets a new ID, URL, and build., files: [any] # The files to include in the deployment. Each entry is either an inlined file (with `data` and `encoding`) or a reference to a previously uploaded file (with `sha` and `size`). Required for non-git deployments. Cannot be used together with `gitSource`., gitAccessToken: str # Available only to Vercel platform accounts. A read-only GitHub access token scoped to the requested repository. Use a token with a lifetime of 24 hours or less that remains valid until source retrieval completes., gitMetadata: map{remoteUrl: str, commitAuthorName: str, commitAuthorEmail: str, commitMessage: str, commitRef: str, commitSha: str, dirty: bool, ci: bool, ciType: str, ciGitProviderUsername: str, ciGitRepoVisibility: str, rootDirectory: str} # Populates initial git metadata for different git providers., gitSource: any # Defines the Git Repository source to be deployed. This property can not be used in combination with `files`., meta: map # An object containing the deployment's metadata. Multiple key-value pairs can be attached to a deployment. For deployments created with a Cursor Origin `gitSource`, Vercel automatically adds `cursorOriginDeployment`, `cursorOriginCommitSha`, `cursorOriginCommitRef`, `cursorOriginCommitMessage`, `cursorOriginCommitAuthorName`, `cursorOriginCommitAuthorEmail` when available, `cursorOriginOwner`, `cursorOriginRepo`, `cursorOriginRepoId`, and `cursorOriginPrId` for pull request deployments., monorepoManager: str # The monorepo manager that is being used for this deployment. When `null` is used no monorepo manager is selected, project: str # The target project identifier in which the deployment will be created. When defined, this parameter overrides name, projectSettings: map{buildCommand: str, commandForIgnoringBuildStep: str, devCommand: str, framework: str, installCommand: str, nodeVersion: str, outputDirectory: str, rootDirectory: str, serverlessFunctionRegion: str, skipGitConnectDuringLink: bool, sourceFilesOutsideRootDirectory: bool} # Project settings that will be applied to the deployment. It is required for the first deployment of a project and will be saved for any following deployments, target: str # Either not defined, `staging`, `production`, or a custom environment identifier. If `staging`, a staging alias in the format `-.vercel.app` will be assigned. If `production`, any aliases defined in `alias` will be assigned. If omitted, the target will be `preview`., withLatestCommit: bool # When `true` and `deploymentId` is passed in, the sha from the previous deployment's `gitSource` is removed forcing the latest commit to be used.}\n@returns(200) Returns the newly created deployment object. Poll `readyState` to track build progress. See https://vercel.com/docs/deployments/deployment-states for possible states. Returns the reduced deployment view for anonymous (`vcn_`) callers. Pool-team details are withheld.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated Pro customers are allowed to deploy Serverless Functions to up to `proMaxRegions` regions, or if the project was created before the limit was introduced. Deploying to Serverless Functions to multiple regions requires a plan update, 403: You do not have permission to access this resource., 404, 409: The deployment project is being transferred, 410, 426, 429, 500, 503}\n\n@endpoint PATCH /v12/deployments/{id}/cancel\n@desc Cancel a deployment\n@required {id: str # The unique identifier of the deployment.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {alias: [str], aliasAssigned: bool, aliasAssignedAt: any?, aliasError: map?{code: str, message: str}, aliasFinal: str?, aliasWarning: map?{action: str, code: str, link: str, message: str}, alwaysRefuseToBuild: bool, atproto: any, attribution: map{commitMeta: map{email: str, isVerified: bool, name: str}, gitUser: map{id: any, login: str, provider: str, type: str}, vercelUser: map{id: str, teamRoles: [str], username: str}}, autoAssignCustomDomains: bool, automaticAliases: [str], bootedAt: num, build: map{env: [str]}, buildArtifactUrls: [str], buildContainerFinishedAt: num, buildErrorAt: num, buildingAt: num, builds: [map], buildSkipped: bool, canceledAt: num, checks: map{deployment-alias: map{completedAt: num, startedAt: num, state: str}}, checksConclusion: str, checksState: str, config: map{functionMemoryType: str, functionTimeout: num?, functionType: str, isUsingActiveCPU: bool, resourceConfig: map{buildQueue: map{configuration: str}, elasticConcurrency: str, buildMachine: map{purchaseType: str?}}, secureComputeFallbackRegion: str?, secureComputePrimaryRegion: str?, version: num}, connectBuildsEnabled: bool, connectConfigurationId: str, createdAt: num, createdIn: str, creator: map{avatar: str, type: str, uid: str, username: str}, crons: [map], customEnvironment: any, defaultRoute: str, deletedAt: num?, duration: map{endTime: num, endTimeCapped: num, startTime: num, timeForBilling: num, timeToContainerExit: num, timeToContainerExitCapped: num, timeToReady: num}, env: [str], errorCode: str, errorLink: str, errorMessage: str?, errorStep: str, flags: any, functions: map?, gitRepo: any?, gitSource: any, id: str, images: map{contentDispositionType: str, contentSecurityPolicy: str, dangerouslyAllowSVG: bool, domains: [str], formats: [str], localPatterns: [map], minimumCacheTTL: num, qualities: [num], remotePatterns: [map], sizes: [num]}, initReadyAt: num, inspectorUrl: str?, integrations: map{claimedAt: num, completedAt: num, skippedAt: num, skippedBy: str, startedAt: num, status: str}, isFirstBranchDeployment: bool, isInConcurrentBuildsQueue: bool, isInstantStatic: bool, isInSystemBuildsQueue: bool, lambdas: [map], manualProvisioning: map{completedAt: num, state: str}, meta: map, microfrontends: any, monorepoManager: str?, name: str, nodeVersion: str, oidcTokenClaims: map{aud: str, custom_environment_id: str, environment: str, iss: str, mfe_group_ids: [str], owner: str, owner_id: str, plan: str, project: str, project_id: str, scope: str, sub: str}, oomReport: str, originCacheRegion: str, ownerId: str, passiveConnectConfigurationId: str, passiveRegions: [str], plan: str, platform: map{creator: map{avatar: str, name: str}, meta: map, origin: map{type: str, value: str}, source: map{name: str}}, prebuilt: bool, previewCommentsEnabled: bool, project: map{framework: str?, id: str, name: str}, projectId: str, projectSettings: map{buildCommand: str?, commandForIgnoringBuildStep: str?, devCommand: str?, framework: str?, installCommand: str?, nodeVersion: str, outputDirectory: str?, speedInsights: map{canceledAt: num, dataReceivedAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str, paidAt: num}, webAnalytics: map{canceledAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str}}, public: bool, ready: num, readyState: str, readyStateReason: str, readySubstate: str, regions: [str], resourceConfig: map{buildMachine: map{cores: num, defaultPurchaseType: str, machineSelectionType: str, memory: num, purchaseType: str, selectionSource: str}}, routes: [any]?, seatBlock: map{blockCode: str, gitProvider: str, gitUserId: any, isVerified: bool, userId: str}, services: [any], softDeletedByRetention: bool, source: str, status: str, target: str?, team: map{avatar: str, id: str, name: str, slug: str}, ttyBuildLogs: bool, type: str, undeletedAt: num, url: str, userAliases: [str], userConfiguredDeploymentId: str, version: num} # Returns the updated deployment object with `readyState` set to `CANCELED`. The build has been stopped and this action is irreversible.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group domains\n@endpoint GET /v5/domains/{domain}/records\n@desc List existing DNS records\n@required {domain: str}\n@optional {limit: str # Maximum number of records to list from a request., since: str # Get records created after this JavaScript timestamp., until: str # Get records created before this JavaScript timestamp., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) Successful response retrieving a list of paginated DNS records.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v2/domains/{domain}/records\n@desc Create a DNS record\n@required {domain: str # The domain used to create the DNS record., type: str(A/AAAA/ALIAS/CAA/CNAME/HTTPS/MX/SRV/TXT/NS) # The type of record, it could be one of the valid DNS records.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) Successful response showing the uid of the newly created DNS record.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint PATCH /v1/domains/records/{recordId}\n@desc Update an existing DNS record\n@required {recordId: str # The id of the DNS record}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str # The name of the DNS record, value: str # The value of the DNS record, type: str(A/AAAA/ALIAS/CAA/CNAME/HTTPS/MX/SRV/TXT/NS) # The type of the DNS record, ttl: int # The Time to live (TTL) value of the DNS record, mxPriority: int # The MX priority value of the DNS record, srv: map{target!: str, weight!: int, port!: int, priority!: int}, https: map{priority!: int, target!: str, params: str}, comment: str # A comment to add context on what this DNS record is for}\n@returns(200) {comment: str, createdAt: num?, creator: str, domain: str, id: str, name: str, recordType: str, ttl: num, type: str, value: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint PUT /domains/{domain}/records\n@required {domain: str # The domain name}\n@returns(200) {recordIds: [str]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 415}\n\n@endpoint GET /domains/records/{recordId}\n@required {recordId: str # The unique ID of the DNS record}\n@returns(200) {comment: str, createdAt: num?, creator: str, domain: str, id: str, name: str, recordType: str, ttl: num, type: str, value: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v2/domains/{domain}/records/{recordId}\n@desc Delete a DNS record\n@required {domain: str, recordId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) Successful response by removing the specified DNS record.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group registrar\n@endpoint POST /v1/registrar/domains/search\n@desc Get Domain Availability and Pricing\n@required {domains: [str] # an array of at most 200 item(s)}\n@optional {teamId: str}\n@returns(200) {results: [any]} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/tlds/supported\n@desc Get supported TLDs\n@optional {teamId: str}\n@returns(200) A list of the TLDs supported by Vercel.\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/tlds/{tld}\n@desc Get TLD\n@required {tld: str}\n@optional {teamId: str}\n@returns(200) {supportedLanguageCodes: map} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/tlds/{tld}/price\n@desc Get TLD price data\n@required {tld: str}\n@optional {years: str # The number of years to get the price for. If not provided, the minimum number of years for the TLD will be used., teamId: str}\n@returns(200) {years: num, purchasePrice: any, renewalPrice: any, transferPrice: any} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/domains/{domain}/availability\n@desc Get availability for a domain\n@required {domain: str}\n@optional {teamId: str}\n@returns(200) {available: bool} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 404: NotFound, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/domains/{domain}/price\n@desc Get price data for a domain\n@required {domain: str}\n@optional {years: str # The number of years to get the price for. If not provided, the minimum number of years for the TLD will be used., teamId: str}\n@returns(200) {years: num, purchasePrice: any, renewalPrice: any, transferPrice: any} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint POST /v1/registrar/domains/price\n@desc Get price data for multiple domains\n@required {domains: [str] # an array of at most 50 item(s)}\n@optional {teamId: str, years: num # The number of years to get the price for. If not provided, the minimum number of years for the TLD will be used.}\n@returns(200) {results: [map]} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint POST /v1/registrar/domains/availability\n@desc Get availability for multiple domains\n@required {domains: [str] # an array of at most 50 item(s)}\n@optional {teamId: str}\n@returns(200) {results: [map]} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/domains/{domain}/contact-info/schema\n@desc Get contact info schema\n@required {domain: str}\n@optional {teamId: str}\n@returns(200) Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/domains/{domain}/auth-code\n@desc Get the auth code for a domain\n@required {domain: str}\n@optional {teamId: str}\n@returns(200) {authCode: str} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 404: The domain was not found in our system., 409: The domain cannot be transfered out until the specified date., 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint POST /v1/registrar/domains/{domain}/buy\n@desc Buy a domain\n@required {domain: str, autoRenew: bool # Whether the domain should be auto-renewed before it expires. This can be configured later through the Vercel Dashboard or the [Update auto-renew for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/update-auto-renew-for-a-domain) endpoint., years: num # The number of years to purchase the domain for., expectedPrice: num, contactInformation: map{firstName!: str, lastName!: str, email!: str, phone!: str, address1!: str, address2: str, city!: str, state!: str, zip!: str, country!: str, companyName: str, fax: str, additional: map} # The contact information for the domain. Some TLDs require additional contact information. Use the [Get contact info schema](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-contact-info-schema) endpoint to retrieve the required fields.}\n@optional {teamId: str, languageCode: str # The language code for the domain. For punycode domains, this must be provided. The list of supported language codes for a TLD can be retrieved from the [Get TLD](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-tld) endpoint.}\n@returns(200) {orderId: str, _links: map} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint POST /v1/registrar/domains/buy\n@desc Buy multiple domains\n@required {domains: [map{domainName!: str, autoRenew!: bool, years!: num, expectedPrice!: num, languageCode: str}], contactInformation: map{firstName!: str, lastName!: str, email!: str, phone!: str, address1!: str, address2: str, city!: str, state!: str, zip!: str, country!: str, companyName: str, fax: str, additional: map} # The contact information for the domain. Some TLDs require additional contact information. Use the [Get contact info schema](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/get-contact-info-schema) endpoint to retrieve the required fields.}\n@optional {teamId: str}\n@returns(200) {orderId: str, _links: map} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint POST /v1/registrar/domains/{domain}/transfer\n@desc Transfer-in a domain\n@required {domain: str, authCode: str # The auth code for the domain. You must obtain this code from the losing registrar., autoRenew: bool # Whether the domain should be auto-renewed before it expires. This can be configured later through the Vercel Dashboard or the [Update auto-renew for a domain](https://vercel.com/docs/rest-api/reference/endpoints/domains-registrar/update-auto-renew-for-a-domain) endpoint., years: num # The number of years to renew the domain for once it is transferred in. This must be a valid number of transfer years for the TLD., expectedPrice: num, contactInformation: map{firstName!: str, lastName!: str, email!: str, phone!: str, address1!: str, address2: str, city!: str, state!: str, zip!: str, country!: str, companyName: str, fax: str}}\n@optional {teamId: str}\n@returns(200) {orderId: str, _links: map} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/domains/{domain}/transfer\n@desc Get a domain's transfer status\n@required {domain: str}\n@optional {teamId: str}\n@returns(200) {status: str} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 404: NotFound, 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint POST /v1/registrar/domains/{domain}/renew\n@desc Renew a domain\n@required {domain: str, years: num # The number of years to renew the domain for., expectedPrice: num}\n@optional {teamId: str, contactInformation: map{firstName!: str, lastName!: str, email!: str, phone!: str, address1!: str, address2: str, city!: str, state!: str, zip!: str, country!: str, companyName: str, fax: str}}\n@returns(200) {orderId: str, _links: map} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 404: The domain was not found in our system., 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint PATCH /v1/registrar/domains/{domain}/auto-renew\n@desc Update auto-renew for a domain\n@required {domain: str, autoRenew: bool}\n@optional {teamId: str}\n@returns(204) Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 404: The domain was not found in our system., 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint PATCH /v1/registrar/domains/{domain}/nameservers\n@desc Update nameservers for a domain\n@required {domain: str, nameservers: [str]}\n@optional {teamId: str}\n@returns(204) Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 404: The domain was not found in our system., 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/domains/{domain}/contact-verification\n@desc Get contact verification status for a domain\n@required {domain: str}\n@optional {teamId: str}\n@returns(200) The registrant contact has been verified.\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: Forbidden, 404: The domain was not found in our system., 429: TooManyRequests, 500: InternalServerError}\n\n@endpoint GET /v1/registrar/orders/{orderId}\n@desc Get a domain order\n@required {orderId: str}\n@optional {teamId: str}\n@returns(200) {orderId: str, domains: [any], status: str, error: any} # Success\n@errors {400: There was something wrong with the request, 401: Unauthorized, 403: NotAuthorizedForScope, 404: NotFound, 429: TooManyRequests, 500: InternalServerError}\n\n@endgroup\n\n@group domains\n@endpoint GET /v6/domains/{domain}/config\n@desc Get a Domain's configuration\n@required {domain: str # The name of the domain.}\n@optional {projectIdOrName: str # The project id or name that will be associated with the domain. Use this when the domain is not yet associated with a project., strict: any(true/false) # When true, the response will only include the nameservers assigned directly to the specified domain. When false and there are no nameservers assigned directly to the specified domain, the response will include the nameservers of the domain's parent zone., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {acceptedChallenges: [str], configuredBy: str?, recommendedCNAME: [map], recommendedIPv4: [map], misconfigured: bool}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v9/domains/{domain}/verification\n@desc Get Domain Verification Record\n@required {domain: str # The domain name to get the verification record for}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {txtRecord: str, verificationDomain: str} # Returns the TXT record needed to verify domain ownership.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v9/domains/{domain}/claim\n@desc Claim Domain Ownership\n@required {domain: str # The domain name to claim ownership of}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {domain: map{boughtAt: num?, createdAt: num, creator: map{customerId: str?, email: str, id: str, isDomainReseller: bool, username: str}, customNameservers: [str], echMode: str, expiresAt: num?, id: str, intendedNameservers: [str], name: str, nameservers: [str], renew: bool, serviceType: str, teamId: str?, transferredAt: num?, transferStartedAt: num, userId: str, verified: bool}} # Domain ownership successfully claimed.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/domains/{domain}/project-domains\n@desc List Project Domains by Apex Domain\n@required {domain: str # The apex domain name.}\n@optional {limit: num # Maximum number of project domains to list from a request., since: num # Get project domains created after this JavaScript timestamp., until: num # Get project domains created before this JavaScript timestamp., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {pagination: map{count: num, next: num?, prev: num?}, projectDomains: [map]} # Successful response retrieving project domains for an apex domain.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v5/domains/{domain}\n@desc Get Information for a Single Domain\n@required {domain: str # The name of the domain.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {domain: map{boughtAt: num?, createdAt: num, creator: map{customerId: str?, email: str, id: str, isDomainReseller: bool, username: str}, customNameservers: [str], echMode: str, expiresAt: num?, id: str, intendedNameservers: [str], name: str, nameservers: [str], renew: bool, serviceType: str, suffix: bool, teamId: str?, transferredAt: num?, transferStartedAt: num, userId: str, verified: bool}} # Successful response retrieving an information for a specific domains.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v5/domains\n@desc List all the domains\n@optional {limit: num # Maximum number of domains to list from a request., since: num # Get domains created after this JavaScript timestamp., until: num # Get domains created before this JavaScript timestamp., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {domains: [map], pagination: map{count: num, next: num?, prev: num?}} # Successful response retrieving a list of domains.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410}\n\n@endpoint POST /v7/domains\n@desc Add an existing domain to the Vercel platform\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., method: str # The domain operation to perform. It can be either `add` or `move-in`.}\n@returns(200) {domain: map{boughtAt: num?, createdAt: num, creator: map{customerId: str?, email: str, id: str, isDomainReseller: bool, username: str}, customNameservers: [str], echMode: str, expiresAt: num?, id: str, intendedNameservers: [str], name: str, nameservers: [str], renew: bool, serviceType: str, teamId: str?, transferredAt: num?, transferStartedAt: num, userId: str, verified: bool}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409: The domain is not allowed to be used, 410}\n\n@endpoint PATCH /v3/domains/{domain}\n@desc Update or move apex domain\n@required {domain: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 500}\n\n@endpoint DELETE /v6/domains/{domain}\n@desc Remove a domain by name\n@required {domain: str # The name of the domain.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {uid: str} # Successful response removing a domain.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endgroup\n\n@group log-drains\n@endpoint GET /v1/log-drains/{id}\n@desc Retrieves a Configurable Log Drain (deprecated)\n@required {id: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {clientId: str, configurationId: str, createdFrom: str, integrationConfigurationUri: str, integrationIcon: str, integrationWebsite: str, projectsMetadata: [map]?}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/log-drains/{id}\n@desc Deletes a Configurable Log Drain (deprecated)\n@required {id: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/log-drains\n@desc Retrieves a list of all the Log Drains (deprecated)\n@optional {projectId: str, projectIdOrName: str, includeMetadata: bool=false, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/log-drains\n@desc Creates a Configurable Log Drain (deprecated)\n@required {deliveryFormat: any(json/ndjson) # The delivery log format, url: str(uri) # The log drain url, sources: [str]}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., headers: map # Headers to be sent together with the request, projectIds: [str], environments: [str], secret: str # Custom secret of log drain, samplingRate: num # The sampling rate for this log drain. It should be a percentage rate between 0 and 100. With max 2 decimal points, name: str # The custom name of this log drain.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group drains\n@endpoint POST /v1/drains\n@desc Create a new Drain\n@required {name: str, projects: str(some/all), schemas: map}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., projectIds: [str], filter: map{version!: str, filter!: any}, delivery: map, sampling: [map{type!: str, rate!: num, env: str, requestPath: str}], transforms: [map{id!: str}], source: map}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/drains\n@desc Retrieve a list of all Drains\n@optional {projectId: str, includeMetadata: bool=false, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {drains: any}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/drains/{id}\n@desc Delete a drain\n@required {id: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/drains/{id}\n@desc Find a Drain by id\n@required {id: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/drains/{id}\n@desc Update an existing Drain\n@required {id: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str, projects: str(some/all), projectIds: [str], filter: any, schemas: map, delivery: map, sampling: [map{type!: str, rate!: num, env: str, requestPath: str}], transforms: [map{id!: str}], status: str(enabled/disabled), source: map}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/drains/test\n@desc Validate Drain delivery configuration\n@required {schemas: map, delivery: map}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group edge-cache\n@endpoint POST /v1/edge-cache/invalidate-by-tags\n@desc Invalidate by tag\n@required {projectIdOrName: str, tags: any}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., target: str(production/preview)}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/edge-cache/dangerously-delete-by-tags\n@desc Dangerously delete by tag\n@required {projectIdOrName: str, tags: any}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., revalidationDeadlineSeconds: int, target: str(production/preview)}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/edge-cache/invalidate-by-src-images\n@desc Invalidate by source image\n@required {projectIdOrName: str, srcImages: [str]}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/edge-cache/dangerously-delete-by-src-images\n@desc Dangerously delete by source image\n@required {projectIdOrName: str, srcImages: [str]}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., revalidationDeadlineSeconds: int}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group global-config\n@endpoint GET /v1/global-config\n@desc Get Global Configs\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, createdBy: str, deletedAt: num?, digest: str, id: str, ownerId: str, purpose: any, schema: map, slug: str, syncedToDynamoAt: num, transfer: map{doneAt: num?, fromAccountId: str, startedAt: num}, updatedAt: num, itemCount: num, sizeInBytes: num} # List of all global configs.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v1/global-config\n@desc Create a Global Config\n@required {slug: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., items: map}\n@returns(201) {createdAt: num, createdBy: str, deletedAt: num?, digest: str, id: str, ownerId: str, purpose: any, schema: map, slug: str, syncedToDynamoAt: num, transfer: map{doneAt: num?, fromAccountId: str, startedAt: num}, updatedAt: num, itemCount: num, sizeInBytes: num}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/global-config/{edgeConfigId}\n@desc Get a Global Config\n@required {edgeConfigId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, createdBy: str, deletedAt: num?, digest: str, id: str, ownerId: str, purpose: any, schema: map, slug: str, syncedToDynamoAt: num, transfer: map{doneAt: num?, fromAccountId: str, startedAt: num}, updatedAt: num, itemCount: num, sizeInBytes: num} # The Global Config.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/global-config/{edgeConfigId}\n@desc Update a Global Config\n@required {edgeConfigId: str, slug: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, createdBy: str, deletedAt: num?, digest: str, id: str, ownerId: str, purpose: any, schema: map, slug: str, syncedToDynamoAt: num, transfer: map{doneAt: num?, fromAccountId: str, startedAt: num}, updatedAt: num, itemCount: num, sizeInBytes: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint DELETE /v1/global-config/{edgeConfigId}\n@desc Delete a Global Config\n@required {edgeConfigId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/global-config/{edgeConfigId}/items\n@desc Get Global Config items\n@required {edgeConfigId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) List of all Global Config items.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/global-config/{edgeConfigId}/items\n@desc Update Global Config items in batch\n@required {edgeConfigId: str, items: [any]}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {status: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 412}\n\n@endpoint GET /v1/global-config/{edgeConfigId}/schema\n@desc Get Global Config schema\n@required {edgeConfigId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The Global Config.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/global-config/{edgeConfigId}/schema\n@desc Update Global Config schema\n@required {edgeConfigId: str, definition: any}\n@optional {dryRun: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint DELETE /v1/global-config/{edgeConfigId}/schema\n@desc Delete a Global Config's schema\n@required {edgeConfigId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/global-config/{edgeConfigId}/item/{edgeConfigItemKey}\n@desc Get a Global Config item\n@required {edgeConfigId: str, edgeConfigItemKey: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, description: str, edgeConfigId: str, key: str, updatedAt: num, value: any?} # The Global Config.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/global-config/{edgeConfigId}/tokens\n@desc Get all tokens of a Global Config\n@required {edgeConfigId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, edgeConfigId: str, id: str, label: str, partialToken: str, token: str} # The Global Config.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/global-config/{edgeConfigId}/tokens\n@desc Delete one or more Global Config tokens\n@required {edgeConfigId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., tokens: [str], ids: [str]}\n@returns(204)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/global-config/{edgeConfigId}/token/{token}\n@desc Get Global Config token meta data\n@required {edgeConfigId: str, token: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, edgeConfigId: str, id: str, label: str, partialToken: str, token: str} # The Global Config.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/global-config/{edgeConfigId}/token\n@desc Create a Global Config token\n@required {edgeConfigId: str, label: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(201) {id: str, token: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/global-config/{edgeConfigId}/backups/{edgeConfigBackupVersionId}\n@desc Get Global Config backup\n@required {edgeConfigId: str, edgeConfigBackupVersionId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/global-config/{edgeConfigId}/backups/{edgeConfigBackupVersionId}/restore\n@desc Restore Global Config backup\n@required {edgeConfigId: str, edgeConfigBackupVersionId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {digest: str, previousDigest: str, restoredFrom: str, status: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 412}\n\n@endpoint GET /v1/global-config/{edgeConfigId}/backups\n@desc Get Global Config backups\n@required {edgeConfigId: str}\n@optional {next: str, limit: num, metadata: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {backups: [map], pagination: map{hasNext: bool, next: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group env\n@endpoint POST /v1/env\n@desc Create one or more shared environment variables\n@required {evs: [map{key!: str, value!: str, comment: str}]}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., type: str(encrypted/sensitive) # The type of environment variable, target: [any] # The target environment of the Shared Environment Variable, projectId: [str] # Associate a Shared Environment Variable to projects.}\n@returns(201) {created: [map], failed: [map]}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/env\n@desc Lists all Shared Environment Variables for a team\n@optional {search: str, projectId: str # Filter SharedEnvVariables that belong to a project, ids: str # Filter SharedEnvVariables based on comma separated ids, exclude_ids: str # Filter SharedEnvVariables based on comma separated ids, exclude-ids: str # Filter SharedEnvVariables based on comma separated ids, exclude_projectId: str # Filter SharedEnvVariables that belong to a project, exclude-projectId: str # Filter SharedEnvVariables that belong to a project, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: [map], pagination: map{count: num, next: num?, prev: num?}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/env\n@desc Updates one or more shared environment variables\n@required {updates: map # An object where each key is an environment variable ID (not the key name) and the value is the update to apply}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {failed: [map], updated: [map]}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 410}\n\n@endpoint DELETE /v1/env\n@desc Delete one or more Env Var\n@required {ids: [str] # IDs of the Shared Environment Variables to delete}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {deleted: [str], failed: [map]}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/env/{id}\n@desc Retrieve the decrypted value of a Shared Environment Variable by id.\n@required {id: str # The unique ID for the Shared Environment Variable to get the decrypted value.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {applyToAllCustomEnvironments: bool, comment: str, created: str(date-time), createdAt: num, createdBy: str?, customEnvironmentIds: [str], decrypted: bool, deletedAt: num, deletedBy: str?, id: str, key: str, lastEditedByDisplayName: str, ownerId: str?, projectId: [str], target: [str], type: str, updatedAt: num, updatedBy: str?, value: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint PATCH /v1/env/{id}/unlink/{projectId}\n@desc Disconnects a shared environment variable for a given project\n@required {id: str # The unique ID for the Shared Environment Variable to unlink from the project., projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {id: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group events\n@endpoint GET /v3/events\n@desc List User Events\n@optional {limit: num # Maximum number of items which may be returned., since: str # Timestamp to only include items created since then., until: str # Timestamp to only include items created until then., types: str # Comma-delimited list of event \"types\" to filter the results by., userId: str # Deprecated. Use `principalId` instead. If `principalId` and `userId` both exist, `principalId` will be used., principalId: str # When retrieving events for a Team, the `principalId` parameter may be specified to filter events generated by a specific principal., projectIds: str # Comma-delimited list of project IDs to filter the results by., entityId: str # Filters events to those associated with a specific entity (matched against `payload.id`). For example, a connector ID., withPayload: str # When set to `true`, the response will include the `payload` field for each event., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {events: [map]} # Successful response.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/events/types\n@desc List Event Types\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {categories: [map], types: [map]}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group projects\n@endpoint GET /v2/projects/{projectIdOrName}/feature-flags/flags\n@desc List flags\n@required {projectIdOrName: str # The project id or name}\n@optional {state: str(active/archived) # The state of the flags to retrieve. Defaults to `active`., limit: int=25 # Maximum number of flags to return., cursor: str # Pagination cursor to continue from., search: str # Search flags by their slug or description. Case-insensitive., tags: [str] # Filter flags by tag. Repeat the parameter for multiple tags (all must match)., createdBy: str # Filter flags by the id of the entity that created them (a user or team id)., maintainerIds: [str] # Filter flags by maintainer user id. Repeat the parameter for multiple maintainers (any may match)., includeMarketplaceFlags: bool # Whether to include Marketplace experimentation items in the paginated response. Defaults to false., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {pagination: map{next: str?}, data: [any]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/projects/{projectIdOrName}/feature-flags/flags\n@desc List flags\n@required {projectIdOrName: str # The project id or name}\n@optional {state: str(active/archived) # The state of the flags to retrieve. Defaults to `active`., withMetadata: bool # Deprecated. Whether to include creator metadata in each flag in the response. Resolve creator identity client-side (e.g. via the team members endpoint) instead; this parameter will be removed in a future release. Use `GET /v1/projects/:id/feature-flags/flags/:flagIdOrSlug?withMetadata=true` for single-flag lookups that need creator metadata., limit: int # Maximum number of flags to return. When not set, all flags are returned., cursor: str # Pagination cursor to continue from., search: str # Search flags by their slug or description. Case-insensitive., tags: [str] # Filter flags by tag. Repeat the parameter for multiple tags (all must match)., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: [map], pagination: map{next: str?}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/projects/{projectIdOrName}/feature-flags/flags\n@desc Create a flag\n@required {projectIdOrName: str # The project id or name, slug: str # A unique (per project) key for the flag, composed of letters, numbers, dashes, and underscores, kind: any(boolean/string/number/json) # The kind of flag, environments: map # The configuration for the flag in different environments}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., variants: [map{id!: str, label: str, description: str, value!: any}] # The variants of the flag, seed: num # A random seed to prevent split points in different flags from having the same targets, description: str # A description of the flag, state: str(active/archived), maintainerIds: [str] # The user ids of the maintainers of the flag, permanent: bool # Whether this flag is marked as permanent, indicating it should not be removed, tags: [str] # Tags for categorizing the flag}\n@returns(201) {createdAt: num, createdBy: str, description: str, environments: map, id: str, kind: str, maintainerIds: [str], ownerId: str, permanent: bool, projectId: str, revision: num, seed: num, slug: str, state: str, tags: [str], typeName: str, updatedAt: num, updatedBy: str, variants: [map]}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}\n@desc Get a flag\n@required {projectIdOrName: str # The project id or name, flagIdOrSlug: str # The flag id or name}\n@optional {ifMatch: str # Etag to match, can be used interchangeably with the `if-match` header, withMetadata: bool # Whether to include metadata in the response, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, createdBy: str, description: str, environments: map, id: str, kind: str, maintainerIds: [str], ownerId: str, permanent: bool, projectId: str, revision: num, seed: num, slug: str, state: str, tags: [str], typeName: str, updatedAt: num, updatedBy: str, variants: [map], metadata: map{creator: map{id: str, name: str}}}\n@errors {304, 400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}\n@desc Update a flag\n@required {projectIdOrName: str # The project id or name, flagIdOrSlug: str # The flag id or name}\n@optional {ifMatch: str # Etag to match, can be used interchangeably with the `if-match` header, withMetadata: bool # Whether to include metadata in the response, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., createdBy: str # The user who created this patch, message: str # Additional message for this version, variants: [map{id!: str, label: str, description: str, value!: any}] # The variants of the flag, environments: map # The configuration for the flag in different environments, seed: num # A random seed to prevent split points in different flags from having the same targets, description: str # A description of the flag, state: str(active/archived), maintainerIds: [str] # The user ids of the maintainers of the flag, permanent: bool # Whether this flag is marked as permanent, indicating it should not be removed, tags: [str] # Tags for categorizing the flag}\n@returns(200)\n@errors {304, 400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint DELETE /v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}\n@desc Delete a flag\n@required {projectIdOrName: str # The project id or name, flagIdOrSlug: str # The flag id or name}\n@optional {ifMatch: str # Etag to match, can be used interchangeably with the `if-match` header, withMetadata: bool # Whether to include metadata in the response, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {304, 400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/projects/{projectIdOrName}/feature-flags/flags/{flagIdOrSlug}/versions\n@desc List flag versions\n@required {projectIdOrName: str, flagIdOrSlug: str}\n@optional {limit: num=20, cursor: str # Pagination cursor, environment: str # Environment to filter by, withMetadata: bool=false # Whether to include metadata, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {pagination: map, versions: [map]}\n@errors {304, 400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/projects/{projectIdOrName}/feature-flags/settings\n@desc Get project flag settings\n@required {projectIdOrName: str # The project id or name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, enabled: bool, entities: [map], environments: [str], metadata: map{activeFlagCount: num, archivedFlagCount: num, configUpdatedAt: num, packRevision: num, packSizeInBytes: num, segmentCount: num}, ownerId: str, projectId: str, typeName: str, updatedAt: num}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/projects/{projectIdOrName}/feature-flags/settings\n@desc Update project flag settings\n@required {projectIdOrName: str # The project id or name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., enabled: bool, entities: [map{kind!: str, label!: str, attributes!: [map]}], environments: [str] # The environments to sync}\n@returns(200) {createdAt: num, enabled: bool, entities: [map], environments: [str], metadata: map{activeFlagCount: num, archivedFlagCount: num, configUpdatedAt: num, packRevision: num, packSizeInBytes: num, segmentCount: num}, ownerId: str, projectId: str, typeName: str, updatedAt: num}\n@returns(201) {createdAt: num, enabled: bool, entities: [map], environments: [str], metadata: map{activeFlagCount: num, archivedFlagCount: num, configUpdatedAt: num, packRevision: num, packSizeInBytes: num, segmentCount: num}, ownerId: str, projectId: str, typeName: str, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endgroup\n\n@group teams\n@endpoint GET /v1/teams/{teamId}/feature-flags/settings\n@desc List team project flag settings\n@required {teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {limit: int=20 # Maximum number of settings to return., cursor: str # Pagination cursor to continue from., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v2/teams/{teamId}/feature-flags/flags\n@desc List all flags for a team\n@required {teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {state: str(active/archived) # The state of the flags to retrieve. Defaults to `active`., limit: int=25 # Maximum number of flags to return., cursor: str # Pagination cursor to continue from., search: str # Search flags by their slug or description. Case-insensitive., kind: str(boolean/string/number/json) # The kind of flags to retrieve., tags: [str] # Filter flags by tag. Repeat the parameter for multiple tags (all must match)., createdBy: str # Filter flags by the id of the entity that created them (a user or team id)., maintainerIds: [str] # Filter flags by maintainer user id. Repeat the parameter for multiple maintainers (any may match)., includeMarketplaceFlags: bool # Whether to include Marketplace experimentation items in the paginated response. Defaults to false., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {pagination: map{next: str?}, data: [any]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/teams/{teamId}/feature-flags/flags\n@desc List all flags for a team\n@required {teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {state: str(active/archived) # The state of the flags to retrieve. Defaults to `active`., withMetadata: bool # Deprecated. Whether to include creator metadata in each flag in the response. Resolve creator identity client-side (e.g. via the team members endpoint) instead; this parameter will be removed in a future release., limit: int=20 # Maximum number of flags to return., cursor: str # Pagination cursor to continue from., search: str # Search flags by their slug or description. Case-insensitive., kind: str(boolean/string/number/json) # The kind of flags to retrieve., tags: [str] # Filter flags by tag. Repeat the parameter for multiple tags (all must match)., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: [map], pagination: map{next: str?}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group projects\n@endpoint PUT /v1/projects/{projectIdOrName}/feature-flags/segments\n@desc Create a segment\n@required {projectIdOrName: str # The project id or name, slug: str, label: str, data: map{rules: [map], include: map, exclude: map} # The data of the segment, hint: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., createdBy: str # The entity who created the segment, description: str}\n@returns(201) {createdAt: num, createdBy: str, data: map{exclude: map, include: map, rules: [map]}, description: str, hint: str, id: str, label: str, projectId: str, slug: str, typeName: str, updatedAt: num, usedByFlags: [str], usedBySegments: [str]}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/projects/{projectIdOrName}/feature-flags/segments\n@desc List segments\n@required {projectIdOrName: str # The project id or name}\n@optional {withMetadata: bool=false # Whether to include metadata, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/projects/{projectIdOrName}/feature-flags/segments/{segmentIdOrSlug}\n@desc Get a segment\n@required {projectIdOrName: str # The project id or name, segmentIdOrSlug: str # The segment slug}\n@optional {withMetadata: bool=false # Whether to include metadata, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {createdAt: num, createdBy: str, data: map{exclude: map, include: map, rules: [map]}, description: str, hint: str, id: str, label: str, projectId: str, slug: str, typeName: str, updatedAt: num, usedByFlags: [str], usedBySegments: [str], metadata: map{creator: map{id: str, name: str}}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/projects/{projectIdOrName}/feature-flags/segments/{segmentIdOrSlug}\n@desc Delete a segment\n@required {projectIdOrName: str # The project id or name, segmentIdOrSlug: str # The segment slug}\n@optional {withMetadata: bool=false # Whether to include metadata, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {304, 400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint PATCH /v1/projects/{projectIdOrName}/feature-flags/segments/{segmentIdOrSlug}\n@desc Update a segment\n@required {projectIdOrName: str # The project id or name, segmentIdOrSlug: str # The segment slug}\n@optional {withMetadata: bool=false # Whether to include metadata, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., operations: [map{action!: str, field!: str, entity!: str, attribute!: str, value!: map}], label: str, description: str, data: map{rules: [map], include: map, exclude: map} # The data of the segment, hint: str}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endgroup\n\n@group deployments\n@endpoint GET /v1/deployments/{deploymentId}/feature-flags\n@desc Retrieve the feature flags of a deployment\n@required {deploymentId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {flags: [map], status: map?{createdAt: num, deploymentId: str, flagCount: num, projectId: str, responseStatus: num}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group projects\n@endpoint GET /v1/projects/{projectIdOrName}/feature-flags/sdk-keys\n@desc Get all SDK keys\n@required {projectIdOrName: str # The project id or name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/projects/{projectIdOrName}/feature-flags/sdk-keys\n@desc Create an SDK key\n@required {projectIdOrName: str # The project id or name, sdkKeyType: str(server/mobile/client), environment: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., label: str}\n@returns(200) {createdAt: num, createdBy: str, deletedAt: num, environment: str, hashKey: str, label: str, partialKeyValue: str, projectId: str, type: str, updatedAt: num, keyValue: str, tokenValue: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint DELETE /v1/projects/{projectIdOrName}/feature-flags/sdk-keys/{hashKey}\n@desc Delete an SDK key\n@required {projectIdOrName: str # The project id or name, hashKey: str # The SDK key hash key to delete}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endgroup\n\n@group integrations\n@endpoint GET /v1/integrations/git-namespaces\n@desc List git namespaces by provider\n@optional {host: str # The custom Git host if using a custom Git provider, like GitHub Enterprise Server, provider: any(github/github-limited/github-custom-host/gitlab/bitbucket), viewerMetadata: bool # When true, includes the viewer object for each namespace.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401, 403: You do not have permission to access this resource., 404, 410, 429, 500}\n\n@endpoint GET /v1/integrations/search-repo\n@desc List git repositories linked to namespace by provider\n@optional {query: str, namespaceId: any, provider: any(github/github-limited/github-custom-host/gitlab/bitbucket/cursor-origin), installationId: str, host: str # The custom Git host if using a custom Git provider, like GitHub Enterprise Server, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401, 403: You do not have permission to access this resource., 404, 410, 429, 500, 502}\n\n@endpoint GET /v1/integrations/integration/{integrationIdOrSlug}/products/{productIdOrSlug}/plans\n@desc List integration billing plans\n@required {integrationIdOrSlug: str, productIdOrSlug: str}\n@optional {integrationConfigurationId: str, metadata: str, source: str(marketplace/deploy-button/external/v0/resource-claims/cli/oauth/backoffice/import-recommended-integrations/organization), teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {plans: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/integrations/installations/{integrationConfigurationId}/resources/{resourceId}/connections\n@desc Connect integration resource to project\n@required {integrationConfigurationId: str, resourceId: str, projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., envVarEnvironments: [str], makeEnvVarsSensitive: bool}\n@returns(201)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group installations\n@endpoint PATCH /v1/installations/{integrationConfigurationId}\n@desc Update Installation\n@required {integrationConfigurationId: str}\n@optional {status: str(ready/pending/onboarding/suspended/resumed/uninstalled/error), externalId: str, billingPlan: map{id!: str, type!: str, name!: str, description: str, paymentMethodRequired: bool, cost: str, details: [map], highlightedDetails: [map], effectiveDate: str}, notification: any # A notification to display to your customer. Send `null` to clear the current notification.}\n@returns(204)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/installations/{integrationConfigurationId}/account\n@desc Get Account Information\n@required {integrationConfigurationId: str}\n@returns(200) {contact: map?{email: str, name: str}, name: str, url: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/installations/{integrationConfigurationId}/member/{memberId}\n@desc Get Member Information\n@required {integrationConfigurationId: str, memberId: str}\n@returns(200) {globalUserId: str, id: str, role: str, userEmail: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/installations/{integrationConfigurationId}/credentials/rotate\n@desc Rotate Installation Credential\n@required {integrationConfigurationId: str, client_secret: str}\n@optional {client_id: str}\n@returns(200) {access_token: str, expires_in: num, scope: str, token_type: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/installations/{integrationConfigurationId}/credentials/revoke\n@desc Revoke Installation Credential\n@required {integrationConfigurationId: str, token: str, client_secret: str}\n@optional {client_id: str}\n@returns(200) {already_revoked: bool, revoked: bool}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/installations/{integrationConfigurationId}/events\n@desc Create Event\n@required {integrationConfigurationId: str, event: any}\n@returns(201)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/installations/{integrationConfigurationId}/resources\n@desc Get Integration Resources\n@required {integrationConfigurationId: str}\n@returns(200) {resources: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/installations/{integrationConfigurationId}/resources/{resourceId}\n@desc Get Integration Resource\n@required {integrationConfigurationId: str # The ID of the integration configuration (installation) the resource belongs to, resourceId: str # The ID provided by the 3rd party provider for the given resource}\n@returns(200) {billingPlanId: str, id: str, internalId: str, metadata: map, name: str, notification: map{href: str, level: str, message: str, title: str}, productId: str, protocolSettings: map{authentication: map{appUrls: [map]}, experimentation: map{edgeConfigId: str, globalConfigId: str}}, status: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/installations/{integrationConfigurationId}/resources/{resourceId}\n@desc Delete Integration Resource\n@required {integrationConfigurationId: str, resourceId: str}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/installations/{integrationConfigurationId}/resources/{resourceId}\n@desc Import Resource\n@required {integrationConfigurationId: str, resourceId: str, productId: str, name: str, status: str(ready/pending/onboarding/suspended/resumed/uninstalled/error)}\n@optional {ownership: str(owned/linked/sandbox), metadata: map, billingPlan: map{id!: str, type!: str, name!: str, description: str, paymentMethodRequired: bool, cost: str, details: [map], highlightedDetails: [map], effectiveDate: str}, notification: map{level!: str, title!: str, message: str, href: str(uri)}, extras: map, secrets: [map{name!: str, value!: str, prefix: str, environmentOverrides: map}]}\n@returns(200) {name: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 422}\n\n@endpoint PATCH /v1/installations/{integrationConfigurationId}/resources/{resourceId}\n@desc Update Resource\n@required {integrationConfigurationId: str, resourceId: str}\n@optional {ownership: str(owned/linked/sandbox), name: str, status: str(ready/pending/onboarding/suspended/resumed/uninstalled/error), metadata: map, billingPlan: map{id!: str, type!: str, name!: str, description: str, paymentMethodRequired: bool, cost: str, details: [map], highlightedDetails: [map], effectiveDate: str}, notification: any, extras: map, secrets: any}\n@returns(200) {name: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 422}\n\n@endpoint POST /v1/installations/{integrationConfigurationId}/billing\n@desc Submit Billing Data\n@required {integrationConfigurationId: str, timestamp: str(date-time) # Server time of your integration, used to determine the most recent data for race conditions & updates. Only the latest usage data for a given day, week, and month will be kept., eod: str(date-time) # End of Day, the UTC datetime for when the end of the billing/usage day is in UTC time. This tells us which day the usage data is for, and also allows for your \"end of day\" to be different from UTC 00:00:00. eod must be within the period dates, and cannot be older than 24h earlier from our server's current time., period: map{start!: str(date-time), end!: str(date-time)} # Period for the billing cycle. The period end date cannot be older than 24 hours earlier than our current server's time., billing: any # Billing data (interim invoicing data)., usage: [map{resourceId: str, name!: str, type!: str, units!: str, dayValue!: num, periodValue!: num, planValue: num}]}\n@returns(201)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/installations/{integrationConfigurationId}/billing/invoices\n@desc Submit Invoice\n@required {integrationConfigurationId: str, invoiceDate: str(date-time) # Invoice date. Must be within the period's start and end., period: map{start!: str(date-time), end!: str(date-time)} # Subscription period for this billing cycle., items: [map{resourceId: str, billingPlanId!: str, start: str(date-time), end: str(date-time), name!: str, details: str, price!: str, quantity!: num, units!: str, total!: str}]}\n@optional {externalId: str # Partner-provided invoice identifier. If provided, it must be unique for this installation., memo: str # Additional memo for the invoice., discounts: [map{resourceId: str, billingPlanId!: str, start: str(date-time), end: str(date-time), name!: str, details: str, amount!: str}], final: bool # Set this to `true` if this is the final invoice for the installation. Can only be set when the installation is pending deletion., test: map{validate: bool, result: str} # Test mode}\n@returns(200) {invoiceId: str, test: bool, validationErrors: [str]}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/installations/{integrationConfigurationId}/billing/finalize\n@desc Finalize Installation\n@required {integrationConfigurationId: str}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/installations/{integrationConfigurationId}/billing/invoices/{invoiceId}\n@desc Get Invoice\n@required {integrationConfigurationId: str, invoiceId: str}\n@returns(200) {created: str, discounts: [map], externalId: str, invoiceDate: str, invoiceId: str, invoiceNumber: str, items: [map], memo: str, paidAt: str, period: map{end: str, start: str}, refundedAt: str, refundReason: str, refundTotal: str, state: str, test: bool, total: str, updated: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint POST /v1/installations/{integrationConfigurationId}/billing/invoices/{invoiceId}/actions\n@desc Invoice Actions\n@required {integrationConfigurationId: str, invoiceId: str}\n@returns(204)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/installations/{integrationConfigurationId}/billing/balance\n@desc Submit Prepayment Balances\n@required {integrationConfigurationId: str, timestamp: str(date-time) # Server time of your integration, used to determine the most recent data for race conditions & updates. Only the latest usage data for a given day, week, and month will be kept., balances: [map{resourceId: str, credit: str, nameLabel: str, currencyValueInCents!: num}]}\n@returns(201)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/installations/{integrationConfigurationId}/products/{integrationProductIdOrSlug}/resources/{resourceId}/secrets\n@desc Deprecated: true. Update Resource Secrets (Deprecated)\n@required {integrationConfigurationId: str, integrationProductIdOrSlug: str, resourceId: str, secrets: [map{name!: str, value!: str, prefix: str, environmentOverrides: map}]}\n@optional {partial: bool # If true, will only update the provided secrets}\n@returns(201)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 422}\n\n@endpoint PUT /v1/installations/{integrationConfigurationId}/resources/{resourceId}/secrets\n@desc Update Resource Secrets\n@required {integrationConfigurationId: str, resourceId: str, secrets: [map{name!: str, value!: str, prefix: str, environmentOverrides: map}]}\n@optional {partial: bool # If true, will only overwrite the provided secrets instead of replacing all secrets.}\n@returns(201)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 422}\n\n@endgroup\n\n@group integrations\n@endpoint GET /v1/integrations/configurations\n@desc Get configurations for the authenticated user or team\n@required {view: str(account/project)}\n@optional {installationType: str(marketplace/external/provisioning), integrationIdOrSlug: str # ID of the integration, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The list of configurations for the authenticated user\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/integrations/configuration/{id}\n@desc Retrieve an integration configuration\n@required {id: str # ID of the configuration to check}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The configuration with the provided id\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The configuration was not found, 410}\n\n@endpoint DELETE /v1/integrations/configuration/{id}\n@desc Delete an integration configuration\n@required {id: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204) The configuration was successfully removed\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The configuration was not found, 410}\n\n@endpoint GET /v1/integrations/configuration/{id}/products\n@desc List products for integration configuration\n@required {id: str # ID of the integration configuration}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {configuration: map{id: str}, integration: map{id: str, name: str, slug: str}, products: [map]} # List of products available for this integration configuration\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint POST /v1/integrations/sso/token\n@desc SSO Token Exchange\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid., 403, 500}\n\n@endpoint GET /v2/integrations/log-drains\n@desc Retrieves a list of Integration log drains (deprecated)\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) A list of log drains\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v2/integrations/log-drains\n@desc Creates a new Integration Log Drain (deprecated)\n@required {name: str # The name of the log drain, url: str(uri) # The url where you will receive logs. The protocol must be `https://` or `http://` when type is `json` and `ndjson`.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., projectIds: [str], secret: str # A secret to sign log drain notification headers so a consumer can verify their authenticity, deliveryFormat: any(json/ndjson) # The delivery log format, sources: [str], headers: map # Headers to be sent together with the request, environments: [str]}\n@returns(200) {branch: str, clientId: str, configurationId: str, createdAt: num, createdFrom: str, deliveryFormat: str, environments: [str], headers: map, id: str, name: str, ownerId: str, projectId: str?, projectIds: [str], samplingRate: num, source: any, sources: [str], url: str} # The log drain was successfully created\n@errors {400: One of the provided values in the request body is invalid. The provided token is not from an OAuth2 Client, 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint DELETE /v1/integrations/log-drains/{id}\n@desc Deletes the Integration log drain with the provided `id` (deprecated)\n@required {id: str # ID of the log drain to be deleted}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204) The log drain was successfully deleted\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group api-keys\n@endpoint POST /api-keys\n@required {purpose: str # The API key's purpose, which restricts how it can be used.}\n@optional {projectId: str # An optional project to restrict the API key to., name: str # An optional name for the API key., expiresAt: num # The API key's expiration, expressed as a UNIX timestamp in milliseconds., aiGatewayQuota: map{limitAmount!: num, includeByokInQuota: bool, refreshPeriod: str, alertThresholds: [num]} # Optional AI Gateway quota configuration for the API key., metadata: map # Optional generic metadata for the API key. The accepted shape depends on the key's `purpose` and is validated on creation; for `ai-gateway` keys this accepts `environment`.}\n@returns(200) {apiKeyString: str, apiKey: map{id: str, name: str, partialKey: str, teamId: str, purpose: str, projectId: str?, expiresAt: num?, activeAt: num, createdAt: num, createdBy: str, leakedAt: num?, leakedUrl: str?, createdByAppId: str?, quota: map{quotaEntityId: str, limitAmount: num, currentSpend: num, currentByokSpend: num, includeByokInQuota: bool, refreshPeriod: any, active: bool, archived: bool, alertThresholds: [num], createdAt: num, updatedAt: num}, metadata: map}} # Successfully created an API key.\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410, 429, 500}\n\n@endgroup\n\n@group kms\n@endpoint GET /v1/kms/issuers\n@desc List issuers\n@optional {limit: int # Maximum number of issuers to return., next: str # Continuation cursor to retrieve the next page of results., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {issuers: [map], pagination: map{count: num, next: str?}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v1/kms/issuers\n@desc Create an issuer\n@required {name: str # The name of the issuer.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., algorithm: str(RS256/RS384/RS512/PS256/PS384/PS512/ES256/ES384/ES512)=RS512 # The signing algorithm to use for the issuer., claimsSchema: map # A JSON Schema used to validate the resolved token claims when signing tokens for this issuer., policy: any, importKey: str # The PEM-encoded private key to use for the issuer., importKeyId: str # The key id to use as the imported key's JWT/JWKS `kid`. Only allowed when `importKey` is provided. Not required to be unique; the addressable key id is the server-minted `keyId` returned in the response.}\n@returns(201) {algorithm: str, claimsSchema: map, createdAt: str, id: str, managedBy: str, name: str, origin: str, ownerId: str, policies: [any], signingKeys: [map], updatedAt: str}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/kms/issuers/{issuerId}/sign/message\n@desc Sign a message\n@required {issuerId: str # The ID of the issuer., message: str # Base64-encoded message to be signed.}\n@returns(200) {algorithm: str, keyId: str, signature: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401, 403, 404, 429}\n\n@endpoint POST /v1/kms/issuers/{issuerId}/sign/token\n@desc Sign a token\n@required {issuerId: str # The ID of the issuer.}\n@optional {claims: map # The claims to include in the token., headers: map # Additional headers to include in the token., ttl: num=300 # The time-to-live for the token, in seconds.}\n@returns(200) {token: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401, 403, 404, 429}\n\n@endpoint POST /v1/kms/issuers/{issuerId}/keys\n@desc Create a signing key\n@required {issuerId: str # The ID of the issuer.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., activation: str(automatic/manual) # Whether the new key is activated automatically after its public key has propagated, or manually via the activate endpoint. Defaults to `automatic`., revokePreviousAfterHours: num # For automatic activation, how many hours after activation the previous signing key should stop being used. Defaults to a 1 hour grace period so already-issued tokens keep verifying., revokePreviousAt: any # Deprecated. The ISO date string or timestamp when the previous signing key should stop being used. Converted to a relative grace and applied at activation, not creation. Prefer revokePreviousAfterHours., importKey: str # The PEM-encoded private key to use for the issuer., importKeyId: str # The key id to use as the imported key's JWT/JWKS `kid`. Only allowed when `importKey` is provided. Not required to be unique; the addressable key id is the server-minted `keyId` returned in the response.}\n@returns(200) {activateAt: str, activatedAt: str, algorithm: str, certificatePem: str, createdAt: str, importKeyId: str, issuerId: str, keyId: str, publicKey: map{alg: str, key_ops: [str], kid: str, kty: str, use: str, x5c: [str], x5t#S256: str}, publicKeyFingerprint: str, publicKeyPem: str, revokeAt: str, status: str, updatedAt: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/kms/issuers/{issuerId}/keys/{keyId}/activate\n@desc Activate a signing key\n@required {issuerId: str # The ID of the issuer., keyId: str # The ID of the pending signing key to activate.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., revokePreviousAfterHours: num # How many hours after activation the previously-active key should stop being used. Defaults to a 1 hour grace period so already-issued tokens keep verifying.}\n@returns(200) {activateAt: str, activatedAt: str, algorithm: str, certificatePem: str, createdAt: str, importKeyId: str, issuerId: str, keyId: str, publicKey: map{alg: str, key_ops: [str], kid: str, kty: str, use: str, x5c: [str], x5t#S256: str}, publicKeyFingerprint: str, publicKeyPem: str, revokeAt: str, status: str, updatedAt: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/kms/issuers/{issuerId}/keys/{keyId}/revoke\n@desc Revoke a signing key\n@required {issuerId: str # The ID of the issuer., keyId: str # The ID of the signing key to revoke immediately. The key must already be scheduled for revocation.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {algorithm: str, claimsSchema: map, createdAt: str, id: str, managedBy: str, name: str, origin: str, ownerId: str, policies: [any], signingKeys: [map], updatedAt: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/kms/issuers/{issuerId}\n@desc Get an issuer\n@required {issuerId: str # The ID of the issuer.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {algorithm: str, claimsSchema: map, createdAt: str, id: str, managedBy: str, name: str, origin: str, ownerId: str, policies: [any], signingKeys: [map], updatedAt: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/kms/issuers/{issuerId}\n@desc Update an issuer\n@required {issuerId: str # The ID of the issuer.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., name: str # The name of the issuer., claimsSchema: map # A JSON Schema used to validate the resolved token claims when signing tokens for this issuer. Pass null to remove it.}\n@returns(200) {algorithm: str, claimsSchema: map, createdAt: str, id: str, managedBy: str, name: str, origin: str, ownerId: str, policies: [any], signingKeys: [map], updatedAt: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/kms/issuers/{issuerId}\n@desc Delete an issuer\n@required {issuerId: str # The ID of the issuer.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/kms/issuers/{issuerId}/policies\n@desc Create an issuer policy\n@required {issuerId: str # The ID of the issuer., kind: str, projectId: str # The project ID for the project grant policy., environments: [str] # The environments for the project grant policy. Each entry is a system environment (production, preview, development) or a custom environment ID (env_...).}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., tokenClaims: map # The claims that KMS should include in signed JWTs for this policy.}\n@returns(201)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/kms/issuers/{issuerId}/policies/{kind}/{policyKey}\n@desc Update an issuer policy\n@required {issuerId: str # The ID of the issuer., kind: str # The issuer policy kind., policyKey: str # The policy identifier.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., environments: [str] # The environments for the project grant policy. Each entry is a system environment (production, preview, development) or a custom environment ID (env_...)., tokenClaims: map # The claims that KMS should include in signed JWTs for this policy. Pass null to remove them.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/kms/issuers/{issuerId}/policies/{kind}/{policyKey}\n@desc Delete an issuer policy\n@required {issuerId: str # The ID of the issuer., kind: str(project-grant/connex-grant) # The issuer policy kind., policyKey: str # The policy identifier.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group projects\n@endpoint GET /v1/projects/{projectId}/deployments/{deploymentId}/runtime-logs\n@desc Get logs for a deployment\n@required {projectId: str, deploymentId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group installations\n@endpoint POST /v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/items\n@desc Create one or multiple experimentation items\n@required {integrationConfigurationId: str, resourceId: str, items: [map{id!: str, slug!: str, origin!: str, category: str, name: str, description: str, isArchived: bool, createdAt: num, updatedAt: num}]}\n@returns(204) The items were created\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/items/{itemId}\n@desc Patch an existing experimentation item\n@required {integrationConfigurationId: str, resourceId: str, itemId: str, slug: str, origin: str}\n@optional {name: str, category: str(experiment/flag), description: str, isArchived: bool, createdAt: num, updatedAt: num}\n@returns(204) The item was updated\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/items/{itemId}\n@desc Delete an existing experimentation item\n@required {integrationConfigurationId: str, resourceId: str, itemId: str}\n@returns(204) The item was deleted\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint HEAD /v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/global-config\n@desc Get the data of a user-provided Global Config\n@required {integrationConfigurationId: str, resourceId: str}\n@returns(200) {digest: str, items: map, purpose: str, updatedAt: num} # The Global Config data\n@errors {304, 400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/global-config\n@desc Get the data of a user-provided Global Config\n@required {integrationConfigurationId: str, resourceId: str}\n@returns(200) {digest: str, items: map, purpose: str, updatedAt: num} # The Global Config data\n@errors {304, 400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/installations/{integrationConfigurationId}/resources/{resourceId}/experimentation/global-config\n@desc Push data into a user-provided Global Config\n@required {integrationConfigurationId: str, resourceId: str, data: map}\n@returns(200) {digest: str, items: map, purpose: str, updatedAt: num} # The Global Config was updated\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 412}\n\n@endgroup\n\n@group microfrontends\n@endpoint GET /v1/microfrontends/groups\n@desc List microfrontends groups\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint GET /v1/microfrontends/groups/{groupId}/projects\n@desc List projects in a microfrontends group\n@required {groupId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {projects: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/microfrontends/{deploymentId}/config\n@desc Get microfrontends config for a deployment\n@required {deploymentId: str # The unique deployment identifier}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {config: map?{$schema: str, applications: map, options: map{disableOverrides: bool, localProxyPort: num}, version: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint GET /v1/microfrontends/projects/{projectIdOrName}/production-mfe-config\n@desc Get microfrontends config for a project\n@required {projectIdOrName: str # The name or ID of the project}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {config: map?{$schema: str, applications: map, options: map{disableOverrides: bool, localProxyPort: num}, version: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint POST /v1/microfrontends/group\n@desc Create a microfrontends group with applications\n@required {groupName: str # The name of the microfrontends group that will be used to identify the group, defaultApp: map{projectId!: str, defaultRoute: str} # The default app for the new microfrontend group, otherApplications: [map{projectId!: str, defaultRoute: str}] # The list of other applications that will be used in the new microfrontend group}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {newMicrofrontendsGroup: map{createdAt: num, enablePolyrepoBranchRouting: bool, fallbackEnvironment: str, id: str, name: str, slug: str, updatedAt: num}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endgroup\n\n@group observability\n@endpoint GET /v1/observability/manage/configuration/projects\n@desc Lists disabled Observability Plus projects\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {disabledProjects: [map]}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/observability/manage/configuration/projects/{projectIdOrName}\n@desc Updates a disabled Observability Plus project setting\n@required {projectIdOrName: str # The ID or name of the project to update, disabled: bool # Whether Observability Plus should be disabled for the project}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {disabledAt: num, id: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint POST /v2/observability/query\n@required {metric: str # Metric id, scope: map # Owner or project scope for the query}\n@optional {aggregation: str # Aggregation function to apply. Some aggregations require a dimension: use /, for example unique/visitor_id., groupBy: [str] # Dimensions to group results by. JSON dimensions support nested refs, for example event_data/checkout_step. Nested keys containing characters that OData cannot parse as an identifier, such as '-', spaces, quotes, or '/', must be wrapped in single quotes (escape embedded single quotes by doubling them), for example flags/'enable-comments-view' or event_data/'some property''s/value'., filter: str # Filter to apply to the query. JSON dimensions support nested refs, for example event_data/checkout_step eq 'payment'. Nested keys containing characters that OData cannot parse as an identifier, such as '-', spaces, quotes, or '/', must be wrapped in single quotes (escape embedded single quotes by doubling them), for example flags/'enable-comments-view' eq true or event_data/'some property''s/value' eq true., limit: num # Maximum number of results, orderBy: str # Rollup column to order grouped results by. Use the generated rollup key for the requested metric and aggregation. Defaults to the query engine count rollup., orderDirection: str(asc/desc) # Direction to order grouped results by. Defaults to desc., granularity: map # Time bucket size, startTime: str # Start timestamp, endTime: str # End timestamp, bucketTimezone: str # IANA timezone (e.g. Europe/Paris) used only to align calendar buckets (1d/1mo) to that zone's day/month boundaries. startTime/endTime and all output timestamps are always UTC. No effect on sub-day granularities.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 408, 410, 413, 422, 500, 503}\n\n@endpoint GET /v2/observability/schema\n@returns(200) {metrics: [map]}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v2/observability/schema/{metricId}\n@required {metricId: str}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group projects\n@endpoint GET /v1/projects/{idOrName}/members\n@desc List project members\n@required {idOrName: str # The ID or name of the Project.}\n@optional {limit: int # Limit how many project members should be returned, since: int # Timestamp in milliseconds to only include members added since then., until: int # Timestamp in milliseconds to only include members added until then., search: str # Search project members by their name, username, and email., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) Paginated list of members for the project.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v1/projects/{idOrName}/members\n@desc Adds a new member to a project.\n@required {idOrName: str # The ID or name of the Project., role: str(ADMIN/PROJECT_VIEWER/PROJECT_DEVELOPER) # The project role of the member that will be added.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., uid: str # The ID of the team member that should be added to this project., username: str # The username of the team member that should be added to this project., email: str(email) # The email of the team member that should be added to this project.}\n@returns(200) {id: str} # Responds with the project ID on success.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint DELETE /v1/projects/{idOrName}/members/{uid}\n@desc Remove a Project Member\n@required {idOrName: str # The ID or name of the Project., uid: str # The user ID of the member.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {id: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/projects/{projectId}/routes\n@desc Get project routing rules\n@required {projectId: str}\n@optional {versionId: str, q: str, filter: str(rewrite/redirect/set_status/transform), diff: any, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/projects/{projectId}/routes\n@desc Stage routing rules\n@required {projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., overwrite: bool, routes: [map{id!: str, name!: str, description: str, enabled: bool, route!: map}]=}\n@returns(200) {version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, lastModified: num, ruleCount: num, s3Key: str}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410, 500}\n\n@endpoint POST /v1/projects/{projectId}/routes\n@desc Add a routing rule\n@required {projectId: str, route: map{name!: str, description: str, enabled: bool, srcSyntax: str, route!: map}}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., position: map{placement: str, referenceId: str} # Controls where the route is inserted. Defaults to \"end\" if omitted.}\n@returns(200) {route: map{description: str, enabled: bool, id: str, name: str, rawDest: str, rawSrc: str, route: map{caseSensitive: bool, check: bool, continue: bool, dest: str, destination: any, env: [str], has: [any], headers: map, important: bool, locale: map{cookie: str, redirect: map}, methods: [str], middleware: num, middlewarePath: str, middlewareRawSrc: [str], missing: [any], mitigate: map{action: str}, override: bool, respectOriginCacheControl: bool, source: str, src: str, status: num, statusCode: num, transforms: [any]}, routeType: str, srcSyntax: str, staged: bool}, version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, lastModified: num, ruleCount: num, s3Key: str}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410, 500}\n\n@endpoint DELETE /v1/projects/{projectId}/routes\n@desc Delete routing rules\n@required {projectId: str, routeIds: [str] # The IDs of the routes to delete}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {deletedCount: num, version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, lastModified: num, ruleCount: num, s3Key: str}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 500}\n\n@endpoint PATCH /v1/projects/{projectId}/routes/{routeId}\n@desc Edit a routing rule\n@required {projectId: str, routeId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., route: map{name!: str, description: str, enabled: bool, srcSyntax: str, route!: map} # The full route object to replace the existing route with, restore: bool # If true, restores the staged route to the value in the production version.}\n@returns(200) {route: map{description: str, enabled: bool, id: str, name: str, rawDest: str, rawSrc: str, route: map{caseSensitive: bool, check: bool, continue: bool, dest: str, destination: any, env: [str], has: [any], headers: map, important: bool, locale: map{cookie: str, redirect: map}, methods: [str], middleware: num, middlewarePath: str, middlewareRawSrc: [str], missing: [any], mitigate: map{action: str}, override: bool, respectOriginCacheControl: bool, source: str, src: str, status: num, statusCode: num, transforms: [any]}, routeType: str, srcSyntax: str, staged: bool}, version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, lastModified: num, ruleCount: num, s3Key: str}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 500}\n\n@endpoint POST /v1/projects/{projectId}/routes/generate\n@desc Generate a routing rule from natural language\n@required {projectId: str, prompt: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., currentRoute: map{name: str, description: str, pathCondition!: map, conditions: [map], actions!: [map]}}\n@returns(200) {error: str, route: map{actions: [map], conditions: [map], description: str, name: str, pathCondition: map{syntax: str, value: str}}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 408, 410, 500}\n\n@endpoint GET /v1/projects/{projectId}/routes/versions\n@desc Get routing rule version history\n@required {projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {versions: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v1/projects/{projectId}/routes/versions\n@desc Promote, restore, or discard a routing rule version\n@required {projectId: str, id: str, action: str(promote/restore/discard)}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {version: map{alias: str, createdBy: str, id: str, isLive: bool, isStaging: bool, lastModified: num, ruleCount: num, s3Key: str}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 500}\n\n@endpoint GET /v10/projects\n@desc Retrieve a list of projects\n@optional {from: str # Query only projects updated after the given timestamp or continuation token., gitForkProtection: str(1/0) # Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed, limit: str # Limit the number of projects returned, search: str # Search projects by the name field, repo: str # Filter results by repo. Also used for project count, repoId: str # Filter results by Repository ID., repoUrl: str # Filter results by Repository URL., excludeRepos: str # Filter results by excluding those projects that belong to a repo, edgeConfigId: str # Filter results by connected Global Config ID, edgeConfigTokenId: str # Filter results by connected Global Config Token ID, deprecated: bool, elasticConcurrencyEnabled: str(1/0) # Filter results by projects with elastic concurrency enabled, staticIpsEnabled: str(0/1) # Filter results by projects with Static IPs enabled, buildMachineTypes: str # Filter results by effective build machine types. Accepts comma-separated values. Use \\\"elastic\\\" for projects with elastic selection and \\\"default\\\" for projects without a build machine type set., buildQueueConfiguration: str(SKIP_NAMESPACE_QUEUE/WAIT_FOR_NAMESPACE_QUEUE) # Filter results by build queue configuration. SKIP_NAMESPACE_QUEUE includes projects without a configuration set., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/projects/traces\n@desc Get a project trace by request ID\n@required {projectId: str # The project ID, requestId: str # The Vercel CLI request ID associated with the trace}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {trace: map{resources: [map], rootSpanId: str, spans: [map], traceId: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v11/projects\n@desc Create a new project\n@required {name: str # The desired name for the project}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., enablePreviewFeedback: bool # Opt-in to preview toolbar on the project level, enableProductionFeedback: bool # Opt-in to production toolbar on the project level, previewDeploymentsDisabled: bool # Specifies whether preview deployments are disabled for this project., previewDeploymentSuffix: str # Custom domain suffix for preview deployments. Takes precedence over team-level suffix. Must be a domain owned by the team., buildCommand: str # The build command for this project. When `null` is used this value will be automatically detected, commandForIgnoringBuildStep: str, devCommand: str # The dev command for this project. When `null` is used this value will be automatically detected, environmentVariables: [map{key!: str, target!: any, gitBranch: str, type: str, value!: str}] # Collection of ENV Variables the Project will use, framework: any(container/blitzjs/nextjs/gatsby/remix/react-router/astro/hexo/eleventy/docusaurus-2/docusaurus/preact/solidstart-1/solidstart/dojo/ember/vue/scully/ionic-angular/angular/polymer/svelte/sveltekit/sveltekit-1/ionic-react/create-react-app/gridsome/umijs/sapper/saber/stencil/nuxtjs/redwoodjs/hugo/jekyll/brunch/middleman/zola/hydrogen/vite/tanstack-start/tanstack-start-lovable/vitepress/vuepress/parcel/fastapi/flask/fasthtml/django/ash/factory-eve/eve/sanity/sanity-v2/storybook/nitro/hono/express/h3/koa/nestjs/elysia/fastify/xmcp/python/ruby/rust/axum/actix-web/bun/node/go/services/mastra) # The framework that is being used for this project. When `null` is used no framework is selected, gitRepository: map{repo!: str, type!: any} # The Git Repository that will be connected to the project. When this is defined, any pushes to the specified connected Git Repository will be automatically deployed, installCommand: str # The install command for this project. When `null` is used this value will be automatically detected, skipGitConnectDuringLink: bool # Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`., ssoProtection: map{deploymentType!: str} # The Vercel Auth setting for the project (historically named \\\"SSO Protection\\\"), sandbox: map{region: any, failoverRegions: [any]} # Specifies the default region and failover regions for sandboxes created in the project, outputDirectory: str # The output directory of the project. When `null` is used this value will be automatically detected, publicSource: bool # Deprecated. Accepted for backwards compatibility but ignored., rootDirectory: str # The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root, serverlessFunctionRegion: str # The region to deploy Serverless Functions in this project, serverlessFunctionZeroConfigFailover: any # Specifies whether Zero Config Failover is enabled for this project., oidcTokenConfig: map{enabled: bool, issuerMode: str} # OpenID Connect JSON Web Token generation configuration., enableAffectedProjectsDeployments: bool # Opt-in to skip deployments when there are no changes to the root directory and its dependencies, resourceConfig: map{buildMachineType: any, fluid: bool, functionDefaultRegions: [str], functionDefaultTimeout: num, functionDefaultMemoryType: any, functionZeroConfigFailover: any, elasticConcurrencyEnabled: bool, buildMachineSelection: any, buildMachineElasticLastUpdated: num, buildMachineElasticReason: any, buildMachineElasticTransition: map, isNSNBDisabled: bool, buildQueue: map, enableFunctionsBeta: bool} # Specifies resource override configuration for the project}\n@returns(200) {abuse: map{block: map{action: str, actor: str, caseId: str, comment: str, createdAt: num, ineligibleForAppeal: bool, isCascading: bool, reason: str, registeredShaBlock: map{createdAt: str, createdBy: str, sha: str}, statusCode: num}, blockHistory: [any], history: [map], interstitial: bool, interstitialHistory: [map], scanner: str, updatedAt: num}, accountId: str, alias: [map], analytics: map{canceledAt: num?, disabledAt: num, enabledAt: num, id: str, paidAt: num, sampleRatePercent: num?, spendLimitInDollars: num?}, appliedCve55182Migration: bool, autoAssignCustomDomains: bool, autoAssignCustomDomainsUpdatedBy: str, autoExposeSystemEnvs: bool, avatar: str?, blobs: map{isDefaultApp: bool}, buildCommand: str?, commandForIgnoringBuildStep: str?, concurrencyBucketName: str, connectBuildsEnabled: bool, connectConfigurationId: str?, connectConfigurations: [map]?, createdAt: num, creator: any, crons: map{definitions: [map], deploymentId: str?, disabledAt: num?, enabledAt: num, updatedAt: num}, customEnvironments: [map], customerSupportCodeVisibility: bool, dataCache: map{storageSizeBytes: num?, unlimited: bool, userDisabled: bool}, defaultResourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, deploymentExpiration: map{deploymentsToKeep: num, expirationDays: num, expirationDaysCanceled: num, expirationDaysErrored: num, expirationDaysProduction: num}, deploymentPolicy: map?{deploymentSources: [map]?, gitSources: [map]?}, devCommand: str?, directoryListing: bool, dismissedToasts: [map], enableAffectedProjectsDeployments: bool, enableExternalRewriteCaching: bool, enablePreviewFeedback: bool?, enableProductionFeedback: bool?, env: [map], expiration: any, features: map{webAnalytics: bool}, framework: str?, gitComments: map{onCommit: bool, onPullRequest: bool}, gitForkProtection: bool, gitLFS: bool, gitProviderOptions: map{consolidatedGitCommitStatus: map{enabled: bool, propagateFailures: bool}, createDeployments: str, disableRepositoryDispatchEvents: bool, gitCommitStatus: bool, requireVerifiedCommits: bool}, hasActiveBranches: bool, hasDeployments: bool, id: str, installCommand: str?, internalRoutes: [any], ipBuckets: [map], jobs: map{lint: map{targets: [str]}, mfe-config-present: map{targets: [str]}, typecheck: map{targets: [str]}}, lastAliasRequest: map?{fromDeploymentId: str?, fromRollingReleaseId: str, jobStatus: str, requestedAt: num, toDeploymentId: str, type: str}, lastRollbackTarget: map?, latestDeployments: [map], link: any, live: bool, microfrontends: any, name: str, nodeVersion: str, oidcTokenConfig: map{enabled: bool, issuerMode: str}, optionsAllowlist: map?{paths: [map]}, outputDirectory: str?, passiveConnectConfigurationId: str?, passport: map?{connectorId: str, deploymentType: str}, passwordProtection: map?, paused: bool, permissions: map{accessGroup: [str], agent: [str], aiGatewayApiKey: [str], aiGatewayApiKeyBypassAll: [str], aiGatewayApiKeyOwnedBySelf: [str], aiGatewayApiKeySpendAttribution: [str], aiGatewayApiKeyZdrExemption: [str], aiGatewayBudget: [str], aiGatewayCredits: [str], aiGatewayGuardrails: [str], aiGatewayPrivateModels: [str], aiGatewayRules: [str], aiGatewaySettings: [str], aiGatewayTranscripts: [str], aiGatewayTranscriptsSettings: [str], aiGatewayUsage: [str], aiGatewayVirtualModelConfigs: [str], alertRules: [str], alerts: [str], aliasGlobal: [str], aliasProject: [str], aliasProtectionBypass: [str], analytics: [str], analyticsSampling: [str], analyticsUsage: [str], apiKey: [str], apiKeyAiGateway: [str], apiKeyOwnedBySelf: [str], auditLog: [str], automation: [str], billingAddress: [str], billingInformation: [str], billingInvoice: [str], billingInvoiceEmailRecipient: [str], billingInvoiceLanguage: [str], billingPlan: [str], billingPurchaseOrder: [str], billingRefund: [str], billingTaxId: [str], blob: [str], blobStoreTokenSet: [str], budget: [str], buildMachine: [str], buildMachineDefault: [str], bulkRedirects: [str], cacheArtifact: [str], cacheArtifactUsageEvent: [str], ciInvocations: [str], ciLogs: [str], codeChecks: [str], codeOwners: [str], concurrentBuilds: [str], connect: [str], connectConfiguration: [str], connectConfigurationLink: [str], connectLogs: [str], connexClient: [str], connexClientProject: [str], connexContact: [str], connexInstallation: [str], connexToken: [str], cursorOriginInstallation: [str], dataCacheBillingSettings: [str], dataCacheNamespace: [str], defaultDeploymentProtection: [str], deployment: [str], deploymentBuildLogs: [str], deploymentCheck: [str], deploymentCheckPreview: [str], deploymentCheckReRunFromProductionBranch: [str], deploymentPolicy: [str], deploymentPreview: [str], deploymentPrivate: [str], deploymentProductionGit: [str], deploymentPromote: [str], deploymentProtectionException: [str], deploymentRollback: [str], deploymentV0: [str], domain: [str], domainAcceptDelegation: [str], domainAuthCodes: [str], domainCertificate: [str], domainCheckConfig: [str], domainMove: [str], domainPurchase: [str], domainRecord: [str], domainTransferIn: [str], drain: [str], edgeCacheNamespace: [str], edgeConfig: [str], edgeConfigItem: [str], edgeConfigSchema: [str], edgeConfigToken: [str], endpointVerification: [str], environments: [str], event: [str], fileUpload: [str], flagsExplorerSubscription: [str], gitCredentialGrant: [str], gitRepository: [str], imageOptimizationNewPrice: [str], integration: [str], integrationAccount: [str], integrationConfiguration: [str], integrationConfigurationProjects: [str], integrationConfigurationRole: [str], integrationConfigurationTransfer: [str], integrationDeploymentAction: [str], integrationEvent: [str], integrationLog: [str], integrationPullRequest: [str], integrationResource: [str], integrationResourceData: [str], integrationResourceReplCommand: [str], integrationResourceSecrets: [str], integrationSSOSession: [str], integrationStoreTokenSet: [str], integrationStrict: [str], integrationVercelConfigurationOverride: [str], ipBlocking: [str], job: [str], jobGlobal: [str], kmsIssuer: [str], kmsProjectGrant: [str], logDrain: [str], logs: [str], logsPreset: [str], marketplaceBillingData: [str], marketplaceExperimentationEdgeConfigData: [str], marketplaceExperimentationItem: [str], marketplaceFlexCommit: [str], marketplaceInstallationMember: [str], marketplaceInvoice: [str], marketplaceSettings: [str], Monitoring: [str], monitoringAlert: [str], monitoringChart: [str], monitoringQuery: [str], monitoringSettings: [str], notificationCustomerBudget: [str], notificationDeploymentFailed: [str], notificationDomainConfiguration: [str], notificationDomainExpire: [str], notificationDomainMoved: [str], notificationDomainPurchase: [str], notificationDomainRenewal: [str], notificationDomainTransfer: [str], notificationDomainUnverified: [str], NotificationMonitoringAlert: [str], notificationPaymentFailed: [str], notificationPreferences: [str], notificationStatementOfReasons: [str], notificationUsageAlert: [str], oauth2Application: [str], oauth2Connection: [str], observabilityConfiguration: [str], observabilityData: [str], observabilityFunnel: [str], observabilityNotebook: [str], oidcFederationPolicy: [str], onDemandBuild: [str], onDemandConcurrency: [str], openTelemetryEndpoint: [str], optionsAllowlist: [str], organization: [str], organizationDomain: [str], organizationTeam: [str], ownEvent: [str], pageIntegrity: [str], passwordProtection: [str], passwordProtectionInvoiceItem: [str], paymentMethod: [str], permissions: [str], postgres: [str], postgresStoreTokenSet: [str], previewDeploymentSuffix: [str], privateCloudAccount: [str], privateLinkEndpoint: [str], productionAliasProtectionBypass: [str], productionShareableLink: [str], project: [str], projectAccessGroup: [str], projectAnalyticsSampling: [str], projectAnalyticsUsage: [str], projectCheck: [str], projectCheckRun: [str], projectDeploymentExpiration: [str], projectDeploymentHook: [str], projectDeploymentProtectionStrict: [str], projectDomain: [str], projectDomainCheckConfig: [str], projectDomainMove: [str], projectDomainVerify: [str], projectEnvVars: [str], projectEnvVarsProduction: [str], projectEnvVarsUnownedByIntegration: [str], projectEvent: [str], projectFlags: [str], projectFlagsProduction: [str], projectFlagsSdkKey: [str], projectFromV0: [str], projectId: [str], projectIntegrationConfiguration: [str], projectLink: [str], projectMember: [str], projectMonitoring: [str], projectOIDCToken: [str], projectPermissions: [str], projectProductionBranch: [str], projectProtectionBypass: [str], projectRollingRelease: [str], projectRoutes: [str], projectSetting: [str], projectSupportCase: [str], projectSupportCaseComment: [str], projectTier: [str], projectTransfer: [str], projectTransferIn: [str], projectTransferOut: [str], projectTransferRequest: [str], projectUsage: [str], proTrialOnboarding: [str], rateLimit: [str], redis: [str], redisStoreTokenSet: [str], remoteCaching: [str], repository: [str], samlConfig: [str], schedule: [str], seawallConfig: [str], secret: [str], securityConfig: [str], securityPlusConfiguration: [str], sensitiveEnvironmentVariablePolicy: [str], setting: [str], shareableLink: [str], shareableLinkStrict: [str], sharedEnvVarConnection: [str], sharedEnvVars: [str], sharedEnvVarsProduction: [str], skewProtection: [str], space: [str], spaceRun: [str], storeIsLocked: [str], storeTokenSetSensitive: [str], storeTransfer: [str], supportCase: [str], supportCaseComment: [str], team: [str], teamAccessRequest: [str], teamFellowMembership: [str], teamGitExclusivity: [str], teamInvite: [str], teamInviteCode: [str], teamInviteLink: [str], teamJoin: [str], teamMemberMfaStatus: [str], teamMicrofrontends: [str], teamOwnMembership: [str], teamOwnMembershipDisconnectSAML: [str], teamSudo: [str], teamTokenInvalidation: [str], token: [str], toolbarComment: [str], trustedIps: [str], trustedSources: [str], usage: [str], usageCycle: [str], user: [str], userConnection: [str], userMfaConfiguration: [str], userPreference: [str], userSudo: [str], v0Chat: [str], vcrRepository: [str], vercelAppInstallation: [str], vercelAppInstallationRequest: [str], vercelAuth: [str], vercelRun: [str], vpcPeeringConnection: [str], webAnalytics: [str], webAnalyticsPlan: [str], webAuthn: [str], webhook: [str], webhook-event: [str], workflowRunData: [str]}, productionDeploymentsFastLane: bool, protectedSourcemaps: bool, protectionBypass: map, protectionConfig: map{sandboxUrls: map{inheritDeploymentProtection: bool}}, resourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, rollbackDescription: map{createdAt: num, description: str, userId: str, username: str}, rollingRelease: map?{canaryResponseHeader: bool, gate: map{action: str, checks: [map], dryRun: bool, enabled: bool, failureThreshold: num, windowSize: num}, stages: [map]?, target: str}, rootDirectory: str?, sandbox: map{failoverRegions: [str], region: str}, security: map{attackModeActiveUntil: num?, attackModeEnabled: bool, attackModeUpdatedAt: num, botIdEnabled: bool, firewallBypassIps: [str], firewallConfigVersion: num, firewallEnabled: bool, firewallSeawallEnabled: bool, firewallUpdatedAt: num, ja3Enabled: bool, ja4Enabled: bool, log_headers: any, managedRules: map?{ai_bots: map{action: str, active: bool}, bot_filter: map{action: str, active: bool}, owasp: map{action: str, active: bool}, traffic_sources: map{action: str, active: bool}, vercel_ruleset: map{action: str, active: bool}}, pageIntegrityEnabled: bool, rulesets: map}, serverlessFunctionZeroConfigFailover: bool, services: [map], skewProtectionAllowedDomains: [str], skewProtectionBoundaryAt: num, skewProtectionMaxAge: num, skipGitConnectDuringLink: bool, sourceFilesOutsideRootDirectory: bool, speedInsights: map{canceledAt: num, dataReceivedAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str, paidAt: num}, ssoProtection: map?{april2026SecurityIncidentMigrationAppliedFrom: str?, cve55182MigrationAppliedFrom: str?, deploymentType: str}, staticIps: map{builds: bool, enabled: bool, regions: [str]}, targets: map, tier: str, tracing: map{domains: str, ignorePaths: [str], samplingRules: [map]}, transferCompletedAt: num, transferredFromAccountId: str, transferStartedAt: num, transferToAccountId: str, trustedIps: any?, trustedSources: map?{enableVercelCiSameRepository: bool, oidcProviders: map, projects: map}, updatedAt: num, usageStatus: map{bypassThrottleUntil: num, exceededAllowanceUntil: num, kind: str, teamThrottled: bool, throttled: bool}, v0: bool, v0Created: bool, webAnalytics: map{canceledAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str}} # The project was successfuly created\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. At least one environment variable failed validation The Bitbucket Webhook for the project link could not be created The Gitlab Webhook for the project link could not be created, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated Pro customers are allowed to deploy Serverless Functions to up to `proMaxRegions` regions, or if the project was created before the limit was introduced. Deploying to Serverless Functions to multiple regions requires a plan update, 403: You do not have permission to access this resource., 404, 409: A project with the provided name already exists., 410, 428, 429, 500}\n\n@endpoint POST /v1/projects/{idOrName}/token\n@desc Generate a project OIDC token\n@required {idOrName: str # The project ID or name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., source: str # The source that is calling the endpoint.}\n@returns(200) {token: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/projects/traces/session\n@desc Create a trace session token for a deployment\n@required {projectId: str # The project ID the deployment belongs to., hostname: str # The deployment hostname to scope the trace session to.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {token: str}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 422}\n\n@endpoint GET /v9/projects/{idOrName}\n@desc Find a project by id or name\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {abuse: map{block: map{action: str, actor: str, caseId: str, comment: str, createdAt: num, ineligibleForAppeal: bool, isCascading: bool, reason: str, registeredShaBlock: map{createdAt: str, createdBy: str, sha: str}, statusCode: num}, blockHistory: [any], history: [map], interstitial: bool, interstitialHistory: [map], scanner: str, updatedAt: num}, accountId: str, alias: [map], analytics: map{canceledAt: num?, disabledAt: num, enabledAt: num, id: str, paidAt: num, sampleRatePercent: num?, spendLimitInDollars: num?}, appliedCve55182Migration: bool, autoAssignCustomDomains: bool, autoAssignCustomDomainsUpdatedBy: str, autoExposeSystemEnvs: bool, avatar: str?, blobs: map{isDefaultApp: bool}, buildCommand: str?, commandForIgnoringBuildStep: str?, concurrencyBucketName: str, connectBuildsEnabled: bool, connectConfigurationId: str?, connectConfigurations: [map]?, createdAt: num, creator: any, crons: map{definitions: [map], deploymentId: str?, disabledAt: num?, enabledAt: num, updatedAt: num}, customEnvironments: [map], customerSupportCodeVisibility: bool, dataCache: map{storageSizeBytes: num?, unlimited: bool, userDisabled: bool}, defaultResourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, deploymentExpiration: map{deploymentsToKeep: num, expirationDays: num, expirationDaysCanceled: num, expirationDaysErrored: num, expirationDaysProduction: num}, deploymentPolicy: map?{deploymentSources: [map]?, gitSources: [map]?}, devCommand: str?, directoryListing: bool, dismissedToasts: [map], enableAffectedProjectsDeployments: bool, enableExternalRewriteCaching: bool, enablePreviewFeedback: bool?, enableProductionFeedback: bool?, env: [map], expiration: any, features: map{webAnalytics: bool}, framework: str?, gitComments: map{onCommit: bool, onPullRequest: bool}, gitForkProtection: bool, gitLFS: bool, gitProviderOptions: map{consolidatedGitCommitStatus: map{enabled: bool, propagateFailures: bool}, createDeployments: str, disableRepositoryDispatchEvents: bool, gitCommitStatus: bool, requireVerifiedCommits: bool}, hasActiveBranches: bool, hasDeployments: bool, id: str, installCommand: str?, integrations: [map], internalRoutes: [any], ipBuckets: [map], jobs: map{lint: map{targets: [str]}, mfe-config-present: map{targets: [str]}, typecheck: map{targets: [str]}}, lastAliasRequest: map?{fromDeploymentId: str?, fromRollingReleaseId: str, jobStatus: str, requestedAt: num, toDeploymentId: str, type: str}, lastRollbackTarget: map?, latestDeployments: [map], link: any, live: bool, microfrontends: any, name: str, nodeVersion: str, oidcTokenConfig: map{enabled: bool, issuerMode: str}, optionsAllowlist: map?{paths: [map]}, outputDirectory: str?, passiveConnectConfigurationId: str?, passport: map?{connectorId: str, deploymentType: str}, passwordProtection: map?, paused: bool, permissions: map{accessGroup: [str], agent: [str], aiGatewayApiKey: [str], aiGatewayApiKeyBypassAll: [str], aiGatewayApiKeyOwnedBySelf: [str], aiGatewayApiKeySpendAttribution: [str], aiGatewayApiKeyZdrExemption: [str], aiGatewayBudget: [str], aiGatewayCredits: [str], aiGatewayGuardrails: [str], aiGatewayPrivateModels: [str], aiGatewayRules: [str], aiGatewaySettings: [str], aiGatewayTranscripts: [str], aiGatewayTranscriptsSettings: [str], aiGatewayUsage: [str], aiGatewayVirtualModelConfigs: [str], alertRules: [str], alerts: [str], aliasGlobal: [str], aliasProject: [str], aliasProtectionBypass: [str], analytics: [str], analyticsSampling: [str], analyticsUsage: [str], apiKey: [str], apiKeyAiGateway: [str], apiKeyOwnedBySelf: [str], auditLog: [str], automation: [str], billingAddress: [str], billingInformation: [str], billingInvoice: [str], billingInvoiceEmailRecipient: [str], billingInvoiceLanguage: [str], billingPlan: [str], billingPurchaseOrder: [str], billingRefund: [str], billingTaxId: [str], blob: [str], blobStoreTokenSet: [str], budget: [str], buildMachine: [str], buildMachineDefault: [str], bulkRedirects: [str], cacheArtifact: [str], cacheArtifactUsageEvent: [str], ciInvocations: [str], ciLogs: [str], codeChecks: [str], codeOwners: [str], concurrentBuilds: [str], connect: [str], connectConfiguration: [str], connectConfigurationLink: [str], connectLogs: [str], connexClient: [str], connexClientProject: [str], connexContact: [str], connexInstallation: [str], connexToken: [str], cursorOriginInstallation: [str], dataCacheBillingSettings: [str], dataCacheNamespace: [str], defaultDeploymentProtection: [str], deployment: [str], deploymentBuildLogs: [str], deploymentCheck: [str], deploymentCheckPreview: [str], deploymentCheckReRunFromProductionBranch: [str], deploymentPolicy: [str], deploymentPreview: [str], deploymentPrivate: [str], deploymentProductionGit: [str], deploymentPromote: [str], deploymentProtectionException: [str], deploymentRollback: [str], deploymentV0: [str], domain: [str], domainAcceptDelegation: [str], domainAuthCodes: [str], domainCertificate: [str], domainCheckConfig: [str], domainMove: [str], domainPurchase: [str], domainRecord: [str], domainTransferIn: [str], drain: [str], edgeCacheNamespace: [str], edgeConfig: [str], edgeConfigItem: [str], edgeConfigSchema: [str], edgeConfigToken: [str], endpointVerification: [str], environments: [str], event: [str], fileUpload: [str], flagsExplorerSubscription: [str], gitCredentialGrant: [str], gitRepository: [str], imageOptimizationNewPrice: [str], integration: [str], integrationAccount: [str], integrationConfiguration: [str], integrationConfigurationProjects: [str], integrationConfigurationRole: [str], integrationConfigurationTransfer: [str], integrationDeploymentAction: [str], integrationEvent: [str], integrationLog: [str], integrationPullRequest: [str], integrationResource: [str], integrationResourceData: [str], integrationResourceReplCommand: [str], integrationResourceSecrets: [str], integrationSSOSession: [str], integrationStoreTokenSet: [str], integrationStrict: [str], integrationVercelConfigurationOverride: [str], ipBlocking: [str], job: [str], jobGlobal: [str], kmsIssuer: [str], kmsProjectGrant: [str], logDrain: [str], logs: [str], logsPreset: [str], marketplaceBillingData: [str], marketplaceExperimentationEdgeConfigData: [str], marketplaceExperimentationItem: [str], marketplaceFlexCommit: [str], marketplaceInstallationMember: [str], marketplaceInvoice: [str], marketplaceSettings: [str], Monitoring: [str], monitoringAlert: [str], monitoringChart: [str], monitoringQuery: [str], monitoringSettings: [str], notificationCustomerBudget: [str], notificationDeploymentFailed: [str], notificationDomainConfiguration: [str], notificationDomainExpire: [str], notificationDomainMoved: [str], notificationDomainPurchase: [str], notificationDomainRenewal: [str], notificationDomainTransfer: [str], notificationDomainUnverified: [str], NotificationMonitoringAlert: [str], notificationPaymentFailed: [str], notificationPreferences: [str], notificationStatementOfReasons: [str], notificationUsageAlert: [str], oauth2Application: [str], oauth2Connection: [str], observabilityConfiguration: [str], observabilityData: [str], observabilityFunnel: [str], observabilityNotebook: [str], oidcFederationPolicy: [str], onDemandBuild: [str], onDemandConcurrency: [str], openTelemetryEndpoint: [str], optionsAllowlist: [str], organization: [str], organizationDomain: [str], organizationTeam: [str], ownEvent: [str], pageIntegrity: [str], passwordProtection: [str], passwordProtectionInvoiceItem: [str], paymentMethod: [str], permissions: [str], postgres: [str], postgresStoreTokenSet: [str], previewDeploymentSuffix: [str], privateCloudAccount: [str], privateLinkEndpoint: [str], productionAliasProtectionBypass: [str], productionShareableLink: [str], project: [str], projectAccessGroup: [str], projectAnalyticsSampling: [str], projectAnalyticsUsage: [str], projectCheck: [str], projectCheckRun: [str], projectDeploymentExpiration: [str], projectDeploymentHook: [str], projectDeploymentProtectionStrict: [str], projectDomain: [str], projectDomainCheckConfig: [str], projectDomainMove: [str], projectDomainVerify: [str], projectEnvVars: [str], projectEnvVarsProduction: [str], projectEnvVarsUnownedByIntegration: [str], projectEvent: [str], projectFlags: [str], projectFlagsProduction: [str], projectFlagsSdkKey: [str], projectFromV0: [str], projectId: [str], projectIntegrationConfiguration: [str], projectLink: [str], projectMember: [str], projectMonitoring: [str], projectOIDCToken: [str], projectPermissions: [str], projectProductionBranch: [str], projectProtectionBypass: [str], projectRollingRelease: [str], projectRoutes: [str], projectSetting: [str], projectSupportCase: [str], projectSupportCaseComment: [str], projectTier: [str], projectTransfer: [str], projectTransferIn: [str], projectTransferOut: [str], projectTransferRequest: [str], projectUsage: [str], proTrialOnboarding: [str], rateLimit: [str], redis: [str], redisStoreTokenSet: [str], remoteCaching: [str], repository: [str], samlConfig: [str], schedule: [str], seawallConfig: [str], secret: [str], securityConfig: [str], securityPlusConfiguration: [str], sensitiveEnvironmentVariablePolicy: [str], setting: [str], shareableLink: [str], shareableLinkStrict: [str], sharedEnvVarConnection: [str], sharedEnvVars: [str], sharedEnvVarsProduction: [str], skewProtection: [str], space: [str], spaceRun: [str], storeIsLocked: [str], storeTokenSetSensitive: [str], storeTransfer: [str], supportCase: [str], supportCaseComment: [str], team: [str], teamAccessRequest: [str], teamFellowMembership: [str], teamGitExclusivity: [str], teamInvite: [str], teamInviteCode: [str], teamInviteLink: [str], teamJoin: [str], teamMemberMfaStatus: [str], teamMicrofrontends: [str], teamOwnMembership: [str], teamOwnMembershipDisconnectSAML: [str], teamSudo: [str], teamTokenInvalidation: [str], token: [str], toolbarComment: [str], trustedIps: [str], trustedSources: [str], usage: [str], usageCycle: [str], user: [str], userConnection: [str], userMfaConfiguration: [str], userPreference: [str], userSudo: [str], v0Chat: [str], vcrRepository: [str], vercelAppInstallation: [str], vercelAppInstallationRequest: [str], vercelAuth: [str], vercelRun: [str], vpcPeeringConnection: [str], webAnalytics: [str], webAnalyticsPlan: [str], webAuthn: [str], webhook: [str], webhook-event: [str], workflowRunData: [str]}, productionDeploymentsFastLane: bool, protectedSourcemaps: bool, protectionBypass: map, protectionConfig: map{sandboxUrls: map{inheritDeploymentProtection: bool}}, resourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, rollbackDescription: map{createdAt: num, description: str, userId: str, username: str}, rollingRelease: map?{canaryResponseHeader: bool, gate: map{action: str, checks: [map], dryRun: bool, enabled: bool, failureThreshold: num, windowSize: num}, stages: [map]?, target: str}, rootDirectory: str?, sandbox: map{failoverRegions: [str], region: str}, security: map{attackModeActiveUntil: num?, attackModeEnabled: bool, attackModeUpdatedAt: num, botIdEnabled: bool, firewallBypassIps: [str], firewallConfigVersion: num, firewallEnabled: bool, firewallSeawallEnabled: bool, firewallUpdatedAt: num, ja3Enabled: bool, ja4Enabled: bool, log_headers: any, managedRules: map?{ai_bots: map{action: str, active: bool}, bot_filter: map{action: str, active: bool}, owasp: map{action: str, active: bool}, traffic_sources: map{action: str, active: bool}, vercel_ruleset: map{action: str, active: bool}}, pageIntegrityEnabled: bool, rulesets: map}, serverlessFunctionZeroConfigFailover: bool, services: [map], skewProtectionAllowedDomains: [str], skewProtectionBoundaryAt: num, skewProtectionMaxAge: num, skipGitConnectDuringLink: bool, sourceFilesOutsideRootDirectory: bool, speedInsights: map{canceledAt: num, dataReceivedAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str, paidAt: num}, ssoProtection: map?{april2026SecurityIncidentMigrationAppliedFrom: str?, cve55182MigrationAppliedFrom: str?, deploymentType: str}, staticIps: map{builds: bool, enabled: bool, regions: [str]}, targets: map, tier: str, tracing: map{domains: str, ignorePaths: [str], samplingRules: [map]}, transferCompletedAt: num, transferredFromAccountId: str, transferStartedAt: num, transferToAccountId: str, trustedIps: any?, trustedSources: map?{enableVercelCiSameRepository: bool, oidcProviders: map, projects: map}, updatedAt: num, usageStatus: map{bypassThrottleUntil: num, exceededAllowanceUntil: num, kind: str, teamThrottled: bool, throttled: bool}, v0: bool, v0Created: bool, webAnalytics: map{canceledAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str}} # The project information\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint PATCH /v9/projects/{idOrName}\n@desc Update an existing project\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., autoExposeSystemEnvs: bool, autoAssignCustomDomains: bool, autoAssignCustomDomainsUpdatedBy: str, buildCommand: str # The build command for this project. When `null` is used this value will be automatically detected, commandForIgnoringBuildStep: str, customerSupportCodeVisibility: bool # Specifies whether customer support can see git source for a deployment, devCommand: str # The dev command for this project. When `null` is used this value will be automatically detected, directoryListing: bool, framework: str(container/blitzjs/nextjs/gatsby/remix/react-router/astro/hexo/eleventy/docusaurus-2/docusaurus/preact/solidstart-1/solidstart/dojo/ember/vue/scully/ionic-angular/angular/polymer/svelte/sveltekit/sveltekit-1/ionic-react/create-react-app/gridsome/umijs/sapper/saber/stencil/nuxtjs/redwoodjs/hugo/jekyll/brunch/middleman/zola/hydrogen/vite/tanstack-start/tanstack-start-lovable/vitepress/vuepress/parcel/fastapi/flask/fasthtml/django/ash/factory-eve/eve/sanity/sanity-v2/storybook/nitro/hono/express/h3/koa/nestjs/elysia/fastify/xmcp/python/ruby/rust/axum/actix-web/bun/node/go/services/mastra) # The framework that is being used for this project. When `null` is used no framework is selected, gitForkProtection: bool # Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed, gitLFS: bool # Specifies whether Git LFS is enabled for this project., protectedSourcemaps: bool # Specifies whether sourcemaps are protected and require authentication to access., installCommand: str # The install command for this project. When `null` is used this value will be automatically detected, name: str # The desired name for the project, nodeVersion: str(24.x/22.x/20.x/18.x/16.x/14.x/12.x/10.x), outputDirectory: str # The output directory of the project. When `null` is used this value will be automatically detected, previewDeploymentsDisabled: bool # Specifies whether preview deployments are disabled for this project., previewDeploymentSuffix: str # Custom domain suffix for preview deployments. Takes precedence over team-level suffix. Must be a domain owned by the team., resourceConfig: map{buildMachineType: any, buildMachineSelection: str, buildQueue: map, fluid: bool, functionDefaultRegions: [str], functionDefaultTimeout: num, functionDefaultMemoryType: any, functionZeroConfigFailover: any, elasticConcurrencyEnabled: bool, buildMachineElasticLastUpdated: num, buildMachineElasticReason: any, buildMachineElasticTransition: map, isNSNBDisabled: bool, enableFunctionsBeta: bool} # Specifies resource override configuration for the project, publicSource: bool # Deprecated. Accepted for backwards compatibility but ignored., rootDirectory: str # The name of a directory or relative path to the source code of your project. When `null` is used it will default to the project root, serverlessFunctionRegion: str # The region to deploy Serverless Functions in this project, serverlessFunctionZeroConfigFailover: any # Specifies whether Zero Config Failover is enabled for this project., skewProtectionBoundaryAt: int # Deployments created before this absolute datetime have Skew Protection disabled. Value is in milliseconds since epoch to match \\\"createdAt\\\" fields., skewProtectionMaxAge: int # Deployments created before this rolling window have Skew Protection disabled. Value is in seconds to match \\\"revalidate\\\" fields., skewProtectionAllowedDomains: [str] # Cross-site domains allowed to fetch skew-protected assets (hostnames, optionally with leading wildcard like *.example.com)., skipGitConnectDuringLink: bool # Opts-out of the message prompting a CLI user to connect a Git repository in `vercel link`., sourceFilesOutsideRootDirectory: bool # Indicates if there are source files outside of the root directory, enablePreviewFeedback: bool # Opt-in to preview toolbar on the project level, enableProductionFeedback: bool # Opt-in to production toolbar on the project level, enableAffectedProjectsDeployments: bool # Opt-in to skip deployments when there are no changes to the root directory and its dependencies, enableExternalRewriteCaching: bool # Specifies whether external rewrite caching is enabled for this project., staticIps: map{enabled!: bool} # Manage Static IPs for this project, tracing: map{domains: str, ignorePaths: [str], samplingRules: [map]} # Tracing configuration for this project, oidcTokenConfig: map{enabled: bool, issuerMode: str} # OpenID Connect JSON Web Token generation configuration., passwordProtection: map{deploymentType!: str, password: str} # Allows to protect project deployments with a password, passport: map{connectorId!: str, deploymentType: str} # Passport configuration for the project., sandbox: map{region: any, failoverRegions: [any]} # Specifies the default region and failover regions for sandboxes created in the project, ssoProtection: map{deploymentType!: str} # Ensures visitors to your Preview Deployments are logged into Vercel and have a minimum of Viewer access on your team, trustedIps: map{deploymentType!: str, addresses!: [map], protectionMode!: str} # Restricts access to deployments based on the incoming request IP address, trustedSources: map{enableVercelCiSameRepository: bool, projects: map, oidcProviders: map} # Deployment Protection Trusted Sources, deploymentPolicy: any, optionsAllowlist: map{paths!: [map]} # Specify a list of paths that should not be protected by Deployment Protection to enable Cors preflight requests, connectConfigurations: [any] # The list of connections from project environment to Secure Compute network, dismissedToasts: [map{key!: str, dismissedAt!: num, action!: any, value!: any}] # An array of objects representing a Dismissed Toast in regards to a Project. Objects are either merged with existing toasts (on key match), or added to the `dimissedToasts` array.`}\n@returns(200) {abuse: map{block: map{action: str, actor: str, caseId: str, comment: str, createdAt: num, ineligibleForAppeal: bool, isCascading: bool, reason: str, registeredShaBlock: map{createdAt: str, createdBy: str, sha: str}, statusCode: num}, blockHistory: [any], history: [map], interstitial: bool, interstitialHistory: [map], scanner: str, updatedAt: num}, accountId: str, alias: [map], analytics: map{canceledAt: num?, disabledAt: num, enabledAt: num, id: str, paidAt: num, sampleRatePercent: num?, spendLimitInDollars: num?}, appliedCve55182Migration: bool, autoAssignCustomDomains: bool, autoAssignCustomDomainsUpdatedBy: str, autoExposeSystemEnvs: bool, avatar: str?, blobs: map{isDefaultApp: bool}, buildCommand: str?, commandForIgnoringBuildStep: str?, concurrencyBucketName: str, connectBuildsEnabled: bool, connectConfigurationId: str?, connectConfigurations: [map]?, createdAt: num, creator: any, crons: map{definitions: [map], deploymentId: str?, disabledAt: num?, enabledAt: num, updatedAt: num}, customEnvironments: [map], customerSupportCodeVisibility: bool, dataCache: map{storageSizeBytes: num?, unlimited: bool, userDisabled: bool}, defaultResourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, deploymentExpiration: map{deploymentsToKeep: num, expirationDays: num, expirationDaysCanceled: num, expirationDaysErrored: num, expirationDaysProduction: num}, deploymentPolicy: map?{deploymentSources: [map]?, gitSources: [map]?}, devCommand: str?, directoryListing: bool, dismissedToasts: [map], enableAffectedProjectsDeployments: bool, enableExternalRewriteCaching: bool, enablePreviewFeedback: bool?, enableProductionFeedback: bool?, env: [map], expiration: any, features: map{webAnalytics: bool}, framework: str?, gitComments: map{onCommit: bool, onPullRequest: bool}, gitForkProtection: bool, gitLFS: bool, gitProviderOptions: map{consolidatedGitCommitStatus: map{enabled: bool, propagateFailures: bool}, createDeployments: str, disableRepositoryDispatchEvents: bool, gitCommitStatus: bool, requireVerifiedCommits: bool}, hasActiveBranches: bool, hasDeployments: bool, id: str, installCommand: str?, internalRoutes: [any], ipBuckets: [map], jobs: map{lint: map{targets: [str]}, mfe-config-present: map{targets: [str]}, typecheck: map{targets: [str]}}, lastAliasRequest: map?{fromDeploymentId: str?, fromRollingReleaseId: str, jobStatus: str, requestedAt: num, toDeploymentId: str, type: str}, lastRollbackTarget: map?, latestDeployments: [map], link: any, live: bool, microfrontends: any, name: str, nodeVersion: str, oidcTokenConfig: map{enabled: bool, issuerMode: str}, optionsAllowlist: map?{paths: [map]}, outputDirectory: str?, passiveConnectConfigurationId: str?, passport: map?{connectorId: str, deploymentType: str}, passwordProtection: map?, paused: bool, permissions: map{accessGroup: [str], agent: [str], aiGatewayApiKey: [str], aiGatewayApiKeyBypassAll: [str], aiGatewayApiKeyOwnedBySelf: [str], aiGatewayApiKeySpendAttribution: [str], aiGatewayApiKeyZdrExemption: [str], aiGatewayBudget: [str], aiGatewayCredits: [str], aiGatewayGuardrails: [str], aiGatewayPrivateModels: [str], aiGatewayRules: [str], aiGatewaySettings: [str], aiGatewayTranscripts: [str], aiGatewayTranscriptsSettings: [str], aiGatewayUsage: [str], aiGatewayVirtualModelConfigs: [str], alertRules: [str], alerts: [str], aliasGlobal: [str], aliasProject: [str], aliasProtectionBypass: [str], analytics: [str], analyticsSampling: [str], analyticsUsage: [str], apiKey: [str], apiKeyAiGateway: [str], apiKeyOwnedBySelf: [str], auditLog: [str], automation: [str], billingAddress: [str], billingInformation: [str], billingInvoice: [str], billingInvoiceEmailRecipient: [str], billingInvoiceLanguage: [str], billingPlan: [str], billingPurchaseOrder: [str], billingRefund: [str], billingTaxId: [str], blob: [str], blobStoreTokenSet: [str], budget: [str], buildMachine: [str], buildMachineDefault: [str], bulkRedirects: [str], cacheArtifact: [str], cacheArtifactUsageEvent: [str], ciInvocations: [str], ciLogs: [str], codeChecks: [str], codeOwners: [str], concurrentBuilds: [str], connect: [str], connectConfiguration: [str], connectConfigurationLink: [str], connectLogs: [str], connexClient: [str], connexClientProject: [str], connexContact: [str], connexInstallation: [str], connexToken: [str], cursorOriginInstallation: [str], dataCacheBillingSettings: [str], dataCacheNamespace: [str], defaultDeploymentProtection: [str], deployment: [str], deploymentBuildLogs: [str], deploymentCheck: [str], deploymentCheckPreview: [str], deploymentCheckReRunFromProductionBranch: [str], deploymentPolicy: [str], deploymentPreview: [str], deploymentPrivate: [str], deploymentProductionGit: [str], deploymentPromote: [str], deploymentProtectionException: [str], deploymentRollback: [str], deploymentV0: [str], domain: [str], domainAcceptDelegation: [str], domainAuthCodes: [str], domainCertificate: [str], domainCheckConfig: [str], domainMove: [str], domainPurchase: [str], domainRecord: [str], domainTransferIn: [str], drain: [str], edgeCacheNamespace: [str], edgeConfig: [str], edgeConfigItem: [str], edgeConfigSchema: [str], edgeConfigToken: [str], endpointVerification: [str], environments: [str], event: [str], fileUpload: [str], flagsExplorerSubscription: [str], gitCredentialGrant: [str], gitRepository: [str], imageOptimizationNewPrice: [str], integration: [str], integrationAccount: [str], integrationConfiguration: [str], integrationConfigurationProjects: [str], integrationConfigurationRole: [str], integrationConfigurationTransfer: [str], integrationDeploymentAction: [str], integrationEvent: [str], integrationLog: [str], integrationPullRequest: [str], integrationResource: [str], integrationResourceData: [str], integrationResourceReplCommand: [str], integrationResourceSecrets: [str], integrationSSOSession: [str], integrationStoreTokenSet: [str], integrationStrict: [str], integrationVercelConfigurationOverride: [str], ipBlocking: [str], job: [str], jobGlobal: [str], kmsIssuer: [str], kmsProjectGrant: [str], logDrain: [str], logs: [str], logsPreset: [str], marketplaceBillingData: [str], marketplaceExperimentationEdgeConfigData: [str], marketplaceExperimentationItem: [str], marketplaceFlexCommit: [str], marketplaceInstallationMember: [str], marketplaceInvoice: [str], marketplaceSettings: [str], Monitoring: [str], monitoringAlert: [str], monitoringChart: [str], monitoringQuery: [str], monitoringSettings: [str], notificationCustomerBudget: [str], notificationDeploymentFailed: [str], notificationDomainConfiguration: [str], notificationDomainExpire: [str], notificationDomainMoved: [str], notificationDomainPurchase: [str], notificationDomainRenewal: [str], notificationDomainTransfer: [str], notificationDomainUnverified: [str], NotificationMonitoringAlert: [str], notificationPaymentFailed: [str], notificationPreferences: [str], notificationStatementOfReasons: [str], notificationUsageAlert: [str], oauth2Application: [str], oauth2Connection: [str], observabilityConfiguration: [str], observabilityData: [str], observabilityFunnel: [str], observabilityNotebook: [str], oidcFederationPolicy: [str], onDemandBuild: [str], onDemandConcurrency: [str], openTelemetryEndpoint: [str], optionsAllowlist: [str], organization: [str], organizationDomain: [str], organizationTeam: [str], ownEvent: [str], pageIntegrity: [str], passwordProtection: [str], passwordProtectionInvoiceItem: [str], paymentMethod: [str], permissions: [str], postgres: [str], postgresStoreTokenSet: [str], previewDeploymentSuffix: [str], privateCloudAccount: [str], privateLinkEndpoint: [str], productionAliasProtectionBypass: [str], productionShareableLink: [str], project: [str], projectAccessGroup: [str], projectAnalyticsSampling: [str], projectAnalyticsUsage: [str], projectCheck: [str], projectCheckRun: [str], projectDeploymentExpiration: [str], projectDeploymentHook: [str], projectDeploymentProtectionStrict: [str], projectDomain: [str], projectDomainCheckConfig: [str], projectDomainMove: [str], projectDomainVerify: [str], projectEnvVars: [str], projectEnvVarsProduction: [str], projectEnvVarsUnownedByIntegration: [str], projectEvent: [str], projectFlags: [str], projectFlagsProduction: [str], projectFlagsSdkKey: [str], projectFromV0: [str], projectId: [str], projectIntegrationConfiguration: [str], projectLink: [str], projectMember: [str], projectMonitoring: [str], projectOIDCToken: [str], projectPermissions: [str], projectProductionBranch: [str], projectProtectionBypass: [str], projectRollingRelease: [str], projectRoutes: [str], projectSetting: [str], projectSupportCase: [str], projectSupportCaseComment: [str], projectTier: [str], projectTransfer: [str], projectTransferIn: [str], projectTransferOut: [str], projectTransferRequest: [str], projectUsage: [str], proTrialOnboarding: [str], rateLimit: [str], redis: [str], redisStoreTokenSet: [str], remoteCaching: [str], repository: [str], samlConfig: [str], schedule: [str], seawallConfig: [str], secret: [str], securityConfig: [str], securityPlusConfiguration: [str], sensitiveEnvironmentVariablePolicy: [str], setting: [str], shareableLink: [str], shareableLinkStrict: [str], sharedEnvVarConnection: [str], sharedEnvVars: [str], sharedEnvVarsProduction: [str], skewProtection: [str], space: [str], spaceRun: [str], storeIsLocked: [str], storeTokenSetSensitive: [str], storeTransfer: [str], supportCase: [str], supportCaseComment: [str], team: [str], teamAccessRequest: [str], teamFellowMembership: [str], teamGitExclusivity: [str], teamInvite: [str], teamInviteCode: [str], teamInviteLink: [str], teamJoin: [str], teamMemberMfaStatus: [str], teamMicrofrontends: [str], teamOwnMembership: [str], teamOwnMembershipDisconnectSAML: [str], teamSudo: [str], teamTokenInvalidation: [str], token: [str], toolbarComment: [str], trustedIps: [str], trustedSources: [str], usage: [str], usageCycle: [str], user: [str], userConnection: [str], userMfaConfiguration: [str], userPreference: [str], userSudo: [str], v0Chat: [str], vcrRepository: [str], vercelAppInstallation: [str], vercelAppInstallationRequest: [str], vercelAuth: [str], vercelRun: [str], vpcPeeringConnection: [str], webAnalytics: [str], webAnalyticsPlan: [str], webAuthn: [str], webhook: [str], webhook-event: [str], workflowRunData: [str]}, productionDeploymentsFastLane: bool, protectedSourcemaps: bool, protectionBypass: map, protectionConfig: map{sandboxUrls: map{inheritDeploymentProtection: bool}}, resourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, rollbackDescription: map{createdAt: num, description: str, userId: str, username: str}, rollingRelease: map?{canaryResponseHeader: bool, gate: map{action: str, checks: [map], dryRun: bool, enabled: bool, failureThreshold: num, windowSize: num}, stages: [map]?, target: str}, rootDirectory: str?, sandbox: map{failoverRegions: [str], region: str}, security: map{attackModeActiveUntil: num?, attackModeEnabled: bool, attackModeUpdatedAt: num, botIdEnabled: bool, firewallBypassIps: [str], firewallConfigVersion: num, firewallEnabled: bool, firewallSeawallEnabled: bool, firewallUpdatedAt: num, ja3Enabled: bool, ja4Enabled: bool, log_headers: any, managedRules: map?{ai_bots: map{action: str, active: bool}, bot_filter: map{action: str, active: bool}, owasp: map{action: str, active: bool}, traffic_sources: map{action: str, active: bool}, vercel_ruleset: map{action: str, active: bool}}, pageIntegrityEnabled: bool, rulesets: map}, serverlessFunctionZeroConfigFailover: bool, services: [map], skewProtectionAllowedDomains: [str], skewProtectionBoundaryAt: num, skewProtectionMaxAge: num, skipGitConnectDuringLink: bool, sourceFilesOutsideRootDirectory: bool, speedInsights: map{canceledAt: num, dataReceivedAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str, paidAt: num}, ssoProtection: map?{april2026SecurityIncidentMigrationAppliedFrom: str?, cve55182MigrationAppliedFrom: str?, deploymentType: str}, staticIps: map{builds: bool, enabled: bool, regions: [str]}, targets: map, tier: str, tracing: map{domains: str, ignorePaths: [str], samplingRules: [map]}, transferCompletedAt: num, transferredFromAccountId: str, transferStartedAt: num, transferToAccountId: str, trustedIps: any?, trustedSources: map?{enableVercelCiSameRepository: bool, oidcProviders: map, projects: map}, updatedAt: num, usageStatus: map{bypassThrottleUntil: num, exceededAllowanceUntil: num, kind: str, teamThrottled: bool, throttled: bool}, v0: bool, v0Created: bool, webAnalytics: map{canceledAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str}} # The project was successfully updated\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. Trusted IPs is only accessible for enterprise customers. This plan gate runs before the ACL check below on purpose: it depends only on the team's billing plan, so it can reject unsupported plans deterministically. `auth.can` resolves team membership (a DynamoDB lookup) and rejecting here first avoids depending on that external read for a request that is invalid regardless of authorization., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated Pro customers are allowed to deploy Serverless Functions to up to `proMaxRegions` regions, or if the project was created before the limit was introduced. Deploying to Serverless Functions to multiple regions requires a plan update, 403: You do not have permission to access this resource., 404, 409: The provided name for the project is already being used The project is currently being transferred., 410, 428, 429}\n\n@endpoint DELETE /v9/projects/{idOrName}\n@desc Delete a Project\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204) The project was successfuly removed\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410}\n\n@endpoint POST /v1/projects/{idOrName}/avatar\n@desc Upload a project avatar\n@required {idOrName: str # The unique project identifier or the project name.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {abuse: map{block: map{action: str, actor: str, caseId: str, comment: str, createdAt: num, ineligibleForAppeal: bool, isCascading: bool, reason: str, registeredShaBlock: map{createdAt: str, createdBy: str, sha: str}, statusCode: num}, blockHistory: [any], history: [map], interstitial: bool, interstitialHistory: [map], scanner: str, updatedAt: num}, accountId: str, alias: [map], analytics: map{canceledAt: num?, disabledAt: num, enabledAt: num, id: str, paidAt: num, sampleRatePercent: num?, spendLimitInDollars: num?}, appliedCve55182Migration: bool, autoAssignCustomDomains: bool, autoAssignCustomDomainsUpdatedBy: str, autoExposeSystemEnvs: bool, avatar: str?, blobs: map{isDefaultApp: bool}, buildCommand: str?, commandForIgnoringBuildStep: str?, concurrencyBucketName: str, connectBuildsEnabled: bool, connectConfigurationId: str?, connectConfigurations: [map]?, createdAt: num, creator: any, crons: map{definitions: [map], deploymentId: str?, disabledAt: num?, enabledAt: num, updatedAt: num}, customEnvironments: [map], customerSupportCodeVisibility: bool, dataCache: map{storageSizeBytes: num?, unlimited: bool, userDisabled: bool}, defaultResourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, deploymentExpiration: map{deploymentsToKeep: num, expirationDays: num, expirationDaysCanceled: num, expirationDaysErrored: num, expirationDaysProduction: num}, deploymentPolicy: map?{deploymentSources: [map]?, gitSources: [map]?}, devCommand: str?, directoryListing: bool, dismissedToasts: [map], enableAffectedProjectsDeployments: bool, enableExternalRewriteCaching: bool, enablePreviewFeedback: bool?, enableProductionFeedback: bool?, env: [map], expiration: any, features: map{webAnalytics: bool}, framework: str?, gitComments: map{onCommit: bool, onPullRequest: bool}, gitForkProtection: bool, gitLFS: bool, gitProviderOptions: map{consolidatedGitCommitStatus: map{enabled: bool, propagateFailures: bool}, createDeployments: str, disableRepositoryDispatchEvents: bool, gitCommitStatus: bool, requireVerifiedCommits: bool}, hasActiveBranches: bool, hasDeployments: bool, id: str, installCommand: str?, internalRoutes: [any], ipBuckets: [map], jobs: map{lint: map{targets: [str]}, mfe-config-present: map{targets: [str]}, typecheck: map{targets: [str]}}, lastAliasRequest: map?{fromDeploymentId: str?, fromRollingReleaseId: str, jobStatus: str, requestedAt: num, toDeploymentId: str, type: str}, lastRollbackTarget: map?, latestDeployments: [map], link: any, live: bool, microfrontends: any, name: str, nodeVersion: str, oidcTokenConfig: map{enabled: bool, issuerMode: str}, optionsAllowlist: map?{paths: [map]}, outputDirectory: str?, passiveConnectConfigurationId: str?, passport: map?{connectorId: str, deploymentType: str}, passwordProtection: map?, paused: bool, permissions: map{accessGroup: [str], agent: [str], aiGatewayApiKey: [str], aiGatewayApiKeyBypassAll: [str], aiGatewayApiKeyOwnedBySelf: [str], aiGatewayApiKeySpendAttribution: [str], aiGatewayApiKeyZdrExemption: [str], aiGatewayBudget: [str], aiGatewayCredits: [str], aiGatewayGuardrails: [str], aiGatewayPrivateModels: [str], aiGatewayRules: [str], aiGatewaySettings: [str], aiGatewayTranscripts: [str], aiGatewayTranscriptsSettings: [str], aiGatewayUsage: [str], aiGatewayVirtualModelConfigs: [str], alertRules: [str], alerts: [str], aliasGlobal: [str], aliasProject: [str], aliasProtectionBypass: [str], analytics: [str], analyticsSampling: [str], analyticsUsage: [str], apiKey: [str], apiKeyAiGateway: [str], apiKeyOwnedBySelf: [str], auditLog: [str], automation: [str], billingAddress: [str], billingInformation: [str], billingInvoice: [str], billingInvoiceEmailRecipient: [str], billingInvoiceLanguage: [str], billingPlan: [str], billingPurchaseOrder: [str], billingRefund: [str], billingTaxId: [str], blob: [str], blobStoreTokenSet: [str], budget: [str], buildMachine: [str], buildMachineDefault: [str], bulkRedirects: [str], cacheArtifact: [str], cacheArtifactUsageEvent: [str], ciInvocations: [str], ciLogs: [str], codeChecks: [str], codeOwners: [str], concurrentBuilds: [str], connect: [str], connectConfiguration: [str], connectConfigurationLink: [str], connectLogs: [str], connexClient: [str], connexClientProject: [str], connexContact: [str], connexInstallation: [str], connexToken: [str], cursorOriginInstallation: [str], dataCacheBillingSettings: [str], dataCacheNamespace: [str], defaultDeploymentProtection: [str], deployment: [str], deploymentBuildLogs: [str], deploymentCheck: [str], deploymentCheckPreview: [str], deploymentCheckReRunFromProductionBranch: [str], deploymentPolicy: [str], deploymentPreview: [str], deploymentPrivate: [str], deploymentProductionGit: [str], deploymentPromote: [str], deploymentProtectionException: [str], deploymentRollback: [str], deploymentV0: [str], domain: [str], domainAcceptDelegation: [str], domainAuthCodes: [str], domainCertificate: [str], domainCheckConfig: [str], domainMove: [str], domainPurchase: [str], domainRecord: [str], domainTransferIn: [str], drain: [str], edgeCacheNamespace: [str], edgeConfig: [str], edgeConfigItem: [str], edgeConfigSchema: [str], edgeConfigToken: [str], endpointVerification: [str], environments: [str], event: [str], fileUpload: [str], flagsExplorerSubscription: [str], gitCredentialGrant: [str], gitRepository: [str], imageOptimizationNewPrice: [str], integration: [str], integrationAccount: [str], integrationConfiguration: [str], integrationConfigurationProjects: [str], integrationConfigurationRole: [str], integrationConfigurationTransfer: [str], integrationDeploymentAction: [str], integrationEvent: [str], integrationLog: [str], integrationPullRequest: [str], integrationResource: [str], integrationResourceData: [str], integrationResourceReplCommand: [str], integrationResourceSecrets: [str], integrationSSOSession: [str], integrationStoreTokenSet: [str], integrationStrict: [str], integrationVercelConfigurationOverride: [str], ipBlocking: [str], job: [str], jobGlobal: [str], kmsIssuer: [str], kmsProjectGrant: [str], logDrain: [str], logs: [str], logsPreset: [str], marketplaceBillingData: [str], marketplaceExperimentationEdgeConfigData: [str], marketplaceExperimentationItem: [str], marketplaceFlexCommit: [str], marketplaceInstallationMember: [str], marketplaceInvoice: [str], marketplaceSettings: [str], Monitoring: [str], monitoringAlert: [str], monitoringChart: [str], monitoringQuery: [str], monitoringSettings: [str], notificationCustomerBudget: [str], notificationDeploymentFailed: [str], notificationDomainConfiguration: [str], notificationDomainExpire: [str], notificationDomainMoved: [str], notificationDomainPurchase: [str], notificationDomainRenewal: [str], notificationDomainTransfer: [str], notificationDomainUnverified: [str], NotificationMonitoringAlert: [str], notificationPaymentFailed: [str], notificationPreferences: [str], notificationStatementOfReasons: [str], notificationUsageAlert: [str], oauth2Application: [str], oauth2Connection: [str], observabilityConfiguration: [str], observabilityData: [str], observabilityFunnel: [str], observabilityNotebook: [str], oidcFederationPolicy: [str], onDemandBuild: [str], onDemandConcurrency: [str], openTelemetryEndpoint: [str], optionsAllowlist: [str], organization: [str], organizationDomain: [str], organizationTeam: [str], ownEvent: [str], pageIntegrity: [str], passwordProtection: [str], passwordProtectionInvoiceItem: [str], paymentMethod: [str], permissions: [str], postgres: [str], postgresStoreTokenSet: [str], previewDeploymentSuffix: [str], privateCloudAccount: [str], privateLinkEndpoint: [str], productionAliasProtectionBypass: [str], productionShareableLink: [str], project: [str], projectAccessGroup: [str], projectAnalyticsSampling: [str], projectAnalyticsUsage: [str], projectCheck: [str], projectCheckRun: [str], projectDeploymentExpiration: [str], projectDeploymentHook: [str], projectDeploymentProtectionStrict: [str], projectDomain: [str], projectDomainCheckConfig: [str], projectDomainMove: [str], projectDomainVerify: [str], projectEnvVars: [str], projectEnvVarsProduction: [str], projectEnvVarsUnownedByIntegration: [str], projectEvent: [str], projectFlags: [str], projectFlagsProduction: [str], projectFlagsSdkKey: [str], projectFromV0: [str], projectId: [str], projectIntegrationConfiguration: [str], projectLink: [str], projectMember: [str], projectMonitoring: [str], projectOIDCToken: [str], projectPermissions: [str], projectProductionBranch: [str], projectProtectionBypass: [str], projectRollingRelease: [str], projectRoutes: [str], projectSetting: [str], projectSupportCase: [str], projectSupportCaseComment: [str], projectTier: [str], projectTransfer: [str], projectTransferIn: [str], projectTransferOut: [str], projectTransferRequest: [str], projectUsage: [str], proTrialOnboarding: [str], rateLimit: [str], redis: [str], redisStoreTokenSet: [str], remoteCaching: [str], repository: [str], samlConfig: [str], schedule: [str], seawallConfig: [str], secret: [str], securityConfig: [str], securityPlusConfiguration: [str], sensitiveEnvironmentVariablePolicy: [str], setting: [str], shareableLink: [str], shareableLinkStrict: [str], sharedEnvVarConnection: [str], sharedEnvVars: [str], sharedEnvVarsProduction: [str], skewProtection: [str], space: [str], spaceRun: [str], storeIsLocked: [str], storeTokenSetSensitive: [str], storeTransfer: [str], supportCase: [str], supportCaseComment: [str], team: [str], teamAccessRequest: [str], teamFellowMembership: [str], teamGitExclusivity: [str], teamInvite: [str], teamInviteCode: [str], teamInviteLink: [str], teamJoin: [str], teamMemberMfaStatus: [str], teamMicrofrontends: [str], teamOwnMembership: [str], teamOwnMembershipDisconnectSAML: [str], teamSudo: [str], teamTokenInvalidation: [str], token: [str], toolbarComment: [str], trustedIps: [str], trustedSources: [str], usage: [str], usageCycle: [str], user: [str], userConnection: [str], userMfaConfiguration: [str], userPreference: [str], userSudo: [str], v0Chat: [str], vcrRepository: [str], vercelAppInstallation: [str], vercelAppInstallationRequest: [str], vercelAuth: [str], vercelRun: [str], vpcPeeringConnection: [str], webAnalytics: [str], webAnalyticsPlan: [str], webAuthn: [str], webhook: [str], webhook-event: [str], workflowRunData: [str]}, productionDeploymentsFastLane: bool, protectedSourcemaps: bool, protectionBypass: map, protectionConfig: map{sandboxUrls: map{inheritDeploymentProtection: bool}}, resourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, rollbackDescription: map{createdAt: num, description: str, userId: str, username: str}, rollingRelease: map?{canaryResponseHeader: bool, gate: map{action: str, checks: [map], dryRun: bool, enabled: bool, failureThreshold: num, windowSize: num}, stages: [map]?, target: str}, rootDirectory: str?, sandbox: map{failoverRegions: [str], region: str}, security: map{attackModeActiveUntil: num?, attackModeEnabled: bool, attackModeUpdatedAt: num, botIdEnabled: bool, firewallBypassIps: [str], firewallConfigVersion: num, firewallEnabled: bool, firewallSeawallEnabled: bool, firewallUpdatedAt: num, ja3Enabled: bool, ja4Enabled: bool, log_headers: any, managedRules: map?{ai_bots: map{action: str, active: bool}, bot_filter: map{action: str, active: bool}, owasp: map{action: str, active: bool}, traffic_sources: map{action: str, active: bool}, vercel_ruleset: map{action: str, active: bool}}, pageIntegrityEnabled: bool, rulesets: map}, serverlessFunctionZeroConfigFailover: bool, services: [map], skewProtectionAllowedDomains: [str], skewProtectionBoundaryAt: num, skewProtectionMaxAge: num, skipGitConnectDuringLink: bool, sourceFilesOutsideRootDirectory: bool, speedInsights: map{canceledAt: num, dataReceivedAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str, paidAt: num}, ssoProtection: map?{april2026SecurityIncidentMigrationAppliedFrom: str?, cve55182MigrationAppliedFrom: str?, deploymentType: str}, staticIps: map{builds: bool, enabled: bool, regions: [str]}, targets: map, tier: str, tracing: map{domains: str, ignorePaths: [str], samplingRules: [map]}, transferCompletedAt: num, transferredFromAccountId: str, transferStartedAt: num, transferToAccountId: str, trustedIps: any?, trustedSources: map?{enableVercelCiSameRepository: bool, oidcProviders: map, projects: map}, updatedAt: num, usageStatus: map{bypassThrottleUntil: num, exceededAllowanceUntil: num, kind: str, teamThrottled: bool, throttled: bool}, v0: bool, v0Created: bool, webAnalytics: map{canceledAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 413, 415}\n\n@endpoint PATCH /v1/projects/{idOrName}/shared-connect-links\n@desc Configures Static IPs for a project\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., builds: bool # Whether to use Static IPs for builds., regions: [str]}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 409, 410, 500}\n\n@endpoint POST /v9/projects/{idOrName}/custom-environments\n@desc Create a custom environment for the current project.\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., slug: str # The slug of the custom environment to create., description: str # Description of the custom environment. This is optional., branchMatcher: map{type!: any, pattern!: str} # How we want to determine a matching branch. This is optional., copyEnvVarsFrom: str # Where to copy environment variables from. This is optional.}\n@returns(201) {branchMatcher: map{pattern: str, type: str}, createdAt: num, currentDeploymentAliases: [str], description: str, domains: [map], id: str, slug: str, type: str, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint GET /v9/projects/{idOrName}/custom-environments\n@desc Retrieve custom environments\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {gitBranch: str # Fetch custom environments for a specific git branch, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {accountLimit: map{total: num}, environments: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v9/projects/{idOrName}/custom-environments/{environmentSlugOrId}\n@desc Retrieve a custom environment\n@required {idOrName: str # The unique project identifier or the project name, environmentSlugOrId: str # The unique custom environment identifier within the project}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {branchMatcher: map{pattern: str, type: str}, createdAt: num, currentDeploymentAliases: [str], description: str, domains: [map], id: str, slug: str, type: str, updatedAt: num}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v9/projects/{idOrName}/custom-environments/{environmentSlugOrId}\n@desc Update a custom environment\n@required {idOrName: str # The unique project identifier or the project name, environmentSlugOrId: str # The unique custom environment identifier within the project}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., slug: str # The slug of the custom environment., description: str # Description of the custom environment. This is optional., branchMatcher: map{type!: any, pattern!: str} # How we want to determine a matching branch. This is optional.}\n@returns(200) {branchMatcher: map{pattern: str, type: str}, createdAt: num, currentDeploymentAliases: [str], description: str, domains: [map], id: str, slug: str, type: str, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint DELETE /v9/projects/{idOrName}/custom-environments/{environmentSlugOrId}\n@desc Remove a custom environment\n@required {idOrName: str # The unique project identifier or the project name, environmentSlugOrId: str # The unique custom environment identifier within the project}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., deleteUnassignedEnvironmentVariables: bool # Delete Environment Variables that are not assigned to any environments.}\n@returns(200) {branchMatcher: map{pattern: str, type: str}, createdAt: num, currentDeploymentAliases: [str], description: str, domains: [map], id: str, slug: str, type: str, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v9/projects/{idOrName}/domains\n@desc Retrieve project domains by project by id or name\n@required {idOrName: any # The unique project identifier or the project name}\n@optional {production: any(true/false)=false # Filters only production domains when set to `true`., target: str(production/preview) # Filters on the target of the domain. Can be either \"production\", \"preview\", customEnvironmentId: str # The unique custom environment identifier within the project, gitBranch: str # Filters domains based on specific branch., redirects: any(true/false)=true # Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default)., redirect: str # Filters domains based on their redirect target., verified: any(true/false) # Filters domains based on their verification status., limit: num # Maximum number of domains to list from a request (max 100)., since: num # Get domains created after this JavaScript timestamp., until: num # Get domains created before this JavaScript timestamp., order: any(ASC/DESC)=DESC # Domains sort order by createdAt, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) Successful response retrieving a list of domains\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v9/projects/{idOrName}/domains/{domain}\n@desc Get a project domain\n@required {idOrName: str # The unique project identifier or the project name, domain: str # The project domain name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {apexName: str, createdAt: num, customEnvironmentId: str?, gitBranch: str?, name: str, projectId: str, redirect: str?, redirectStatusCode: num?, updatedAt: num, verification: [map], verified: bool}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint PATCH /v9/projects/{idOrName}/domains/{domain}\n@desc Update a project domain\n@required {idOrName: str # The unique project identifier or the project name, domain: str # The project domain name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., gitBranch: str # Git branch to link the project domain, redirect: str # Target destination domain for redirect, redirectStatusCode: int(301/302/307/308) # Status code for domain redirect}\n@returns(200) {apexName: str, createdAt: num, customEnvironmentId: str?, gitBranch: str?, name: str, projectId: str, redirect: str?, redirectStatusCode: num?, updatedAt: num, verification: [map], verified: bool} # The domain was updated successfuly\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. The domain redirect is not valid, 401: The request is not authorized., 403: You do not have permission to access this resource., 409: The project is currently being transferred, 410}\n\n@endpoint DELETE /v9/projects/{idOrName}/domains/{domain}\n@desc Remove a domain from a project\n@required {idOrName: str # The unique project identifier or the project name, domain: str # The project domain name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., removeRedirects: bool # Whether to remove all domains from this project that redirect to the domain being removed.}\n@returns(200) The domain was succesfully removed from the project\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409: The project is currently being transferred, 410}\n\n@endpoint POST /v10/projects/{idOrName}/domains\n@desc Add a domain to a project\n@required {idOrName: str # The unique project identifier or the project name, name: str # The project domain name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., gitBranch: str # Git branch to link the project domain, customEnvironmentId: str # The unique custom environment identifier within the project, redirect: str # Target destination domain for redirect, redirectStatusCode: int(301/302/307/308) # Status code for domain redirect}\n@returns(200) {apexName: str, createdAt: num, customEnvironmentId: str?, gitBranch: str?, name: str, projectId: str, redirect: str?, redirectStatusCode: num?, updatedAt: num, verification: [map], verified: bool} # The domain was successfully added to the project\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. The domain is not valid You can't set both a git branch and a redirect for the domain The domain can not be added because the latest production deployment for the project was not successful The domain redirect is not valid A domain cannot redirect to itself You can not set the production branch as a branch for your domain, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource. You don't have access to the domain you are adding, 409: The domain is already assigned to another Vercel project Cannot create project domain since owner already has `domain` on their account, but it's not verified yet. Cannot create project domain since owner already has `domain` on their account, and it's verified. The domain is not allowed to be used The project is currently being transferred, 410}\n\n@endpoint POST /v1/projects/{idOrName}/domains/{domain}/move\n@desc Move a project domain\n@required {idOrName: str # The unique project identifier or the project name, domain: str # The project domain name, projectId: any # The unique target project identifier}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., gitBranch: str # Git branch to link the project domain, redirect: str # Target destination domain for redirect, redirectStatusCode: int(301/302/307/308) # Status code for domain redirect}\n@returns(200) {apexName: str, createdAt: num, customEnvironmentId: str?, gitBranch: str?, name: str, projectId: str, redirect: str?, redirectStatusCode: num?, updatedAt: num, verification: [map], verified: bool} # The domain was updated successfuly\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. The domain redirect is not valid, 401: The request is not authorized., 403: You do not have permission to access this resource., 409: The project is currently being transferred, 410}\n\n@endpoint POST /v9/projects/{idOrName}/domains/{domain}/verify\n@desc Verify project domain\n@required {idOrName: str # The unique project identifier or the project name, domain: str # The domain name you want to verify}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {apexName: str, createdAt: num, customEnvironmentId: str?, gitBranch: str?, name: str, projectId: str, redirect: str?, redirectStatusCode: num?, updatedAt: num, verified: bool} # The project domain was verified successfully Domain is already verified\n@errors {400: One of the provided values in the request query is invalid. There is an existing TXT record on the domain verifying it for another project The domain does not have a TXT record that attempts to verify the project domain The TXT record on the domain does not match the expected challenge for the project domain Project domain is not assigned to project, 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v10/projects/{idOrName}/env\n@desc Retrieve the environment variables of a project by id or name\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {gitBranch: str # If defined, the git branch of the environment variable to filter the results (must have target=preview), decrypt: str(true/false) # If true, the environment variable value will be decrypted, source: str # The source that is calling the endpoint., customEnvironmentId: str # The unique custom environment identifier within the project, customEnvironmentSlug: str # The custom environment slug (name) within the project, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The list of environment variables for the given project\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v10/projects/{idOrName}/env\n@desc Create one or more environment variables\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {upsert: str # Allow override of environment variable if it already exists, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(201) {created: any, failed: [map]} # The environment variable was created successfully\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. The environment variable coudn't be created because an ongoing update env update is already happening The environment variable coudn't be created because project document is too large, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource. The environment variable cannot be created because it already exists, 404, 409, 410, 429, 500}\n\n@endpoint GET /v1/projects/{idOrName}/env/{id}\n@desc Retrieve the decrypted value of an environment variable of a project by id\n@required {idOrName: str # The unique project identifier or the project name, id: str # The unique ID for the environment variable to get the decrypted value.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint DELETE /v9/projects/{idOrName}/env/{id}\n@desc Remove an environment variable\n@required {idOrName: str # The unique project identifier or the project name, id: str # The unique environment variable identifier}\n@optional {customEnvironmentId: str # The unique custom environment identifier within the project, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The environment variable was successfully removed\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409: The project is being transfered and removing an environment variable is not possible, 410}\n\n@endpoint PATCH /v9/projects/{idOrName}/env/{id}\n@desc Edit an environment variable\n@required {idOrName: str # The unique project identifier or the project name, id: str # The unique environment variable identifier}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., key: str # The name of the environment variable, target: [any] # The target environment of the environment variable, gitBranch: str # If defined, the git branch of the environment variable (must have target=preview), type: str(system/encrypted/plain/sensitive) # The type of environment variable, value: str # The value of the environment variable, customEnvironmentIds: [str] # The custom environments that the environment variable should be synced to, comment: str # A comment to add context on what this env var is for}\n@returns(200) {comment: str, configurationId: str?, contentHint: any?, createdAt: num, createdBy: str?, customEnvironmentIds: [str], decrypted: bool, edgeConfigId: str?, edgeConfigTokenId: str?, gitBranch: str, id: str, internalContentHint: map?{encryptedValue: str, type: str}, key: str, legacyValue: str, sunsetSecretId: str, target: any, type: str, updatedAt: num, updatedBy: str?, value: str, visibility: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. At least one environment variable failed validation, 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409: The project is being transfered and removing an environment variable is not possible, 410, 429, 500}\n\n@endpoint DELETE /v1/projects/{idOrName}/env\n@desc Batch remove environment variables\n@required {idOrName: str # The unique project identifier or the project name, ids: [str] # Array of environment variable IDs to delete}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {deleted: num, ids: [str]}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/projects/{idOrName}/rolling-release/billing\n@desc Get rolling release billing status\n@required {idOrName: str # Project ID or project name (URL-encoded)}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/projects/{idOrName}/rolling-release/config\n@desc Get rolling release configuration\n@required {idOrName: str # Project ID or project name (URL-encoded)}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {rollingRelease: map?{canaryResponseHeader: bool, gate: map{action: str, checks: [map], dryRun: bool, enabled: bool, failureThreshold: num, windowSize: num}, stages: [map]?, target: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/projects/{idOrName}/rolling-release/config\n@desc Delete rolling release configuration\n@required {idOrName: str # Project ID or project name (URL-encoded)}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {rollingRelease: any?}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v1/projects/{idOrName}/rolling-release/config\n@desc Update the rolling release settings for the project\n@required {idOrName: str # Project ID or project name (URL-encoded)}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/projects/{idOrName}/rolling-release\n@desc Get the active rolling release information for a project\n@required {idOrName: str # Project ID or project name (URL-encoded)}\n@optional {state: str(ACTIVE/COMPLETE/ABORTED) # Filter by rolling release state, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {rollingRelease: map?{activeStage: map?{duration: num?, index: num, isFinalStage: bool, linearShift: bool, requireApproval: bool, targetPercentage: num}, advancementType: str, canaryDeployment: map?{createdAt: num, id: str, name: str, readyState: str, readyStateAt: num, source: str, target: str?, url: str}, currentCanaryPercentage: num, currentDeployment: map?{createdAt: num, id: str, name: str, readyState: str, readyStateAt: num, source: str, target: str?, url: str}, nextStage: map?{duration: num?, index: num, isFinalStage: bool, linearShift: bool, requireApproval: bool, targetPercentage: num}, queuedDeploymentId: str?, stages: [map], startedAt: num, state: str, substate: str?, updatedAt: num}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/projects/{idOrName}/rolling-release/approve-stage\n@desc Update the active rolling release to the next stage for a project\n@required {idOrName: str # Project ID or project name (URL-encoded), nextStageIndex: num # The index of the stage to transition to, canaryDeploymentId: str # The id of the canary deployment to approve for the next stage}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {rollingRelease: map?{activeStage: map?{duration: num?, index: num, isFinalStage: bool, linearShift: bool, requireApproval: bool, targetPercentage: num}, advancementType: str, canaryDeployment: map?{createdAt: num, id: str, name: str, readyState: str, readyStateAt: num, source: str, target: str?, url: str}, currentCanaryPercentage: num, currentDeployment: map?{createdAt: num, id: str, name: str, readyState: str, readyStateAt: num, source: str, target: str?, url: str}, nextStage: map?{duration: num?, index: num, isFinalStage: bool, linearShift: bool, requireApproval: bool, targetPercentage: num}, queuedDeploymentId: str?, stages: [map], startedAt: num, state: str, substate: str?, updatedAt: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint POST /v1/projects/{idOrName}/rolling-release/start\n@desc Start a rolling release for the project\n@required {idOrName: str # Project ID or project name (URL-encoded), canaryDeploymentId: str # The ID of the canary deployment to start the rolling release for}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {rollingRelease: map?{activeStage: map?{duration: num?, index: num, isFinalStage: bool, linearShift: bool, requireApproval: bool, targetPercentage: num}, advancementType: str, canaryDeployment: map?{createdAt: num, id: str, name: str, readyState: str, readyStateAt: num, source: str, target: str?, url: str}, currentCanaryPercentage: num, currentDeployment: map?{createdAt: num, id: str, name: str, readyState: str, readyStateAt: num, source: str, target: str?, url: str}, nextStage: map?{duration: num?, index: num, isFinalStage: bool, linearShift: bool, requireApproval: bool, targetPercentage: num}, queuedDeploymentId: str?, stages: [map], startedAt: num, state: str, substate: str?, updatedAt: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 422}\n\n@endpoint POST /v1/projects/{idOrName}/rolling-release/complete\n@desc Complete the rolling release for the project\n@required {idOrName: str # Project ID or project name (URL-encoded), canaryDeploymentId: str # The ID of the canary deployment to complete}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {rollingRelease: map?{activeStage: map?{duration: num?, index: num, isFinalStage: bool, linearShift: bool, requireApproval: bool, targetPercentage: num}, advancementType: str, canaryDeployment: map?{createdAt: num, id: str, name: str, readyState: str, readyStateAt: num, source: str, target: str?, url: str}, currentCanaryPercentage: num, currentDeployment: map?{createdAt: num, id: str, name: str, readyState: str, readyStateAt: num, source: str, target: str?, url: str}, nextStage: map?{duration: num?, index: num, isFinalStage: bool, linearShift: bool, requireApproval: bool, targetPercentage: num}, queuedDeploymentId: str?, stages: [map], startedAt: num, state: str, substate: str?, updatedAt: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /projects/{idOrName}/transfer-request\n@desc Create project transfer request\n@required {idOrName: str # The ID or name of the project to transfer.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., callbackUrl: str # The URL to send a webhook to when the transfer is accepted., callbackSecret: str # The secret to use to sign the webhook payload with HMAC-SHA256.}\n@returns(200) {code: str} # The project transfer request has been initiated successfully.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410}\n\n@endpoint PUT /projects/transfer-request/{code}\n@desc Accept project transfer request\n@required {code: str # The code of the project transfer request.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., newProjectName: str # The desired name for the project, paidFeatures: map{concurrentBuilds: int, passwordProtection: bool, previewDeploymentSuffix: bool}, acceptedPolicies: map}\n@returns(202) The project has been transferred successfully.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422}\n\n@endpoint PATCH /v1/projects/{idOrName}/protection-bypass\n@desc Update Protection Bypass for Automation\n@required {idOrName: str # The unique project identifier or the project name}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., revoke: map{secret!: str, regenerate!: bool} # Optional instructions for revoking and regenerating a automation bypass, generate: map{secret: str, note: str} # Generate a new secret. If neither generate or revoke are provided, a new random secret will be generated., update: map{secret!: str, isEnvVar: bool, note: str} # Update an existing bypass}\n@returns(200) {protectionBypass: map}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/projects/{projectId}/rollback/{deploymentId}\n@desc Point production traffic to a previous production deployment by ID\n@required {projectId: str, deploymentId: str # The ID of the deployment to rollback *to*}\n@optional {description: str # The reason for the rollback, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(201)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 409, 410, 422}\n\n@endpoint PATCH /v1/projects/{projectId}/rollback/{deploymentId}/update-description\n@desc Updates the description for a rollback\n@required {projectId: str, deploymentId: str}\n@optional {description: str # The reason for the rollback}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410, 422}\n\n@endpoint PATCH /v1/projects/{projectId}/microfrontends\n@desc Update the microfrontends settings\n@required {projectId: str # The unique project identifier}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., microfrontendsGroupId: str # The unique group identifier to add this microfrontend to, enabled: bool # Enable or disable microfrontends for the project, isDefaultApp: bool # Whether the application is the default application for the microfrontends group, defaultRoute: str # The default route used for screenshots and preview links for the project, routeObservabilityToThisProject: bool # Whether observability data should be routed to this project or a root project. Can only be set for child applications., doNotRouteWithMicrofrontendsRouting: bool # Whether domains in this project should route as a microfrontend. Can only be set for child applications.}\n@returns(200) {abuse: map{block: map{action: str, actor: str, caseId: str, comment: str, createdAt: num, ineligibleForAppeal: bool, isCascading: bool, reason: str, registeredShaBlock: map{createdAt: str, createdBy: str, sha: str}, statusCode: num}, blockHistory: [any], history: [map], interstitial: bool, interstitialHistory: [map], scanner: str, updatedAt: num}, accountId: str, alias: [map], analytics: map{canceledAt: num?, disabledAt: num, enabledAt: num, id: str, paidAt: num, sampleRatePercent: num?, spendLimitInDollars: num?}, appliedCve55182Migration: bool, autoAssignCustomDomains: bool, autoAssignCustomDomainsUpdatedBy: str, autoExposeSystemEnvs: bool, avatar: str?, blobs: map{isDefaultApp: bool}, buildCommand: str?, commandForIgnoringBuildStep: str?, concurrencyBucketName: str, connectBuildsEnabled: bool, connectConfigurationId: str?, connectConfigurations: [map]?, createdAt: num, creator: any, crons: map{definitions: [map], deploymentId: str?, disabledAt: num?, enabledAt: num, updatedAt: num}, customEnvironments: [map], customerSupportCodeVisibility: bool, dataCache: map{storageSizeBytes: num?, unlimited: bool, userDisabled: bool}, defaultResourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, deploymentExpiration: map{deploymentsToKeep: num, expirationDays: num, expirationDaysCanceled: num, expirationDaysErrored: num, expirationDaysProduction: num}, deploymentPolicy: map?{deploymentSources: [map]?, gitSources: [map]?}, devCommand: str?, directoryListing: bool, dismissedToasts: [map], enableAffectedProjectsDeployments: bool, enableExternalRewriteCaching: bool, enablePreviewFeedback: bool?, enableProductionFeedback: bool?, env: [map], expiration: any, features: map{webAnalytics: bool}, framework: str?, gitComments: map{onCommit: bool, onPullRequest: bool}, gitForkProtection: bool, gitLFS: bool, gitProviderOptions: map{consolidatedGitCommitStatus: map{enabled: bool, propagateFailures: bool}, createDeployments: str, disableRepositoryDispatchEvents: bool, gitCommitStatus: bool, requireVerifiedCommits: bool}, hasActiveBranches: bool, hasDeployments: bool, id: str, installCommand: str?, internalRoutes: [any], ipBuckets: [map], jobs: map{lint: map{targets: [str]}, mfe-config-present: map{targets: [str]}, typecheck: map{targets: [str]}}, lastAliasRequest: map?{fromDeploymentId: str?, fromRollingReleaseId: str, jobStatus: str, requestedAt: num, toDeploymentId: str, type: str}, lastRollbackTarget: map?, latestDeployments: [map], link: any, live: bool, microfrontends: any, name: str, nodeVersion: str, oidcTokenConfig: map{enabled: bool, issuerMode: str}, optionsAllowlist: map?{paths: [map]}, outputDirectory: str?, passiveConnectConfigurationId: str?, passport: map?{connectorId: str, deploymentType: str}, passwordProtection: map?, paused: bool, permissions: map{accessGroup: [str], agent: [str], aiGatewayApiKey: [str], aiGatewayApiKeyBypassAll: [str], aiGatewayApiKeyOwnedBySelf: [str], aiGatewayApiKeySpendAttribution: [str], aiGatewayApiKeyZdrExemption: [str], aiGatewayBudget: [str], aiGatewayCredits: [str], aiGatewayGuardrails: [str], aiGatewayPrivateModels: [str], aiGatewayRules: [str], aiGatewaySettings: [str], aiGatewayTranscripts: [str], aiGatewayTranscriptsSettings: [str], aiGatewayUsage: [str], aiGatewayVirtualModelConfigs: [str], alertRules: [str], alerts: [str], aliasGlobal: [str], aliasProject: [str], aliasProtectionBypass: [str], analytics: [str], analyticsSampling: [str], analyticsUsage: [str], apiKey: [str], apiKeyAiGateway: [str], apiKeyOwnedBySelf: [str], auditLog: [str], automation: [str], billingAddress: [str], billingInformation: [str], billingInvoice: [str], billingInvoiceEmailRecipient: [str], billingInvoiceLanguage: [str], billingPlan: [str], billingPurchaseOrder: [str], billingRefund: [str], billingTaxId: [str], blob: [str], blobStoreTokenSet: [str], budget: [str], buildMachine: [str], buildMachineDefault: [str], bulkRedirects: [str], cacheArtifact: [str], cacheArtifactUsageEvent: [str], ciInvocations: [str], ciLogs: [str], codeChecks: [str], codeOwners: [str], concurrentBuilds: [str], connect: [str], connectConfiguration: [str], connectConfigurationLink: [str], connectLogs: [str], connexClient: [str], connexClientProject: [str], connexContact: [str], connexInstallation: [str], connexToken: [str], cursorOriginInstallation: [str], dataCacheBillingSettings: [str], dataCacheNamespace: [str], defaultDeploymentProtection: [str], deployment: [str], deploymentBuildLogs: [str], deploymentCheck: [str], deploymentCheckPreview: [str], deploymentCheckReRunFromProductionBranch: [str], deploymentPolicy: [str], deploymentPreview: [str], deploymentPrivate: [str], deploymentProductionGit: [str], deploymentPromote: [str], deploymentProtectionException: [str], deploymentRollback: [str], deploymentV0: [str], domain: [str], domainAcceptDelegation: [str], domainAuthCodes: [str], domainCertificate: [str], domainCheckConfig: [str], domainMove: [str], domainPurchase: [str], domainRecord: [str], domainTransferIn: [str], drain: [str], edgeCacheNamespace: [str], edgeConfig: [str], edgeConfigItem: [str], edgeConfigSchema: [str], edgeConfigToken: [str], endpointVerification: [str], environments: [str], event: [str], fileUpload: [str], flagsExplorerSubscription: [str], gitCredentialGrant: [str], gitRepository: [str], imageOptimizationNewPrice: [str], integration: [str], integrationAccount: [str], integrationConfiguration: [str], integrationConfigurationProjects: [str], integrationConfigurationRole: [str], integrationConfigurationTransfer: [str], integrationDeploymentAction: [str], integrationEvent: [str], integrationLog: [str], integrationPullRequest: [str], integrationResource: [str], integrationResourceData: [str], integrationResourceReplCommand: [str], integrationResourceSecrets: [str], integrationSSOSession: [str], integrationStoreTokenSet: [str], integrationStrict: [str], integrationVercelConfigurationOverride: [str], ipBlocking: [str], job: [str], jobGlobal: [str], kmsIssuer: [str], kmsProjectGrant: [str], logDrain: [str], logs: [str], logsPreset: [str], marketplaceBillingData: [str], marketplaceExperimentationEdgeConfigData: [str], marketplaceExperimentationItem: [str], marketplaceFlexCommit: [str], marketplaceInstallationMember: [str], marketplaceInvoice: [str], marketplaceSettings: [str], Monitoring: [str], monitoringAlert: [str], monitoringChart: [str], monitoringQuery: [str], monitoringSettings: [str], notificationCustomerBudget: [str], notificationDeploymentFailed: [str], notificationDomainConfiguration: [str], notificationDomainExpire: [str], notificationDomainMoved: [str], notificationDomainPurchase: [str], notificationDomainRenewal: [str], notificationDomainTransfer: [str], notificationDomainUnverified: [str], NotificationMonitoringAlert: [str], notificationPaymentFailed: [str], notificationPreferences: [str], notificationStatementOfReasons: [str], notificationUsageAlert: [str], oauth2Application: [str], oauth2Connection: [str], observabilityConfiguration: [str], observabilityData: [str], observabilityFunnel: [str], observabilityNotebook: [str], oidcFederationPolicy: [str], onDemandBuild: [str], onDemandConcurrency: [str], openTelemetryEndpoint: [str], optionsAllowlist: [str], organization: [str], organizationDomain: [str], organizationTeam: [str], ownEvent: [str], pageIntegrity: [str], passwordProtection: [str], passwordProtectionInvoiceItem: [str], paymentMethod: [str], permissions: [str], postgres: [str], postgresStoreTokenSet: [str], previewDeploymentSuffix: [str], privateCloudAccount: [str], privateLinkEndpoint: [str], productionAliasProtectionBypass: [str], productionShareableLink: [str], project: [str], projectAccessGroup: [str], projectAnalyticsSampling: [str], projectAnalyticsUsage: [str], projectCheck: [str], projectCheckRun: [str], projectDeploymentExpiration: [str], projectDeploymentHook: [str], projectDeploymentProtectionStrict: [str], projectDomain: [str], projectDomainCheckConfig: [str], projectDomainMove: [str], projectDomainVerify: [str], projectEnvVars: [str], projectEnvVarsProduction: [str], projectEnvVarsUnownedByIntegration: [str], projectEvent: [str], projectFlags: [str], projectFlagsProduction: [str], projectFlagsSdkKey: [str], projectFromV0: [str], projectId: [str], projectIntegrationConfiguration: [str], projectLink: [str], projectMember: [str], projectMonitoring: [str], projectOIDCToken: [str], projectPermissions: [str], projectProductionBranch: [str], projectProtectionBypass: [str], projectRollingRelease: [str], projectRoutes: [str], projectSetting: [str], projectSupportCase: [str], projectSupportCaseComment: [str], projectTier: [str], projectTransfer: [str], projectTransferIn: [str], projectTransferOut: [str], projectTransferRequest: [str], projectUsage: [str], proTrialOnboarding: [str], rateLimit: [str], redis: [str], redisStoreTokenSet: [str], remoteCaching: [str], repository: [str], samlConfig: [str], schedule: [str], seawallConfig: [str], secret: [str], securityConfig: [str], securityPlusConfiguration: [str], sensitiveEnvironmentVariablePolicy: [str], setting: [str], shareableLink: [str], shareableLinkStrict: [str], sharedEnvVarConnection: [str], sharedEnvVars: [str], sharedEnvVarsProduction: [str], skewProtection: [str], space: [str], spaceRun: [str], storeIsLocked: [str], storeTokenSetSensitive: [str], storeTransfer: [str], supportCase: [str], supportCaseComment: [str], team: [str], teamAccessRequest: [str], teamFellowMembership: [str], teamGitExclusivity: [str], teamInvite: [str], teamInviteCode: [str], teamInviteLink: [str], teamJoin: [str], teamMemberMfaStatus: [str], teamMicrofrontends: [str], teamOwnMembership: [str], teamOwnMembershipDisconnectSAML: [str], teamSudo: [str], teamTokenInvalidation: [str], token: [str], toolbarComment: [str], trustedIps: [str], trustedSources: [str], usage: [str], usageCycle: [str], user: [str], userConnection: [str], userMfaConfiguration: [str], userPreference: [str], userSudo: [str], v0Chat: [str], vcrRepository: [str], vercelAppInstallation: [str], vercelAppInstallationRequest: [str], vercelAuth: [str], vercelRun: [str], vpcPeeringConnection: [str], webAnalytics: [str], webAnalyticsPlan: [str], webAuthn: [str], webhook: [str], webhook-event: [str], workflowRunData: [str]}, productionDeploymentsFastLane: bool, protectedSourcemaps: bool, protectionBypass: map, protectionConfig: map{sandboxUrls: map{inheritDeploymentProtection: bool}}, resourceConfig: map{buildMachineElasticLastUpdated: num, buildMachineElasticReason: str, buildMachineElasticTransition: map{algorithmVersion: str, at: num, direction: str}, buildMachineSelection: str, buildMachineType: str, buildQueue: map{configuration: str}, elasticConcurrencyEnabled: bool, enableFunctionsBeta: bool, fluid: bool, functionDefaultMemoryType: str, functionDefaultRegions: [str], functionDefaultTimeout: num, functionZeroConfigFailover: bool, isNSNBDisabled: bool}, rollbackDescription: map{createdAt: num, description: str, userId: str, username: str}, rollingRelease: map?{canaryResponseHeader: bool, gate: map{action: str, checks: [map], dryRun: bool, enabled: bool, failureThreshold: num, windowSize: num}, stages: [map]?, target: str}, rootDirectory: str?, sandbox: map{failoverRegions: [str], region: str}, security: map{attackModeActiveUntil: num?, attackModeEnabled: bool, attackModeUpdatedAt: num, botIdEnabled: bool, firewallBypassIps: [str], firewallConfigVersion: num, firewallEnabled: bool, firewallSeawallEnabled: bool, firewallUpdatedAt: num, ja3Enabled: bool, ja4Enabled: bool, log_headers: any, managedRules: map?{ai_bots: map{action: str, active: bool}, bot_filter: map{action: str, active: bool}, owasp: map{action: str, active: bool}, traffic_sources: map{action: str, active: bool}, vercel_ruleset: map{action: str, active: bool}}, pageIntegrityEnabled: bool, rulesets: map}, serverlessFunctionZeroConfigFailover: bool, services: [map], skewProtectionAllowedDomains: [str], skewProtectionBoundaryAt: num, skewProtectionMaxAge: num, skipGitConnectDuringLink: bool, sourceFilesOutsideRootDirectory: bool, speedInsights: map{canceledAt: num, dataReceivedAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str, paidAt: num}, ssoProtection: map?{april2026SecurityIncidentMigrationAppliedFrom: str?, cve55182MigrationAppliedFrom: str?, deploymentType: str}, staticIps: map{builds: bool, enabled: bool, regions: [str]}, targets: map, tier: str, tracing: map{domains: str, ignorePaths: [str], samplingRules: [map]}, transferCompletedAt: num, transferredFromAccountId: str, transferStartedAt: num, transferToAccountId: str, trustedIps: any?, trustedSources: map?{enableVercelCiSameRepository: bool, oidcProviders: map, projects: map}, updatedAt: num, usageStatus: map{bypassThrottleUntil: num, exceededAllowanceUntil: num, kind: str, teamThrottled: bool, throttled: bool}, v0: bool, v0Created: bool, webAnalytics: map{canceledAt: num, disabledAt: num, enabledAt: num, hasData: bool, id: str}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410, 500}\n\n@endpoint POST /v10/projects/{projectId}/promote/{deploymentId}\n@desc Point production traffic to a given deployment\n@required {projectId: str, deploymentId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(201)\n@returns(202)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410, 422}\n\n@endpoint GET /v1/projects/{projectId}/promote/aliases\n@desc Gets a list of aliases with status for the current promote\n@required {projectId: str}\n@optional {limit: num # Maximum number of aliases to list from a request (max 100)., since: num # Get aliases created after this epoch timestamp., until: num # Get aliases created before this epoch timestamp., failedOnly: bool # Filter results down to aliases that failed to map to the requested deployment, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/projects/{projectId}/pause\n@desc Pause a project\n@required {projectId: str # The unique project identifier}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint POST /v1/projects/{projectId}/unpause\n@desc Unpause a project\n@required {projectId: str # The unique project identifier}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 500}\n\n@endgroup\n\n@group sandboxes\n@endpoint GET /v2/sandboxes\n@desc List sandboxes\n@optional {project: str # The unique identifier or name of the project to list named sandboxes for., limit: num=20 # Maximum number of named sandboxes to return in the response. Used for pagination., sortBy: str(createdAt/name/statusUpdatedAt/currentSnapshotId)=createdAt # Field to sort by., namePrefix: str # Filter named sandboxes whose name starts with this prefix. Only valid when sortBy=name., cursor: str # Opaque pagination cursor from a previous response., sortOrder: str(asc/desc)=desc # Sort direction. Defaults to desc., status: str(running/stopping/stopped) # Filter named sandboxes by status. Only valid when sortBy is createdAt., tags: any # Filter sandboxes by tag. Format: \\\"key:value\\\". Only one tag filter is supported at a time., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {pagination: map{count: num, next: str?}, sandboxes: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint POST /v2/sandboxes\n@desc Create a named sandbox\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., networkPolicy: any, runtime: str(node22/node24/node26/python3.13)=node24 # The runtime environment for the sandbox. Determines the pre-installed language runtimes and tools available., architecture: str(amd64/arm64) # CPU architecture. Inherits a snapshot or single image manifest when omitted. Image indexes default to amd64. Must match the source. ARM64 creation requires API v3 or v4 without runtime and team access., resources: map{vcpus: int, memory: int} # Resources to define the VM, source: any # The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot., projectId: str # The target project slug or ID in which the sandbox will be assigned to., ports: [int] # List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed., image: str # Image to use for the sandbox., timeout: int # Maximum duration in milliseconds that the sandbox can run before being automatically stopped., env: map=[object Object] # Default environment variables for the sandbox. These are inherited by all commands unless overridden., mounts: map # List of drives to mount to the sandbox at the provided path., region: str(iad1/sfo1/cle1/cdg1/fra1/arn1/sin1/pdx1/lhr1/icn1/bom1/cpt1/dub1/gru1/hkg1/syd1/yul1/hnd1/kix1)=iad1,sfo1,cle1,cdg1,fra1,arn1,sin1,pdx1,lhr1,icn1,bom1,cpt1,dub1,gru1,hkg1,syd1,yul1,hnd1,kix1 # The Vercel region in which to create the sandbox., failoverRegions: [str] # The regions the sandbox falls back to when it cannot be created in `region`., networkId: str # The Connect network id for the target Secure Compute private network., name: str # Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores)., persistent: bool=true # Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to true., snapshotExpiration: any # Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox., keepLastSnapshots: map{count!: int, expiration: any, deleteEvicted: bool} # Protect the N most recent snapshots with different expiration/deletion behavior., tags: map # Key-value tags to associate with the sandbox. Maximum 5 tags.}\n@returns(200) {routes: [map], sandbox: map{architecture: str, createdAt: num, currentSessionId: str, currentSnapshotId: str, cwd: str, expiresAt: num, failoverRegions: [str], image: str, keepLastSnapshots: map{count: num, deleteEvicted: bool, expiration: num}, memory: num, mounts: map, name: str, networkId: str, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], mode: str, s3Key: str}, persistent: bool, region: str, runtime: str, snapshotExpiration: num, status: str, statusUpdatedAt: num, tags: map, timeout: num, totalActiveCpuDurationMs: num, totalDurationMs: num, totalEgressBytes: num, totalIngressBytes: num, updatedAt: num, vcpus: num}, session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 422, 429: The concurrency limit has been exceeded., 500, 502}\n\n@endpoint GET /v2/sandboxes/drives\n@desc List drives\n@optional {projectId: str # The project ID or name associated with the drives. Required unless using a Vercel OIDC token scoped to a project., limit: num=20 # Maximum number of drives to return in the response. Used for pagination., cursor: str # Opaque pagination cursor from a previous response., sortBy: str(createdAt/updatedAt/name)=createdAt # Field to sort drives by., namePrefix: str # Filter drives whose name starts with this prefix. Only valid when sortBy=name., sortOrder: str(asc/desc)=desc # Sort direction for results., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {drives: [map], pagination: map{count: num, next: str?}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint POST /v2/sandboxes/drives/{name}\n@desc Get or create a drive\n@required {name: str # Name for the drive. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores).}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., projectId: str # The project ID or name to associate the drive with. Required unless using a Vercel OIDC token scoped to a project., maxSizeBytes: int # Maximum drive size in bytes. Defaults to 1 TiB when omitted (1 GiB for Hobby). The maximum quota is 16 TiB. Request a quota above 16 TiB at https://vercel.com/help., region: str(iad1/sfo1/cle1/cdg1/fra1/arn1/sin1/pdx1/lhr1/icn1/bom1/cpt1/dub1/gru1/hkg1/syd1/yul1/hnd1/kix1)=iad1 # Region where the drive is stored. Defaults to iad1.}\n@returns(200) {drive: map{createdAt: num, currentSandboxName: str, currentSessionId: str, id: str, maxSizeBytes: num, name: str, projectId: str, region: str, updatedAt: num}}\n@returns(201) {drive: map{createdAt: num, currentSandboxName: str, currentSessionId: str, id: str, maxSizeBytes: num, name: str, projectId: str, region: str, updatedAt: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 429}\n\n@endpoint DELETE /v2/sandboxes/drives/{name}\n@desc Delete a drive\n@required {name: str # Name for the drive. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores).}\n@optional {projectId: str # The project ID or name associated with the drive. Required unless using a Vercel OIDC token scoped to a project., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {drive: map{createdAt: num, currentSandboxName: str, currentSessionId: str, id: str, maxSizeBytes: num, name: str, projectId: str, region: str, updatedAt: num}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 429}\n\n@endpoint GET /v2/sandboxes/snapshots\n@desc List snapshots\n@optional {project: str # The unique identifier or name of the project to list snapshots for., name: str # Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores)., limit: num=20 # Maximum number of snapshots to return in the response. Used for pagination., cursor: str # Opaque pagination cursor from a previous response., sortOrder: str(asc/desc)=desc # Sort direction for results by creation time., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint GET /v2/sandboxes/snapshots/{snapshotId}\n@desc Get a snapshot\n@required {snapshotId: str # The unique identifier of the snapshot to retrieve.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {snapshot: map{architecture: str, createdAt: num, creationMethod: str, expiresAt: num, id: str, lastUsedAt: num, parentId: str, region: str, regions: [str], sizeBytes: num, sourceSessionId: str, status: str, updatedAt: num}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint DELETE /v2/sandboxes/snapshots/{snapshotId}\n@desc Delete a snapshot\n@required {snapshotId: str # The unique identifier of the snapshot to delete.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {snapshot: map{architecture: str, createdAt: num, creationMethod: str, expiresAt: num, id: str, lastUsedAt: num, parentId: str, region: str, regions: [str], sizeBytes: num, sourceSessionId: str, status: str, updatedAt: num}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint GET /v2/sandboxes/sessions\n@desc List sessions\n@optional {project: str # The unique identifier or name of the project to list sessions for., name: str # Filter sessions by sandbox name. Only sessions belonging to the specified sandbox are returned., limit: num=20 # Maximum number of sessions to return in the response. Used for pagination., cursor: str # Opaque pagination cursor from a previous response., sortOrder: str(asc/desc)=desc # Sort direction for results by creation time., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The list of sessions matching the request filters.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429, 500}\n\n@endpoint GET /v2/sandboxes/sessions/{sessionId}\n@desc Get a session\n@required {sessionId: str # The unique identifier of the session to retrieve.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {routes: [map], session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}} # The session was retrieved successfully.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429, 500}\n\n@endpoint GET /v2/sandboxes/{name}\n@desc Get a named sandbox\n@required {name: str # Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores).}\n@optional {projectId: str # The project ID or name (required when not using OIDC token)., resume: bool=false # Whether to automatically resume a stopped named sandbox by creating a new instance from its snapshot. Defaults to false., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {resumed: bool, routes: [map], sandbox: map{architecture: str, createdAt: num, currentSessionId: str, currentSnapshotId: str, cwd: str, expiresAt: num, failoverRegions: [str], image: str, keepLastSnapshots: map{count: num, deleteEvicted: bool, expiration: num}, memory: num, mounts: map, name: str, networkId: str, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], mode: str, s3Key: str}, persistent: bool, region: str, runtime: str, snapshotExpiration: num, status: str, statusUpdatedAt: num, tags: map, timeout: num, totalActiveCpuDurationMs: num, totalDurationMs: num, totalEgressBytes: num, totalIngressBytes: num, updatedAt: num, vcpus: num}, session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 422, 429: The concurrency limit has been exceeded., 500, 502}\n\n@endpoint PATCH /v2/sandboxes/{name}\n@desc Update a sandbox\n@required {name: str # The sandbox to update.}\n@optional {projectId: str # The project ID that owns the named sandbox. When provided, takes precedence over OIDC project context., resume: bool=false # Whether to automatically resume a stopped named sandbox by creating a new instance from its snapshot. Defaults to false., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., resources: map{vcpus: int, memory: int} # Resources to define the VM, runtime: str(node22/node24/node26/python3.13) # The runtime environment for the sandbox. Determines the pre-installed language runtimes and tools available., timeout: int # Maximum duration in milliseconds that the sandbox can run before being automatically stopped., persistent: bool # Whether the sandbox persists its state across restarts via automatic snapshots., snapshotExpiration: any # Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox., keepLastSnapshots: any # Protect the N most recent snapshots with different expiration/deletion behavior. Set to null to clear., networkPolicy: any, region: str(iad1/sfo1/cle1/cdg1/fra1/arn1/sin1/pdx1/lhr1/icn1/bom1/cpt1/dub1/gru1/hkg1/syd1/yul1/hnd1/kix1) # The Vercel region in which to create the sandbox., failoverRegions: [str] # The regions the sandbox falls back to when it cannot be created in `region`., mounts: map # Drives to mount to the sandbox at the provided path. Replaces the current mounts; an empty object removes them all. Changes take effect when the next session starts., networkId: any # The Connect network id for the target Secure Compute private network. Set to null to remove the sandbox from Secure Compute., env: map # Default environment variables for the sandbox. Set to empty object to clear., ports: [int] # List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed., currentSnapshotId: str # The snapshot ID to set as the current snapshot. Must be active and belong to the same project., tags: map # Key-value tags to associate with the sandbox. Replaces existing tags. Set to empty object to clear. Maximum 5 tags.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 422, 429: The concurrency limit has been exceeded., 500, 502}\n\n@endpoint DELETE /v2/sandboxes/{name}\n@desc Delete a sandbox\n@required {name: str # The sandbox name to delete.}\n@optional {projectId: str # The project ID that owns the named sandbox. When provided, takes precedence over OIDC project context., deleteOrphanSnapshots: bool=false # When true, snapshots of the deleted sandbox that are not referenced by any other sandbox are also deleted asynchronously. Defaults to false., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {sandbox: map{architecture: str, createdAt: num, currentSessionId: str, currentSnapshotId: str, cwd: str, expiresAt: num, failoverRegions: [str], image: str, keepLastSnapshots: map{count: num, deleteEvicted: bool, expiration: num}, memory: num, mounts: map, name: str, networkId: str, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], mode: str, s3Key: str}, persistent: bool, region: str, runtime: str, snapshotExpiration: num, status: str, statusUpdatedAt: num, tags: map, timeout: num, totalActiveCpuDurationMs: num, totalDurationMs: num, totalEgressBytes: num, totalIngressBytes: num, updatedAt: num, vcpus: num}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint GET /v2/sandboxes/sessions/{sessionId}/cmd\n@desc List commands\n@required {sessionId: str # The unique identifier of the session to list commands for.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {commands: [map]} # The list of commands executed in the session.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 429}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/cmd\n@desc Execute a command\n@required {sessionId: str # The unique identifier of the session in which to execute the command., cmdId: str # The unique identifier of the command to stream logs for., command: str # The executable or shell command to run. This is the program name without arguments.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., args: [str] # Arguments to pass to the command. Each argument should be a separate array element., cwd: str # The working directory in which to execute the command. Defaults to the sandbox home directory if not specified., env: map=[object Object] # Additional environment variables to set for this command. These are merged with the sandbox environment., sudo: bool=false # Execute the command with root (superuser) privileges., wait: bool=false # If true, returns an ND-JSON stream that emits the command status when started and again when finished. Useful for synchronously waiting for command completion., logs: bool=false # If true, stream the logs of the command execution in real-time via ND-JSON. This is only applicable if `wait` is also true., timeout: int # Maximum duration in milliseconds the command may run before it is killed with SIGKILL, up to 5 hours. Enforced at exec time, independently of `wait`.}\n@returns(200) {command: map{args: [str], cwd: str, durationMs: num, exitCode: num?, id: str, name: str, sessionId: str, startedAt: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint GET /v2/sandboxes/sessions/{sessionId}/cmd/{cmdId}\n@desc Get a command\n@required {sessionId: str # The unique identifier of the session containing the command., cmdId: str # The unique identifier of the command to retrieve.}\n@optional {wait: str(true/false)=false # If set to \"true\", the request will block until the command finishes execution. Useful for synchronously waiting for command completion., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {command: map{args: [str], cwd: str, durationMs: num, exitCode: num?, id: str, name: str, sessionId: str, startedAt: num}} # The command data along with the exit code if the command did finish.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/cmd/{cmdId}/kill\n@desc Kill a command\n@required {cmdId: str # The unique identifier of the command to terminate., sessionId: str # The unique identifier of the session containing the command., signal: num # The POSIX signal number to send to the process. Common values: 15 (SIGTERM) for graceful termination, 9 (SIGKILL) for forced termination.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {command: map{args: [str], cwd: str, durationMs: num, exitCode: num?, id: str, name: str, sessionId: str, startedAt: num}} # The command was terminated successfully.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint GET /v2/sandboxes/sessions/{sessionId}/cmd/{cmdId}/logs\n@desc Stream command logs\n@required {sessionId: str # The unique identifier of the session containing the command., cmdId: str # The unique identifier of the command to stream logs for.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/stop\n@desc Stop a session\n@required {sessionId: str # The unique identifier of the session to stop.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The session was stopped successfully.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/extend-timeout\n@desc Extend session timeout\n@required {sessionId: str # The unique identifier of the session to extend the timeout for., duration: num # The amount of time in milliseconds to add to the current timeout. Must be at least 1000ms (1 second).}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}} # The session timeout was extended successfully.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/network-policy\n@desc Update network policy\n@required {sessionId: str # The unique identifier of the session to update the network policy for.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}} # The session network policy was updated successfully.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/fs/read\n@desc Read a file\n@required {sessionId: str # The unique identifier of the session to read the file from., path: str # The path of the file to read. Can be absolute or relative to the working directory.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., cwd: str # The base directory for resolving relative paths. If not specified, paths are resolved from the sandbox home directory.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/fs/mkdir\n@desc Create a directory\n@required {sessionId: str # The unique identifier of the session to create the directory in., path: str # The path of the directory to create. Can be absolute or relative to the working directory.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., cwd: str # The base directory for resolving relative paths. If not specified, paths are resolved from the sandbox home directory., recursive: bool=true # If true, creates parent directories as needed (like `mkdir -p`). If false, fails if parent directories do not exist.}\n@returns(200) The directory was created successfully.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/fs/write\n@desc Write files\n@required {sessionId: str # The unique identifier of the session to write files to.}\n@optional {x-cwd: str # The target directory where the tarball contents will be extracted. If not specified, files are extracted to the sandbox home directory., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) The files were successfully written to the session.\n@errors {400: One of the provided values in the request query is invalid. One of the provided values in the headers is invalid, 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/sessions/{sessionId}/snapshot\n@desc Create a snapshot\n@required {sessionId: str # The unique identifier of the session to snapshot.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., expiration: any # The number of milliseconds after which the snapshot will expire and be deleted. Use 0 for no expiration.}\n@returns(201) {session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}, snapshot: map{architecture: str, createdAt: num, creationMethod: str, expiresAt: num, id: str, lastUsedAt: num, parentId: str, region: str, regions: [str], sizeBytes: num, sourceSessionId: str, status: str, updatedAt: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v2/sandboxes/{name}/fork\n@desc Fork a named sandbox\n@required {name: str # Name of the source sandbox to fork.}\n@optional {projectId: str # The ID of the project the source sandbox belongs to. Required unless authenticating with an OIDC token., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., networkPolicy: any, resources: map{vcpus: int, memory: int} # Resources to define the VM, ports: [int] # List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed., image: str # Image to use for the sandbox., timeout: int # Maximum duration in milliseconds that the sandbox can run before being automatically stopped., env: map=[object Object] # Default environment variables for the sandbox. These are inherited by all commands unless overridden., mounts: map # List of drives to mount to the sandbox at the provided path., region: str(iad1/sfo1/cle1/cdg1/fra1/arn1/sin1/pdx1/lhr1/icn1/bom1/cpt1/dub1/gru1/hkg1/syd1/yul1/hnd1/kix1)=iad1,sfo1,cle1,cdg1,fra1,arn1,sin1,pdx1,lhr1,icn1,bom1,cpt1,dub1,gru1,hkg1,syd1,yul1,hnd1,kix1 # The Vercel region in which to create the sandbox., failoverRegions: [str] # The regions the sandbox falls back to when it cannot be created in `region`., networkId: str # The Connect network id for the target Secure Compute private network., name: str # Name for the forked sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). A random name is generated when omitted., persistent: bool # Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to the source sandbox setting., snapshotExpiration: any # Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox., keepLastSnapshots: map{count!: int, expiration: any, deleteEvicted: bool} # Protect the N most recent snapshots with different expiration/deletion behavior., tags: map # Key-value tags to associate with the sandbox. Maximum 5 tags.}\n@returns(200) {routes: [map], sandbox: map{architecture: str, createdAt: num, currentSessionId: str, currentSnapshotId: str, cwd: str, expiresAt: num, failoverRegions: [str], image: str, keepLastSnapshots: map{count: num, deleteEvicted: bool, expiration: num}, memory: num, mounts: map, name: str, networkId: str, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], mode: str, s3Key: str}, persistent: bool, region: str, runtime: str, snapshotExpiration: num, status: str, statusUpdatedAt: num, tags: map, timeout: num, totalActiveCpuDurationMs: num, totalDurationMs: num, totalEgressBytes: num, totalIngressBytes: num, updatedAt: num, vcpus: num}, session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 422, 429: The concurrency limit has been exceeded., 500, 502}\n\n@endpoint POST /v3/sandboxes\n@desc Create a named sandbox\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., networkPolicy: any, architecture: str(amd64/arm64) # CPU architecture. Inherits a snapshot or single image manifest when omitted. Image indexes default to amd64. Must match the source. ARM64 creation requires API v3 or v4 without runtime and team access., resources: map{vcpus: int, memory: int} # Resources to define the VM, source: any # The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot., projectId: str # The target project slug or ID in which the sandbox will be assigned to., ports: [int] # List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed., image: str # Image to use for the sandbox., timeout: int # Maximum duration in milliseconds that the sandbox can run before being automatically stopped., env: map=[object Object] # Default environment variables for the sandbox. These are inherited by all commands unless overridden., mounts: map # List of drives to mount to the sandbox at the provided path., region: str(iad1/sfo1/cle1/cdg1/fra1/arn1/sin1/pdx1/lhr1/icn1/bom1/cpt1/dub1/gru1/hkg1/syd1/yul1/hnd1/kix1)=iad1,sfo1,cle1,cdg1,fra1,arn1,sin1,pdx1,lhr1,icn1,bom1,cpt1,dub1,gru1,hkg1,syd1,yul1,hnd1,kix1 # The Vercel region in which to create the sandbox., failoverRegions: [str] # The regions the sandbox falls back to when it cannot be created in `region`., networkId: str # The Connect network id for the target Secure Compute private network., name: str # Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores)., persistent: bool=true # Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to true., snapshotExpiration: any # Default snapshot expiration time in milliseconds. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox., keepLastSnapshots: map{count!: int, expiration: any, deleteEvicted: bool} # Protect the N most recent snapshots with different expiration/deletion behavior., tags: map # Key-value tags to associate with the sandbox. Maximum 5 tags.}\n@returns(200) {routes: [map], sandbox: map{architecture: str, createdAt: num, currentSessionId: str, currentSnapshotId: str, cwd: str, expiresAt: num, failoverRegions: [str], image: str, keepLastSnapshots: map{count: num, deleteEvicted: bool, expiration: num}, memory: num, mounts: map, name: str, networkId: str, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], mode: str, s3Key: str}, persistent: bool, region: str, runtime: str, snapshotExpiration: num, status: str, statusUpdatedAt: num, tags: map, timeout: num, totalActiveCpuDurationMs: num, totalDurationMs: num, totalEgressBytes: num, totalIngressBytes: num, updatedAt: num, vcpus: num}, session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 422, 429: The concurrency limit has been exceeded., 500, 502}\n\n@endpoint POST /v3/sandboxes/sessions/{sessionId}/snapshot\n@desc Create a snapshot\n@required {sessionId: str # The unique identifier of the session to snapshot.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., expiration: any # The number of milliseconds after which the snapshot will expire and be deleted. Defaults to 7 days when neither this field nor the sandbox configuration specifies an expiration. Use 0 for no expiration.}\n@returns(201) {session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}, snapshot: map{architecture: str, createdAt: num, creationMethod: str, expiresAt: num, id: str, lastUsedAt: num, parentId: str, region: str, regions: [str], sizeBytes: num, sourceSessionId: str, status: str, updatedAt: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410, 422, 429, 500}\n\n@endpoint POST /v3/sandboxes/{name}/fork\n@desc Fork a named sandbox\n@required {name: str # Name of the source sandbox to fork.}\n@optional {projectId: str # The ID of the project the source sandbox belongs to. Required unless authenticating with an OIDC token., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., networkPolicy: any, resources: map{vcpus: int, memory: int} # Resources to define the VM, ports: [int] # List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed., image: str # Image to use for the sandbox., timeout: int # Maximum duration in milliseconds that the sandbox can run before being automatically stopped., env: map=[object Object] # Default environment variables for the sandbox. These are inherited by all commands unless overridden., mounts: map # List of drives to mount to the sandbox at the provided path., region: str(iad1/sfo1/cle1/cdg1/fra1/arn1/sin1/pdx1/lhr1/icn1/bom1/cpt1/dub1/gru1/hkg1/syd1/yul1/hnd1/kix1)=iad1,sfo1,cle1,cdg1,fra1,arn1,sin1,pdx1,lhr1,icn1,bom1,cpt1,dub1,gru1,hkg1,syd1,yul1,hnd1,kix1 # The Vercel region in which to create the sandbox., failoverRegions: [str] # The regions the sandbox falls back to when it cannot be created in `region`., networkId: str # The Connect network id for the target Secure Compute private network., name: str # Name for the forked sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores). A random name is generated when omitted., persistent: bool # Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to the source sandbox setting., snapshotExpiration: any # Default snapshot expiration time in milliseconds. Defaults to 7 days. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox., keepLastSnapshots: any # Protect the N most recent snapshots with different expiration/deletion behavior. Persistent sandboxes default to keeping only the last snapshot (evicted snapshots are deleted). Set to null to disable the limit., tags: map # Key-value tags to associate with the sandbox. Maximum 5 tags.}\n@returns(200) {routes: [map], sandbox: map{architecture: str, createdAt: num, currentSessionId: str, currentSnapshotId: str, cwd: str, expiresAt: num, failoverRegions: [str], image: str, keepLastSnapshots: map{count: num, deleteEvicted: bool, expiration: num}, memory: num, mounts: map, name: str, networkId: str, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], mode: str, s3Key: str}, persistent: bool, region: str, runtime: str, snapshotExpiration: num, status: str, statusUpdatedAt: num, tags: map, timeout: num, totalActiveCpuDurationMs: num, totalDurationMs: num, totalEgressBytes: num, totalIngressBytes: num, updatedAt: num, vcpus: num}, session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 422, 429: The concurrency limit has been exceeded., 500, 502}\n\n@endpoint POST /v4/sandboxes\n@desc Create a named sandbox\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., networkPolicy: any, architecture: str(amd64/arm64) # CPU architecture. Inherits a snapshot or single image manifest when omitted. Image indexes default to amd64. Must match the source. ARM64 creation requires API v3 or v4 without runtime and team access., resources: map{vcpus: int, memory: int} # Resources to define the VM, source: any # The source from which to initialize the sandbox filesystem. Can be a Git repository, a tarball URL, or an existing snapshot., projectId: str # The target project slug or ID in which the sandbox will be assigned to., ports: [int] # List of ports to expose from the sandbox. Each port will be accessible via a unique URL. Maximum of 15 ports can be exposed., image: str # Image to use for the sandbox., timeout: int # Maximum duration in milliseconds that the sandbox can run before being automatically stopped., env: map=[object Object] # Default environment variables for the sandbox. These are inherited by all commands unless overridden., mounts: map # List of drives to mount to the sandbox at the provided path., region: str(iad1/sfo1/cle1/cdg1/fra1/arn1/sin1/pdx1/lhr1/icn1/bom1/cpt1/dub1/gru1/hkg1/syd1/yul1/hnd1/kix1)=iad1,sfo1,cle1,cdg1,fra1,arn1,sin1,pdx1,lhr1,icn1,bom1,cpt1,dub1,gru1,hkg1,syd1,yul1,hnd1,kix1 # The Vercel region in which to create the sandbox., failoverRegions: [str] # The regions the sandbox falls back to when it cannot be created in `region`., networkId: str # The Connect network id for the target Secure Compute private network., name: str # Name for the sandbox. Must be unique per project and URL-safe (alphanumeric, hyphens, underscores)., persistent: bool=true # Whether the sandbox persists its state across restarts via automatic snapshots. Defaults to true., snapshotExpiration: any # Default snapshot expiration time in milliseconds. Defaults to 7 days. Set to 0 to disable expiration. When set, this value is used as the default expiration for all snapshots created for this sandbox., keepLastSnapshots: any # Protect the N most recent snapshots with different expiration/deletion behavior. Persistent sandboxes default to keeping only the last snapshot (evicted snapshots are deleted). Set to null to disable the limit., tags: map # Key-value tags to associate with the sandbox. Maximum 5 tags.}\n@returns(200) {routes: [map], sandbox: map{architecture: str, createdAt: num, currentSessionId: str, currentSnapshotId: str, cwd: str, expiresAt: num, failoverRegions: [str], image: str, keepLastSnapshots: map{count: num, deleteEvicted: bool, expiration: num}, memory: num, mounts: map, name: str, networkId: str, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], mode: str, s3Key: str}, persistent: bool, region: str, runtime: str, snapshotExpiration: num, status: str, statusUpdatedAt: num, tags: map, timeout: num, totalActiveCpuDurationMs: num, totalDurationMs: num, totalEgressBytes: num, totalIngressBytes: num, updatedAt: num, vcpus: num}, session: map{abortedAt: num, activeCpuDurationMs: num, architecture: str, createdAt: num, cwd: str, duration: num, id: str, memory: num, networkPolicy: map{allowedCIDRs: [str], allowedDomains: [str], deniedCIDRs: [str], injectionRules: [map], mode: str}, networkTransfer: map{egress: num, ingress: num}, projectId: str, region: str, requestedAt: num, requestedStopAt: num, runtime: str, snapshottedAt: num, sourceSandboxName: str, sourceSnapshotId: str, startedAt: num, status: str, stoppedAt: num, timeout: num, updatedAt: num, vcpus: num}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 422, 429: The concurrency limit has been exceeded., 500, 502}\n\n@endgroup\n\n@group security\n@endpoint POST /v1/security/attack-mode\n@desc Update Attack Challenge mode\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {attackModeEnabled: bool, attackModeUpdatedAt: num}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/security/firewall/config\n@desc Returns activated WAF config\n@returns(200) {active: map?{botIdEnabled: bool, changes: [map], conditions: [map], crs: map{gen: map{action: str, active: bool}, java: map{action: str, active: bool}, lfi: map{action: str, active: bool}, ma: map{action: str, active: bool}, php: map{action: str, active: bool}, rce: map{action: str, active: bool}, rfi: map{action: str, active: bool}, sd: map{action: str, active: bool}, sf: map{action: str, active: bool}, sqli: map{action: str, active: bool}, xss: map{action: str, active: bool}}, firewallEnabled: bool, id: str, ips: [map], logHeaders: any, managedRules: map{ai_bots: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, bot_protection: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, owasp: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, traffic_sources: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, vercel_ruleset: map{action: str, active: bool, updatedAt: str, userId: str, username: str}}, ownerId: str, projectKey: str, rules: [any], rulesets: any, updatedAt: str, version: num}, draft: map?{botIdEnabled: bool, changes: [map], conditions: [map], crs: map{gen: map{action: str, active: bool}, java: map{action: str, active: bool}, lfi: map{action: str, active: bool}, ma: map{action: str, active: bool}, php: map{action: str, active: bool}, rce: map{action: str, active: bool}, rfi: map{action: str, active: bool}, sd: map{action: str, active: bool}, sf: map{action: str, active: bool}, sqli: map{action: str, active: bool}, xss: map{action: str, active: bool}}, firewallEnabled: bool, id: str, ips: [map], logHeaders: any, managedRules: map{ai_bots: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, bot_protection: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, owasp: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, traffic_sources: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, vercel_ruleset: map{action: str, active: bool, updatedAt: str, userId: str, username: str}}, ownerId: str, projectKey: str, rules: [any], rulesets: any, updatedAt: str, version: num}, versions: [map]}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v1/security/firewall/config\n@desc Put Firewall Configuration\n@required {projectId: str, firewallEnabled: bool}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., managedRules: map, crs: map{sd: map, ma: map, lfi: map, rfi: map, rce: map, php: map, gen: map, xss: map, sqli: map, sf: map, java: map} # Custom Ruleset, rules: [map{id: str, name!: str, description: str, active!: bool, conditionGroup!: [map], action!: map, valid: bool, validationErrors: any}], rulesets: any, ips: [map{id: str, hostname!: str, ip!: str, notes: str, action!: str}], botIdEnabled: bool, logHeaders: any}\n@returns(200) {active: map{botIdEnabled: bool, changes: [map], conditions: [map], crs: map{gen: map{action: str, active: bool}, java: map{action: str, active: bool}, lfi: map{action: str, active: bool}, ma: map{action: str, active: bool}, php: map{action: str, active: bool}, rce: map{action: str, active: bool}, rfi: map{action: str, active: bool}, sd: map{action: str, active: bool}, sf: map{action: str, active: bool}, sqli: map{action: str, active: bool}, xss: map{action: str, active: bool}}, firewallEnabled: bool, id: str, ips: [map], logHeaders: any, managedRules: map{ai_bots: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, bot_protection: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, owasp: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, traffic_sources: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, vercel_ruleset: map{action: str, active: bool, updatedAt: str, userId: str, username: str}}, ownerId: str, projectKey: str, rules: [any], rulesets: any, updatedAt: str, version: num}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint PATCH /v1/security/firewall/config\n@desc Update Firewall Configuration\n@required {projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint GET /v1/security/firewall/config/{configVersion}\n@desc Read Firewall Configuration\n@required {projectId: str, configVersion: str # The deployed configVersion for the firewall configuration}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {botIdEnabled: bool, changes: [map], conditions: [map], crs: map{gen: map{action: str, active: bool}, java: map{action: str, active: bool}, lfi: map{action: str, active: bool}, ma: map{action: str, active: bool}, php: map{action: str, active: bool}, rce: map{action: str, active: bool}, rfi: map{action: str, active: bool}, sd: map{action: str, active: bool}, sf: map{action: str, active: bool}, sqli: map{action: str, active: bool}, xss: map{action: str, active: bool}}, firewallEnabled: bool, id: str, ips: [map], logHeaders: any, managedRules: map{ai_bots: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, bot_protection: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, owasp: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, traffic_sources: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, vercel_ruleset: map{action: str, active: bool, updatedAt: str, userId: str, username: str}}, ownerId: str, projectKey: str, rules: [any], rulesets: any, updatedAt: str, version: num} # If the firewall configuration includes a [custom managed ruleset](https://vercel.com/docs/security/vercel-waf/managed-rulesets), it will include a `crs` item that has the following values: sd: Scanner Detection ma: Multipart Attack lfi: Local File Inclusion Attack rfi: Remote File Inclusion Attack rce: Remote Execution Attack php: PHP Attack gen: Generic Attack xss: XSS Attack sqli: SQL Injection Attack sf: Session Fixation Attack java: Java Attack\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/security/firewall/config/{configVersion}\n@desc Returns activated WAF config\n@required {configVersion: str # The deployed configVersion for the firewall configuration}\n@returns(204)\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint POST /v1/security/firewall/config/{configVersion}/activate\n@desc Returns activated WAF config\n@required {configVersion: str # The deployed configVersion for the firewall configuration}\n@returns(200) {botIdEnabled: bool, changes: [map], conditions: [map], crs: map{gen: map{action: str, active: bool}, java: map{action: str, active: bool}, lfi: map{action: str, active: bool}, ma: map{action: str, active: bool}, php: map{action: str, active: bool}, rce: map{action: str, active: bool}, rfi: map{action: str, active: bool}, sd: map{action: str, active: bool}, sf: map{action: str, active: bool}, sqli: map{action: str, active: bool}, xss: map{action: str, active: bool}}, firewallEnabled: bool, id: str, ips: [map], logHeaders: any, managedRules: map{ai_bots: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, bot_protection: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, owasp: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, traffic_sources: map{action: str, active: bool, updatedAt: str, userId: str, username: str}, vercel_ruleset: map{action: str, active: bool, updatedAt: str, userId: str, username: str}}, ownerId: str, projectKey: str, rules: [any], rulesets: any, updatedAt: str, version: num}\n@errors {400, 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint GET /v1/security/firewall/attack-status\n@desc Read active attack data\n@required {projectId: str}\n@optional {since: num, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/security/firewall/bypass\n@desc Read System Bypass\n@required {projectId: str}\n@optional {limit: num, sourceIp: str # Filter by source IP, domain: str # Filter by domain, projectScope: bool # Filter by project scoped rules, offset: str # Used for pagination. Retrieves results after the provided id, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {pagination: map{Id: str, OwnerId: str}, result: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint POST /v1/security/firewall/bypass\n@desc Create System Bypass Rule\n@required {projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., domain: str, projectScope: bool # If the specified bypass will apply to all domains for a project., sourceIp: str, allSources: bool, ttl: num # Time to live in milliseconds, note: str}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint DELETE /v1/security/firewall/bypass\n@desc Remove System Bypass Rule\n@required {projectId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., domain: str, projectScope: bool, sourceIp: str, allSources: bool, note: str}\n@returns(200) {ok: bool}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endpoint GET /v1/security/firewall/events\n@desc Read Firewall Actions by Project\n@required {projectId: str}\n@optional {startTimestamp: num, endTimestamp: num, hosts: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {actions: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 408, 410, 500}\n\n@endpoint POST /v1/security/firewall/config/generate-rule\n@desc Generate a firewall rule from natural language\n@optional {projectId: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {error: str, rule: map{action: map{mitigate: map{action: str, actionDuration: str?, rateLimit: map?, redirect: map?}}, active: bool, conditionGroup: [map], description: str, name: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 408, 410, 500}\n\n@endgroup\n\n@group speed-insights\n@endpoint POST /speed-insights/toggle\n@required {projectId: str, value: bool}\n@returns(200) {value: bool}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group storage\n@endpoint GET /storage/stores/{id}\n@desc Get a store\n@required {id: str}\n@optional {skip-metadata: bool, include-guides: bool}\n@returns(200) {store: map{projectFilter: map{git: map{owners: [str], providers: any, repos: [str]}}, projectsMetadata: [map], status: str?, totalConnectedProjects: num, usageQuotaExceeded: bool}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /storage/stores/blob\n@desc Create a Blob store\n@required {name: str}\n@optional {region: str(arn1/bom1/cdg1/cle1/cpt1/dub1/dxb1/fra1/gru1/hkg1/hnd1/iad1/icn1/kix1/lhr1/pdx1/sfo1/sin1/syd1/yul1), access: str(public/private)=public, projectId: str}\n@returns(200) {store: map?{projectFilter: map{git: map{owners: [str], providers: any, repos: [str]}}, projectsMetadata: [map], status: str?, totalConnectedProjects: num, usageQuotaExceeded: bool, access: str, kind: str, projectId: str, count: num, isTokenExpired: bool, region: str, size: num}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 429}\n\n@endpoint DELETE /storage/stores/blob/{id}\n@desc Delete a Blob store\n@required {id: str}\n@returns(200) {id: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/storage/stores/integration/direct\n@desc Create integration store (free and paid plans)\n@required {name: str # Human-readable name for the storage resource, integrationConfigurationId: str # ID of your integration configuration. Get this from GET /v1/integrations/configurations, integrationProductIdOrSlug: str # ID or slug of the integration product. Get available products from GET /v1/integrations/configuration/{id}/products}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., metadata: map # Optional key-value pairs for resource metadata, externalId: str # Optional external identifier for tracking purposes, protocolSettings: map # Protocol-specific configuration settings, source: str(marketplace/deploy-button/external/v0/resource-claims/cli/oauth/backoffice/import-recommended-integrations/organization)=marketplace # Source of the store creation request, billingPlanId: str # ID of the billing plan for paid resources. Get available plans from GET /integrations/integration/{id}/products/{productId}/plans. If not provided, automatically discovers free billing plans., paymentMethodId: str # Payment method ID for paid resources. Optional - uses default payment method if not provided., prepaymentAmountCents: num # Amount in cents for prepayment billing plans. Required only for prepayment plans with variable amounts.}\n@returns(200) {store: map?{projectFilter: map{git: map{owners: [str], providers: any, repos: [str]}}, projectsMetadata: [map], status: str?, totalConnectedProjects: num, usageQuotaExceeded: bool, billingPlan: map{cost: str, description: str, details: [map], disabled: bool, effectiveDate: str, highlightedDetails: [map], id: str, initialCharge: str, maximumAmount: str, maximumAmountAutoPurchasePerPeriod: str, minimumAmount: str, name: str, paymentMethodRequired: bool, preauthorizationAmount: num, quote: [map], scope: str, type: str}, capabilities: map{agentTools: bool, autoSensitive: bool, billable: bool, mcp: bool, mcpReadonly: bool, projects: bool, secretRotation: any, secretsSync: bool, sso: bool, transferable: bool, v0: bool}, directPartnerConsoleUrl: str, externalResourceId: str, externalResourceStatus: str?, metadata: map, notification: map{href: str, level: str, message: str, title: str}, ownership: str, parentId: str, product: map{agentSkills: [str], capabilities: map{agentTools: bool, autoSensitive: bool, billable: bool, connectedImportResource: bool, databaseUI: bool, importResource: bool, linking: bool, mcp: bool, mcpReadonly: bool, nativeImportResource: bool, projects: bool, sandbox: bool, secretRotation: any, secretsSync: bool, sso: bool, transferable: bool, v0: bool, v0Flavors: bool}, disableResourceRenaming: bool, iconUrl: str, id: str, metadataSchema: map{properties: map, required: [str], type: str, ui:order: [str]}, name: str, projectConnectionScopes: [str], resourceLinks: [map], resourceTitle: str, shortDescription: str, showSSOLinkOnProjectConnection: bool, slug: str, tags: [str], repl: map{enabled: bool, supportsReadOnlyMode: bool, welcomeMessage: str}, guides: [map], integration: map{capabilities: map, flags: [str], icon: str, id: str, name: str, slug: str, supportsInstallationBillingPlans: bool}, integrationConfigurationId: str, logDrainStatus: str, primaryProtocol: str, supportedProtocols: [str]}, protocolSettings: map{authentication: map{appUrls: [map]}, experimentation: map{edgeConfigId: str, edgeConfigSyncingEnabled: bool, edgeConfigTokenId: str, globalConfigId: str, globalConfigSyncingEnabled: bool}}, secretRotationCompletedAt: num, secretRotationRequestedAt: num, secretRotationRequestedBy: str, secretRotationRequestedReason: str, secrets: [map], targets: [str]}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410, 500}\n\n@endgroup\n\n@group teams\n@endpoint GET /v3/teams/{teamId}/members\n@desc List team members\n@required {teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {limit: num # Limit how many teams should be returned, since: num # Timestamp in milliseconds to only include members added since then., until: num # Timestamp in milliseconds to only include members added until then., search: str # Search team members by their name, username, and email., role: str(OWNER/MEMBER/DEVELOPER/SECURITY/BILLING/VIEWER/VIEWER_FOR_PLUS/CONTRIBUTOR) # Only return members with the specified team role., excludeProject: str # Exclude members who belong to the specified project., eligibleMembersForProjectId: str # Include team members who are eligible to be members of the specified project., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {emailInviteCodes: [map], members: [map], pagination: map{count: num, hasNext: bool, next: num?, prev: num?}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v2/teams/{teamId}/members\n@desc Invite a user\n@required {teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {email: str, role: str, teamPermissions: [str], teamRoles: [str], uid: str, username: str}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource. The authenticated user must be a team owner to perform the action, 410, 503}\n\n@endpoint POST /v1/teams/{teamId}/request\n@desc Request access to a team\n@required {teamId: str, joinedFrom: map{origin!: str, commitId: str, repoId: str, repoPath: str, gitUserId: any, gitUserLogin: str}}\n@returns(200) {accessRequestedAt: num, bitbucket: map?{login: str}, confirmed: bool, github: map?{login: str}, gitlab: map?{login: str}, joinedFrom: map{commitId: str, dsyncConnectedAt: num, dsyncUserId: str, gitUserId: any, gitUserLogin: str, idpUserId: str, origin: str, repoId: str, repoPath: str, ssoConnectedAt: num, ssoUserId: str}, teamName: str, teamSlug: str} # Successfuly requested access to the team.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401, 403: You do not have permission to access this resource., 404: The team was not found., 410, 429, 503}\n\n@endpoint GET /v1/teams/{teamId}/request/{userId}\n@desc Get access request status\n@required {userId: str, teamId: str}\n@returns(200) {accessRequestedAt: num, bitbucket: map?{login: str}, confirmed: bool, github: map?{login: str}, gitlab: map?{login: str}, joinedFrom: map{commitId: str, dsyncConnectedAt: num, dsyncUserId: str, gitUserId: any, gitUserLogin: str, idpUserId: str, origin: str, repoId: str, repoPath: str, ssoConnectedAt: num, ssoUserId: str}, teamName: str, teamSlug: str} # Successfully\n@errors {400: One of the provided values in the request query is invalid. User is already a confirmed member of the team and did not request access. Only visible when the authenticated user does have access to the team., 401, 403: You do not have permission to access this resource., 404: The provided user doesn't have a membership. Team was not found., 410}\n\n@endpoint POST /v1/teams/{teamId}/members/teams/join\n@desc Join a team\n@required {teamId: str}\n@optional {inviteCode: str # The invite code to join the team.}\n@returns(200) {from: str, name: str, slug: str, teamId: str} # Successfully joined a team.\n@errors {400: One of the provided values in the request body is invalid., 401, 402, 403: You do not have permission to access this resource., 404, 410, 503}\n\n@endpoint PATCH /v1/teams/{teamId}/members/{uid}\n@desc Update a Team Member\n@required {uid: str # The ID of the member., teamId: str}\n@optional {confirmed: bool # Accept a user who requested access to the team., role: str=MEMBER # The role in the team of the member., teamPermissions: [str] # The team permissions to set for the member. Permissions must be compatible with the team roles assigned to the member., projects: [map{projectId!: str, role!: str}], joinedFrom: map{ssoUserId: any}}\n@returns(200) {id: str} # Successfully updated the membership.\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. Cannot disconnect SSO from a Team member that does not have a SSO connection. Cannot confirm a member that is already confirmed. Cannot confirm a member that did not request access., 401: The request is not authorized. Team members can only be updated by an owner, or by the authenticated user if they are only disconnecting their SAML connection to the Team., 402, 403: You do not have permission to access this resource., 404: The provided user is not part of this team. A user with the specified ID does not exist., 409, 410, 500}\n\n@endpoint DELETE /v1/teams/{teamId}/members/{uid}\n@desc Remove a Team Member\n@required {uid: str # The user ID of the member., teamId: str}\n@optional {newDefaultTeamId: str # The ID of the team to set as the new default team for the Northstar user.}\n@returns(200) {id: str} # Successfully removed a member of the team.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource. Not authorized to update the team., 404, 410, 503}\n\n@endpoint GET /v2/teams/{teamId}\n@desc Get a Team\n@required {teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {slug: str}\n@returns(200) {apiKeysInvalidatedAt: num, appTokensInvalidatedAt: num, avatar: str?, billing: map?{plan: str}, connect: map{enabled: bool}, createdAt: num, creatorId: str, defaultDeploymentProtection: map{passwordProtection: map?{deploymentType: str}, ssoProtection: map?{deploymentType: str}}, defaultExpirationSettings: map{deploymentsToKeep: num, expirationDays: num, expirationDaysCanceled: num, expirationDaysErrored: num, expirationDaysProduction: num}, defaultPassport: map?{connectorId: str, deploymentType: str}, defaultProjectJobs: map{lint: map{targets: [str]}, mfe-config-present: map{targets: [str]}, typecheck: map{targets: [str]}}, defaultRoles: map{teamPermissions: [str], teamRoles: [str]}, deploymentPolicy: map{deploymentSources: [map], gitSources: [map]}, deploymentStorageRollout: map{cohort: str, meteredAt: num, meterReason: str, retentionAppliedAt: num, retentionOptOutAt: num}, description: str?, disableHardAutoBlocks: any, disableRepositoryDispatchEvents: bool, disjunctiveProductionSecretPolicy: str?, dpAccessRequestsMode: str, emailDomain: str?, enablePreviewFeedback: str?, enableProductionFeedback: str?, hideIpAddresses: bool?, hideIpAddressesInLogDrains: bool?, id: str, integrationTokensInvalidatedAt: num, inviteCode: str, ipBuckets: [map], membership: map{accessRequestedAt: num, confirmed: bool, created: num, createdAt: num, entitlements: [map], joinedFrom: map{commitId: str, dsyncConnectedAt: num, dsyncUserId: str, gitUserId: any, gitUserLogin: str, idpUserId: str, origin: str, repoId: str, repoPath: str, ssoConnectedAt: num, ssoUserId: str}, role: str, teamId: str, teamPermissions: [str], teamRoles: [str], uid: str}, name: str?, nsnbConfig: map{preference: str}, orgRootTeamId: str, parentId: str, personalAccessTokensInvalidatedAt: num, platform: bool, previewDeploymentSuffix: str?, remoteCaching: map{enabled: bool}, requireVerifiedCommits: bool, resourceConfig: map{blobStores: num, buildEntitlements: map{enhancedBuilds: bool}, buildMachine: map{default: str}, concurrentBuilds: num, customEnvironmentsPerProject: num, edgeConfigs: num, edgeConfigSize: num, elasticConcurrencyEnabled: bool, kvDatabases: num, postgresDatabases: num, serverlessFunctionMaxMemorySize: num}, saml: map{connection: map{connectedAt: num, lastReceivedWebhookEvent: num, lastSyncedAt: num, state: str, syncState: str, type: str, status: str}, defaultRedirectUri: str, directory: map{connectedAt: num, lastReceivedWebhookEvent: num, lastSyncedAt: num, state: str, syncState: str, type: str}, enforced: bool, roles: map}, sensitiveEnvironmentVariablePolicy: str?, slug: str, stagingPrefix: str, strictConnectors: map{enabled: bool, updatedAt: num}, strictDeploymentProtectionSettings: map{enabled: bool, updatedAt: num}, strictPasswordProtectionSettings: map{enabled: bool, updatedAt: num}, strictShareableLinks: map{enabled: bool, updatedAt: num}, updatedAt: num} # The requested team\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource. Not authorized to access the team., 404: Team was not found., 410}\n\n@endpoint PATCH /v2/teams/{teamId}\n@desc Update a Team\n@required {teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {slug: str # The Team slug to perform the request on behalf of., avatar: str # The hash value of an uploaded image, or `null` to clear the avatar., description: str # A short text that describes the team., emailDomain: str(regex), name: str # The name of the team., previewDeploymentSuffix: str(hostname) # Suffix that will be used for all preview deployments., regenerateInviteCode: bool # Create a new invite code and replace the current one., saml: map{enforced: bool, roles: map}, slug: str # A new slug for the team., enablePreviewFeedback: str # Enable preview toolbar: one of on, off or default., enableProductionFeedback: str # Enable production toolbar: one of on, off or default., sensitiveEnvironmentVariablePolicy: str # Sensitive environment variable policy: one of on, off or default., disjunctiveProductionSecretPolicy: str # Require production secrets to be in their own environment group: one of on, off or default., remoteCaching: map{enabled: bool} # Whether or not remote caching is enabled for the team, hideIpAddresses: bool # Display or hide IP addresses in Monitoring queries., hideIpAddressesInLogDrains: bool # Display or hide IP addresses in Log Drains., dpAccessRequestsMode: str(all/none/email-domain) # Controls who can request access to protected deployments., requireVerifiedCommits: bool # When enabled, all projects in the team require commits to be signed and verified by the git provider before deployments will be created., disableRepositoryDispatchEvents: bool # Default for projects in the team. When `true`, projects in this team will not emit GitHub repository-dispatch events on deployment events unless the project explicitly overrides this setting., defaultDeploymentProtection: map{passwordProtection: map, ssoProtection: map} # Default deployment protection settings for new projects., defaultPassport: map{connectorId!: str, deploymentType: str} # Default Passport configuration for new projects., defaultExpirationSettings: map{expiration: str, expirationProduction: str, expirationCanceled: str, expirationErrored: str}, deploymentPolicy: any, strictDeploymentProtectionSettings: map{enabled!: bool} # When enabled, deployment protection settings require stricter permissions (owner-only)., strictShareableLinks: map{enabled!: bool} # When enabled, creating shareable links requires Owner role., strictPasswordProtectionSettings: map{enabled!: bool} # When enabled, adding, changing, or removing project password protection requires Owner role., strictConnectors: map{enabled!: bool} # When enabled, creating and managing connectors requires Owner role., nsnbConfig: any, defaultProjectJobs: any, resourceConfig: map{buildMachine: map} # Resource configuration for the team.}\n@returns(200) {apiKeysInvalidatedAt: num, appTokensInvalidatedAt: num, avatar: str?, billing: map?{plan: str}, connect: map{enabled: bool}, createdAt: num, creatorId: str, defaultDeploymentProtection: map{passwordProtection: map?{deploymentType: str}, ssoProtection: map?{deploymentType: str}}, defaultExpirationSettings: map{deploymentsToKeep: num, expirationDays: num, expirationDaysCanceled: num, expirationDaysErrored: num, expirationDaysProduction: num}, defaultPassport: map?{connectorId: str, deploymentType: str}, defaultProjectJobs: map{lint: map{targets: [str]}, mfe-config-present: map{targets: [str]}, typecheck: map{targets: [str]}}, defaultRoles: map{teamPermissions: [str], teamRoles: [str]}, deploymentPolicy: map{deploymentSources: [map], gitSources: [map]}, deploymentStorageRollout: map{cohort: str, meteredAt: num, meterReason: str, retentionAppliedAt: num, retentionOptOutAt: num}, description: str?, disableHardAutoBlocks: any, disableRepositoryDispatchEvents: bool, disjunctiveProductionSecretPolicy: str?, dpAccessRequestsMode: str, emailDomain: str?, enablePreviewFeedback: str?, enableProductionFeedback: str?, hideIpAddresses: bool?, hideIpAddressesInLogDrains: bool?, id: str, integrationTokensInvalidatedAt: num, inviteCode: str, ipBuckets: [map], membership: map{accessRequestedAt: num, confirmed: bool, created: num, createdAt: num, entitlements: [map], joinedFrom: map{commitId: str, dsyncConnectedAt: num, dsyncUserId: str, gitUserId: any, gitUserLogin: str, idpUserId: str, origin: str, repoId: str, repoPath: str, ssoConnectedAt: num, ssoUserId: str}, role: str, teamId: str, teamPermissions: [str], teamRoles: [str], uid: str}, name: str?, nsnbConfig: map{preference: str}, orgRootTeamId: str, parentId: str, personalAccessTokensInvalidatedAt: num, platform: bool, previewDeploymentSuffix: str?, remoteCaching: map{enabled: bool}, requireVerifiedCommits: bool, resourceConfig: map{blobStores: num, buildEntitlements: map{enhancedBuilds: bool}, buildMachine: map{default: str}, concurrentBuilds: num, customEnvironmentsPerProject: num, edgeConfigs: num, edgeConfigSize: num, elasticConcurrencyEnabled: bool, kvDatabases: num, postgresDatabases: num, serverlessFunctionMaxMemorySize: num}, saml: map{connection: map{connectedAt: num, lastReceivedWebhookEvent: num, lastSyncedAt: num, state: str, syncState: str, type: str, status: str}, defaultRedirectUri: str, directory: map{connectedAt: num, lastReceivedWebhookEvent: num, lastSyncedAt: num, state: str, syncState: str, type: str}, enforced: bool, roles: map}, sensitiveEnvironmentVariablePolicy: str?, slug: str, stagingPrefix: str, strictConnectors: map{enabled: bool, updatedAt: num}, strictDeploymentProtectionSettings: map{enabled: bool, updatedAt: num}, strictPasswordProtectionSettings: map{enabled: bool, updatedAt: num}, strictShareableLinks: map{enabled: bool, updatedAt: num}, updatedAt: num}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource. Not authorized to update the team. Must be an OWNER., 409, 410, 428}\n\n@endpoint GET /v2/teams\n@desc List all teams\n@optional {limit: num # Maximum number of Teams which may be returned., since: num # Timestamp (in milliseconds) to only include Teams created since then., until: num # Timestamp (in milliseconds) to only include Teams created until then.}\n@returns(200) {pagination: map{count: num, next: num?, prev: num?}, teams: [any]} # A paginated list of teams.\n@errors {400: One of the provided values in the request query is invalid., 401, 403: You do not have permission to access this resource., 410, 500}\n\n@endpoint POST /v1/teams\n@desc Create a Team\n@required {slug: str # The desired slug for the Team}\n@optional {name: str # The desired name for the Team. It will be generated from the provided slug if nothing is provided, attribution: map{sessionReferrer: str, landingPage: str, pageBeforeConversionPage: str, utm: map} # Attribution information for the session or current page}\n@returns(200) {id: str, slug: str} # The team was created successfully\n@errors {400: One of the provided values in the request body is invalid. The slug is already in use, 401, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint POST /v1/teams/{teamId}/dsync-roles\n@desc Update Team Directory Sync Role Mappings\n@required {teamId: str # The Team identifier to perform the request on behalf of., roles: map # Directory groups to role or access group mappings.}\n@optional {slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {ok: bool}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint DELETE /v1/teams/{teamId}\n@desc Delete a Team\n@required {teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {newDefaultTeamId: str # Id of the team to be set as the new default team, slug: str # The Team slug to perform the request on behalf of., reasons: [map{slug!: str, description!: str}] # Optional array of objects that describe the reason why the team is being deleted.}\n@returns(200) {id: str, newDefaultTeamIdError: bool} # The Team was successfully deleted\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource. The authenticated user can't access the team, 409, 410, 503}\n\n@endpoint DELETE /v1/teams/{teamId}/invites/{inviteId}\n@desc Delete a Team invite code\n@required {inviteId: str # The Team invite code ID., teamId: str # The Team identifier to perform the request on behalf of.}\n@returns(200) {id: str} # Successfully deleted Team invite code.\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource. Invite managed by directory sync Not authorized to access this team., 404: Team invite code not found., 410}\n\n@endpoint PATCH /v1/teams/{teamId}/microfrontends/{groupId}\n@desc Update a microfrontends group\n@required {groupId: str, teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {slug: str # The Team slug to perform the request on behalf of., name: str # The new name for the existing microfrontends group., fallbackEnvironment: str # The new fallback environment for the microfrontends group. Must be \"SAME_ENV\", \"PRODUCTION\", or a valid custom environment slug from the default app., enablePolyrepoBranchRouting: bool # Whether Preview Deployments can link to branches with the same name in other Git repositories.}\n@returns(200) {updatedMicrofrontendsGroup: map{enablePolyrepoBranchRouting: bool, fallbackEnvironment: str, id: str, name: str, slug: str}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/teams/{teamId}/microfrontends/{groupId}\n@desc Delete a microfrontends group\n@required {groupId: str # The microfrontend group ID to delete., teamId: str # The Team identifier to perform the request on behalf of.}\n@optional {slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 500}\n\n@endgroup\n\n@group files\n@endpoint POST /v2/files\n@desc Upload Deployment Files\n@optional {Content-Length: num # The file size in bytes, x-vercel-digest: str # The file SHA1 used to check the integrity, x-now-digest: str # The file SHA1 used to check the integrity, x-now-size: num # The file size as an alternative to `Content-Length`, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) File already uploaded File successfully uploaded\n@errors {400: One of the provided values in the headers is invalid Digest is not valid File size is not valid, 401: The request is not authorized., 403: You do not have permission to access this resource., 410, 426}\n\n@endgroup\n\n@group user\n@endpoint GET /v6/user/tokens\n@desc List Auth Tokens\n@returns(200)\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v3/user/tokens\n@desc Create an Auth Token\n@required {name: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., expiresAt: num, projectId: str # The ID of the project to scope this token to}\n@returns(200) {bearerToken: str, token: map{activeAt: num, createdAt: num, expiresAt: num, id: str, leakedAt: num, leakedUrl: str, name: str, origin: str, prefix: str, revokedAt: num, scopes: [any], suffix: str, type: str}} # Successful response.\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v5/user/tokens/{tokenId}\n@desc Get Auth Token Metadata\n@required {tokenId: str # The identifier of the token to retrieve. The special value \"current\" may be supplied, which returns the metadata for the token that the current HTTP request is authenticated with.}\n@returns(200) {token: map{activeAt: num, createdAt: num, expiresAt: num, id: str, leakedAt: num, leakedUrl: str, name: str, origin: str, prefix: str, revokedAt: num, scopes: [any], suffix: str, type: str}} # Successful response.\n@errors {400: One of the provided values in the request query is invalid., 401, 403: You do not have permission to access this resource., 404: Token not found with the requested `tokenId`., 410}\n\n@endpoint DELETE /v3/user/tokens/{tokenId}\n@desc Delete an authentication token\n@required {tokenId: str # The identifier of the token to invalidate. The special value \"current\" may be supplied, which invalidates the token that the HTTP request was authenticated with.}\n@returns(200) {tokenId: str} # Authentication token successfully deleted.\n@errors {400: One of the provided values in the request query is invalid., 401, 403: You do not have permission to access this resource., 404: Token not found with the requested `tokenId`., 410}\n\n@endpoint GET /v2/user\n@desc Get the User\n@returns(200) {user: any} # Successful response.\n@errors {302, 400, 401: The request is not authorized., 403: You do not have permission to access this resource., 409, 410}\n\n@endpoint DELETE /v1/user\n@desc Delete User Account\n@optional {reasons: [map{slug!: str, description!: str}] # Optional array of objects that describe the reason why the User account is being deleted.}\n@returns(202) {email: str, id: str, message: str} # Response indicating that the User deletion process has been initiated, and a confirmation email has been sent.\n@errors {400: One of the provided values in the request body is invalid., 401, 402, 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group vcr\n@endpoint POST /v1/vcr/repository\n@desc Create a repository\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., name: str # Single Docker repository name component.}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {repository: map{createdAt: str, id: str, name: str, projectId: str, public: bool, updatedAt: str}}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 409, 410}\n\n@endpoint GET /v1/vcr/repository\n@desc List repositories\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400.}\n@optional {limit: int, cursor: str # Opaque pagination cursor returned by a previous list response., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {nextCursor: str, repositories: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/vcr/repository/{idOrName}\n@desc Get a repository\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {repository: map{createdAt: str, id: str, name: str, projectId: str, public: bool, updatedAt: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/vcr/repository/{idOrName}\n@desc Delete a repository\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(202)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/vcr/repository/{idOrName}/images\n@desc List repository images\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str}\n@optional {limit: int, cursor: str # Opaque pagination cursor returned by a previous list response., untagged: bool, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {images: [map], nextCursor: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint POST /v1/vcr/repository/{idOrName}/permissions\n@desc Add a repository permission\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., teamId: str # ID of a team that is granted access to a repository., teamSlug: str # Slug of a team that is granted access to a repository.}\n@returns(200) {permission: map{createdAt: str, repositoryId: str, teamId: str, teamSlug: str}}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/vcr/repository/{idOrName}/permissions\n@desc Remove a repository permission\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., teamId: str # ID of a team that is granted access to a repository., teamSlug: str # Slug of a team that is granted access to a repository.}\n@returns(204)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/vcr/repository/{idOrName}/permissions\n@desc List repository permissions\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str}\n@optional {limit: int, cursor: str # Opaque pagination cursor returned by a previous list response., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {nextCursor: str, permissions: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/vcr/repository/{idOrName}/permissions/all\n@desc Clear all repository permissions\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/vcr/repository/{idOrName}/tags\n@desc List repository tags\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str}\n@optional {limit: int, cursor: str, sortBy: str(updatedAt/tag)=updatedAt # Field to sort the non-pinned tags by., sortOrder: str(asc/desc)=desc # Sort direction. Defaults to desc., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {nextCursor: str, tags: [map]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/vcr/repository/{idOrName}/tags/{tag}\n@desc Get a repository tag\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str, tag: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {tag: map{arch: str, createdAt: str, imageId: str, kind: str, manifestDigest: str, platform: str, pushedBy: str, sizeInBytes: num, status: str?, tag: str, updatedAt: str}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v1/vcr/repository/{idOrName}/images/{imageIdOrDigest}\n@desc Get a repository image\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str, imageIdOrDigest: str # The internal image id (`image_...`) or the image manifest digest (`sha256:...`).}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {image: map{arch: str, createdAt: str, id: str, kind: str, layers: [any], manifestDigest: str, platform: str, pushedBy: str, repositoryId: str, sizeInBytes: num, status: str?, tags: [str]}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v1/vcr/repository/{idOrName}/images/{imageId}\n@desc Delete a repository image\n@required {projectId: str # Project ID or name (slug) within the authenticated team. IDs take precedence over names. Missing or empty values return HTTP 400., idOrName: str, imageId: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(202)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group v2\n@endpoint GET /v2/\n@desc Check registry API version support\n@returns(200)\n@errors {400, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group {teamSlug}\n@endpoint HEAD /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/{digest}\n@desc Check if a blob exists\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., digest: str # Content-addressable digest (algorithm:hex).}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/{digest}\n@desc Download a blob\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., digest: str # Content-addressable digest (algorithm:hex).}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410, 416}\n\n@endpoint DELETE /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/{digest}\n@desc Delete a blob\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., digest: str # Content-addressable digest (algorithm:hex).}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 405, 410}\n\n@endpoint GET /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/uploads/{uuid}\n@desc Get blob upload status\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., uuid: str # Blob upload session identifier.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/uploads/{uuid}\n@desc Cancel a blob upload\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., uuid: str # Blob upload session identifier.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PATCH /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/uploads/{uuid}\n@desc Upload a blob chunk\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., uuid: str # Blob upload session identifier.}\n@returns(202)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410, 413}\n\n@endpoint PUT /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/uploads/{uuid}\n@desc Complete a blob upload\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., uuid: str # Blob upload session identifier., digest: str # Content-addressable digest (algorithm:hex).}\n@returns(201)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410, 413}\n\n@endpoint POST /v2/{teamSlug}/{projectSlug}/{repositoryName}/blobs/uploads/\n@desc Start a blob upload\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component.}\n@optional {mount: str # Digest of the blob to mount from another repository., from: str # Source repository to mount the blob from.}\n@returns(202)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint PUT /v2/{teamSlug}/{projectSlug}/{repositoryName}/manifests/{reference}\n@desc Push an image manifest\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., reference: str # Manifest reference: a tag or digest.}\n@returns(201)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410, 413}\n\n@endpoint HEAD /v2/{teamSlug}/{projectSlug}/{repositoryName}/manifests/{reference}\n@desc Check if a manifest exists\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., reference: str # Manifest reference: a tag or digest.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v2/{teamSlug}/{projectSlug}/{repositoryName}/manifests/{reference}\n@desc Pull an image manifest\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., reference: str # Manifest reference: a tag or digest.}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v2/{teamSlug}/{projectSlug}/{repositoryName}/manifests/{reference}\n@desc Delete an image manifest\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component., reference: str # Content-addressable digest (algorithm:hex).}\n@returns(202)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v2/{teamSlug}/{projectSlug}/{repositoryName}/tags/list\n@desc List image tags\n@required {teamSlug: str # Single Docker repository team slug component., projectSlug: str # Single Docker repository project slug component., repositoryName: str # Single Docker repository name component.}\n@optional {n: int, last: str # Opaque pagination cursor returned by a previous list response.}\n@returns(200) {name: str, tags: [str]}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410}\n\n@endgroup\n\n@group web\n@endpoint POST /web/insights/toggle\n@required {projectId: str, value: bool}\n@returns(200) {value: bool}\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group query\n@endpoint GET /v1/query/web-analytics/visits/aggregate\n@desc Aggregates page views\n@required {projectId: str # The project identifier or the project name, by: [str] # Up to two dimensions used to break down results.  At most one time granularity is allowed: hour, day, week, month, year.  Other dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm.  JSON dimensions: flags. Used bare, it breaks down results by key, for example flags returns one group per flag name. With a key, it breaks down results by that key's value, for example flags/beta_banner. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag'., since: any # Timestamp in milliseconds, or a valid Date string.  Selects data from (including) this date and time. Will be adjusted according to the desired time granularity., until: any # Timestamp in milliseconds, or a valid Date string.  Selects data until (including) this date. Will be adjusted according to the desired time granularity.}\n@optional {limit: int=10 # Number of distinct results, default to 10. Other results are grouped into \"Others\" group., filter: str # OData-compliant filter. Encode the value when sending it in a URL.  Allows filtering on one or multiple dimensions. By default, filters for production environment only.  Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm.  JSON dimensions filtered by key: flags/, for example flags/beta_banner eq 'true'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'.  Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: any, query: map{filter: str, groupBy: [any], limit: num, since: str, until: str}, version: num}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 503}\n\n@endpoint GET /v1/query/web-analytics/events/aggregate\n@desc Aggregates custom events\n@required {projectId: str # The project identifier or the project name, by: [str] # Up to two dimensions used to break down results.  At most one time granularity is allowed: hour, day, week, month, year.  Other dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName.  JSON dimensions: flags, eventData. Used bare, they break down results by key, for example flags returns one group per flag name. With a key, they break down results by that key's value, for example eventData/plan. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag'., since: any # Timestamp in milliseconds, or a valid Date string.  Selects data from (including) this date and time. Will be adjusted according to the desired time granularity., until: any # Timestamp in milliseconds, or a valid Date string.  Selects data until (including) this date. Will be adjusted according to the desired time granularity.}\n@optional {limit: int=10 # Number of distinct results, default to 10. Other results are grouped into \"Others\" group., filter: str # OData-compliant filter. Encode the value when sending it in a URL.  Allows filtering on one or multiple dimensions. By default, filters for production environment only.  Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName.  JSON dimensions filtered by key: flags/, eventData/, for example eventData/plan eq 'pro'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'.  Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: any, query: map{filter: str, groupBy: [any], limit: num, since: str, until: str}, version: num}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 503}\n\n@endpoint GET /v1/query/web-analytics/visits/count\n@desc Counts page views\n@required {projectId: str # The project identifier or the project name}\n@optional {since: any # Timestamp in milliseconds, or a valid Date string.  Selects data from (including) this date and time. Will be adjusted according to the desired time granularity., until: any # Timestamp in milliseconds, or a valid Date string.  Selects data until (including) this date. Will be adjusted according to the desired time granularity., filter: str # OData-compliant filter. Encode the value when sending it in a URL.  Allows filtering on one or multiple dimensions.  Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm.  JSON dimensions filtered by key: flags/, for example flags/beta_banner eq 'true'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'.  Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: any, query: map{filter: str, since: str, until: str}, version: num}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 503}\n\n@endpoint GET /v1/query/web-analytics/events/count\n@desc Counts custom events\n@required {projectId: str # The project identifier or the project name}\n@optional {since: any # Timestamp in milliseconds, or a valid Date string.  Selects data from (including) this date and time. Will be adjusted according to the desired time granularity., until: any # Timestamp in milliseconds, or a valid Date string.  Selects data until (including) this date. Will be adjusted according to the desired time granularity., filter: str # OData-compliant filter. Encode the value when sending it in a URL.  Allows filtering on one or multiple dimensions.  Supported dimensions: country, deviceType, environment, requestPath, referrerHostname, osName, browserName, route, utmSource, utmMedium, utmCampaign, utmContent, utmTerm, eventName.  JSON dimensions filtered by key: flags/, eventData/, for example eventData/plan eq 'pro'. Wrap keys containing characters other than letters, digits, and underscores in single quotes, for example flags/'my-flag' eq 'true'.  Supported operations include eq, ne, in, and logical operators and, or, not with parentheses. Functions such as startswith are supported by the OData parser., teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {data: any, query: map{filter: str, since: str, until: str}, version: num}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 402, 403: You do not have permission to access this resource., 404, 410, 503}\n\n@endgroup\n\n@group webhooks\n@endpoint POST /v1/webhooks\n@desc Creates a webhook\n@required {url: str(uri), events: [str]}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., projectIds: [str]}\n@returns(200) {alertRuleIds: [str], createdAt: num, events: [str], id: str, ownerId: str, projectIds: [str], secret: str, updatedAt: num, url: str}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/webhooks\n@desc Get a list of webhooks\n@optional {projectId: str, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint GET /v1/webhooks/{id}\n@desc Get a webhook\n@required {id: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {alertRuleIds: [str], createdAt: num, events: [str], id: str, ownerId: str, projectIds: [str], updatedAt: num, url: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint DELETE /v1/webhooks/{id}\n@desc Deletes a webhook\n@required {id: str}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(204)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group deployments\n@endpoint GET /v2/deployments/{id}/aliases\n@desc List Deployment Aliases\n@required {id: str # The ID of the deployment the aliases should be listed for}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {aliases: [map]} # The list of aliases assigned to the deployment\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The deployment was not found, 410}\n\n@endpoint POST /v2/deployments/{id}/aliases\n@desc Assign an Alias\n@required {id: any # The deployment or alias ID or URL to assign from}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., alias: str # The alias we want to assign to the deployment defined in the URL, redirect: str # The redirect property will take precedence over the deployment id from the URL and consists of a hostname (like test.com) to which the alias should redirect using status code 307}\n@returns(200) {alias: str, created: str(date-time), oldDeploymentId: str?, uid: str} # The alias was successfully assigned to the deployment\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid. The cert for the provided alias is not ready The deployment is not READY and can not be aliased The supplied alias is invalid, 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource. If no .vercel.app alias exists then we fail (nothing to mirror), 404: The domain used for the alias was not found The deployment was not found, 409: The provided alias is already assigned to the given deployment The domain is not allowed to be used, 410}\n\n@endgroup\n\n@group aliases\n@endpoint GET /v4/aliases\n@desc List aliases\n@optional {domain: any # Get only aliases of the given domain name, from: num # Get only aliases created after the provided timestamp, limit: num # Maximum number of aliases to list from a request, projectId: str # Filter aliases from the given `projectId`, since: num # Get aliases created after this JavaScript timestamp, until: num # Get aliases created before this JavaScript timestamp, rollbackDeploymentId: str # Get aliases that would be rolled back for the given deployment, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {aliases: [map], pagination: map{count: num, next: num?, prev: num?}} # The paginated list of aliases\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v4/aliases/{idOrAlias}\n@desc Get an Alias\n@required {idOrAlias: str # The alias or alias ID to be retrieved}\n@optional {from: num # Get the alias only if it was created after the provided timestamp, projectId: str # Get the alias only if it is assigned to the provided project ID, since: num # Get the alias only if it was created after this JavaScript timestamp, until: num # Get the alias only if it was created before this JavaScript timestamp, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {alias: str, created: str(date-time), createdAt: num?, creator: map{email: str, uid: str, username: str}, deletedAt: num?, deployment: map{id: str, meta: str, url: str}, deploymentId: str?, microfrontends: map{applications: any, defaultApp: map{projectId: str}}, projectId: str?, protectionBypass: map, redirect: str?, redirectStatusCode: num?, uid: str, updatedAt: num?} # The alias information\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The alias was not found, 410}\n\n@endpoint DELETE /v2/aliases/{aliasId}\n@desc Delete an Alias\n@required {aliasId: any # The ID or alias that will be removed}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {status: str} # The alias was successfully removed\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The alias was not found, 410}\n\n@endpoint PATCH /aliases/{id}/protection-bypass\n@desc Update the protection bypass for a URL\n@required {id: str # The alias or deployment ID}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request body is invalid. One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 409, 410, 428}\n\n@endgroup\n\n@group certs\n@endpoint GET /v8/certs/{id}\n@desc Get cert by id\n@required {id: str # The cert id}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {autoRenew: bool, cns: [str], createdAt: num, expiresAt: num, id: str}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint DELETE /v8/certs/{id}\n@desc Remove cert\n@required {id: str # The cert id to remove}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200)\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410}\n\n@endpoint GET /v8/certs\n@desc Get certs\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {certs: [map], pagination: map{count: num, next: num?, prev: num?}}\n@errors {400, 401: The request is not authorized., 403: You do not have permission to access this resource., 410}\n\n@endpoint POST /v8/certs\n@desc Issue a new cert\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., cns: [str] # The common names the cert should be issued for}\n@returns(200) {autoRenew: bool, cns: [str], createdAt: num, expiresAt: num, id: str}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: The account is missing a payment so payment method must be updated, 403: You do not have permission to access this resource., 404, 410, 449, 500}\n\n@endpoint PUT /v8/certs\n@desc Upload a cert\n@required {ca: str # The certificate authority, key: str # The certificate key, cert: str # The certificate}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of., skipValidation: bool # Skip validation of the certificate}\n@returns(200) {autoRenew: bool, cns: [str], createdAt: num, expiresAt: num, id: str}\n@errors {400: One of the provided values in the request body is invalid., 401: The request is not authorized., 402: This feature is only available for Enterprise customers., 403: You do not have permission to access this resource., 410}\n\n@endgroup\n\n@group deployments\n@endpoint GET /v6/deployments/{id}/files\n@desc List Deployment Files\n@required {id: str # The unique deployment identifier}\n@optional {teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) Retrieved the file tree successfully\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: File tree not found Deployment not found, 410}\n\n@endpoint GET /v8/deployments/{id}/files/{fileId}\n@desc Get Deployment File Contents\n@required {id: str # The unique deployment identifier, fileId: str # The unique file identifier}\n@optional {path: str # Path to the file to fetch (only for Git deployments), teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: File not found Deployment not found, 410: Invalid API version.}\n\n@endpoint GET /v7/deployments\n@desc List deployments\n@optional {app: str # Name of the deployment., from: num # Gets the deployment created after this Date timestamp. (default: current time), limit: num # Maximum number of deployments to list from a request., projectId: str # Filter deployments from the given ID or name., projectIds: [str] # Filter deployments from the given project IDs. Cannot be used when projectId is specified., target: str # Filter deployments based on the environment., to: num # Gets the deployment created before this Date timestamp. (default: current time), users: str # Filter out deployments based on users who have created the deployment., since: num # Get Deployments created after this JavaScript timestamp., until: num # Get Deployments created before this JavaScript timestamp., state: str # Filter deployments based on their state (`BUILDING`, `ERROR`, `INITIALIZING`, `QUEUED`, `READY`, `CANCELED`, `BLOCKED`), rollbackCandidate: bool # Filter deployments based on their rollback candidacy, branch: str # Filter deployments based on the branch name, sha: str # Filter deployments based on the SHA, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {deployments: [map], pagination: map{count: num, next: num?, prev: num?}}\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404, 410, 422}\n\n@endpoint DELETE /v13/deployments/{id}\n@desc Delete a Deployment\n@required {id: str # The ID of the deployment to be deleted}\n@optional {url: str # A Deployment or Alias URL. In case it is passed, the ID will be ignored, teamId: str # The Team identifier to perform the request on behalf of., slug: str # The Team slug to perform the request on behalf of.}\n@returns(200) {state: str, uid: str} # The deployment was successfully deleted\n@errors {400: One of the provided values in the request query is invalid., 401: The request is not authorized., 403: You do not have permission to access this resource., 404: The deployment was not found, 410}\n\n@endgroup\n\n@end\n"}