---
title: "Request access to a team"
method: POST
path: "/v1/teams/{teamId}/request"
tags: ["teams"]
---

# Request access to a team

`POST /v1/teams/{teamId}/request`

## Request

- Base URL: `https://api.vercel.com`
- URL: `https://api.vercel.com/v1/teams/{teamId}/request`
- Auth: HTTP bearer

Request access to a team as a member. An owner has to approve the request. Only 100 users can request access to a team at the same time.

## Path parameters

- `teamId` string, required: The unique team identifier

## Request body

- object
  - `joinedFrom` object, required
    - `origin` 'import' | 'teams' | 'github' | 'gitlab' | 'bitbucket' | 'feedback' | 'organization-teams', required: The origin of the request.
    - `commitId` string: The commit sha if the origin is a git provider.
    - `repoId` string: The ID of the repository for the given Git provider.
    - `repoPath` string: The path to the repository for the given Git provider.
    - `gitUserId` union: The ID of the Git account of the user who requests access.
      - string
      - number
    - `gitUserLogin` string: The login name for the Git account of the user who requests access.

## Response `200`

Successfuly requested access to the team.

- object
  - `accessRequestedAt` number
  - `bitbucket` object, nullable, required
    - `login` string
  - `confirmed` false | true, required
  - `github` object, nullable, required
    - `login` string
  - `gitlab` object, nullable, required
    - `login` string
  - `joinedFrom` object
    - `commitId` string
    - `dsyncConnectedAt` number
    - `dsyncUserId` string
    - `gitUserId` union
      - string
      - number
    - `gitUserLogin` string
    - `idpUserId` string
    - `origin` 'account-update' | 'bitbucket' | 'dsync' | 'feedback' | 'github' | 'gitlab' | 'import' | 'link' | 'mail' | 'nsnb-auto-approve' | 'nsnb-hobby-upgrade' | 'nsnb-invite' | 'nsnb-redeploy' | 'nsnb-redeploy-attribution-card' | 'nsnb-request-access' | 'nsnb-viewer-upgrade' | 'org-admin-sync' | 'organization-teams' | 'saml' | 'teams', required
    - `repoId` string
    - `repoPath` string
    - `ssoConnectedAt` number
    - `ssoUserId` string
  - `teamName` string, required
  - `teamSlug` string, required

## Other responses

- `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`

## Changes

- **2026-10-28** `ddb2b6193ceb`: 1 warning
  - added the new `org-admin-sync` enum value to the `joinedFrom/origin` response property for the response status `200`
- **2026-09-18** `c32b8afee578`: 1 info
  - the response property `confirmed` became required for the status `200`
- **2026-07-21** `2ae10ee9d21c`: 1 info
  - added the non-success response with the status `410`
- **2026-06-11** `14b4658f819e`: 7 warning, 1 info
  - added the new `account-update` enum value to the `joinedFrom/origin` response property for the response status `200`
  - added the new `nsnb-hobby-upgrade` enum value to the `joinedFrom/origin` response property for the response status `200`
  - added the new `nsnb-invite` enum value to the `joinedFrom/origin` response property for the response status `200`
  - added the new `nsnb-redeploy` enum value to the `joinedFrom/origin` response property for the response status `200`
  - …4 more
- **2026-02-02** `5264f094c3d3`: 1 warning
  - added the new `nsnb-auto-approve` enum value to the `joinedFrom/origin` response property for the response status `200`

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v1/teams/:teamId/request/post.md)

---

[API](https://skmtc.dev/vercel/apis/vercel-api.md) - [All operations](https://skmtc.dev/vercel/apis/vercel-api/llms.txt) - [OpenAPI document](https://skmtc.dev/vercel/apis/vercel-api/revisions/60686c0e1f6a?raw)
