Reference
Vercel REST API Interfaces
Shared interfaces referenced across multiple endpoints.Table of Contents
ACLAction
1{2 "type": "string",3 "enum": ["create", "delete", "read", "update", "list"],4 "description": "Enum containing the actions that can be performed against a resource. Group operations are included."5}
AuthToken
1{2 "properties": {3 "id": {4 "type": "string",5 "description": "The unique identifier of the token.",6 "example": "5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391"7 },8 "name": {9 "type": "string",10 "description": "The human-readable name of the token."11 },12 "type": {13 "type": "string",14 "description": "The type of the token.",15 "example": "oauth2-token"16 },17 "origin": {18 "type": "string",19 "description": "The origin of how the token was created.",20 "example": "github"21 },22 "scopes": {23 "items": {24 "oneOf": [25 {26 "properties": {27 "type": { "type": "string", "enum": ["user"] },28 "origin": {29 "type": "string",30 "enum": [31 "saml",32 "github",33 "gitlab",34 "bitbucket",35 "email",36 "manual",37 "passkey",38 "otp",39 "sms",40 "invite"41 ]42 },43 "createdAt": { "type": "number" },44 "expiresAt": { "type": "number" }45 },46 "required": ["type", "origin", "createdAt"],47 "type": "object",48 "description": "The access scopes granted to the token."49 },50 {51 "properties": {52 "type": { "type": "string", "enum": ["team"] },53 "teamId": { "type": "string" },54 "origin": {55 "type": "string",56 "enum": [57 "saml",58 "github",59 "gitlab",60 "bitbucket",61 "email",62 "manual",63 "passkey",64 "otp",65 "sms",66 "invite"67 ]68 },69 "createdAt": { "type": "number" },70 "expiresAt": { "type": "number" }71 },72 "required": ["type", "teamId", "origin", "createdAt"],73 "type": "object",74 "description": "The access scopes granted to the token."75 }76 ]77 },78 "type": "array",79 "description": "The access scopes granted to the token."80 },81 "expiresAt": {82 "type": "number",83 "description": "Timestamp (in milliseconds) of when the token expires.",84 "example": 163281653600285 },86 "activeAt": {87 "type": "number",88 "description": "Timestamp (in milliseconds) of when the token was most recently used.",89 "example": 163281653600290 },91 "createdAt": {92 "type": "number",93 "description": "Timestamp (in milliseconds) of when the token was created.",94 "example": 163281653600295 }96 },97 "required": ["id", "name", "type", "activeAt", "createdAt"],98 "type": "object",99 "description": "Authentication token metadata."100}
AuthUser
1{2 "properties": {3 "createdAt": {4 "type": "number",5 "description": "UNIX timestamp (in milliseconds) when the User account was created.",6 "example": 16307485233957 },8 "softBlock": {9 "nullable": true,10 "properties": {11 "blockedAt": { "type": "number" },12 "reason": {13 "type": "string",14 "enum": [15 "SUBSCRIPTION_CANCELED",16 "SUBSCRIPTION_EXPIRED",17 "UNPAID_INVOICE",18 "ENTERPRISE_TRIAL_ENDED",19 "FAIR_USE_LIMITS_EXCEEDED",20 "BLOCKED_FOR_PLATFORM_ABUSE"21 ]22 },23 "blockedDueToOverageType": {24 "type": "string",25 "enum": [26 "analyticsUsage",27 "artifacts",28 "bandwidth",29 "blobStores",30 "blobTotalAdvancedRequests",31 "blobTotalAvgSizeInBytes",32 "blobTotalGetResponseObjectSizeInBytes",33 "blobTotalSimpleRequests",34 "buildMinute",35 "dataCacheRead",36 "dataCacheRevalidation",37 "dataCacheWrite",38 "edgeConfigRead",39 "edgeConfigWrite",40 "edgeFunctionExecutionUnits",41 "edgeMiddlewareInvocations",42 "edgeRequestAdditionalCpuDuration",43 "edgeRequest",44 "elasticConcurrencyBuildSlots",45 "fastDataTransfer",46 "fastOriginTransfer",47 "functionDuration",48 "functionInvocation",49 "imageOptimizationCacheRead",50 "imageOptimizationCacheWrite",51 "imageOptimizationTransformation",52 "logDrainsVolume",53 "monitoringMetric",54 "observabilityEvent",55 "postgresComputeTime",56 "postgresDataStorage",57 "postgresDataTransfer",58 "postgresDatabase",59 "postgresWrittenData",60 "serverlessFunctionExecution",61 "sourceImages",62 "storageRedisTotalBandwidthInBytes",63 "storageRedisTotalCommands",64 "storageRedisTotalDailyAvgStorageInBytes",65 "storageRedisTotalDatabases",66 "wafOwaspExcessBytes",67 "wafOwaspRequests",68 "wafRateLimitRequest",69 "webAnalyticsEvent"70 ]71 }72 },73 "required": ["blockedAt", "reason"],74 "type": "object",75 "description": "When the User account has been \"soft blocked\", this property will contain the date when the restriction was enacted, and the identifier for why."76 },77 "billing": {78 "nullable": true,79 "type": "object",80 "description": "An object containing billing infomation associated with the User account."81 },82 "resourceConfig": {83 "properties": {84 "blobStores": {85 "type": "number",86 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."87 },88 "nodeType": {89 "type": "string",90 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."91 },92 "concurrentBuilds": {93 "type": "number",94 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."95 },96 "awsAccountType": {97 "type": "string",98 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."99 },100 "awsAccountIds": {101 "items": { "type": "string" },102 "type": "array",103 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."104 },105 "cfZoneName": {106 "type": "string",107 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."108 },109 "imageOptimizationType": {110 "type": "string",111 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."112 },113 "edgeConfigs": {114 "type": "number",115 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."116 },117 "edgeConfigSize": {118 "type": "number",119 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."120 },121 "edgeFunctionMaxSizeBytes": {122 "type": "number",123 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."124 },125 "edgeFunctionExecutionTimeoutMs": {126 "type": "number",127 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."128 },129 "serverlessFunctionDefaultMaxExecutionTime": {130 "type": "number",131 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."132 },133 "kvDatabases": {134 "type": "number",135 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."136 },137 "postgresDatabases": {138 "type": "number",139 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."140 },141 "integrationStores": {142 "type": "number",143 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."144 },145 "cronJobs": {146 "type": "number",147 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."148 },149 "cronJobsPerProject": {150 "type": "number",151 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."152 },153 "microfrontendGroupsPerTeam": {154 "type": "number",155 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."156 },157 "microfrontendProjectsPerGroup": {158 "type": "number",159 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."160 }161 },162 "type": "object",163 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."164 },165 "stagingPrefix": {166 "type": "string",167 "description": "Prefix that will be used in the URL of \"Preview\" deployments created by the User account."168 },169 "activeDashboardViews": {170 "items": {171 "properties": {172 "scopeId": { "type": "string" },173 "viewPreference": {174 "nullable": true,175 "type": "string",176 "enum": ["list", "cards"]177 },178 "favoritesViewPreference": {179 "nullable": true,180 "type": "string",181 "enum": ["open", "closed"]182 },183 "recentsViewPreference": {184 "nullable": true,185 "type": "string",186 "enum": ["open", "closed"]187 }188 },189 "required": ["scopeId"],190 "type": "object",191 "description": "set of dashboard view preferences (cards or list) per scopeId"192 },193 "type": "array",194 "description": "set of dashboard view preferences (cards or list) per scopeId"195 },196 "importFlowGitNamespace": {197 "nullable": true,198 "oneOf": [{ "type": "string" }, { "type": "number" }]199 },200 "importFlowGitNamespaceId": {201 "nullable": true,202 "oneOf": [{ "type": "string" }, { "type": "number" }]203 },204 "importFlowGitProvider": {205 "nullable": true,206 "type": "string",207 "enum": ["github", "gitlab", "bitbucket"]208 },209 "preferredScopesAndGitNamespaces": {210 "items": {211 "properties": {212 "scopeId": { "type": "string" },213 "gitNamespaceId": {214 "nullable": true,215 "oneOf": [{ "type": "string" }, { "type": "number" }]216 }217 },218 "required": ["scopeId", "gitNamespaceId"],219 "type": "object"220 },221 "type": "array"222 },223 "dismissedToasts": {224 "items": {225 "properties": {226 "name": { "type": "string" },227 "dismissals": {228 "items": {229 "properties": {230 "scopeId": { "type": "string" },231 "createdAt": { "type": "number" }232 },233 "required": ["scopeId", "createdAt"],234 "type": "object"235 },236 "type": "array"237 }238 },239 "required": ["name", "dismissals"],240 "type": "object",241 "description": "A record of when, under a certain scopeId, a toast was dismissed"242 },243 "type": "array",244 "description": "A record of when, under a certain scopeId, a toast was dismissed"245 },246 "favoriteProjectsAndSpaces": {247 "items": {248 "oneOf": [249 {250 "properties": {251 "projectId": { "type": "string" },252 "scopeSlug": { "type": "string" },253 "scopeId": { "type": "string" }254 },255 "required": ["projectId", "scopeSlug", "scopeId"],256 "type": "object",257 "description": "A list of projects and spaces across teams that a user has marked as a favorite."258 },259 {260 "properties": {261 "spaceId": { "type": "string" },262 "scopeSlug": { "type": "string" },263 "scopeId": { "type": "string" }264 },265 "required": ["spaceId", "scopeSlug", "scopeId"],266 "type": "object",267 "description": "A list of projects and spaces across teams that a user has marked as a favorite."268 }269 ]270 },271 "type": "array",272 "description": "A list of projects and spaces across teams that a user has marked as a favorite."273 },274 "hasTrialAvailable": {275 "type": "boolean",276 "description": "Whether the user has a trial available for a paid plan subscription."277 },278 "remoteCaching": {279 "properties": { "enabled": { "type": "boolean" } },280 "type": "object",281 "description": "remote caching settings"282 },283 "dataCache": {284 "properties": { "excessBillingEnabled": { "type": "boolean" } },285 "type": "object",286 "description": "data cache settings"287 },288 "featureBlocks": {289 "properties": {290 "webAnalytics": {291 "properties": {292 "blockedFrom": { "type": "number" },293 "blockedUntil": { "type": "number" },294 "isCurrentlyBlocked": { "type": "boolean" }295 },296 "required": ["isCurrentlyBlocked"],297 "type": "object"298 }299 },300 "type": "object",301 "description": "Feature blocks for the user"302 },303 "northstarMigration": {304 "properties": {305 "teamId": {306 "type": "string",307 "description": "The ID of the team we created for this user."308 },309 "projects": {310 "type": "number",311 "description": "The number of projects migrated for this user."312 },313 "stores": {314 "type": "number",315 "description": "The number of stores migrated for this user."316 },317 "integrationConfigurations": {318 "type": "number",319 "description": "The number of integration configurations migrated for this user."320 },321 "integrationClients": {322 "type": "number",323 "description": "The number of integration clients migrated for this user."324 },325 "startTime": {326 "type": "number",327 "description": "The migration start time timestamp for this user."328 },329 "endTime": {330 "type": "number",331 "description": "The migration end time timestamp for this user."332 }333 },334 "required": [335 "teamId",336 "projects",337 "stores",338 "integrationConfigurations",339 "integrationClients",340 "startTime",341 "endTime"342 ],343 "type": "object"344 },345 "id": {346 "type": "string",347 "description": "The User's unique identifier.",348 "example": "AEIIDYVk59zbFF2Sxfyxxmua"349 },350 "email": {351 "type": "string",352 "description": "Email address associated with the User account.",353 "example": "me@example.com"354 },355 "name": {356 "nullable": true,357 "type": "string",358 "description": "Name associated with the User account, or `null` if none has been provided.",359 "example": "John Doe"360 },361 "username": {362 "type": "string",363 "description": "Unique username associated with the User account.",364 "example": "jdoe"365 },366 "avatar": {367 "nullable": true,368 "type": "string",369 "description": "SHA1 hash of the avatar for the User account. Can be used in conjuction with the ... endpoint to retrieve the avatar image.",370 "example": "22cb30c85ff45ac4c72de8981500006b28114aa1"371 },372 "defaultTeamId": {373 "nullable": true,374 "type": "string",375 "description": "The user's default team."376 },377 "version": {378 "type": "string",379 "enum": ["northstar"],380 "description": "The user's version. Will always be `northstar`."381 }382 },383 "required": [384 "createdAt",385 "softBlock",386 "billing",387 "resourceConfig",388 "stagingPrefix",389 "hasTrialAvailable",390 "id",391 "email",392 "name",393 "username",394 "avatar",395 "defaultTeamId",396 "version"397 ],398 "type": "object",399 "description": "Data for the currently authenticated User."400}
AuthUserLimited
1{2 "properties": {3 "limited": {4 "type": "boolean",5 "description": "Property indicating that this User data contains only limited information, due to the authentication token missing privileges to read the full User data. Re-login with email, GitHub, GitLab or Bitbucket in order to upgrade the authentication token with the necessary privileges."6 },7 "id": {8 "type": "string",9 "description": "The User's unique identifier.",10 "example": "AEIIDYVk59zbFF2Sxfyxxmua"11 },12 "email": {13 "type": "string",14 "description": "Email address associated with the User account.",15 "example": "me@example.com"16 },17 "name": {18 "nullable": true,19 "type": "string",20 "description": "Name associated with the User account, or `null` if none has been provided.",21 "example": "John Doe"22 },23 "username": {24 "type": "string",25 "description": "Unique username associated with the User account.",26 "example": "jdoe"27 },28 "avatar": {29 "nullable": true,30 "type": "string",31 "description": "SHA1 hash of the avatar for the User account. Can be used in conjuction with the ... endpoint to retrieve the avatar image.",32 "example": "22cb30c85ff45ac4c72de8981500006b28114aa1"33 },34 "defaultTeamId": {35 "nullable": true,36 "type": "string",37 "description": "The user's default team."38 },39 "version": {40 "type": "string",41 "enum": ["northstar"],42 "description": "The user's version. Will always be `northstar`."43 }44 },45 "required": [46 "limited",47 "id",48 "email",49 "name",50 "username",51 "avatar",52 "defaultTeamId",53 "version"54 ],55 "type": "object",56 "description": "A limited form of data for the currently authenticated User, due to the authentication token missing privileges to read the full User data."57}
EdgeConfigItem
1{2 "properties": {3 "key": { "type": "string" },4 "value": { "$ref": "#/components/schemas/EdgeConfigItemValue" },5 "description": { "type": "string" },6 "edgeConfigId": { "type": "string" },7 "createdAt": { "type": "number" },8 "updatedAt": { "type": "number" }9 },10 "required": ["key", "value", "edgeConfigId", "createdAt", "updatedAt"],11 "type": "object",12 "description": "The EdgeConfig."13}
EdgeConfigItemValue
1{2 "nullable": true,3 "oneOf": [4 { "type": "string" },5 { "type": "number" },6 { "type": "boolean" },7 {8 "additionalProperties": {9 "$ref": "#/components/schemas/EdgeConfigItemValue"10 },11 "type": "object"12 },13 {14 "items": { "$ref": "#/components/schemas/EdgeConfigItemValue" },15 "type": "array"16 }17 ]18}
EdgeConfigToken
1{2 "properties": {3 "token": { "type": "string" },4 "label": { "type": "string" },5 "id": {6 "type": "string",7 "description": "This is not the token itself, but rather an id to identify the token by"8 },9 "edgeConfigId": { "type": "string" },10 "createdAt": { "type": "number" }11 },12 "required": ["token", "label", "id", "edgeConfigId", "createdAt"],13 "type": "object",14 "description": "The EdgeConfig."15}
FileTree
1{2 "properties": {3 "name": {4 "type": "string",5 "description": "The name of the file tree entry",6 "example": "my-file.json"7 },8 "type": {9 "type": "string",10 "enum": [11 "directory",12 "file",13 "symlink",14 "lambda",15 "middleware",16 "invalid"17 ],18 "description": "String indicating the type of file tree entry.",19 "example": "file"20 },21 "uid": {22 "type": "string",23 "description": "The unique identifier of the file (only valid for the `file` type)",24 "example": "2d4aad419917f15b1146e9e03ddc9bb31747e4d0"25 },26 "children": {27 "items": { "$ref": "#/components/schemas/FileTree" },28 "type": "array",29 "description": "The list of children files of the directory (only valid for the `directory` type)"30 },31 "contentType": {32 "type": "string",33 "description": "The content-type of the file (only valid for the `file` type)",34 "example": "application/json"35 },36 "mode": {37 "type": "number",38 "description": "The file \"mode\" indicating file type and permissions."39 },40 "symlink": {41 "type": "string",42 "description": "Not currently used. See `file-list-to-tree.ts`."43 }44 },45 "required": ["name", "type", "mode"],46 "type": "object",47 "description": "A deployment file tree entry"48}
FlagJSONValue
1{2 "nullable": true,3 "oneOf": [4 { "type": "string" },5 { "type": "number" },6 { "type": "boolean" },7 {8 "items": { "$ref": "#/components/schemas/FlagJSONValue" },9 "type": "array",10 "description": "TODO: The following types will eventually be exported by a more relevant package."11 },12 {13 "additionalProperties": { "$ref": "#/components/schemas/FlagJSONValue" },14 "type": "object"15 }16 ]17}
Pagination
1{2 "properties": {3 "count": {4 "type": "number",5 "description": "Amount of items in the current page.",6 "example": 207 },8 "next": {9 "nullable": true,10 "type": "number",11 "description": "Timestamp that must be used to request the next page.",12 "example": 154009577595113 },14 "prev": {15 "nullable": true,16 "type": "number",17 "description": "Timestamp that must be used to request the previous page.",18 "example": 154009577595119 }20 },21 "required": ["count", "next", "prev"],22 "type": "object",23 "description": "This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data."24}
Team
1{ "type": "object", "description": "Data representing a Team." }
TeamLimited
1{2 "properties": {3 "limited": {4 "type": "boolean",5 "description": "Property indicating that this Team data contains only limited information, due to the authentication token missing privileges to read the full Team data. Re-login with the Team's configured SAML Single Sign-On provider in order to upgrade the authentication token with the necessary privileges."6 },7 "saml": {8 "properties": {9 "connection": {10 "properties": {11 "type": {12 "type": "string",13 "description": "The Identity Provider \"type\", for example Okta.",14 "example": "OktaSAML"15 },16 "status": {17 "type": "string",18 "description": "Current status of the connection.",19 "example": "linked"20 },21 "state": {22 "type": "string",23 "description": "Current state of the connection.",24 "example": "active"25 },26 "connectedAt": {27 "type": "number",28 "description": "Timestamp (in milliseconds) of when the configuration was connected.",29 "example": 161179691567730 },31 "lastReceivedWebhookEvent": {32 "type": "number",33 "description": "Timestamp (in milliseconds) of when the last webhook event was received from WorkOS.",34 "example": 161179691567735 }36 },37 "required": ["type", "status", "state", "connectedAt"],38 "type": "object",39 "description": "Information for the SAML Single Sign-On configuration."40 },41 "directory": {42 "properties": {43 "type": {44 "type": "string",45 "description": "The Identity Provider \"type\", for example Okta.",46 "example": "OktaSAML"47 },48 "state": {49 "type": "string",50 "description": "Current state of the connection.",51 "example": "active"52 },53 "connectedAt": {54 "type": "number",55 "description": "Timestamp (in milliseconds) of when the configuration was connected.",56 "example": 161179691567757 },58 "lastReceivedWebhookEvent": {59 "type": "number",60 "description": "Timestamp (in milliseconds) of when the last webhook event was received from WorkOS.",61 "example": 161179691567762 }63 },64 "required": ["type", "state", "connectedAt"],65 "type": "object",66 "description": "Information for the Directory Sync configuration."67 },68 "enforced": {69 "type": "boolean",70 "description": "When `true`, interactions with the Team **must** be done with an authentication token that has been authenticated with the Team's SAML Single Sign-On provider."71 }72 },73 "required": ["enforced"],74 "type": "object",75 "description": "When \"Single Sign-On (SAML)\" is configured, this object contains information that allows the client-side to identify whether or not this Team has SAML enforced."76 },77 "id": {78 "type": "string",79 "description": "The Team's unique identifier.",80 "example": "team_nllPyCtREAqxxdyFKbbMDlxd"81 },82 "slug": {83 "type": "string",84 "description": "The Team's slug, which is unique across the Vercel platform.",85 "example": "my-team"86 },87 "name": {88 "nullable": true,89 "type": "string",90 "description": "Name associated with the Team account, or `null` if none has been provided.",91 "example": "My Team"92 },93 "avatar": {94 "nullable": true,95 "type": "string",96 "description": "The ID of the file used as avatar for this Team.",97 "example": "6eb07268bcfadd309905ffb1579354084c24655c"98 },99 "membership": {100 "properties": {101 "uid": { "type": "string" },102 "entitlements": {103 "items": {104 "properties": { "entitlement": { "type": "string" } },105 "required": ["entitlement"],106 "type": "object"107 },108 "type": "array"109 },110 "confirmed": { "type": "boolean" },111 "confirmedAt": { "type": "number" },112 "accessRequestedAt": { "type": "number" },113 "role": {114 "type": "string",115 "enum": [116 "OWNER",117 "MEMBER",118 "DEVELOPER",119 "BILLING",120 "VIEWER",121 "CONTRIBUTOR"122 ]123 },124 "additionalRoles": {125 "items": {126 "type": "string",127 "enum": ["CreateProject", "FullProductionDeployment"]128 },129 "type": "array"130 },131 "teamId": { "type": "string" },132 "createdAt": { "type": "number" },133 "created": { "type": "number" },134 "joinedFrom": {135 "properties": {136 "origin": {137 "type": "string",138 "enum": [139 "link",140 "saml",141 "github",142 "gitlab",143 "bitbucket",144 "mail",145 "import",146 "teams",147 "dsync",148 "feedback",149 "organization-teams"150 ]151 },152 "commitId": { "type": "string" },153 "repoId": { "type": "string" },154 "repoPath": { "type": "string" },155 "gitUserId": {156 "oneOf": [{ "type": "string" }, { "type": "number" }]157 },158 "gitUserLogin": { "type": "string" },159 "ssoUserId": { "type": "string" },160 "ssoConnectedAt": { "type": "number" },161 "idpUserId": { "type": "string" },162 "dsyncUserId": { "type": "string" },163 "dsyncConnectedAt": { "type": "number" }164 },165 "required": ["origin"],166 "type": "object"167 }168 },169 "required": ["confirmed", "confirmedAt", "role", "createdAt", "created"],170 "type": "object",171 "description": "The membership of the authenticated User in relation to the Team."172 },173 "created": {174 "type": "string",175 "description": "Will remain undocumented. Remove in v3 API."176 },177 "createdAt": {178 "type": "number",179 "description": "UNIX timestamp (in milliseconds) when the Team was created.",180 "example": 1630748523395181 }182 },183 "required": [184 "limited",185 "id",186 "slug",187 "name",188 "avatar",189 "membership",190 "created",191 "createdAt"192 ],193 "type": "object",194 "description": "A limited form of data representing a Team, due to the authentication token missing privileges to read the full Team data."195}
UserEvent
1{ "type": "object", "description": "Array of events generated by the User." }
Last updated on January 18, 2025
Was this helpful?