close
Skip to main content
The REST API is now versioned. For more information, see "About API versioning."

REST API endpoints for GitHub Actions cache

Use the REST API to interact with the cache for repositories in GitHub Actions.

About the cache in GitHub Actions

You can use the REST API to query and manage the cache for repositories in GitHub Actions. You can also install a GitHub CLI extension to manage your caches from the command line. For more information, see Dependency caching reference.

Get GitHub Actions cache retention limit for an enterprise

Gets GitHub Actions cache retention limit for an enterprise. All organizations and repositories under this enterprise may not set a higher cache retention limit.

OAuth tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "Get GitHub Actions cache retention limit for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

get/enterprises/{enterprise}/actions/cache/retention-limit
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/actions/cache/retention-limit

Response

Status: 200
{ "max_cache_retention_days": 80 }

Set GitHub Actions cache retention limit for an enterprise

Sets GitHub Actions cache retention limit for an enterprise. All organizations and repositories under this enterprise may not set a higher cache retention limit.

OAuth tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "Set GitHub Actions cache retention limit for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

Body parameters
Name, Type, Description
max_cache_retention_days integer

For repositories & organizations in an enterprise, the maximum duration, in days, for which caches in a repository may be retained.

http_status_code

status_codeDescription
204

No Content

400

Bad Request

403

Forbidden

404

Resource not found

code_samples

request_example

put/enterprises/{enterprise}/actions/cache/retention-limit
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/actions/cache/retention-limit \ -d '{"max_cache_retention_days":80}'

Response

Status: 204

Get GitHub Actions cache storage limit for an enterprise

Gets GitHub Actions cache storage limit for an enterprise. All organizations and repositories under this enterprise may not set a higher cache storage limit.

OAuth tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "Get GitHub Actions cache storage limit for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

get/enterprises/{enterprise}/actions/cache/storage-limit
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/actions/cache/storage-limit

Response

Status: 200
{ "max_cache_size_gb": 150 }

Set GitHub Actions cache storage limit for an enterprise

Sets GitHub Actions cache storage limit for an enterprise. All organizations and repositories under this enterprise may not set a higher cache storage limit.

OAuth tokens and personal access tokens (classic) need the admin:enterprise scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Enterprise administration" enterprise permissions (write)

Parameters for "Set GitHub Actions cache storage limit for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

Body parameters
Name, Type, Description
max_cache_size_gb integer

For repositories & organizations in an enterprise, the maximum size limit for the sum of all caches in a repository, in gigabytes.

http_status_code

status_codeDescription
204

No Content

400

Bad Request

403

Forbidden

404

Resource not found

code_samples

request_example

put/enterprises/{enterprise}/actions/cache/storage-limit
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/actions/cache/storage-limit \ -d '{"max_cache_size_gb":150}'

Response

Status: 204

Get GitHub Actions cache retention limit for an organization

Gets GitHub Actions cache retention limit for an organization. All repositories under this organization may not set a higher cache retention limit.

OAuth tokens and personal access tokens (classic) need the admin:organization scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" organization permissions (read)

Parameters for "Get GitHub Actions cache retention limit for an organization"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

get/organizations/{org}/actions/cache/retention-limit
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/organizations/ORG/actions/cache/retention-limit

Response

Status: 200
{ "max_cache_retention_days": 80 }

Set GitHub Actions cache retention limit for an organization

Sets GitHub Actions cache retention limit for an organization. All repositories under this organization may not set a higher cache retention limit.

OAuth tokens and personal access tokens (classic) need the admin:organization scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" organization permissions (write)

Parameters for "Set GitHub Actions cache retention limit for an organization"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

Body parameters
Name, Type, Description
max_cache_retention_days integer

For repositories in this organization, the maximum duration, in days, for which caches in a repository may be retained.

http_status_code

status_codeDescription
204

No Content

400

Bad Request

403

Forbidden

404

Resource not found

code_samples

request_example

put/organizations/{org}/actions/cache/retention-limit
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/organizations/ORG/actions/cache/retention-limit \ -d '{"max_cache_retention_days":80}'

Response

Status: 204

Get GitHub Actions cache storage limit for an organization

Gets GitHub Actions cache storage limit for an organization. All repositories under this organization may not set a higher cache storage limit.

OAuth tokens and personal access tokens (classic) need the admin:organization scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" organization permissions (read)

Parameters for "Get GitHub Actions cache storage limit for an organization"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

get/organizations/{org}/actions/cache/storage-limit
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/organizations/ORG/actions/cache/storage-limit

Response

Status: 200
{ "max_cache_size_gb": 150 }

Set GitHub Actions cache storage limit for an organization

Sets GitHub Actions cache storage limit for an organization. All organizations and repositories under this organization may not set a higher cache storage limit.

OAuth tokens and personal access tokens (classic) need the admin:organization scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" organization permissions (write)

Parameters for "Set GitHub Actions cache storage limit for an organization"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

Body parameters
Name, Type, Description
max_cache_size_gb integer

For repositories in the organization, the maximum size limit for the sum of all caches in a repository, in gigabytes.

http_status_code

status_codeDescription
204

No Content

400

Bad Request

403

Forbidden

404

Resource not found

code_samples

request_example

put/organizations/{org}/actions/cache/storage-limit
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/organizations/ORG/actions/cache/storage-limit \ -d '{"max_cache_size_gb":150}'

Response

Status: 204

Get GitHub Actions cache usage for an organization

Gets the total GitHub Actions cache usage for an organization. The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated.

OAuth tokens and personal access tokens (classic) need the read:org scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" organization permissions (read)

Parameters for "Get GitHub Actions cache usage for an organization"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

http_status_code

status_codeDescription
200

OK

code_samples

request_example

get/orgs/{org}/actions/cache/usage
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/orgs/ORG/actions/cache/usage

Response

Status: 200
{ "total_active_caches_size_in_bytes": 3344284, "total_active_caches_count": 5 }

List repositories with GitHub Actions cache usage for an organization

Lists repositories and their GitHub Actions cache usage for an organization. The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated.

OAuth tokens and personal access tokens (classic) need the read:org scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" organization permissions (read)

Parameters for "List repositories with GitHub Actions cache usage for an organization"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
org string Required

The organization name. The name is not case sensitive.

Query parameters
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: 30

page integer

The page number of the results to fetch. For more information, see "Using pagination in the REST API."

Default: 1

http_status_code

status_codeDescription
200

OK

code_samples

request_example

get/orgs/{org}/actions/cache/usage-by-repository
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/orgs/ORG/actions/cache/usage-by-repository

Response

Status: 200
{ "total_count": 2, "repository_cache_usages": [ { "full_name": "octo-org/Hello-World", "active_caches_size_in_bytes": 2322142, "active_caches_count": 3 }, { "full_name": "octo-org/server", "active_caches_size_in_bytes": 1022142, "active_caches_count": 2 } ] }

Get GitHub Actions cache retention limit for a repository

Gets GitHub Actions cache retention limit for a repository. This determines how long caches will be retained for, if not manually removed or evicted due to size constraints.

OAuth tokens and personal access tokens (classic) need the admin:repository scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" repository permissions (read)

Parameters for "Get GitHub Actions cache retention limit for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

get/repos/{owner}/{repo}/actions/cache/retention-limit
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/repos/OWNER/REPO/actions/cache/retention-limit

Response

Status: 200
{ "max_cache_retention_days": 80 }

Set GitHub Actions cache retention limit for a repository

Sets GitHub Actions cache retention limit for a repository. This determines how long caches will be retained for, if not manually removed or evicted due to size constraints.

OAuth tokens and personal access tokens (classic) need the admin:repository scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" repository permissions (write)

Parameters for "Set GitHub Actions cache retention limit for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

Body parameters
Name, Type, Description
max_cache_retention_days integer

The maximum number of days to keep caches in this repository.

http_status_code

status_codeDescription
204

No Content

400

Bad Request

403

Forbidden

404

Resource not found

code_samples

request_example

put/repos/{owner}/{repo}/actions/cache/retention-limit
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/repos/OWNER/REPO/actions/cache/retention-limit \ -d '{"max_cache_retention_days":80}'

Response

Status: 204

Get GitHub Actions cache storage limit for a repository

Gets GitHub Actions cache storage limit for a repository. This determines the maximum size of caches that can be stored before eviction occurs.

OAuth tokens and personal access tokens (classic) need the admin:repository scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Actions" repository permissions (read)

Parameters for "Get GitHub Actions cache storage limit for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

http_status_code

status_codeDescription
200

OK

403

Forbidden

404

Resource not found

code_samples

request_example

get/repos/{owner}/{repo}/actions/cache/storage-limit
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/repos/OWNER/REPO/actions/cache/storage-limit

Response

Status: 200
{ "max_cache_size_gb": 150 }

Set GitHub Actions cache storage limit for a repository

Sets GitHub Actions cache storage limit for a repository. This determines the maximum size of caches that can be stored before eviction occurs.

OAuth tokens and personal access tokens (classic) need the admin:repository scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Administration" repository permissions (write)

Parameters for "Set GitHub Actions cache storage limit for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

Body parameters
Name, Type, Description
max_cache_size_gb integer

The maximum total cache size for this repository, in gigabytes.

http_status_code

status_codeDescription
204

No Content

400

Bad Request

403

Forbidden

404

Resource not found

code_samples

request_example

put/repos/{owner}/{repo}/actions/cache/storage-limit
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/repos/OWNER/REPO/actions/cache/storage-limit \ -d '{"max_cache_size_gb":150}'

Response

Status: 204

Get GitHub Actions cache usage for a repository

Gets GitHub Actions cache usage for a repository. The data fetched using this API is refreshed approximately every 5 minutes, so values returned from this endpoint may take at least 5 minutes to get updated.

Anyone with read access to the repository can use this endpoint.

If the repository is private, OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Actions" repository permissions (read)

allows_public_read_access

Parameters for "Get GitHub Actions cache usage for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

http_status_code

status_codeDescription
200

OK

code_samples

request_example

get/repos/{owner}/{repo}/actions/cache/usage
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/repos/OWNER/REPO/actions/cache/usage

Response

Status: 200
{ "full_name": "octo-org/Hello-World", "active_caches_size_in_bytes": 2322142, "active_caches_count": 3 }

List GitHub Actions caches for a repository

Lists the GitHub Actions caches for a repository.

OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Actions" repository permissions (read)

allows_public_read_access

Parameters for "List GitHub Actions caches for a repository"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

Query parameters
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: 30

page integer

The page number of the results to fetch. For more information, see "Using pagination in the REST API."

Default: 1

ref string

The full Git reference for narrowing down the cache. The ref for a branch should be formatted as refs/heads/<branch name>. To reference a pull request use refs/pull/<number>/merge.

key string

An explicit key or prefix for identifying the cache

sort string

The property to sort the results by. created_at means when the cache was created. last_accessed_at means when the cache was last accessed. size_in_bytes is the size of the cache in bytes.

Default: last_accessed_at

Can be one of: created_at, last_accessed_at, size_in_bytes

direction string

The direction to sort the results by.

Default: desc

Can be one of: asc, desc

http_status_code

status_codeDescription
200

OK

code_samples

request_example

get/repos/{owner}/{repo}/actions/caches
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/repos/OWNER/REPO/actions/caches

Response

Status: 200
{ "total_count": 1, "actions_caches": [ { "id": 505, "ref": "refs/heads/main", "key": "Linux-node-958aff96db2d75d67787d1e634ae70b659de937b", "version": "73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0", "last_accessed_at": "2019-01-24T22:45:36.000Z", "created_at": "2019-01-24T22:45:36.000Z", "size_in_bytes": 1024 } ] }

Delete GitHub Actions caches for a repository (using a cache key)

Deletes one or more GitHub Actions caches for a repository, using a complete cache key. By default, all caches that match the provided key are deleted, but you can optionally provide a Git ref to restrict deletions to caches that match both the provided key and the Git ref.

OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Actions" repository permissions (write)

Parameters for "Delete GitHub Actions caches for a repository (using a cache key)"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

Query parameters
Name, Type, Description
key string Required

A key for identifying the cache.

ref string

The full Git reference for narrowing down the cache. The ref for a branch should be formatted as refs/heads/<branch name>. To reference a pull request use refs/pull/<number>/merge.

http_status_code

status_codeDescription
200

OK

code_samples

request_example

delete/repos/{owner}/{repo}/actions/caches
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/repos/OWNER/REPO/actions/caches?key=Linux-node-958aff96db2d75d67787d1e634ae70b659de937b"

Response

Status: 200
{ "total_count": 1, "actions_caches": [ { "id": 505, "ref": "refs/heads/main", "key": "Linux-node-958aff96db2d75d67787d1e634ae70b659de937b", "version": "73885106f58cc52a7df9ec4d4a5622a5614813162cb516c759a30af6bf56e6f0", "last_accessed_at": "2019-01-24T22:45:36.000Z", "created_at": "2019-01-24T22:45:36.000Z", "size_in_bytes": 1024 } ] }

Delete a GitHub Actions cache for a repository (using a cache ID)

Deletes a GitHub Actions cache for a repository, using a cache ID.

OAuth tokens and personal access tokens (classic) need the repo scope to use this endpoint.

fine_grained_access

works_with_fine_grained_tokens:

permission_set:

  • "Actions" repository permissions (write)

Parameters for "Delete a GitHub Actions cache for a repository (using a cache ID)"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
owner string Required

The account owner of the repository. The name is not case sensitive.

repo string Required

The name of the repository without the .git extension. The name is not case sensitive.

cache_id integer Required

The unique identifier of the GitHub Actions cache.

http_status_code

status_codeDescription
204

No Content

code_samples

request_example

delete/repos/{owner}/{repo}/actions/caches/{cache_id}
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/repos/OWNER/REPO/actions/caches/CACHE_ID

Response

Status: 204