GitHub Actions · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for GitHub Actions Self-Hosted Runners API
12 actions
12 updates
phrasing
extends
openapi/github-actions-self-hosted-runners-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for GitHub Actions's API. It is a proposal applied on top of the contract, not a document GitHub Actions publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/repos/{owner}/{repo}/actions/runners'].get
$.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}'].get
$.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}'].delete
$.paths['/repos/{owner}/{repo}/actions/runners/downloads'].get
$.paths['/repos/{owner}/{repo}/actions/runners/registration-token'].post
$.paths['/repos/{owner}/{repo}/actions/runners/remove-token'].post
$.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].get
$.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].put
$.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].post
$.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].delete
$.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}'].delete
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for GitHub Actions Self-Hosted Runners API
version: 1.0.0
extends: openapi/github-actions-self-hosted-runners-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 11
- target: $.paths['/repos/{owner}/{repo}/actions/runners'].get
update:
x-apievangelist-phrasing:
intent: List a repository's self-hosted runners
effect: read
questions:
- Which self-hosted runners are registered to my repository and are they online?
- Can I find a repository runner by its name?
instructions:
- text: List the self-hosted runners registered to {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
- text: Find the runner named {name} in {owner}/{repo}.
slots:
name: query.name
owner: path.owner
repo: path.repo
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}'].get
update:
x-apievangelist-phrasing:
intent: Get details of one self-hosted runner
effect: read
questions:
- Is a specific self-hosted runner online and busy right now?
- What operating system and labels does a given runner report?
instructions:
- text: Get self-hosted runner {runner_id} in {owner}/{repo}.
slots:
runner_id: path.runner_id
owner: path.owner
repo: path.repo
- text: Check the status and OS of runner {runner_id}.
slots:
runner_id: path.runner_id
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}'].delete
update:
x-apievangelist-phrasing:
intent: Force-remove a self-hosted runner from a repo
effect: destructive
questions:
- How do I force the removal of a dead runner that no longer exists on the machine?
- Can I deregister a self-hosted runner from my repository through the API?
instructions:
- text: Force-remove runner {runner_id} from {owner}/{repo}.
slots:
runner_id: path.runner_id
owner: path.owner
repo: path.repo
- text: Delete the offline self-hosted runner {runner_id}.
slots:
runner_id: path.runner_id
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/downloads'].get
update:
x-apievangelist-phrasing:
intent: List runner application downloads
effect: read
questions:
- Where do I download the runner application binary for Linux, macOS or Windows?
- What runner software packages are available to install on my own machine?
instructions:
- text: List the runner application binaries I can download for {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
- text: Get the download URL of the runner package for my OS and architecture.
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/registration-token'].post
update:
x-apievangelist-phrasing:
intent: Get a token to register a new runner
effect: write
questions:
- How do I get the token the config script needs to register a self-hosted runner?
- What do I need before adding a new runner machine to my repository?
instructions:
- text: Create a runner registration token for {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
- text: Give me a token to register a new self-hosted runner on {repo}.
slots:
repo: path.repo
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/remove-token'].post
update:
x-apievangelist-phrasing:
intent: Get a token to unregister a runner
effect: write
questions:
- Which token does the config script need to cleanly remove a runner from my repository?
- How do I unregister a self-hosted runner from the machine it runs on?
instructions:
- text: Create a runner remove token for {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
- text: Give me a token to unregister a self-hosted runner from {repo}.
slots:
repo: path.repo
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].get
update:
x-apievangelist-phrasing:
intent: List the labels on a self-hosted runner
effect: read
questions:
- What labels does a self-hosted runner have that jobs can target with runs-on?
- Which custom and default labels are attached to one of my runners?
instructions:
- text: List the labels on runner {runner_id} in {owner}/{repo}.
slots:
runner_id: path.runner_id
owner: path.owner
repo: path.repo
- text: Show which runs-on labels runner {runner_id} answers to.
slots:
runner_id: path.runner_id
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].put
update:
x-apievangelist-phrasing:
intent: Replace all custom labels on a runner
effect: write
questions:
- How do I overwrite a runner's custom labels with a completely new set?
- Can I reset a runner's labels to an exact list in one call?
instructions:
- text: Replace the custom labels on runner {runner_id} in {owner}/{repo} with {labels}.
slots:
runner_id: path.runner_id
owner: path.owner
repo: path.repo
labels: requestBody.labels
- text: Set runner {runner_id}'s labels to exactly {labels}, dropping the old ones.
slots:
runner_id: path.runner_id
labels: requestBody.labels
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].post
update:
x-apievangelist-phrasing:
intent: Add custom labels to a runner
effect: write
questions:
- How do I tag a self-hosted runner with an extra label like gpu without losing its existing ones?
- Can I append new labels to a runner?
instructions:
- text: Add labels {labels} to runner {runner_id} in {owner}/{repo}.
slots:
labels: requestBody.labels
runner_id: path.runner_id
owner: path.owner
repo: path.repo
- text: Append the label {labels} to runner {runner_id}, keeping its current labels.
slots:
labels: requestBody.labels
runner_id: path.runner_id
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].delete
update:
x-apievangelist-phrasing:
intent: Clear every custom label from a runner
effect: destructive
questions:
- How do I strip all custom labels off a runner and leave only the defaults?
- Can I wipe a runner's custom labels in one go?
instructions:
- text: Remove all custom labels from runner {runner_id} in {owner}/{repo}.
slots:
runner_id: path.runner_id
owner: path.owner
repo: path.repo
- text: Clear every custom label on runner {runner_id}.
slots:
runner_id: path.runner_id
method: generated
generated: '2026-09-26'
- target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}'].delete
update:
x-apievangelist-phrasing:
intent: Remove one custom label from a runner
effect: destructive
questions:
- How do I take a single label off a self-hosted runner?
- Can I drop one custom label while keeping the runner's other labels?
instructions:
- text: Remove the label {name} from runner {runner_id} in {owner}/{repo}.
slots:
name: path.name
runner_id: path.runner_id
owner: path.owner
repo: path.repo
- text: Untag runner {runner_id} from label {name} only.
slots:
runner_id: path.runner_id
name: path.name
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/github-actions-self-hosted-runners-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.