# Add Team Member

Put someone on a team. They can use what is shared with the team right away.

`POST https://connect.mindcloud.co/v2/teams/:teamId/members`

Permissions: `role:manage`.

## Parameters

### Path

- `teamId` (string, required): The team's id, from List Teams.

### Headers

- `X-Company-Id` (string): Optional. The id of the organization to act in. Leave it out to act in the API key's own organization. A key can also act in its child organizations, and, with "Use this key across all of your organizations" on, in every organization its creator can open in the app. List them with GET /v2/companies. Every response's X-Company-Id header names the organization it acted in. See [Organizations](https://mindcloud.co/docs/api/rest/introduction/organizations).

### Body

- `userId` (string, required): The member's userId, from List Members.

## Example request

```bash
curl --request POST \
  --url 'https://connect.mindcloud.co/v2/teams/tm_Q8dL2vN6tRwe/members' \
  --header 'Authorization: Bearer $MINDCLOUD_API_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "userId": "user_2wXk9Lm4Pq7Rz3Ts8Vb1Nc6Hd"
}'
```

## Response fields

- `userId` (string): Unique id of the member.
- `name` (string): The member's name.
- `email` (string): The member's email address.
- `isPending` (boolean): True while their invite is waiting to be accepted.
- `roleId` (string): The role they hold.
- `roleName` (string): That role's name.
- `createdOn` (date): When they joined the company.

## Errors

- 403 Own membership (TEAM_MEMBERSHIP_SELF_CHANGE_FORBIDDEN): `FORBIDDEN` / `TEAM_MEMBERSHIP_SELF_CHANGE_FORBIDDEN` "You cannot change your own team membership. Ask another admin."
- 404 Not a member (TEAM_MEMBER_NOT_IN_COMPANY): `NOT_FOUND` / `TEAM_MEMBER_NOT_IN_COMPANY` "This person is not a member of your organization."
