REST API endpoints for self-hosted runner groups
Use the REST API to interact with self-hosted runner groups for GitHub Actions.
About self-hosted runner groups in GitHub Actions
You can use the REST API to manage groups of self-hosted runners in GitHub Actions. For more information, see Managing access to self-hosted runners using groups.
These endpoints are available for authenticated users, OAuth apps, and GitHub Apps. Access tokens require repo scope for private repositories and public_repo scope for public repositories. GitHub Apps must have the administration permission for repositories or the organization_self_hosted_runners permission for organizations. Authenticated users must have admin access to repositories or organizations, or the manage_runners:enterprise scope for enterprises to use these endpoints.
List self-hosted runner groups for an enterprise
Lists all self-hosted runner groups for an enterprise.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "List self-hosted runner groups for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "List self-hosted runner groups for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
| visible_to_organizationstringOnly return runner groups that are allowed to be used by this organization. | 
HTTP response status codes for "List self-hosted runner groups for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "List self-hosted runner groups for an enterprise"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groupsResponse
Status: 200{
  "total_count": 3,
  "runner_groups": [
    {
      "id": 1,
      "name": "Default",
      "visibility": "all",
      "default": true,
      "runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner_groups/1/runners",
      "allows_public_repositories": false,
      "restricted_to_workflows": false,
      "selected_workflows": [],
      "workflow_restrictions_read_only": false
    },
    {
      "id": 2,
      "name": "octo-runner-group",
      "visibility": "selected",
      "default": false,
      "selected_organizations_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner_groups/2/organizations",
      "runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner_groups/2/runners",
      "allows_public_repositories": true,
      "restricted_to_workflows": true,
      "selected_workflows": [
        "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
      ],
      "workflow_restrictions_read_only": false
    },
    {
      "id": 3,
      "name": "expensive-hardware",
      "visibility": "private",
      "default": false,
      "runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner_groups/3/runners",
      "allows_public_repositories": true,
      "restricted_to_workflows": false,
      "selected_workflows": [
        "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
      ],
      "workflow_restrictions_read_only": false
    }
  ]
}Create a self-hosted runner group for an enterprise
Creates a new self-hosted runner group for an enterprise.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Create a self-hosted runner group for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Create a self-hosted runner group for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| Name, Type, Description | 
|---|
| namestring RequiredName of the runner group. | 
| visibilitystringVisibility of a runner group. You can select all organizations or select individual organization. Can be one of:  | 
| selected_organization_idsarray of integersList of organization IDs that can access the runner group. | 
| runnersarray of integersList of runner IDs to add to the runner group. | 
| allows_public_repositoriesbooleanWhether the runner group can be used by  Default:  | 
| restricted_to_workflowsbooleanIf  Default:  | 
| selected_workflowsarray of stringsList of workflows the runner group should be allowed to run. This setting will be ignored unless  | 
HTTP response status codes for "Create a self-hosted runner group for an enterprise"
| Status code | Description | 
|---|---|
| 201 | Created | 
Code samples for "Create a self-hosted runner group for an enterprise"
Request example
curl -L \
  -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups \
  -d '{"name":"Expensive hardware runners","visibility":"selected","selected_organization_ids":[32,91],"runners":[9,2]}'Response
Status: 201{
  "id": 2,
  "name": "octo-runner-group",
  "visibility": "selected",
  "default": false,
  "selected_organizations_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/organizations",
  "runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/runners",
  "allows_public_repositories": false,
  "restricted_to_workflows": true,
  "selected_workflows": [
    "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
  ],
  "workflow_restrictions_read_only": false
}Get a self-hosted runner group for an enterprise
Gets a specific self-hosted runner group for an enterprise.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Get a self-hosted runner group for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Get a self-hosted runner group for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
HTTP response status codes for "Get a self-hosted runner group for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get a self-hosted runner group for an enterprise"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_IDResponse
Status: 200{
  "id": 2,
  "name": "octo-runner-group",
  "visibility": "selected",
  "default": false,
  "selected_organizations_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/organizations",
  "runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/runners",
  "allows_public_repositories": false,
  "restricted_to_workflows": true,
  "selected_workflows": [
    "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
  ],
  "workflow_restrictions_read_only": false
}Update a self-hosted runner group for an enterprise
Updates the name and visibility of a self-hosted runner group in an enterprise.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Update a self-hosted runner group for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Update a self-hosted runner group for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| namestringName of the runner group. | 
| visibilitystringVisibility of a runner group. You can select all organizations or select individual organizations. Default:  Can be one of:  | 
| allows_public_repositoriesbooleanWhether the runner group can be used by  Default:  | 
| restricted_to_workflowsbooleanIf  Default:  | 
| selected_workflowsarray of stringsList of workflows the runner group should be allowed to run. This setting will be ignored unless  | 
HTTP response status codes for "Update a self-hosted runner group for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Update a self-hosted runner group for an enterprise"
Request example
curl -L \
  -X PATCH \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID \
  -d '{"name":"Expensive hardware runners","visibility":"selected"}'Response
Status: 200{
  "id": 2,
  "name": "Expensive hardware runners",
  "visibility": "selected",
  "default": false,
  "selected_organizations_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/organizations",
  "runners_url": "https://HOSTNAME/enterprises/octo-corp/actions/runner-groups/2/runners",
  "allows_public_repositories": true,
  "restricted_to_workflows": false,
  "selected_workflows": [
    "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
  ],
  "workflow_restrictions_read_only": false
}Delete a self-hosted runner group from an enterprise
Deletes a self-hosted runner group for an enterprise.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Delete a self-hosted runner group from an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Delete a self-hosted runner group from an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
HTTP response status codes for "Delete a self-hosted runner group from an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Delete a self-hosted runner group from an enterprise"
Request example
curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_IDResponse
Status: 204List organization access to a self-hosted runner group in an enterprise
Lists the organizations with access to a self-hosted runner group.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "List organization access to a self-hosted runner group in an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "List organization access to a self-hosted runner group in an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
HTTP response status codes for "List organization access to a self-hosted runner group in an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "List organization access to a self-hosted runner group in an enterprise"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/organizationsResponse
Status: 200{
  "total_count": 1,
  "organizations": [
    {
      "login": "octocat",
      "id": 161335,
      "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
      "url": "https://HOSTNAME/orgs/octo-org",
      "repos_url": "https://HOSTNAME/orgs/octo-org/repos",
      "events_url": "https://HOSTNAME/orgs/octo-org/events",
      "hooks_url": "https://HOSTNAME/orgs/octo-org/hooks",
      "issues_url": "https://HOSTNAME/orgs/octo-org/issues",
      "members_url": "https://HOSTNAME/orgs/octo-org/members{/member}",
      "public_members_url": "https://HOSTNAME/orgs/octo-org/public_members{/member}",
      "avatar_url": "https://github.com/images/error/octocat_happy.gif",
      "description": "A great organization"
    }
  ]
}Set organization access for a self-hosted runner group in an enterprise
Replaces the list of organizations that have access to a self-hosted runner configured in an enterprise.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Set organization access for a self-hosted runner group in an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set organization access for a self-hosted runner group in an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| selected_organization_idsarray of integers RequiredList of organization IDs that can access the runner group. | 
HTTP response status codes for "Set organization access for a self-hosted runner group in an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set organization access for a self-hosted runner group in an enterprise"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/organizations \
  -d '{"selected_organization_ids":[32,91]}'Response
Status: 204Add organization access to a self-hosted runner group in an enterprise
Adds an organization to the list of selected organizations that can access a self-hosted runner group. The runner group must have visibility set to selected. For more information, see "Create a self-hosted runner group for an enterprise."
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Add organization access to a self-hosted runner group in an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Add organization access to a self-hosted runner group in an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| org_idinteger RequiredThe unique identifier of the organization. | 
HTTP response status codes for "Add organization access to a self-hosted runner group in an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Add organization access to a self-hosted runner group in an enterprise"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/organizations/ORG_IDResponse
Status: 204Remove organization access to a self-hosted runner group in an enterprise
Removes an organization from the list of selected organizations that can access a self-hosted runner group. The runner group must have visibility set to selected. For more information, see "Create a self-hosted runner group for an enterprise."
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Remove organization access to a self-hosted runner group in an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Remove organization access to a self-hosted runner group in an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| org_idinteger RequiredThe unique identifier of the organization. | 
HTTP response status codes for "Remove organization access to a self-hosted runner group in an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Remove organization access to a self-hosted runner group in an enterprise"
Request example
curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/organizations/ORG_IDResponse
Status: 204List self-hosted runners in a group for an enterprise
Lists the self-hosted runners that are in a specific enterprise group.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "List self-hosted runners in a group for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "List self-hosted runners in a group for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
HTTP response status codes for "List self-hosted runners in a group for an enterprise"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "List self-hosted runners in a group for an enterprise"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/runnersResponse
Status: 200{
  "total_count": 2,
  "runners": [
    {
      "id": 23,
      "name": "linux_runner",
      "os": "linux",
      "status": "online",
      "busy": true,
      "ephemeral": false,
      "labels": [
        {
          "id": 5,
          "name": "self-hosted",
          "type": "read-only"
        },
        {
          "id": 7,
          "name": "X64",
          "type": "read-only"
        },
        {
          "id": 11,
          "name": "Linux",
          "type": "read-only"
        }
      ]
    },
    {
      "id": 24,
      "name": "mac_runner",
      "os": "macos",
      "status": "offline",
      "busy": false,
      "ephemeral": false,
      "labels": [
        {
          "id": 5,
          "name": "self-hosted",
          "type": "read-only"
        },
        {
          "id": 7,
          "name": "X64",
          "type": "read-only"
        },
        {
          "id": 20,
          "name": "macOS",
          "type": "read-only"
        },
        {
          "id": 21,
          "name": "no-gpu",
          "type": "custom"
        }
      ]
    }
  ]
}Set self-hosted runners in a group for an enterprise
Replaces the list of self-hosted runners that are part of an enterprise runner group.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Set self-hosted runners in a group for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Set self-hosted runners in a group for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| runnersarray of integers RequiredList of runner IDs to add to the runner group. | 
HTTP response status codes for "Set self-hosted runners in a group for an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set self-hosted runners in a group for an enterprise"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/runners \
  -d '{"runners":[9,2]}'Response
Status: 204Add a self-hosted runner to a group for an enterprise
Adds a self-hosted runner to a runner group configured in an enterprise.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Add a self-hosted runner to a group for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Add a self-hosted runner to a group for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| runner_idinteger RequiredUnique identifier of the self-hosted runner. | 
HTTP response status codes for "Add a self-hosted runner to a group for an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Add a self-hosted runner to a group for an enterprise"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/runners/RUNNER_IDResponse
Status: 204Remove a self-hosted runner from a group for an enterprise
Removes a self-hosted runner from a group configured in an enterprise. The runner is then returned to the default group.
OAuth app tokens and personal access tokens (classic) need the manage_runners:enterprise scope to use this endpoint.
Fine-grained access tokens for "Remove a self-hosted runner from a group for an enterprise"
This endpoint does not work with GitHub App user access tokens, GitHub App installation access tokens, or fine-grained personal access tokens.
Parameters for "Remove a self-hosted runner from a group for an enterprise"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| enterprisestring RequiredThe slug version of the enterprise name. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| runner_idinteger RequiredUnique identifier of the self-hosted runner. | 
HTTP response status codes for "Remove a self-hosted runner from a group for an enterprise"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Remove a self-hosted runner from a group for an enterprise"
Request example
curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/enterprises/ENTERPRISE/actions/runner-groups/RUNNER_GROUP_ID/runners/RUNNER_IDResponse
Status: 204List self-hosted runner groups for an organization
Lists all self-hosted runner groups configured in an organization and inherited from an enterprise.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "List self-hosted runner groups 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:
- "Self-hosted runners" organization permissions (read)
Parameters for "List self-hosted runner groups for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
| visible_to_repositorystringOnly return runner groups that are allowed to be used by this repository. | 
HTTP response status codes for "List self-hosted runner groups for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "List self-hosted runner groups for an organization"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groupsResponse
Status: 200{
  "total_count": 3,
  "runner_groups": [
    {
      "id": 1,
      "name": "Default",
      "visibility": "all",
      "default": true,
      "runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/1/runners",
      "inherited": false,
      "allows_public_repositories": true,
      "restricted_to_workflows": false,
      "selected_workflows": [],
      "workflow_restrictions_read_only": false
    },
    {
      "id": 2,
      "name": "octo-runner-group",
      "visibility": "selected",
      "default": false,
      "selected_repositories_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/repositories",
      "runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/runners",
      "inherited": true,
      "allows_public_repositories": true,
      "restricted_to_workflows": true,
      "selected_workflows": [
        "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
      ],
      "workflow_restrictions_read_only": true
    },
    {
      "id": 3,
      "name": "expensive-hardware",
      "visibility": "private",
      "default": false,
      "runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/3/runners",
      "inherited": false,
      "allows_public_repositories": true,
      "restricted_to_workflows": false,
      "selected_workflows": [
        "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
      ],
      "workflow_restrictions_read_only": false
    }
  ]
}Create a self-hosted runner group for an organization
Creates a new self-hosted runner group for an organization.
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Create a self-hosted runner group 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:
- "Self-hosted runners" organization permissions (write)
Parameters for "Create a self-hosted runner group for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| Name, Type, Description | 
|---|
| namestring RequiredName of the runner group. | 
| visibilitystringVisibility of a runner group. You can select all repositories, select individual repositories, or limit access to private repositories. Default:  Can be one of:  | 
| selected_repository_idsarray of integersList of repository IDs that can access the runner group. | 
| runnersarray of integersList of runner IDs to add to the runner group. | 
| allows_public_repositoriesbooleanWhether the runner group can be used by  Default:  | 
| restricted_to_workflowsbooleanIf  Default:  | 
| selected_workflowsarray of stringsList of workflows the runner group should be allowed to run. This setting will be ignored unless  | 
HTTP response status codes for "Create a self-hosted runner group for an organization"
| Status code | Description | 
|---|---|
| 201 | Created | 
Code samples for "Create a self-hosted runner group for an organization"
Request example
curl -L \
  -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups \
  -d '{"name":"Expensive hardware runners","visibility":"selected","selected_repository_ids":[32,91],"runners":[9,2]}'Response
Status: 201{
  "id": 2,
  "name": "octo-runner-group",
  "visibility": "selected",
  "default": false,
  "selected_repositories_url": "https://HOSTNAME/orgs/octo-org/actions/runner-groups/2/repositories",
  "runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/runners",
  "inherited": false,
  "allows_public_repositories": true,
  "restricted_to_workflows": true,
  "selected_workflows": [
    "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
  ],
  "workflow_restrictions_read_only": false
}Get a self-hosted runner group for an organization
Gets a specific self-hosted runner group for an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Get a self-hosted runner group 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:
- "Self-hosted runners" organization permissions (read)
Parameters for "Get a self-hosted runner group for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
HTTP response status codes for "Get a self-hosted runner group for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Get a self-hosted runner group for an organization"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_IDResponse
Status: 200{
  "id": 2,
  "name": "octo-runner-group",
  "visibility": "selected",
  "default": false,
  "selected_repositories_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/repositories",
  "runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/runners",
  "inherited": false,
  "allows_public_repositories": true,
  "restricted_to_workflows": true,
  "selected_workflows": [
    "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
  ],
  "workflow_restrictions_read_only": false
}Update a self-hosted runner group for an organization
Updates the name and visibility of a self-hosted runner group in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Update a self-hosted runner group 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:
- "Self-hosted runners" organization permissions (write)
Parameters for "Update a self-hosted runner group for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| namestring RequiredName of the runner group. | 
| visibilitystringVisibility of a runner group. You can select all repositories, select individual repositories, or all private repositories. Can be one of:  | 
| allows_public_repositoriesbooleanWhether the runner group can be used by  Default:  | 
| restricted_to_workflowsbooleanIf  Default:  | 
| selected_workflowsarray of stringsList of workflows the runner group should be allowed to run. This setting will be ignored unless  | 
HTTP response status codes for "Update a self-hosted runner group for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "Update a self-hosted runner group for an organization"
Request example
curl -L \
  -X PATCH \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID \
  -d '{"name":"Expensive hardware runners","visibility":"selected"}'Response
Status: 200{
  "id": 2,
  "name": "octo-runner-group",
  "visibility": "selected",
  "default": false,
  "selected_repositories_url": "https://HOSTNAME/orgs/octo-org/actions/runner-groups/2/repositories",
  "runners_url": "https://HOSTNAME/orgs/octo-org/actions/runner_groups/2/runners",
  "inherited": false,
  "allows_public_repositories": true,
  "restricted_to_workflows": true,
  "selected_workflows": [
    "octo-org/octo-repo/.github/workflows/deploy.yaml@refs/heads/main"
  ],
  "workflow_restrictions_read_only": false
}Delete a self-hosted runner group from an organization
Deletes a self-hosted runner group for an organization.
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Delete a self-hosted runner group from 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:
- "Self-hosted runners" organization permissions (write)
Parameters for "Delete a self-hosted runner group from an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
HTTP response status codes for "Delete a self-hosted runner group from an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Delete a self-hosted runner group from an organization"
Request example
curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_IDResponse
Status: 204List repository access to a self-hosted runner group in an organization
Lists the repositories with access to a self-hosted runner group configured in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "List repository access to a self-hosted runner group in 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:
- "Self-hosted runners" organization permissions (read)
Parameters for "List repository access to a self-hosted runner group in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
HTTP response status codes for "List repository access to a self-hosted runner group in an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "List repository access to a self-hosted runner group in an organization"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/repositoriesResponse
Status: 200{
  "total_count": 1,
  "repositories": [
    {
      "id": 1296269,
      "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
      "name": "Hello-World",
      "full_name": "octocat/Hello-World",
      "owner": {
        "login": "octocat",
        "id": 1,
        "node_id": "MDQ6VXNlcjE=",
        "avatar_url": "https://github.com/images/error/octocat_happy.gif",
        "gravatar_id": "",
        "url": "https://HOSTNAME/users/octocat",
        "html_url": "https://github.com/octocat",
        "followers_url": "https://HOSTNAME/users/octocat/followers",
        "following_url": "https://HOSTNAME/users/octocat/following{/other_user}",
        "gists_url": "https://HOSTNAME/users/octocat/gists{/gist_id}",
        "starred_url": "https://HOSTNAME/users/octocat/starred{/owner}{/repo}",
        "subscriptions_url": "https://HOSTNAME/users/octocat/subscriptions",
        "organizations_url": "https://HOSTNAME/users/octocat/orgs",
        "repos_url": "https://HOSTNAME/users/octocat/repos",
        "events_url": "https://HOSTNAME/users/octocat/events{/privacy}",
        "received_events_url": "https://HOSTNAME/users/octocat/received_events",
        "type": "User",
        "site_admin": false
      },
      "private": false,
      "html_url": "https://github.com/octocat/Hello-World",
      "description": "This your first repo!",
      "fork": false,
      "url": "https://HOSTNAME/repos/octocat/Hello-World",
      "archive_url": "https://HOSTNAME/repos/octocat/Hello-World/{archive_format}{/ref}",
      "assignees_url": "https://HOSTNAME/repos/octocat/Hello-World/assignees{/user}",
      "blobs_url": "https://HOSTNAME/repos/octocat/Hello-World/git/blobs{/sha}",
      "branches_url": "https://HOSTNAME/repos/octocat/Hello-World/branches{/branch}",
      "collaborators_url": "https://HOSTNAME/repos/octocat/Hello-World/collaborators{/collaborator}",
      "comments_url": "https://HOSTNAME/repos/octocat/Hello-World/comments{/number}",
      "commits_url": "https://HOSTNAME/repos/octocat/Hello-World/commits{/sha}",
      "compare_url": "https://HOSTNAME/repos/octocat/Hello-World/compare/{base}...{head}",
      "contents_url": "https://HOSTNAME/repos/octocat/Hello-World/contents/{+path}",
      "contributors_url": "https://HOSTNAME/repos/octocat/Hello-World/contributors",
      "deployments_url": "https://HOSTNAME/repos/octocat/Hello-World/deployments",
      "downloads_url": "https://HOSTNAME/repos/octocat/Hello-World/downloads",
      "events_url": "https://HOSTNAME/repos/octocat/Hello-World/events",
      "forks_url": "https://HOSTNAME/repos/octocat/Hello-World/forks",
      "git_commits_url": "https://HOSTNAME/repos/octocat/Hello-World/git/commits{/sha}",
      "git_refs_url": "https://HOSTNAME/repos/octocat/Hello-World/git/refs{/sha}",
      "git_tags_url": "https://HOSTNAME/repos/octocat/Hello-World/git/tags{/sha}",
      "git_url": "git:github.com/octocat/Hello-World.git",
      "issue_comment_url": "https://HOSTNAME/repos/octocat/Hello-World/issues/comments{/number}",
      "issue_events_url": "https://HOSTNAME/repos/octocat/Hello-World/issues/events{/number}",
      "issues_url": "https://HOSTNAME/repos/octocat/Hello-World/issues{/number}",
      "keys_url": "https://HOSTNAME/repos/octocat/Hello-World/keys{/key_id}",
      "labels_url": "https://HOSTNAME/repos/octocat/Hello-World/labels{/name}",
      "languages_url": "https://HOSTNAME/repos/octocat/Hello-World/languages",
      "merges_url": "https://HOSTNAME/repos/octocat/Hello-World/merges",
      "milestones_url": "https://HOSTNAME/repos/octocat/Hello-World/milestones{/number}",
      "notifications_url": "https://HOSTNAME/repos/octocat/Hello-World/notifications{?since,all,participating}",
      "pulls_url": "https://HOSTNAME/repos/octocat/Hello-World/pulls{/number}",
      "releases_url": "https://HOSTNAME/repos/octocat/Hello-World/releases{/id}",
      "ssh_url": "git@github.com:octocat/Hello-World.git",
      "stargazers_url": "https://HOSTNAME/repos/octocat/Hello-World/stargazers",
      "statuses_url": "https://HOSTNAME/repos/octocat/Hello-World/statuses/{sha}",
      "subscribers_url": "https://HOSTNAME/repos/octocat/Hello-World/subscribers",
      "subscription_url": "https://HOSTNAME/repos/octocat/Hello-World/subscription",
      "tags_url": "https://HOSTNAME/repos/octocat/Hello-World/tags",
      "teams_url": "https://HOSTNAME/repos/octocat/Hello-World/teams",
      "trees_url": "https://HOSTNAME/repos/octocat/Hello-World/git/trees{/sha}",
      "clone_url": "https://github.com/octocat/Hello-World.git",
      "mirror_url": "git:git.example.com/octocat/Hello-World",
      "hooks_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks",
      "svn_url": "https://svn.github.com/octocat/Hello-World",
      "homepage": "https://github.com",
      "language": null,
      "forks_count": 9,
      "stargazers_count": 80,
      "watchers_count": 80,
      "size": 108,
      "default_branch": "master",
      "open_issues_count": 0,
      "is_template": true,
      "topics": [
        "octocat",
        "atom",
        "electron",
        "api"
      ],
      "has_issues": true,
      "has_projects": true,
      "has_wiki": true,
      "has_pages": false,
      "has_downloads": true,
      "archived": false,
      "disabled": false,
      "visibility": "public",
      "pushed_at": "2011-01-26T19:06:43Z",
      "created_at": "2011-01-26T19:01:12Z",
      "updated_at": "2011-01-26T19:14:43Z",
      "permissions": {
        "admin": false,
        "push": false,
        "pull": true
      },
      "template_repository": {
        "id": 1296269,
        "node_id": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5",
        "name": "Hello-World",
        "full_name": "octocat/Hello-World",
        "owner": {
          "login": "octocat",
          "id": 1,
          "node_id": "MDQ6VXNlcjE=",
          "avatar_url": "https://github.com/images/error/octocat_happy.gif",
          "gravatar_id": "",
          "url": "https://HOSTNAME/users/octocat",
          "html_url": "https://github.com/octocat",
          "followers_url": "https://HOSTNAME/users/octocat/followers",
          "following_url": "https://HOSTNAME/users/octocat/following{/other_user}",
          "gists_url": "https://HOSTNAME/users/octocat/gists{/gist_id}",
          "starred_url": "https://HOSTNAME/users/octocat/starred{/owner}{/repo}",
          "subscriptions_url": "https://HOSTNAME/users/octocat/subscriptions",
          "organizations_url": "https://HOSTNAME/users/octocat/orgs",
          "repos_url": "https://HOSTNAME/users/octocat/repos",
          "events_url": "https://HOSTNAME/users/octocat/events{/privacy}",
          "received_events_url": "https://HOSTNAME/users/octocat/received_events",
          "type": "User",
          "site_admin": false
        },
        "private": false,
        "html_url": "https://github.com/octocat/Hello-World",
        "description": "This your first repo!",
        "fork": false,
        "url": "https://HOSTNAME/repos/octocat/Hello-World",
        "archive_url": "https://HOSTNAME/repos/octocat/Hello-World/{archive_format}{/ref}",
        "assignees_url": "https://HOSTNAME/repos/octocat/Hello-World/assignees{/user}",
        "blobs_url": "https://HOSTNAME/repos/octocat/Hello-World/git/blobs{/sha}",
        "branches_url": "https://HOSTNAME/repos/octocat/Hello-World/branches{/branch}",
        "collaborators_url": "https://HOSTNAME/repos/octocat/Hello-World/collaborators{/collaborator}",
        "comments_url": "https://HOSTNAME/repos/octocat/Hello-World/comments{/number}",
        "commits_url": "https://HOSTNAME/repos/octocat/Hello-World/commits{/sha}",
        "compare_url": "https://HOSTNAME/repos/octocat/Hello-World/compare/{base}...{head}",
        "contents_url": "https://HOSTNAME/repos/octocat/Hello-World/contents/{+path}",
        "contributors_url": "https://HOSTNAME/repos/octocat/Hello-World/contributors",
        "deployments_url": "https://HOSTNAME/repos/octocat/Hello-World/deployments",
        "downloads_url": "https://HOSTNAME/repos/octocat/Hello-World/downloads",
        "events_url": "https://HOSTNAME/repos/octocat/Hello-World/events",
        "forks_url": "https://HOSTNAME/repos/octocat/Hello-World/forks",
        "git_commits_url": "https://HOSTNAME/repos/octocat/Hello-World/git/commits{/sha}",
        "git_refs_url": "https://HOSTNAME/repos/octocat/Hello-World/git/refs{/sha}",
        "git_tags_url": "https://HOSTNAME/repos/octocat/Hello-World/git/tags{/sha}",
        "git_url": "git:github.com/octocat/Hello-World.git",
        "issue_comment_url": "https://HOSTNAME/repos/octocat/Hello-World/issues/comments{/number}",
        "issue_events_url": "https://HOSTNAME/repos/octocat/Hello-World/issues/events{/number}",
        "issues_url": "https://HOSTNAME/repos/octocat/Hello-World/issues{/number}",
        "keys_url": "https://HOSTNAME/repos/octocat/Hello-World/keys{/key_id}",
        "labels_url": "https://HOSTNAME/repos/octocat/Hello-World/labels{/name}",
        "languages_url": "https://HOSTNAME/repos/octocat/Hello-World/languages",
        "merges_url": "https://HOSTNAME/repos/octocat/Hello-World/merges",
        "milestones_url": "https://HOSTNAME/repos/octocat/Hello-World/milestones{/number}",
        "notifications_url": "https://HOSTNAME/repos/octocat/Hello-World/notifications{?since,all,participating}",
        "pulls_url": "https://HOSTNAME/repos/octocat/Hello-World/pulls{/number}",
        "releases_url": "https://HOSTNAME/repos/octocat/Hello-World/releases{/id}",
        "ssh_url": "git@github.com:octocat/Hello-World.git",
        "stargazers_url": "https://HOSTNAME/repos/octocat/Hello-World/stargazers",
        "statuses_url": "https://HOSTNAME/repos/octocat/Hello-World/statuses/{sha}",
        "subscribers_url": "https://HOSTNAME/repos/octocat/Hello-World/subscribers",
        "subscription_url": "https://HOSTNAME/repos/octocat/Hello-World/subscription",
        "tags_url": "https://HOSTNAME/repos/octocat/Hello-World/tags",
        "teams_url": "https://HOSTNAME/repos/octocat/Hello-World/teams",
        "trees_url": "https://HOSTNAME/repos/octocat/Hello-World/git/trees{/sha}",
        "clone_url": "https://github.com/octocat/Hello-World.git",
        "mirror_url": "git:git.example.com/octocat/Hello-World",
        "hooks_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks",
        "svn_url": "https://svn.github.com/octocat/Hello-World",
        "homepage": "https://github.com",
        "organization": null,
        "language": null,
        "forks": 9,
        "forks_count": 9,
        "stargazers_count": 80,
        "watchers_count": 80,
        "watchers": 80,
        "size": 108,
        "default_branch": "master",
        "open_issues": 0,
        "open_issues_count": 0,
        "is_template": true,
        "license": {
          "key": "mit",
          "name": "MIT License",
          "url": "https://HOSTNAME/licenses/mit",
          "spdx_id": "MIT",
          "node_id": "MDc6TGljZW5zZW1pdA==",
          "html_url": "https://HOSTNAME/licenses/mit"
        },
        "topics": [
          "octocat",
          "atom",
          "electron",
          "api"
        ],
        "has_issues": true,
        "has_projects": true,
        "has_wiki": true,
        "has_pages": false,
        "has_downloads": true,
        "archived": false,
        "disabled": false,
        "visibility": "public",
        "pushed_at": "2011-01-26T19:06:43Z",
        "created_at": "2011-01-26T19:01:12Z",
        "updated_at": "2011-01-26T19:14:43Z",
        "permissions": {
          "admin": false,
          "push": false,
          "pull": true
        },
        "allow_rebase_merge": true,
        "template_repository": null,
        "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
        "allow_squash_merge": true,
        "allow_auto_merge": false,
        "delete_branch_on_merge": true,
        "allow_merge_commit": true,
        "subscribers_count": 42,
        "network_count": 0
      },
      "temp_clone_token": "ABTLWHOULUVAXGTRYU7OC2876QJ2O",
      "delete_branch_on_merge": true,
      "subscribers_count": 42,
      "network_count": 0,
      "license": {
        "key": "mit",
        "name": "MIT License",
        "url": "https://HOSTNAME/licenses/mit",
        "spdx_id": "MIT",
        "node_id": "MDc6TGljZW5zZW1pdA=="
      },
      "forks": 1,
      "open_issues": 1,
      "watchers": 1
    }
  ]
}Set repository access for a self-hosted runner group in an organization
Replaces the list of repositories that have access to a self-hosted runner group configured in an organization.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Set repository access for a self-hosted runner group in 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:
- "Self-hosted runners" organization permissions (write)
Parameters for "Set repository access for a self-hosted runner group in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| selected_repository_idsarray of integers RequiredList of repository IDs that can access the runner group. | 
HTTP response status codes for "Set repository access for a self-hosted runner group in an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set repository access for a self-hosted runner group in an organization"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/repositories \
  -d '{"selected_repository_ids":[32,91]}'Response
Status: 204Add repository access to a self-hosted runner group in an organization
Adds a repository to the list of repositories that can access a self-hosted runner group. The runner group must have visibility set to selected. For more information, see "Create a self-hosted runner group for an organization."
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Add repository access to a self-hosted runner group in 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:
- "Self-hosted runners" organization permissions (write) and "Metadata" repository permissions (read)
Parameters for "Add repository access to a self-hosted runner group in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| repository_idinteger RequiredThe unique identifier of the repository. | 
HTTP response status codes for "Add repository access to a self-hosted runner group in an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Add repository access to a self-hosted runner group in an organization"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/repositories/REPOSITORY_IDResponse
Status: 204Remove repository access to a self-hosted runner group in an organization
Removes a repository from the list of selected repositories that can access a self-hosted runner group. The runner group must have visibility set to selected. For more information, see "Create a self-hosted runner group for an organization."
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Remove repository access to a self-hosted runner group in 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:
- "Self-hosted runners" organization permissions (write) and "Metadata" repository permissions (read)
Parameters for "Remove repository access to a self-hosted runner group in an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| repository_idinteger RequiredThe unique identifier of the repository. | 
HTTP response status codes for "Remove repository access to a self-hosted runner group in an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Remove repository access to a self-hosted runner group in an organization"
Request example
curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/repositories/REPOSITORY_IDResponse
Status: 204List self-hosted runners in a group for an organization
Lists self-hosted runners that are in a specific organization group.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "List self-hosted runners in a group 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:
- "Self-hosted runners" organization permissions (read)
Parameters for "List self-hosted runners in a group for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| per_pageintegerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default:  | 
| pageintegerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default:  | 
HTTP response status codes for "List self-hosted runners in a group for an organization"
| Status code | Description | 
|---|---|
| 200 | OK | 
Code samples for "List self-hosted runners in a group for an organization"
Request example
curl -L \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/runnersResponse
Status: 200{
  "total_count": 2,
  "runners": [
    {
      "id": 23,
      "name": "linux_runner",
      "os": "linux",
      "status": "online",
      "busy": true,
      "ephemeral": false,
      "labels": [
        {
          "id": 5,
          "name": "self-hosted",
          "type": "read-only"
        },
        {
          "id": 7,
          "name": "X64",
          "type": "read-only"
        },
        {
          "id": 11,
          "name": "Linux",
          "type": "read-only"
        }
      ]
    },
    {
      "id": 24,
      "name": "mac_runner",
      "os": "macos",
      "status": "offline",
      "busy": false,
      "ephemeral": false,
      "labels": [
        {
          "id": 5,
          "name": "self-hosted",
          "type": "read-only"
        },
        {
          "id": 7,
          "name": "X64",
          "type": "read-only"
        },
        {
          "id": 20,
          "name": "macOS",
          "type": "read-only"
        },
        {
          "id": 21,
          "name": "no-gpu",
          "type": "custom"
        }
      ]
    }
  ]
}Set self-hosted runners in a group for an organization
Replaces the list of self-hosted runners that are part of an organization runner group.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Set self-hosted runners in a group 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:
- "Self-hosted runners" organization permissions (write)
Parameters for "Set self-hosted runners in a group for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| Name, Type, Description | 
|---|
| runnersarray of integers RequiredList of runner IDs to add to the runner group. | 
HTTP response status codes for "Set self-hosted runners in a group for an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Set self-hosted runners in a group for an organization"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/runners \
  -d '{"runners":[9,2]}'Response
Status: 204Add a self-hosted runner to a group for an organization
Adds a self-hosted runner to a runner group configured in an organization.
OAuth tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Add a self-hosted runner to a group 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:
- "Self-hosted runners" organization permissions (write)
Parameters for "Add a self-hosted runner to a group for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| runner_idinteger RequiredUnique identifier of the self-hosted runner. | 
HTTP response status codes for "Add a self-hosted runner to a group for an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Add a self-hosted runner to a group for an organization"
Request example
curl -L \
  -X PUT \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/runners/RUNNER_IDResponse
Status: 204Remove a self-hosted runner from a group for an organization
Removes a self-hosted runner from a group configured in an organization. The runner is then returned to the default group.
OAuth app tokens and personal access tokens (classic) need the admin:org scope to use this endpoint.
Fine-grained access tokens for "Remove a self-hosted runner from a group 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:
- "Self-hosted runners" organization permissions (write)
Parameters for "Remove a self-hosted runner from a group for an organization"
| Name, Type, Description | 
|---|
| acceptstringSetting to  | 
| Name, Type, Description | 
|---|
| orgstring RequiredThe organization name. The name is not case sensitive. | 
| runner_group_idinteger RequiredUnique identifier of the self-hosted runner group. | 
| runner_idinteger RequiredUnique identifier of the self-hosted runner. | 
HTTP response status codes for "Remove a self-hosted runner from a group for an organization"
| Status code | Description | 
|---|---|
| 204 | No Content | 
Code samples for "Remove a self-hosted runner from a group for an organization"
Request example
curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/actions/runner-groups/RUNNER_GROUP_ID/runners/RUNNER_IDResponse
Status: 204