GitHub Actions Self-Hosted Runners API

Manage self-hosted runners for workflows

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

github-actions-self-hosted-runners-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: GitHub Actions Artifacts Self-Hosted Runners API
  description: REST API for managing GitHub Actions workflows, runs, artifacts, secrets, runners, caches, variables, permissions, and OIDC.
  version: 1.0.0
  contact:
    name: GitHub Support
    url: https://support.github.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
servers:
- url: https://api.github.com
  description: GitHub REST API
security:
- bearerAuth: []
- personalAccessToken: []
tags:
- name: Self-Hosted Runners
  description: Manage self-hosted runners for workflows
paths:
  /repos/{owner}/{repo}/actions/runners:
    get:
      operationId: listSelfHostedRunnersForRepo
      summary: Github Actions List Self-hosted Runners for a Repository
      description: Lists all self-hosted runners configured in a repository.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      - name: name
        in: query
        schema:
          type: string
        example: Example Title
      - $ref: '#/components/parameters/perPage'
      - $ref: '#/components/parameters/page'
      responses:
        '200':
          description: Successfully retrieved runners
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: integer
                  runners:
                    type: array
                    items:
                      $ref: '#/components/schemas/SelfHostedRunner'
              examples:
                Listselfhostedrunnersforrepo200Example:
                  summary: Default listSelfHostedRunnersForRepo 200 response
                  x-microcks-default: true
                  value:
                    total_count: 10
                    runners:
                    - id: abc123
                      name: Example Title
                      os: example_value
                      status: example_value
                      busy: true
                      labels:
                      - {}
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /repos/{owner}/{repo}/actions/runners/{runner_id}:
    get:
      operationId: getSelfHostedRunnerForRepo
      summary: Github Actions Get a Self-hosted Runner for a Repository
      description: Gets a specific self-hosted runner configured in a repository.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      - $ref: '#/components/parameters/runnerId'
      responses:
        '200':
          description: Successfully retrieved runner
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SelfHostedRunner'
              examples:
                Getselfhostedrunnerforrepo200Example:
                  summary: Default getSelfHostedRunnerForRepo 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    name: Example Title
                    os: example_value
                    status: example_value
                    busy: true
                    labels:
                    - id: abc123
                      name: Example Title
                      type: read-only
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteSelfHostedRunnerFromRepo
      summary: Github Actions Delete a Self-hosted Runner From a Repository
      description: Forces the removal of a self-hosted runner from a repository.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      - $ref: '#/components/parameters/runnerId'
      responses:
        '204':
          description: Successfully deleted runner
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /repos/{owner}/{repo}/actions/runners/downloads:
    get:
      operationId: listRunnerApplicationsForRepo
      summary: Github Actions List Runner Applications for a Repository
      description: Lists binaries for the runner application that you can download.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      responses:
        '200':
          description: Successfully retrieved runner applications
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RunnerApplication'
              examples:
                Listrunnerapplicationsforrepo200Example:
                  summary: Default listRunnerApplicationsForRepo 200 response
                  x-microcks-default: true
                  value:
                  - os: example_value
                    architecture: example_value
                    download_url: https://www.example.com
                    filename: example_value
                    temp_download_token: example_value
                    sha256_checksum: example_value
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /repos/{owner}/{repo}/actions/runners/registration-token:
    post:
      operationId: createRegistrationTokenForRepo
      summary: Github Actions Create a Registration Token for a Repository
      description: Returns a token that you can pass to the config script for a self-hosted runner.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      responses:
        '201':
          description: Successfully created registration token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationToken'
              examples:
                Createregistrationtokenforrepo201Example:
                  summary: Default createRegistrationTokenForRepo 201 response
                  x-microcks-default: true
                  value:
                    token: example_value
                    expires_at: '2026-01-15T10:30:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /repos/{owner}/{repo}/actions/runners/remove-token:
    post:
      operationId: createRemoveTokenForRepo
      summary: Github Actions Create a Remove Token for a Repository
      description: Returns a token that you can pass to remove a self-hosted runner from a repository.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      responses:
        '201':
          description: Successfully created remove token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthenticationToken'
              examples:
                Createremovetokenforrepo201Example:
                  summary: Default createRemoveTokenForRepo 201 response
                  x-microcks-default: true
                  value:
                    token: example_value
                    expires_at: '2026-01-15T10:30:00Z'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /repos/{owner}/{repo}/actions/runners/{runner_id}/labels:
    get:
      operationId: listLabelsForSelfHostedRunnerForRepo
      summary: Github Actions List Labels for a Self-hosted Runner for a Repository
      description: Lists all labels for a self-hosted runner configured in a repository.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      - $ref: '#/components/parameters/runnerId'
      responses:
        '200':
          description: Successfully retrieved labels
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: integer
                  labels:
                    type: array
                    items:
                      $ref: '#/components/schemas/RunnerLabel'
              examples:
                Listlabelsforselfhostedrunnerforrepo200Example:
                  summary: Default listLabelsForSelfHostedRunnerForRepo 200 response
                  x-microcks-default: true
                  value:
                    total_count: 10
                    labels:
                    - id: abc123
                      name: Example Title
                      type: read-only
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: addCustomLabelsToSelfHostedRunnerForRepo
      summary: Github Actions Add Custom Labels to a Self-hosted Runner for a Repository
      description: Adds custom labels to a self-hosted runner configured in a repository.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      - $ref: '#/components/parameters/runnerId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - labels
              properties:
                labels:
                  type: array
                  items:
                    type: string
                  minItems: 1
                  maxItems: 100
            examples:
              AddcustomlabelstoselfhostedrunnerforrepoRequestExample:
                summary: Default addCustomLabelsToSelfHostedRunnerForRepo request
                x-microcks-default: true
                value:
                  labels:
                  - example_value
      responses:
        '200':
          description: Successfully added labels
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: integer
                  labels:
                    type: array
                    items:
                      $ref: '#/components/schemas/RunnerLabel'
              examples:
                Addcustomlabelstoselfhostedrunnerforrepo200Example:
                  summary: Default addCustomLabelsToSelfHostedRunnerForRepo 200 response
                  x-microcks-default: true
                  value:
                    total_count: 10
                    labels:
                    - id: abc123
                      name: Example Title
                      type: read-only
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: setCustomLabelsForSelfHostedRunnerForRepo
      summary: Github Actions Set Custom Labels for a Self-hosted Runner for a Repository
      description: Remove all previous custom labels and set the new custom labels for a specific self-hosted runner.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      - $ref: '#/components/parameters/runnerId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - labels
              properties:
                labels:
                  type: array
                  items:
                    type: string
                  maxItems: 100
            examples:
              SetcustomlabelsforselfhostedrunnerforrepoRequestExample:
                summary: Default setCustomLabelsForSelfHostedRunnerForRepo request
                x-microcks-default: true
                value:
                  labels:
                  - example_value
      responses:
        '200':
          description: Successfully set labels
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: integer
                  labels:
                    type: array
                    items:
                      $ref: '#/components/schemas/RunnerLabel'
              examples:
                Setcustomlabelsforselfhostedrunnerforrepo200Example:
                  summary: Default setCustomLabelsForSelfHostedRunnerForRepo 200 response
                  x-microcks-default: true
                  value:
                    total_count: 10
                    labels:
                    - id: abc123
                      name: Example Title
                      type: read-only
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: removeAllCustomLabelsFromSelfHostedRunnerForRepo
      summary: Github Actions Remove All Custom Labels From a Self-hosted Runner for a Repository
      description: Remove all custom labels from a self-hosted runner configured in a repository.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      - $ref: '#/components/parameters/runnerId'
      responses:
        '200':
          description: Successfully removed all custom labels
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: integer
                  labels:
                    type: array
                    items:
                      $ref: '#/components/schemas/RunnerLabel'
              examples:
                Removeallcustomlabelsfromselfhostedrunnerforrepo200Example:
                  summary: Default removeAllCustomLabelsFromSelfHostedRunnerForRepo 200 response
                  x-microcks-default: true
                  value:
                    total_count: 10
                    labels:
                    - id: abc123
                      name: Example Title
                      type: read-only
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}:
    delete:
      operationId: removeCustomLabelFromSelfHostedRunnerForRepo
      summary: Github Actions Remove a Custom Label From a Self-hosted Runner for a Repository
      description: Remove a custom label from a self-hosted runner configured in a repository.
      tags:
      - Self-Hosted Runners
      parameters:
      - $ref: '#/components/parameters/owner'
      - $ref: '#/components/parameters/repo'
      - $ref: '#/components/parameters/runnerId'
      - name: name
        in: path
        required: true
        schema:
          type: string
        example: Example Title
      responses:
        '200':
          description: Successfully removed label
          content:
            application/json:
              schema:
                type: object
                properties:
                  total_count:
                    type: integer
                  labels:
                    type: array
                    items:
                      $ref: '#/components/schemas/RunnerLabel'
              examples:
                Removecustomlabelfromselfhostedrunnerforrepo200Example:
                  summary: Default removeCustomLabelFromSelfHostedRunnerForRepo 200 response
                  x-microcks-default: true
                  value:
                    total_count: 10
                    labels:
                    - id: abc123
                      name: Example Title
                      type: read-only
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    RunnerLabel:
      type: object
      properties:
        id:
          type: integer
          example: abc123
        name:
          type: string
          example: Example Title
        type:
          type: string
          enum:
          - read-only
          - custom
          example: read-only
    RunnerApplication:
      type: object
      properties:
        os:
          type: string
          example: example_value
        architecture:
          type: string
          example: example_value
        download_url:
          type: string
          format: uri
          example: https://www.example.com
        filename:
          type: string
          example: example_value
        temp_download_token:
          type: string
          example: example_value
        sha256_checksum:
          type: string
          example: example_value
    SelfHostedRunner:
      type: object
      properties:
        id:
          type: integer
          description: The id of the runner.
          example: abc123
        name:
          type: string
          description: The name of the runner.
          example: Example Title
        os:
          type: string
          description: The operating system of the runner.
          example: example_value
        status:
          type: string
          description: The status of the runner.
          example: example_value
        busy:
          type: boolean
          example: true
        labels:
          type: array
          items:
            $ref: '#/components/schemas/RunnerLabel'
          example: []
    AuthenticationToken:
      type: object
      properties:
        token:
          type: string
          example: example_value
        expires_at:
          type: string
          format: date-time
          example: '2026-01-15T10:30:00Z'
  parameters:
    perPage:
      name: per_page
      in: query
      schema:
        type: integer
        default: 30
        maximum: 100
      description: The number of results per page (max 100).
    runnerId:
      name: runner_id
      in: path
      required: true
      schema:
        type: integer
      description: Unique identifier of the self-hosted runner.
    repo:
      name: repo
      in: path
      required: true
      schema:
        type: string
      description: The name of the repository without the .git extension.
    page:
      name: page
      in: query
      schema:
        type: integer
        default: 1
      description: The page number of the results to fetch.
    owner:
      name: owner
      in: path
      required: true
      schema:
        type: string
      description: The account owner of the repository.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: GitHub personal access token or OAuth token
    personalAccessToken:
      type: http
      scheme: bearer
      description: Fine-grained personal access token with Actions permissions