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 "logDrainsVolume",50 "monitoringMetric",51 "observabilityEvent",52 "postgresComputeTime",53 "postgresDataStorage",54 "postgresDataTransfer",55 "postgresDatabase",56 "postgresWrittenData",57 "serverlessFunctionExecution",58 "sourceImages",59 "storageRedisTotalBandwidthInBytes",60 "storageRedisTotalCommands",61 "storageRedisTotalDailyAvgStorageInBytes",62 "storageRedisTotalDatabases",63 "wafOwaspExcessBytes",64 "wafOwaspRequests",65 "wafRateLimitRequest",66 "webAnalyticsEvent"67 ]68 }69 },70 "required": ["blockedAt", "reason"],71 "type": "object",72 "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."73 },74 "billing": {75 "nullable": true,76 "type": "object",77 "description": "An object containing billing infomation associated with the User account."78 },79 "resourceConfig": {80 "properties": {81 "blobStores": {82 "type": "number",83 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."84 },85 "nodeType": {86 "type": "string",87 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."88 },89 "concurrentBuilds": {90 "type": "number",91 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."92 },93 "awsAccountType": {94 "type": "string",95 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."96 },97 "awsAccountIds": {98 "items": { "type": "string" },99 "type": "array",100 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."101 },102 "cfZoneName": {103 "type": "string",104 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."105 },106 "imageOptimizationType": {107 "type": "string",108 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."109 },110 "edgeConfigs": {111 "type": "number",112 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."113 },114 "edgeConfigSize": {115 "type": "number",116 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."117 },118 "edgeFunctionMaxSizeBytes": {119 "type": "number",120 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."121 },122 "edgeFunctionExecutionTimeoutMs": {123 "type": "number",124 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."125 },126 "serverlessFunctionDefaultMaxExecutionTime": {127 "type": "number",128 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."129 },130 "kvDatabases": {131 "type": "number",132 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."133 },134 "postgresDatabases": {135 "type": "number",136 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."137 },138 "integrationStores": {139 "type": "number",140 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."141 },142 "cronJobs": {143 "type": "number",144 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."145 },146 "cronJobsPerProject": {147 "type": "number",148 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."149 },150 "microfrontendGroupsPerTeam": {151 "type": "number",152 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."153 },154 "microfrontendProjectsPerGroup": {155 "type": "number",156 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."157 }158 },159 "type": "object",160 "description": "An object containing infomation related to the amount of platform resources may be allocated to the User account."161 },162 "stagingPrefix": {163 "type": "string",164 "description": "Prefix that will be used in the URL of \"Preview\" deployments created by the User account."165 },166 "activeDashboardViews": {167 "items": {168 "properties": {169 "scopeId": { "type": "string" },170 "viewPreference": {171 "nullable": true,172 "type": "string",173 "enum": ["list", "cards"]174 },175 "favoritesViewPreference": {176 "nullable": true,177 "type": "string",178 "enum": ["open", "closed"]179 },180 "recentsViewPreference": {181 "nullable": true,182 "type": "string",183 "enum": ["open", "closed"]184 }185 },186 "required": ["scopeId"],187 "type": "object",188 "description": "set of dashboard view preferences (cards or list) per scopeId"189 },190 "type": "array",191 "description": "set of dashboard view preferences (cards or list) per scopeId"192 },193 "importFlowGitNamespace": {194 "nullable": true,195 "oneOf": [{ "type": "string" }, { "type": "number" }]196 },197 "importFlowGitNamespaceId": {198 "nullable": true,199 "oneOf": [{ "type": "string" }, { "type": "number" }]200 },201 "importFlowGitProvider": {202 "nullable": true,203 "type": "string",204 "enum": ["github", "gitlab", "bitbucket"]205 },206 "preferredScopesAndGitNamespaces": {207 "items": {208 "properties": {209 "scopeId": { "type": "string" },210 "gitNamespaceId": {211 "nullable": true,212 "oneOf": [{ "type": "string" }, { "type": "number" }]213 }214 },215 "required": ["scopeId", "gitNamespaceId"],216 "type": "object"217 },218 "type": "array"219 },220 "dismissedToasts": {221 "items": {222 "properties": {223 "name": { "type": "string" },224 "dismissals": {225 "items": {226 "properties": {227 "scopeId": { "type": "string" },228 "createdAt": { "type": "number" }229 },230 "required": ["scopeId", "createdAt"],231 "type": "object"232 },233 "type": "array"234 }235 },236 "required": ["name", "dismissals"],237 "type": "object",238 "description": "A record of when, under a certain scopeId, a toast was dismissed"239 },240 "type": "array",241 "description": "A record of when, under a certain scopeId, a toast was dismissed"242 },243 "favoriteProjectsAndSpaces": {244 "items": {245 "oneOf": [246 {247 "properties": {248 "projectId": { "type": "string" },249 "scopeSlug": { "type": "string" },250 "scopeId": { "type": "string" }251 },252 "required": ["projectId", "scopeSlug", "scopeId"],253 "type": "object",254 "description": "A list of projects and spaces across teams that a user has marked as a favorite."255 },256 {257 "properties": {258 "spaceId": { "type": "string" },259 "scopeSlug": { "type": "string" },260 "scopeId": { "type": "string" }261 },262 "required": ["spaceId", "scopeSlug", "scopeId"],263 "type": "object",264 "description": "A list of projects and spaces across teams that a user has marked as a favorite."265 }266 ]267 },268 "type": "array",269 "description": "A list of projects and spaces across teams that a user has marked as a favorite."270 },271 "hasTrialAvailable": {272 "type": "boolean",273 "description": "Whether the user has a trial available for a paid plan subscription."274 },275 "remoteCaching": {276 "properties": { "enabled": { "type": "boolean" } },277 "type": "object",278 "description": "remote caching settings"279 },280 "dataCache": {281 "properties": { "excessBillingEnabled": { "type": "boolean" } },282 "type": "object",283 "description": "data cache settings"284 },285 "featureBlocks": {286 "properties": {287 "webAnalytics": {288 "properties": {289 "blockedFrom": { "type": "number" },290 "blockedUntil": { "type": "number" },291 "isCurrentlyBlocked": { "type": "boolean" }292 },293 "required": ["isCurrentlyBlocked"],294 "type": "object"295 }296 },297 "type": "object",298 "description": "Feature blocks for the user"299 },300 "northstarMigration": {301 "properties": {302 "teamId": {303 "type": "string",304 "description": "The ID of the team we created for this user."305 },306 "projects": {307 "type": "number",308 "description": "The number of projects migrated for this user."309 },310 "stores": {311 "type": "number",312 "description": "The number of stores migrated for this user."313 },314 "integrationConfigurations": {315 "type": "number",316 "description": "The number of integration configurations migrated for this user."317 },318 "integrationClients": {319 "type": "number",320 "description": "The number of integration clients migrated for this user."321 },322 "startTime": {323 "type": "number",324 "description": "The migration start time timestamp for this user."325 },326 "endTime": {327 "type": "number",328 "description": "The migration end time timestamp for this user."329 }330 },331 "required": [332 "teamId",333 "projects",334 "stores",335 "integrationConfigurations",336 "integrationClients",337 "startTime",338 "endTime"339 ],340 "type": "object"341 },342 "id": {343 "type": "string",344 "description": "The User's unique identifier.",345 "example": "AEIIDYVk59zbFF2Sxfyxxmua"346 },347 "email": {348 "type": "string",349 "description": "Email address associated with the User account.",350 "example": "me@example.com"351 },352 "name": {353 "nullable": true,354 "type": "string",355 "description": "Name associated with the User account, or `null` if none has been provided.",356 "example": "John Doe"357 },358 "username": {359 "type": "string",360 "description": "Unique username associated with the User account.",361 "example": "jdoe"362 },363 "avatar": {364 "nullable": true,365 "type": "string",366 "description": "SHA1 hash of the avatar for the User account. Can be used in conjuction with the ... endpoint to retrieve the avatar image.",367 "example": "22cb30c85ff45ac4c72de8981500006b28114aa1"368 },369 "defaultTeamId": {370 "nullable": true,371 "type": "string",372 "description": "The user's default team."373 },374 "version": {375 "type": "string",376 "enum": ["northstar"],377 "description": "The user's version. Will always be `northstar`."378 }379 },380 "required": [381 "createdAt",382 "softBlock",383 "billing",384 "resourceConfig",385 "stagingPrefix",386 "hasTrialAvailable",387 "id",388 "email",389 "name",390 "username",391 "avatar",392 "defaultTeamId",393 "version"394 ],395 "type": "object",396 "description": "Data for the currently authenticated User."397}
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 15, 2025
Was this helpful?