REST API endpoints for billing
Use the REST API to get billing information for an enterprise.
About billing
You can get billing information for an enterprise. For more information, see "REST API endpoints for enterprise billing."
Get GitHub Actions billing for an organization
Gets the summary of the free and paid GitHub Actions minutes used.
Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "Managing billing for GitHub Actions".
OAuth app tokens and personal access tokens (classic) need the repo
or admin:org
scope to use this endpoint.
Fine-grained access tokens for "Get GitHub Actions billing for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get GitHub Actions billing for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
HTTP response status codes for "Get GitHub Actions billing for an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get GitHub Actions billing for an organization"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/settings/billing/actions
Response
Status: 200
{
"total_minutes_used": 305,
"total_paid_minutes_used": 0,
"included_minutes": 3000,
"minutes_used_breakdown": {
"UBUNTU": 205,
"MACOS": 10,
"WINDOWS": 90
}
}
Get GitHub Advanced Security active committers for an organization
Gets the GitHub Advanced Security active committers for an organization per repository.
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 advanced_security_committers for each repository.
If this organization defers to an enterprise for billing, the total_advanced_security_committers
returned from the organization API may include some users that are in more than one organization, so they will only consume a single Advanced Security seat at the enterprise level.
The total number of repositories with committer information is tracked by the total_count
field.
Fine-grained access tokens for "Get GitHub Advanced Security active committers for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get GitHub Advanced Security active committers for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
Name, Type, Description |
---|
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
HTTP response status codes for "Get GitHub Advanced Security active committers for an organization"
Status code | Description |
---|---|
200 | Success |
Code samples for "Get GitHub Advanced Security active committers for an organization"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/settings/billing/advanced-security
Success
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": "octocat@github.com"
},
{
"user_login": "octokitten",
"last_pushed_date": "2021-10-25",
"last_pushed_email": "octokitten@github.com"
}
]
},
{
"name": "octocat-org/server",
"advanced_security_committers": 1,
"advanced_security_committers_breakdown": [
{
"user_login": "octokitten",
"last_pushed_date": "2021-10-26",
"last_pushed_email": "octokitten@github.com"
}
]
}
]
}
Get GitHub Packages billing for an organization
Gets the free and paid storage used for GitHub Packages in gigabytes.
Paid minutes only apply to packages stored for private repositories. For more information, see "Managing billing for GitHub Packages."
OAuth app tokens and personal access tokens (classic) need the repo
or admin:org
scope to use this endpoint.
Fine-grained access tokens for "Get GitHub Packages billing for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get GitHub Packages billing for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
HTTP response status codes for "Get GitHub Packages billing for an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get GitHub Packages billing for an organization"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/settings/billing/packages
Response
Status: 200
{
"total_gigabytes_bandwidth_used": 50,
"total_paid_gigabytes_bandwidth_used": 40,
"included_gigabytes_bandwidth": 10
}
Get shared storage billing for an organization
Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages.
Paid minutes only apply to packages stored for private repositories. For more information, see "Managing billing for GitHub Packages."
OAuth app tokens and personal access tokens (classic) need the repo
or admin:org
scope to use this endpoint.
Fine-grained access tokens for "Get shared storage billing for an organization"
This endpoint works with the following fine-grained token types:
- GitHub App user access tokens
- GitHub App installation access tokens
- Fine-grained personal access tokens
The fine-grained token must have the following permission set:
- "Administration" organization permissions (read)
Parameters for "Get shared storage billing for an organization"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
org string RequiredThe organization name. The name is not case sensitive. |
HTTP response status codes for "Get shared storage billing for an organization"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get shared storage billing for an organization"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/orgs/ORG/settings/billing/shared-storage
Response
Status: 200
{
"days_left_in_billing_cycle": 20,
"estimated_paid_storage_for_month": 15,
"estimated_storage_for_month": 40
}
Get GitHub Actions billing for a user
Gets the summary of the free and paid GitHub Actions minutes used.
Paid minutes only apply to workflows in private repositories that use GitHub-hosted runners. Minutes used is listed for each GitHub-hosted runner operating system. Any job re-runs are also included in the usage. The usage returned includes any minute multipliers for macOS and Windows runners, and is rounded up to the nearest whole minute. For more information, see "Managing billing for GitHub Actions".
OAuth app tokens and personal access tokens (classic) need the user
scope to use this endpoint.
Fine-grained access tokens for "Get GitHub Actions billing for a user"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Plan" user permissions (read)
Parameters for "Get GitHub Actions billing for a user"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
username string RequiredThe handle for the GitHub user account. |
HTTP response status codes for "Get GitHub Actions billing for a user"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get GitHub Actions billing for a user"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/users/USERNAME/settings/billing/actions
Response
Status: 200
{
"total_minutes_used": 305,
"total_paid_minutes_used": 0,
"included_minutes": 3000,
"minutes_used_breakdown": {
"UBUNTU": 205,
"MACOS": 10,
"WINDOWS": 90
}
}
Get GitHub Packages billing for a user
Gets the free and paid storage used for GitHub Packages in gigabytes.
Paid minutes only apply to packages stored for private repositories. For more information, see "Managing billing for GitHub Packages."
OAuth app tokens and personal access tokens (classic) need the user
scope to use this endpoint.
Fine-grained access tokens for "Get GitHub Packages billing for a user"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Plan" user permissions (read)
Parameters for "Get GitHub Packages billing for a user"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
username string RequiredThe handle for the GitHub user account. |
HTTP response status codes for "Get GitHub Packages billing for a user"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get GitHub Packages billing for a user"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/users/USERNAME/settings/billing/packages
Response
Status: 200
{
"total_gigabytes_bandwidth_used": 50,
"total_paid_gigabytes_bandwidth_used": 40,
"included_gigabytes_bandwidth": 10
}
Get shared storage billing for a user
Gets the estimated paid and estimated total storage used for GitHub Actions and GitHub Packages.
Paid minutes only apply to packages stored for private repositories. For more information, see "Managing billing for GitHub Packages."
OAuth app tokens and personal access tokens (classic) need the user
scope to use this endpoint.
Fine-grained access tokens for "Get shared storage billing for a user"
This endpoint works with the following fine-grained token types:
The fine-grained token must have the following permission set:
- "Plan" user permissions (read)
Parameters for "Get shared storage billing for a user"
Name, Type, Description |
---|
accept string Setting to |
Name, Type, Description |
---|
username string RequiredThe handle for the GitHub user account. |
HTTP response status codes for "Get shared storage billing for a user"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get shared storage billing for a user"
If you access GitHub at GHE.com, replace api.github.com
with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com
.
Request example
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/users/USERNAME/settings/billing/shared-storage
Response
Status: 200
{
"days_left_in_billing_cycle": 20,
"estimated_paid_storage_for_month": 15,
"estimated_storage_for_month": 40
}