REST API endpoints for enterprise teams

Use the REST API to create and manage enterprise teams in your GitHub enterprise.

About enterprise teams

These endpoints are only available to authenticated members of the enterprise team's enterprise with classic personal access tokens with the read:enterprise scope for GET APIs and admin:enterprise for other APIs.

These endpoints are not compatible with fine-grained personal access tokens or GitHub App access tokens.

GitHub generates the enterprise team's slug from the team name and adds the ent: prefix.

Note

Most endpoints use Authorization: Bearer <YOUR-TOKEN> and Accept: application/vnd.github+json headers, plus X-GitHub-Api-Version: 2026-03-10. Curl examples below omit these standard headers for brevity.

List enterprise teams

GET /enterprises/{enterprise}/teams

List all teams in the enterprise for the authenticated user

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/enterprises/ENTERPRISE/teams

Response schema (Status: 200):

Array of Enterprise Team:

Create an enterprise team

POST /enterprises/{enterprise}/teams

To create an enterprise team, the authenticated user must be an owner of the enterprise.

Parameters

Headers

Path and query parameters

Body parameters

notifications_enabled - team members receive notifications when the team is @mentioned.
notifications_disabled - no one receives notifications.

Default: notifications_enabled
Can be one of: notifications_enabled, notifications_disabled

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X POST \
  https://api.github.com/enterprises/ENTERPRISE/teams \
  -d '{
  "name": "Justice League",
  "description": "A great team.",
  "group_id": "62ab9291-fae2-468e-974b-7e45096d5021"
}'

Response schema (Status: 201):

Get an enterprise team

GET /enterprises/{enterprise}/teams/{team_slug}

Gets a team using the team's slug. To create the slug, GitHub replaces special characters in the name string, changes all words to lowercase, and replaces spaces with a - separator and adds the "ent:" prefix. For example, "My TEam Näme" would become ent:my-team-name.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/enterprises/ENTERPRISE/teams/TEAM_SLUG

Response schema (Status: 200):

Update an enterprise team

PATCH /enterprises/{enterprise}/teams/{team_slug}

To edit a team, the authenticated user must be an enterprise owner.

Parameters

Headers

Path and query parameters

Body parameters

notifications_enabled - team members receive notifications when the team is @mentioned.
notifications_disabled - no one receives notifications.
Can be one of: notifications_enabled, notifications_disabled

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X PATCH \
  https://api.github.com/enterprises/ENTERPRISE/teams/TEAM_SLUG \
  -d '{
  "name": "Justice League",
  "description": "A great team.",
  "group_id": "62ab9291-fae2-468e-974b-7e45096d5021"
}'

Response schema (Status: 200):

Same response schema as Create an enterprise team.

Delete an enterprise team

DELETE /enterprises/{enterprise}/teams/{team_slug}

To delete an enterprise team, the authenticated user must be an enterprise owner.
If you are an enterprise owner, deleting an enterprise team will delete all of its IdP mappings as well.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/enterprises/ENTERPRISE/teams/TEAM_SLUG

Response schema (Status: 204):