---
title: "Add Manager"
method: POST
path: "/managers"
tags: ["Users"]
---

# Add Manager

`POST /managers`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/managers`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-api-v2/docs/managers/post.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `manager` (Read and Write).

Adds a manager to your account and grants them access to the listed projects, TMs, glossaries, and style guides. Default TMs and glossaries of the listed projects are granted too. A user added by `username`, or by an `email` that belongs to a Crowdin account, becomes `active` at once and gets a notification. Anyone else gets an invitation email and stays `pending` until they accept it. If an invitation email went to the address in the last 24 hours, from any account, no new email is sent, but the invitation is saved. An invitation can't be sent again: adding a person who already has your pending invitation returns `409` and sends no email.

__Note:__ Available only if your email is verified. Up to 50 manager emails a day; each manager takes a seat in your plan's managers limit

## Request body

- CrowdinAccountManagerCreateForm
  - `username` string: Username of a registered user. The user becomes an `active` manager at once. __Note:__ One of fields `username` or `email` is required. Both cannot be provided simultaneously
  - `email` string, email: Email of the person to add. If it belongs to a Crowdin account, the manager is `active` at once. Otherwise the person gets an invitation email and stays `pending` until they accept it. __Note:__ One of fields `username` or `email` is required. Both cannot be provided simultaneously
  - `projectIds` integer[]: IDs of your projects, or projects you manage, to grant manager access to. Default TMs and glossaries of these projects are granted too. Get via [List Projects](#operation/api.projects.getMany)
  - `tmIds` integer[]: IDs of your TMs, or TMs you manage, to grant access to. Get via [List TMs](#operation/api.tms.getMany)
  - `glossaryIds` integer[]: IDs of your glossaries, or glossaries you manage, to grant access to. Get via [List Glossaries](#operation/api.glossaries.getMany)
  - `styleGuideIds` integer[]: IDs of your style guides, or style guides you manage, to grant access to. Get via [List Style Guides](#operation/api.style-guides.getMany) __Note:__ At least one of `projectIds`, `tmIds`, `glossaryIds` or `styleGuideIds` must not be empty
  - `message` string: Personal message added to the notification email

## Response `201`

Manager was successfully added or invited

- CrowdinAccountManagerResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` CrowdinAccountManager, required
    - `id` integer: ID of the manager. The same as `user.id`
    - `user` object: The person who manages your account, or who was invited to
      - `id` integer: User ID
      - `username` string: User username. For an invited person without a Crowdin account, a masked email
      - `fullName` string: User full name. The username when the user has not set one
      - `avatarUrl` string: User avatar URL
    - `status` 'active' | 'pending': `active` when the manager already has access, `pending` when the invitation is not accepted yet
    - `isApplicationAgent` boolean: If `true`, the manager is the agent of a Crowdin app installed in your account
    - `projectIds` integer[]: IDs of your projects, and projects you manage, that the manager has access to. For `pending`, the offered access
    - `tmIds` integer[]: IDs of the TMs the manager has access to, including the default TMs of `projectIds`
    - `projectDefaultTmIds` integer[]: Subset of `tmIds` that are default TMs of `projectIds`. They follow the projects and can't be removed on their own
    - `glossaryIds` integer[]: IDs of the glossaries the manager has access to, including the default glossaries of `projectIds`
    - `projectDefaultGlossaryIds` integer[]: Subset of `glossaryIds` that are default glossaries of `projectIds`. They follow the projects and can't be removed on their own
    - `styleGuideIds` integer[]: IDs of the style guides the manager has access to
    - `createdAt` string, date-time, nullable: Date the manager was added or invited, in ISO 8601 format. `null` for records created before this date was stored

## Other responses

- `400`: Invalid Request Parameters
- `401`: Unauthorized
- `403`: Forbidden
- `405`: Method Not Allowed
- `409`: The person is already your manager or has your pending invitation
- `429`: The daily limit of manager emails is reached, or managers of your account are being updated by another request

---

[API](https://skmtc.dev/crowdin/apis/crowdin-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-api-v2/revisions/27aae7751699?raw)
