---
title: "Invite a user"
method: POST
path: "/v2/teams/{teamId}/members"
tags: ["teams"]
---

# Invite a user

`POST /v2/teams/{teamId}/members`

## Request

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

Invite a user to join the team specified in the URL. The authenticated user needs to be an `OWNER` in order to successfully invoke this endpoint. The user to be invited must be specified by email.

## Path parameters

- `teamId` string, required

## Query parameters

- `slug` string

## Request body

- object[]
  - `email` string, email, required: The email address of the user to invite
  - `role` 'OWNER' | 'MEMBER' | 'DEVELOPER' | 'SECURITY' | 'BILLING' | 'VIEWER' | 'VIEWER_FOR_PLUS' | 'CONTRIBUTOR': The role of the user to invite
  - `projects` object[]
    - `projectId` string, required: The ID of the project.
    - `role` 'ADMIN' | 'PROJECT_VIEWER' | 'PROJECT_DEVELOPER' | 'PROJECT_GUEST', required: Sets the project roles for the invited user

## Response `200`

- InvitedTeamMember: The member was successfully added to the team.
  - `email` string, required: The email of the invited user.
  - `role` 'BILLING' | 'CONTRIBUTOR' | 'DEVELOPER' | 'MEMBER' | 'OWNER' | 'SECURITY' | 'VIEWER' | 'VIEWER_FOR_PLUS', required: The role used for the invitation
  - `teamPermissions` string[]: The team permissions of the user
  - `teamRoles` string[]: The team roles of the user
  - `uid` string, required: The ID of the invited user
  - `username` string, required: The username of the invited user

## 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`: 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
- `404`
- `410`
- `503`

## Changes

- **2026-09-30** `099fbe1f521c`: 1 info
  - added the non-success response with the status `404`
- **2026-09-17** `10dff3be52ff`: 1 warning, 1 info
  - added the new `AiGatewayUser` enum value to the `teamPermissions/items/` response property for the response status `200`
  - removed the `AiGatewayApiKeyOwnedBySelf` enum value from the `teamPermissions/items/` response property for the response status `200`
- **2026-08-31** `e31ea8d3c1e7`: 2 warning
  - added the new `AiGatewayTranscriptsManager` enum value to the `teamPermissions/items/` response property for the response status `200`
  - added the new `AiGatewayTranscriptsViewer` enum value to the `teamPermissions/items/` response property for the response status `200`
- **2026-08-13** `6ed5b7605027`: 1 warning
  - added the new `WorkflowDecryptor` enum value to the `teamPermissions/items/` response property for the response status `200`
- **2026-08-04** `ed45a5c919e5`: 1 warning
  - added the new `ConnectorManager` enum value to the `teamPermissions/items/` response property for the response status `200`

[Operation history](https://skmtc.dev/vercel/apis/vercel-api/changes/v2/teams/:teamId/members/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)
