---
title: "Create team"
method: POST
path: "/api/v2/teams"
tags: ["Teams"]
---

# Create team

`POST /api/v2/teams`

Create a team. To learn more, read [Creating a team](https://launchdarkly.com/docs/home/account/create-teams).

### Expanding the teams response
LaunchDarkly supports four fields for expanding the "Create team" response. By default, these fields are **not** included in the response.

To expand the response, append the `expand` query parameter and add a comma-separated list with any of the following fields:

* `members` includes the total count of members that belong to the team.
* `roles` includes a paginated list of the custom roles that you have assigned to the team.
* `projects` includes a paginated list of the projects that the team has any write access to.
* `maintainers` includes a paginated list of the maintainers that you have assigned to the team.

For example, `expand=members,roles` includes the `members` and `roles` fields in the response.

## Query parameters

- `expand` string, string — A comma-separated list of properties that can reveal additional information in the response. Supported fields are explained above.

## Request body

- TeamPostInput
  - `customRoleKeys` string[] — List of custom role keys the team will access
  - `description` string — A description of the team
  - `key` string, required — The team key
  - `memberIDs` string[] — A list of member IDs who belong to the team
  - `name` string, required — A human-friendly name for the team
  - `permissionGrants` PermissionGrantInput[] — A list of permission grants. Permission grants allow access to a specific action, without having to create or update a custom role.
    - `actionSet` 'maintainTeam' — A group of related actions to allow. Specify either <code>actionSet</code> or <code>actions</code>. Use <code>maintainTeam</code> to add team maintainers.
    - `actions` string[] — A list of actions to allow. Specify either <code>actionSet</code> or <code>actions</code>. To learn more, read [Role actions](https://launchdarkly.com/docs/ld-docs/home/account/role-actions).
    - `memberIDs` string[] — A list of member IDs who receive the permission grant.
  - `roleAttributes` RoleAttributeMap

## Response `201`

Teams response

- Team
  - `description` string — A description of the team
  - `key` string — The team key
  - `name` string — A human-friendly name for the team
  - `_access` Access
    - `denied` AccessDenied[], required
      - `action` string, required
      - `reason` AccessDeniedReason, required
        - `resources` string[] — Resource specifier strings
        - `notResources` string[] — Targeted resources are the resources NOT in this list. The <code>resources</code> and <code>notActions</code> fields must be empty to use this field.
        - `actions` ActionSpecifier[] — Actions to perform on a resource
        - `notActions` ActionSpecifier[] — Targeted actions are the actions NOT in this list. The <code>actions</code> and <code>notResources</code> fields must be empty to use this field.
        - `effect` 'allow' | 'deny', required — Whether this statement should allow or deny actions on the resources.
        - `role_name` string
    - `allowed` AccessAllowedRep[], required
      - `action` string, required
      - `reason` AccessAllowedReason, required
        - `resources` string[] — Resource specifier strings
        - `notResources` string[] — Targeted resources are the resources NOT in this list. The <code>resources</code> and <code>notActions</code> fields must be empty to use this field.
        - `actions` ActionSpecifier[] — Actions to perform on a resource
        - `notActions` ActionSpecifier[] — Targeted actions are the actions NOT in this list. The <code>actions</code> and <code>notResources</code> fields must be empty to use this field.
        - `effect` 'allow' | 'deny', required — Whether this statement should allow or deny actions on the resources.
        - `role_name` string
  - `_creationDate` integer
  - `_links` object — The location and content type of related resources
  - `_lastModified` integer
  - `_version` integer — The team version
  - `_idpSynced` boolean — Whether the team has been synced with an external identity provider (IdP). Team sync is available to customers on an Enterprise plan.
  - `roleAttributes` RoleAttributeMap
  - `roles` TeamCustomRoles
    - `totalCount` integer — The number of custom roles assigned to this team
    - `items` TeamCustomRole[] — An array of the custom roles that have been assigned to this team
      - `key` string — The key of the custom role
      - `name` string — The name of the custom role
      - `projects` TeamProjects
        - `totalCount` integer
        - `items` ProjectSummary[] — Details on each project where team members have write privileges on at least one resource type (e.g. flags)
          - `_id` string, required — The ID of this project
          - `_links` object, required — The location and content type of related resources
          - `key` string, required — The project key
          - `name` string, required — The project name
      - `appliedOn` integer
    - `_links` object — The location and content type of related resources
  - `members` TeamMembers
    - `totalCount` integer — The total count of members that belong to the team
  - `projects` TeamProjects
    - `totalCount` integer
    - `items` ProjectSummary[] — Details on each project where team members have write privileges on at least one resource type (e.g. flags)
      - `_id` string, required — The ID of this project
      - `_links` object, required — The location and content type of related resources
      - `key` string, required — The project key
      - `name` string, required — The project name
  - `maintainers` TeamMaintainers
    - `totalCount` integer — The number of maintainers of the team
    - `items` MemberSummary[] — Details on the members that have been assigned as maintainers of the team
      - `_links` object, required — The location and content type of related resources
      - `_id` string, required — The member's ID
      - `firstName` string — The member's first name
      - `lastName` string — The member's last name
      - `role` string, required — The member's base role. If the member has no additional roles, this role will be in effect.
      - `email` string, required — The member's email address
    - `_links` object — The location and content type of related resources

## Other responses

- `400` — Invalid request
- `401` — Invalid access token
- `405` — Method not allowed
- `429` — Rate limited

---

[API](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api.md) · [All operations](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/launchdarkly/launchdarkly-rest-api/revisions/69c5c9aafe78/schema)
