Skip to main content
GET
/
v10
/
projects
getProjects
import { Vercel } from "@vercel/sdk";

const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});

async function run() {
  const result = await vercel.projects.getProjects({
    gitForkProtection: "1",
    repoUrl: "https://github.com/vercel/next.js",
    elasticConcurrencyEnabled: "1",
    staticIpsEnabled: "1",
    buildMachineTypes: "default,enhanced",
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
  });

  console.log(result);
}

run();
[
  {
    "accountId": "<string>",
    "alias": [
      {
        "deployment": {
          "createdAt": 123,
          "createdIn": "<string>",
          "creator": {
            "email": "<string>",
            "uid": "<string>",
            "username": "<string>",
            "githubLogin": "<string>",
            "gitlabLogin": "<string>"
          },
          "deploymentHostname": "<string>",
          "name": "<string>",
          "id": "<string>",
          "plan": "<string>",
          "private": true,
          "readyState": "<string>",
          "type": "<string>",
          "url": "<string>",
          "userId": "<string>",
          "alias": [
            "<string>"
          ],
          "aliasAssigned": 123,
          "builds": [
            {
              "use": "<string>",
              "src": "<string>",
              "dest": "<string>"
            }
          ],
          "forced": true,
          "meta": {},
          "requestedAt": 123,
          "target": "<string>",
          "teamId": "<string>",
          "withCache": true
        },
        "domain": "<string>",
        "environment": "preview",
        "target": "PRODUCTION",
        "configuredBy": "CNAME",
        "configuredChangedAt": 123,
        "createdAt": 123,
        "gitBranch": "<string>",
        "redirect": "<string>",
        "redirectStatusCode": 301
      }
    ],
    "directoryListing": true,
    "id": "<string>",
    "name": "<string>",
    "nodeVersion": "24.x",
    "resourceConfig": {
      "functionDefaultRegions": [
        "<string>"
      ],
      "fluid": true,
      "functionDefaultTimeout": 123,
      "functionDefaultMemoryType": "standard_legacy",
      "functionZeroConfigFailover": true,
      "elasticConcurrencyEnabled": true,
      "buildMachineType": "enhanced",
      "isNSNBDisabled": true,
      "buildQueue": {
        "configuration": "SKIP_NAMESPACE_QUEUE"
      }
    },
    "serverlessFunctionRegion": "<string>",
    "analytics": {
      "id": "<string>",
      "disabledAt": 123,
      "enabledAt": 123,
      "canceledAt": 123,
      "paidAt": 123,
      "sampleRatePercent": 123,
      "spendLimitInDollars": 123
    },
    "appliedCve55182Migration": true,
    "autoExposeSystemEnvs": true,
    "autoAssignCustomDomains": true,
    "autoAssignCustomDomainsUpdatedBy": "<string>",
    "buildCommand": "<string>",
    "commandForIgnoringBuildStep": "<string>",
    "customerSupportCodeVisibility": true,
    "createdAt": 123,
    "devCommand": "<string>",
    "deploymentExpiration": {
      "expirationDays": 123,
      "expirationDaysProduction": 123,
      "expirationDaysCanceled": 123,
      "expirationDaysErrored": 123,
      "deploymentsToKeep": 123
    },
    "installCommand": "<string>",
    "ipBuckets": [
      {
        "bucket": "<string>",
        "supportUntil": 123
      }
    ],
    "env": [
      {
        "type": "secret",
        "value": "<string>",
        "key": "<string>",
        "target": [
          "production"
        ],
        "sunsetSecretId": "<string>",
        "decrypted": true,
        "vsmValue": "<string>",
        "id": "<string>",
        "configurationId": "<string>",
        "createdAt": 123,
        "updatedAt": 123,
        "createdBy": "<string>",
        "updatedBy": "<string>",
        "gitBranch": "<string>",
        "edgeConfigId": "<string>",
        "edgeConfigTokenId": "<string>",
        "contentHint": {
          "type": "redis-url",
          "storeId": "<string>"
        },
        "internalContentHint": {
          "type": "flags-secret",
          "encryptedValue": "<string>"
        },
        "comment": "<string>",
        "customEnvironmentIds": [
          "<string>"
        ]
      }
    ],
    "framework": "blitzjs",
    "gitForkProtection": true,
    "latestDeployments": [
      {
        "createdAt": 123,
        "createdIn": "<string>",
        "creator": {
          "email": "<string>",
          "uid": "<string>",
          "username": "<string>",
          "githubLogin": "<string>",
          "gitlabLogin": "<string>"
        },
        "deploymentHostname": "<string>",
        "name": "<string>",
        "id": "<string>",
        "plan": "<string>",
        "private": true,
        "readyState": "<string>",
        "type": "<string>",
        "url": "<string>",
        "userId": "<string>",
        "alias": [
          "<string>"
        ],
        "aliasAssigned": 123,
        "builds": [
          {
            "use": "<string>",
            "src": "<string>",
            "dest": "<string>"
          }
        ],
        "forced": true,
        "meta": {},
        "requestedAt": 123,
        "target": "<string>",
        "teamId": "<string>",
        "withCache": true
      }
    ],
    "link": {
      "org": "<string>",
      "type": "github",
      "deployHooks": [
        {
          "id": "<string>",
          "name": "<string>",
          "ref": "<string>",
          "url": "<string>",
          "createdAt": 123
        }
      ],
      "gitCredentialId": "<string>",
      "productionBranch": "<string>",
      "repoOwnerId": 123,
      "repo": "<string>",
      "repoId": 123,
      "createdAt": 123,
      "updatedAt": 123,
      "sourceless": true
    },
    "outputDirectory": "<string>",
    "passwordProtection": {},
    "publicSource": true,
    "rollingRelease": {
      "target": "production",
      "stages": [
        {
          "targetPercentage": 25,
          "requireApproval": false,
          "duration": 600,
          "linearShift": false
        }
      ],
      "canaryResponseHeader": false
    },
    "rootDirectory": "<string>",
    "serverlessFunctionZeroConfigFailover": true,
    "speedInsights": {
      "id": "<string>",
      "enabledAt": 123,
      "disabledAt": 123,
      "canceledAt": 123,
      "hasData": true,
      "paidAt": 123
    },
    "skipGitConnectDuringLink": true,
    "sourceFilesOutsideRootDirectory": true,
    "ssoProtection": {
      "deploymentType": "preview",
      "cve55182MigrationAppliedFrom": "preview"
    },
    "targets": {},
    "transferCompletedAt": 123,
    "transferStartedAt": 123,
    "transferToAccountId": "<string>",
    "transferredFromAccountId": "<string>",
    "updatedAt": 123,
    "live": true,
    "hasActiveBranches": true,
    "gitComments": {
      "onPullRequest": true,
      "onCommit": true
    },
    "gitProviderOptions": {
      "createDeployments": "enabled",
      "disableRepositoryDispatchEvents": true,
      "requireVerifiedCommits": true
    },
    "paused": true,
    "webAnalytics": {
      "id": "<string>",
      "disabledAt": 123,
      "canceledAt": 123,
      "enabledAt": 123,
      "hasData": true
    },
    "security": {
      "attackModeEnabled": true,
      "attackModeUpdatedAt": 123,
      "firewallEnabled": true,
      "firewallUpdatedAt": 123,
      "attackModeActiveUntil": 123,
      "firewallConfigVersion": 123,
      "firewallRoutes": [
        {
          "src": "<string>",
          "has": [
            {
              "type": "path",
              "key": "<string>",
              "value": "<string>"
            }
          ],
          "missing": [
            {
              "type": "path",
              "key": "<string>",
              "value": "<string>"
            }
          ],
          "dest": "<string>",
          "status": 123,
          "handle": "init",
          "mitigate": {
            "action": "deny",
            "rule_id": "<string>",
            "ttl": 123,
            "erl": {
              "algo": "fixed_window",
              "window": 123,
              "limit": 123,
              "keys": [
                "<string>"
              ]
            }
          }
        }
      ],
      "firewallSeawallEnabled": true,
      "ja3Enabled": true,
      "ja4Enabled": true,
      "firewallBypassIps": [
        "<string>"
      ],
      "managedRules": {
        "bot_filter": {
          "active": true,
          "action": "deny"
        },
        "ai_bots": {
          "active": true,
          "action": "deny"
        },
        "owasp": {
          "active": true,
          "action": "deny"
        }
      },
      "botIdEnabled": true
    },
    "oidcTokenConfig": {
      "enabled": true,
      "issuerMode": "team"
    },
    "tier": "standard",
    "abuse": {
      "history": [
        {
          "scanner": "<string>",
          "reason": "<string>",
          "by": "<string>",
          "byId": "<string>",
          "at": 123
        }
      ],
      "updatedAt": 123,
      "scanner": "<string>",
      "block": {
        "action": "blocked",
        "reason": "<string>",
        "statusCode": 123,
        "createdAt": 123,
        "caseId": "<string>",
        "actor": "<string>",
        "comment": "<string>",
        "isCascading": true
      },
      "blockHistory": [
        {
          "action": "blocked",
          "reason": "<string>",
          "statusCode": 123,
          "createdAt": 123,
          "caseId": "<string>",
          "actor": "<string>",
          "comment": "<string>",
          "isCascading": true
        }
      ],
      "interstitial": true
    },
    "internalRoutes": [
      {
        "src": "<string>",
        "status": 123
      }
    ]
  }
]

Authorizations

Authorization
string
header
required

Default authentication mechanism

Query Parameters

from
string

Query only projects updated after the given timestamp or continuation token.

gitForkProtection
enum<string>

Specifies whether PRs from Git forks should require a team member's authorization before it can be deployed

Available options:
1,
0
Example:

"1"

limit
string

Limit the number of projects returned

Search projects by the name field

Maximum string length: 100
repo
string

Filter results by repo. Also used for project count

repoId
string

Filter results by Repository ID.

repoUrl
string

Filter results by Repository URL.

Example:

"https://github.com/vercel/next.js"

excludeRepos
string

Filter results by excluding those projects that belong to a repo

edgeConfigId
string

Filter results by connected Edge Config ID

edgeConfigTokenId
string

Filter results by connected Edge Config Token ID

deprecated
boolean
elasticConcurrencyEnabled
enum<string>

Filter results by projects with elastic concurrency enabled

Available options:
1,
0
Example:

"1"

staticIpsEnabled
enum<string>

Filter results by projects with Static IPs enabled

Available options:
0,
1
Example:

"1"

buildMachineTypes
string

Filter results by build machine types. Accepts comma-separated values. Use "default" for projects without a build machine type set.

Example:

"default,enhanced"

teamId
string

The Team identifier to perform the request on behalf of.

Example:

"team_1a2b3c4d5e6f7g8h9i0j1k2l"

slug
string

The Team slug to perform the request on behalf of.

Example:

"my-team-url-slug"

Response

accountId
string
required
alias
object[]
required
directoryListing
boolean
required
id
string
required
name
string
required
nodeVersion
enum<string>
required
Available options:
24.x,
22.x,
20.x,
18.x,
16.x,
14.x,
12.x,
10.x,
8.10.x
resourceConfig
object
required
serverlessFunctionRegion
string
required
analytics
object
appliedCve55182Migration
boolean
autoExposeSystemEnvs
boolean
autoAssignCustomDomains
boolean
autoAssignCustomDomainsUpdatedBy
string
buildCommand
string | null
commandForIgnoringBuildStep
string | null
customerSupportCodeVisibility
boolean
createdAt
number
devCommand
string | null
deploymentExpiration
object

Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects.

installCommand
string | null
ipBuckets
object[]
env
object[]
framework
enum<string> | null
Available options:
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,
vitepress,
vuepress,
parcel,
fastapi,
flask,
fasthtml,
sanity-v3,
sanity,
storybook,
nitro,
hono,
express,
h3,
nestjs,
elysia,
fastify,
xmcp
gitForkProtection
boolean
latestDeployments
object[]
outputDirectory
string | null
passwordProtection
object
publicSource
boolean | null
rollingRelease
object

Project-level rolling release configuration that defines how deployments should be gradually rolled out

rootDirectory
string | null
serverlessFunctionZeroConfigFailover
boolean
speedInsights
object
sourceFilesOutsideRootDirectory
boolean
ssoProtection
object
targets
object
transferCompletedAt
number
transferStartedAt
number
transferToAccountId
string
transferredFromAccountId
string
updatedAt
number
live
boolean
hasActiveBranches
boolean
gitComments
object
gitProviderOptions
object
paused
boolean
webAnalytics
object
security
object
oidcTokenConfig
object
tier
enum<string>
Available options:
standard,
advanced,
critical
abuse
object
internalRoutes
object[]