You can monitor your GitHub Actions and GitHub Packages charges and usage for a user and organization through the Billing API.
You can get billing information for an enterprise. For more information, see the "GitHub Enterprise administration" REST API.
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".
Access tokens must have the repo or admin:org scope.
get /orgs/{org}/settings/billing/actions
Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept |
string | header |
Setting to |
org |
string | path |
Code samples
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/settings/billing/actionsJavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/settings/billing/actions', {
org: 'org'
})
Response
Status: 200 OK
{
"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 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."
Access tokens must have the repo or admin:org scope.
get /orgs/{org}/settings/billing/packages
Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept |
string | header |
Setting to |
org |
string | path |
Code samples
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/settings/billing/packagesJavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/settings/billing/packages', {
org: 'org'
})
Response
Status: 200 OK
{
"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."
Access tokens must have the repo or admin:org scope.
get /orgs/{org}/settings/billing/shared-storage
Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept |
string | header |
Setting to |
org |
string | path |
Code samples
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/orgs/ORG/settings/billing/shared-storageJavaScript (@octokit/core.js)
await octokit.request('GET /orgs/{org}/settings/billing/shared-storage', {
org: 'org'
})
Response
Status: 200 OK
{
"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".
Access tokens must have the user scope.
get /users/{username}/settings/billing/actions
Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept |
string | header |
Setting to |
username |
string | path |
Code samples
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/users/USERNAME/settings/billing/actionsJavaScript (@octokit/core.js)
await octokit.request('GET /users/{username}/settings/billing/actions', {
username: 'username'
})
Response
Status: 200 OK
{
"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."
Access tokens must have the user scope.
get /users/{username}/settings/billing/packages
Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept |
string | header |
Setting to |
username |
string | path |
Code samples
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/users/USERNAME/settings/billing/packagesJavaScript (@octokit/core.js)
await octokit.request('GET /users/{username}/settings/billing/packages', {
username: 'username'
})
Response
Status: 200 OK
{
"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."
Access tokens must have the user scope.
get /users/{username}/settings/billing/shared-storage
Parameters
| Name | Type | In | Description |
|---|---|---|---|
accept |
string | header |
Setting to |
username |
string | path |
Code samples
Shell
curl \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/users/USERNAME/settings/billing/shared-storageJavaScript (@octokit/core.js)
await octokit.request('GET /users/{username}/settings/billing/shared-storage', {
username: 'username'
})
Response
Status: 200 OK
{
"days_left_in_billing_cycle": 20,
"estimated_paid_storage_for_month": 15,
"estimated_storage_for_month": 40
}