GitHub-hosted runners

Use the REST API to interact with GitHub-hosted runners in GitHub Actions.

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 GitHub-hosted runners for an organization

GET /orgs/{org}/actions/hosted-runners

Lists all GitHub-hosted runners configured in an organization.
OAuth app tokens and personal access tokens (classic) need the manage_runner:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners

Response schema (Status: 200):

Create a GitHub-hosted runner for an organization

POST /orgs/{org}/actions/hosted-runners

Creates a GitHub-hosted runner for an organization.
OAuth tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X POST \
  https://api.github.com/orgs/ORG/actions/hosted-runners \
  -d '{
  "name": "My Hosted runner",
  "image": {
    "id": "ubuntu-latest",
    "source": "github"
  },
  "runner_group_id": 1,
  "size": "4-core",
  "maximum_runners": 50,
  "enable_static_ip": false
}'

Response schema (Status: 201):

List custom images for an organization

GET /orgs/{org}/actions/hosted-runners/images/custom

List custom images for an organization.
OAuth tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/images/custom

Response schema (Status: 200):

Get a custom image definition for GitHub Actions Hosted Runners

GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}

Get a custom image definition for GitHub Actions Hosted Runners.
OAuth tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/images/custom/IMAGE_DEFINITION_ID

Response schema (Status: 200):

Delete a custom image from the organization

DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}

Delete a custom image from the organization.
OAuth tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/orgs/ORG/actions/hosted-runners/images/custom/IMAGE_DEFINITION_ID

Response schema (Status: 204):

List image versions of a custom image for an organization

GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions

List image versions of a custom image for an organization.
OAuth tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/images/custom/IMAGE_DEFINITION_ID/versions

Response schema (Status: 200):

Get an image version of a custom image for GitHub Actions Hosted Runners

GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}

Get an image version of a custom image for GitHub Actions Hosted Runners.
OAuth tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/images/custom/IMAGE_DEFINITION_ID/versions/VERSION

Response schema (Status: 200):

Delete an image version of custom image from the organization

DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}

Delete an image version of custom image from the organization.
OAuth tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/orgs/ORG/actions/hosted-runners/images/custom/IMAGE_DEFINITION_ID/versions/VERSION

Response schema (Status: 204):

Get GitHub-owned images for GitHub-hosted runners in an organization

GET /orgs/{org}/actions/hosted-runners/images/github-owned

Get the list of GitHub-owned images available for GitHub-hosted runners for an organization.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/images/github-owned

Response schema (Status: 200):

Get partner images for GitHub-hosted runners in an organization

GET /orgs/{org}/actions/hosted-runners/images/partner

Get the list of partner images available for GitHub-hosted runners for an organization.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/images/partner

Response schema (Status: 200):

Same response schema as Get GitHub-owned images for GitHub-hosted runners in an organization.

Get limits on GitHub-hosted runners for an organization

GET /orgs/{org}/actions/hosted-runners/limits

Get the GitHub-hosted runners limits for an organization.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/limits

Response schema (Status: 200):

Get GitHub-hosted runners machine specs for an organization

GET /orgs/{org}/actions/hosted-runners/machine-sizes

Get the list of machine specs available for GitHub-hosted runners for an organization.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/machine-sizes

Response schema (Status: 200):

Get platforms for GitHub-hosted runners in an organization

GET /orgs/{org}/actions/hosted-runners/platforms

Get the list of platforms available for GitHub-hosted runners for an organization.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/platforms

Response schema (Status: 200):

Get a GitHub-hosted runner for an organization

GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}

Gets a GitHub-hosted runner configured in an organization.
OAuth app tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X GET \
  https://api.github.com/orgs/ORG/actions/hosted-runners/HOSTED_RUNNER_ID

Response schema (Status: 200):

Same response schema as Create a GitHub-hosted runner for an organization.

Update a GitHub-hosted runner for an organization

PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}

Updates a GitHub-hosted runner for an organization.
OAuth app tokens and personal access tokens (classic) need the manage_runners:org scope to use this endpoint.

Parameters

Headers

Path and query parameters

Body parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X PATCH \
  https://api.github.com/orgs/ORG/actions/hosted-runners/HOSTED_RUNNER_ID \
  -d '{
  "name": "My larger runner",
  "runner_group_id": 1,
  "maximum_runners": 50,
  "enable_static_ip": false
}'

Response schema (Status: 200):

Same response schema as Create a GitHub-hosted runner for an organization.

Delete a GitHub-hosted runner for an organization

DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}

Deletes a GitHub-hosted runner for an organization.

Parameters

Headers

Path and query parameters

HTTP response status codes

Code examples

Example

Request:

curl -L \
  -X DELETE \
  https://api.github.com/orgs/ORG/actions/hosted-runners/HOSTED_RUNNER_ID

Response schema (Status: 202):

Same response schema as Create a GitHub-hosted runner for an organization.