Licensing
Utilisez l’API REST pour obtenir des informations de licence.
List enterprise consumed licenses
Lists the license consumption information for all users, including those from connected servers, associated with an enterprise.
The authenticated user must be an enterprise admin to use this endpoint.
OAuth app tokens and personal access tokens (classic) need the read:enterprise scope to use this endpoint.
Jetons d'accès granulaires pour «List enterprise consumed licenses»
Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:
- jetons d’accès utilisateur de l’application GitHub
- jetons d’accès d’installation de l’application GitHub
Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:
- "Enterprise administration" enterprise permissions (read)
Paramètres pour «List enterprise consumed licenses »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name. |
| Nom, Type, Description |
|---|
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Par défaut: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Par défaut: |
Codes d’état de réponse HTTP pour «List enterprise consumed licenses »
| Code de statut | Description |
|---|---|
200 | Consumed Licenses Response |
Exemples de code pour «List enterprise consumed licenses »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/consumed-licensesConsumed Licenses Response
Status: 200{
"total_seats_consumed": 5000,
"total_seats_purchased": 4500,
"users": [
{
"github_com_login": "monalisa",
"github_com_name": "Mona Lisa",
"enterprise_server_user_ids": [
"example_host_name.com:123",
"example_host_name_2:222"
],
"github_com_user": true,
"enterprise_server_user": true,
"visual_studio_subscription_user": false,
"license_type": "enterprise",
"github_com_profile": "https://github.com/monalisa",
"github_com_member_roles": [
"org1:Owner",
"org2:Owner"
],
"github_com_enterprise_roles": [
"owner"
],
"github_com_verified_domain_emails": [
"[email protected]"
],
"github_com_saml_name_id": "monalisa",
"github_com_orgs_with_pending_invites": [
"org1",
"org2"
],
"github_com_two_factor_auth": true,
"enterprise_server_emails": [
"[email protected]"
],
"visual_studio_license_status": "",
"visual_studio_subscription_email": "",
"total_user_accounts": 3
},
{
"github_com_login": "",
"github_com_name": "",
"enterprise_server_user_ids": [
"example_host_name:123"
],
"github_com_user": false,
"enterprise_server_user": true,
"visual_studio_subscription_user": false,
"license_type": "enterprise",
"github_com_profile": "",
"github_com_member_roles": [],
"github_com_enterprise_role": "",
"github_com_enterprise_roles": [],
"github_com_verified_domain_emails": [],
"github_com_saml_name_id": "",
"github_com_orgs_with_pending_invites": [],
"github_com_two_factor_auth": "",
"enterprise_server_emails": [
"[email protected]"
],
"visual_studio_license_status": "",
"visual_studio_subscription_email": "",
"total_user_accounts": 1
}
]
}Get a license sync status
Gets information about the status of a license sync job for an enterprise.
The authenticated user must be an enterprise admin to use this endpoint.
OAuth app tokens and personal access tokens (classic) need the read:enterprise scope to use this endpoint.
Jetons d'accès granulaires pour «Get a license sync status»
Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:
- jetons d’accès utilisateur de l’application GitHub
- jetons d’accès d’installation de l’application GitHub
Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:
- "Enterprise administration" enterprise permissions (read)
Paramètres pour «Get a license sync status »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name. |
Codes d’état de réponse HTTP pour «Get a license sync status »
| Code de statut | Description |
|---|---|
200 | License Sync Status Response |
Exemples de code pour «Get a license sync status »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/license-sync-statusLicense Sync Status Response
Status: 200{
"server_instances": [
{
"server_id": "deadbeef1",
"hostname": "github.example.com",
"last_sync": {
"date": "2020-01-01T00:00:00Z",
"status": "success",
"error": ""
}
},
{
"server_id": "filetoffish1",
"hostname": "github2.example.com",
"last_sync": {
"date": "2020-01-01T00:00:00Z",
"status": "success",
"error": ""
}
}
]
}Get GitHub Advanced Security active committers for an enterprise
Gets the GitHub Advanced Security active committers for an enterprise per repository. The authenticated user must be an enterprise admin or billing manager.
Each distinct user login across all repositories is counted as a single Advanced Security seat, so the total_advanced_security_committers is not the sum of active_users for each repository.
The total number of repositories with committer information is tracked by the total_count field.
Jetons d'accès granulaires pour «Get GitHub Advanced Security active committers for an enterprise»
Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:
- jetons d’accès utilisateur de l’application GitHub
- jetons d’accès d’installation de l’application GitHub
Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:
- "Enterprise administration" enterprise permissions (write)
Paramètres pour «Get GitHub Advanced Security active committers for an enterprise »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name. |
| Nom, Type, Description |
|---|
advanced_security_product string The security product to get GitHub Advanced Security active committers for. For standalone Code Scanning or Secret Protection products, this parameter is required to specify which product you want committer information for. For other plans this parameter cannot be used. Peut être l'un des: |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Par défaut: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Par défaut: |
Codes d’état de réponse HTTP pour «Get GitHub Advanced Security active committers for an enterprise »
| Code de statut | Description |
|---|---|
200 | Success |
Exemples de code pour «Get GitHub Advanced Security active committers for an enterprise »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/settings/billing/advanced-securitySuccess
Status: 200{
"total_advanced_security_committers": 2,
"total_count": 2,
"maximum_advanced_security_committers": 4,
"purchased_advanced_security_committers": 4,
"repositories": [
{
"name": "octocat-org/Hello-World",
"advanced_security_committers": 2,
"advanced_security_committers_breakdown": [
{
"user_login": "octocat",
"last_pushed_date": "2021-11-03",
"last_pushed_email": "[email protected]"
},
{
"user_login": "octokitten",
"last_pushed_date": "2021-10-25",
"last_pushed_email": "[email protected]"
}
]
},
{
"name": "octocat-org/server",
"advanced_security_committers": 1,
"advanced_security_committers_breakdown": [
{
"user_login": "octokitten",
"last_pushed_date": "2021-10-26",
"last_pushed_email": "[email protected]"
}
]
}
]
}Get a list of Visual Studio subscriptions for the enterprise
Retrieves a list of Visual Studio subscriptions for the specified enterprise.
Jetons d'accès granulaires pour «Get a list of Visual Studio subscriptions for the enterprise»
Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:
- jetons d’accès utilisateur de l’application GitHub
- jetons d’accès d’installation de l’application GitHub
Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:
- "Enterprise Licensing" enterprise permissions (read)
Paramètres pour «Get a list of Visual Studio subscriptions for the enterprise »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
enterprise string RequisThe slug version of the enterprise name |
| Nom, Type, Description |
|---|
is_unmatched_only boolean When true, only returns Visual Studio subscriptions that are not matched to a GitHub user. |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Par défaut: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Par défaut: |
Codes d’état de réponse HTTP pour «Get a list of Visual Studio subscriptions for the enterprise »
| Code de statut | Description |
|---|---|
200 | OK |
404 | Resource not found |
Exemples de code pour «Get a list of Visual Studio subscriptions for the enterprise »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/visual-studio-subscriptionsResponse
Status: 200{
"total_count": 1,
"visual_studio_subscription_assignments": [
{
"email": "[email protected]",
"subscriptionId": "00000000-0000-0000-0000-000000000000",
"username": "gh-user",
"manual_match": true
}
]
}Add or update a Visual Studio subscription user match
Updates a manual match between a user and a Visual Studio subscription.
Jetons d'accès granulaires pour «Add or update a Visual Studio subscription user match»
Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:
- jetons d’accès utilisateur de l’application GitHub
- jetons d’accès d’installation de l’application GitHub
Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:
- "Enterprise Licensing" enterprise permissions (write)
Paramètres pour «Add or update a Visual Studio subscription user match »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
visual_studio_subscription_id string RequisThe ID of the Visual Studio subscription to add or update the match for. This is a GUID that comes from the Visual Studio management portal. |
enterprise string RequisThe slug version of the enterprise name |
| Nom, Type, Description |
|---|
user_identifier string The handle for the GitHub user account or a verified email associated with their account. |
Codes d’état de réponse HTTP pour «Add or update a Visual Studio subscription user match »
| Code de statut | Description |
|---|---|
200 | OK |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Exemples de code pour «Add or update a Visual Studio subscription user match »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-X PUT \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/visual-studio-subscriptions/VISUAL_STUDIO_SUBSCRIPTION_ID \
-d '{"user_identifier":"monalisa"}'Response
Status: 200{
"visual_studio_subscription_email": "[email protected]",
"subscription_id": "00000000-0000-0000-0000-000000000000",
"username": "gh-user",
"manual_match": true
}Delete a Visual Studio subscription user match
Deletes a manual match between a user and a Visual Studio subscription.
Jetons d'accès granulaires pour «Delete a Visual Studio subscription user match»
Ce point de terminaison fonctionne avec les types de tokens à granularité fine suivants:
- jetons d’accès utilisateur de l’application GitHub
- jetons d’accès d’installation de l’application GitHub
Le token à granularité fine doit disposer de l’ensemble d’autorisations suivant:
- "Enterprise Licensing" enterprise permissions (write)
Paramètres pour «Delete a Visual Studio subscription user match »
| Nom, Type, Description |
|---|
accept string Setting to |
| Nom, Type, Description |
|---|
visual_studio_subscription_id string RequisThe ID of the Visual Studio subscription to delete the match for. This is a GUID that comes from the visual studio management portal. |
enterprise string RequisThe slug version of the enterprise name |
Codes d’état de réponse HTTP pour «Delete a Visual Studio subscription user match »
| Code de statut | Description |
|---|---|
200 | OK |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Exemples de code pour «Delete a Visual Studio subscription user match »
Si vous accédez à GitHub à GHE.com, remplacez api.github.com par le sous-domaine dédié de votre entreprise à api.SUBDOMAIN.ghe.com.
Exemple de requête
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
https://api.github.com/enterprises/ENTERPRISE/visual-studio-subscriptions/VISUAL_STUDIO_SUBSCRIPTION_IDResponse
Status: 200{
"visual_studio_subscription_email": "[email protected]",
"subscription_id": "00000000-0000-0000-0000-000000000000",
"username": null,
"manual_match": false
}