Work with this as data
Every API 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 apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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 API
curl "https://apis.io/api/v1/apis/nuon-runners-runner-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
OpenAPI Specification
openapi: 3.2.0
info:
contact:
email: support@nuon.co
name: Nuon Support
description: API for managing nuon apps, components, installs, and actions.
title: Nuon accounts Runners/runner API
version: 0.19.1074
servers:
- url: https://api.nuon.co/
tags:
- description: runners/runner
name: runners/runner
paths:
/v1/runner-jobs/{runner_job_id}:
get:
deprecated: true
description: 'Return a runner job.
'
operationId: GetRunnerJob
parameters:
- description: runner job ID
in: path
name: runner_job_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.RunnerJob'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: get runner job
tags:
- runners/runner
/v1/runner-jobs/{runner_job_id}/composite-plan:
get:
description: 'Return a plan for a runner job.
'
operationId: GetRunnerJobCompositePlan
parameters:
- description: runner job ID
in: path
name: runner_job_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/plantypes.CompositePlan'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: get runner job composite plan
tags:
- runners/runner
/v1/runner-jobs/{runner_job_id}/plan:
get:
deprecated: true
description: 'Return a plan for a runner job.
'
operationId: GetRunnerJobPlan
parameters:
- description: runner job ID
in: path
name: runner_job_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: get runner job plan
tags:
- runners/runner
/v1/terraform-backend:
get:
description: 'Returns the current terraform state.
'
operationId: GetTerraformCurrentStateData
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.TerraformWorkspaceState'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: get current terraform
tags:
- runners/runner
post:
description: 'Update a terraform state.
'
operationId: UpdateTerraformState
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.TerraformWorkspaceState'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: update terraform state
tags:
- runners/runner
requestBody:
content:
application/json:
schema: {}
description: Terraform state data
required: true
/v1/terraform-workspaces:
get:
description: 'Returns all terraform workspaces.
'
operationId: GetTerraformWorkspaces
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/app.TerraformWorkspace'
type: array
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: get terraform workspaces
tags:
- runners/runner
post:
description: 'Create a terraform workspace.
'
operationId: CreateTerraformWorkspaceV2
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/app.TerraformWorkspace'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'409':
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: create terraform workspace
tags:
- runners/runner
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service.CreateTerraformWorkspaceRequest'
description: Input
required: true
/v1/terraform-workspaces/{workspace_id}:
delete:
description: 'Delete a terraform workspace.
'
operationId: DeleteTerraformWorkspace
parameters:
- description: workspace ID
in: path
name: workspace_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/app.TerraformWorkspace'
type: array
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: delete terraform workspace
tags:
- runners/runner
get:
description: 'Return a terraform workspace by id.
'
operationId: GetTerraformWorkspace
parameters:
- description: workspace ID
in: path
name: workspace_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/app.TerraformWorkspace'
type: array
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: get terraform workspace
tags:
- runners/runner
/v1/terraform-workspaces/{workspace_id}/lock:
post:
description: 'Lock a terraform workspace to prevent concurrent modifications.
'
operationId: LockTerraformWorkspace
parameters:
- description: workspace ID
in: path
name: workspace_id
required: true
schema:
type: string
- description: job ID
in: query
name: job_id
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.TerraformWorkspaceState'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: lock terraform state
tags:
- runners/runner
requestBody:
content:
application/json:
schema: {}
description: 'terraform workspace lock '
required: true
/v1/terraform-workspaces/{workspace_id}/unlock:
post:
description: 'Unlock a terraform workspace.
'
operationId: UnlockTerraformWorkspace
parameters:
- description: workspace ID
in: path
name: workspace_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.TerraformWorkspaceState'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/stderr.ErrResponse'
security:
- APIKey: []
- OrgID: []
summary: unlock terraform workspace
tags:
- runners/runner
requestBody:
content:
application/json:
schema: {}
description: 'terraform workspace unlock '
required: true
components:
schemas:
plantypes.SyncSecretsPlan:
properties:
aws_auth:
$ref: '#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config'
azure_auth:
$ref: '#/components/schemas/github_com_nuonco_nuon_pkg_azure_credentials.Config'
cluster_info:
$ref: '#/components/schemas/kube.ClusterInfo'
gcp_auth:
$ref: '#/components/schemas/github_com_nuonco_nuon_pkg_gcp_credentials.Config'
kubernetes_secrets:
items:
$ref: '#/components/schemas/plantypes.KubernetesSecretSync'
type: array
sandbox_mode:
$ref: '#/components/schemas/plantypes.SandboxMode'
type: object
state.InputsState:
properties:
inputs:
additionalProperties:
type: string
type: object
populated:
type: boolean
type: object
github_com_nuonco_nuon_pkg_labels.Labels:
additionalProperties:
type: string
type: object
state.RunnerState:
properties:
id:
type: string
populated:
type: boolean
runner_group_id:
type: string
status:
type: string
type: object
app.VCSConnectionCommit:
properties:
author_email:
type: string
author_name:
type: string
created_at:
type: string
created_by_id:
type: string
id:
type: string
message:
type: string
owner_id:
description: Polymorphic ownership - references VCS config that owns this commit
type: string
owner_type:
type: string
sha:
type: string
updated_at:
type: string
vcs_connection_id:
type: string
type: object
compositeerrors.CompositeErrorData:
properties:
data:
description: 'Data is the typed, per-error-type payload: WHAT the error is. Closed
schema per Type. Read to render sections and by any future view.'
type: object
hints:
allOf:
- $ref: '#/components/schemas/compositeerrors.Hints'
description: 'Hints is the open annotation/directive bag: HOW to handle or present the
error. Canonical keys (Hint*) are honored by specific consumers.'
message:
type: string
sections:
items:
$ref: '#/components/schemas/compositeerrors.Section'
type: array
severity:
$ref: '#/components/schemas/compositeerrors.Severity'
source_id:
description: 'SourceID / SourceType identify the row this error originated on
(polymorphic, same shape as OwnerID/OwnerType). Set at the record site,
e.g. ("runner_job_execution_results", "<result id>"). Enables a future
JOINable view without a separate error table.'
type: string
source_type:
type: string
type:
type: string
version:
description: Version is the payload schema version (SchemaVersion at write time).
type: integer
type: object
signaldb.SignalData:
properties:
signal: {}
type: object
app.Role:
properties:
createdBy:
$ref: '#/components/schemas/app.Account'
created_at:
type: string
created_by_id:
type: string
id:
type: string
policies:
items:
$ref: '#/components/schemas/app.Policy'
type: array
role_type:
$ref: '#/components/schemas/app.RoleType'
updated_at:
type: string
type: object
app.PulumiComponentConfig:
properties:
component_config_connection_id:
description: parent reference
type: string
config:
additionalProperties:
type: string
type: object
connected_github_vcs_config:
$ref: '#/components/schemas/app.ConnectedGithubVCSConfig'
created_at:
type: string
created_by_id:
type: string
env_vars:
additionalProperties:
type: string
type: object
id:
type: string
public_git_vcs_config:
$ref: '#/components/schemas/app.PublicGitVCSConfig'
runtime:
description: pulumi configuration values
type: string
updated_at:
type: string
version:
type: string
type: object
plantypes.TerraformBackend:
properties:
workspaceID:
type: string
required:
- workspaceID
type: object
state.AzureCloudAccount:
properties:
location:
type: string
type: object
outputs.SecretSyncOutput:
properties:
arn:
type: string
azure_key_vault_secret_id:
type: string
exists:
type: boolean
gcp_secret_name:
type: string
kubernetes_key:
type: string
kubernetes_name:
type: string
kubernetes_namespace:
type: string
length:
type: integer
name:
type: string
timestamp:
type: string
type: object
iam.StaticCredentials:
properties:
access_key_id:
type: string
secret_access_key:
type: string
session_token:
type: string
type: object
plantypes.KubernetesManifestDeployPlan:
properties:
aws_auth:
allOf:
- $ref: '#/components/schemas/github_com_nuonco_nuon_pkg_aws_credentials.Config'
description: Auth for cloud providers
azure_auth:
$ref: '#/components/schemas/github_com_nuonco_nuon_pkg_azure_credentials.Config'
cluster_info:
$ref: '#/components/schemas/kube.ClusterInfo'
gcp_auth:
$ref: '#/components/schemas/github_com_nuonco_nuon_pkg_gcp_credentials.Config'
manifest:
description: 'Manifest is populated at runtime from the OCI artifact.
This field is no longer set during plan creation - it''s populated by the runner
after pulling the OCI artifact during Initialize().'
type: string
namespace:
type: string
oci_artifact:
allOf:
- $ref: '#/components/schemas/plantypes.OCIArtifactReference'
description: OCIArtifact reference (set during plan creation, used by runner to pull manifest)
state:
allOf:
- $ref: '#/components/schemas/github_com_nuonco_nuon_pkg_types_state.State'
description: 'State carries the install state the runner needs to interpolate
nuon template placeholders into the kustomize-produced manifest.yaml
after pulling the OCI artifact. Nil for inline-manifest deploys,
which are pre-rendered planner-side and short-circuit the OCI pull
on the runner. Same shape as SandboxRunPlan.State.'
type: object
configs.OCIRegistryAuth:
properties:
password:
type: string
username:
type: string
type: object
state.ActionWorkflowState:
properties:
id:
type: string
outputs:
additionalProperties: {}
type: object
populated:
type: boolean
status:
type: string
type: object
plantypes.BuildPlan:
properties:
component_build_id:
type: string
component_id:
type: string
container_image_pull_plan:
$ref: '#/components/schemas/plantypes.ContainerImagePullPlan'
docker_build_plan:
$ref: '#/components/schemas/plantypes.DockerBuildPlan'
dst_registry:
$ref: '#/components/schemas/configs.OCIRegistryRepository'
dst_tag:
type: string
git_source:
$ref: '#/components/schemas/plantypes.GitSource'
helm_build_plan:
$ref: '#/components/schemas/plantypes.HelmBuildPlan'
kubernetes_manifest_build_plan:
$ref: '#/components/schemas/plantypes.KubernetesManifestBuildPlan'
pulumi_build_plan:
$ref: '#/components/schemas/plantypes.PulumiBuildPlan'
sandbox_mode:
$ref: '#/components/schemas/plantypes.SandboxMode'
terraform_build_plan:
$ref: '#/components/schemas/plantypes.TerraformBuildPlan'
required:
- dst_registry
- dst_tag
type: object
app.ComponentType:
enum:
- terraform_module
- helm_chart
- docker_build
- external_image
- job
- kubernetes_manifest
- pulumi
- unknown
type: string
x-enum-varnames:
- ComponentTypeTerraformModule
- ComponentTypeHelmChart
- ComponentTypeDockerBuild
- ComponentTypeExternalImage
- ComponentTypeJob
- ComponentTypeKubernetesManifest
- ComponentTypePulumi
- ComponentTypeUnknown
app.QueueSignal:
properties:
callback:
$ref: '#/components/schemas/callback.Ref'
callbacks:
items:
$ref: '#/components/schemas/callback.Ref'
type: array
created_at:
type: string
created_by_id:
type: string
emitter_id:
description: 'Optional: if this signal was emitted by an emitter'
type: string
enqueued:
type: boolean
execution_count:
type: integer
expires_at:
type: string
id:
type: string
org_id:
type: string
owner_id:
type: string
owner_type:
type: string
queue:
$ref: '#/components/schemas/app.Queue'
queue_id:
type: string
signal:
$ref: '#/components/schemas/signaldb.SignalData'
signal_context:
$ref: '#/components/schemas/cctx.SignalContext'
status:
$ref: '#/components/schemas/app.CompositeStatus'
type:
type: string
updated_at:
type: string
workflow:
$ref: '#/components/schemas/signaldb.WorkflowRef'
type: object
app.WorkflowStepPolicyValidation:
properties:
created_at:
type: string
created_by_id:
type: string
id:
type: string
install_workflow_step_id:
description: install workflow step is the install step that this was performed within
type: string
response:
description: 'response is the kyverno response (deprecated: use Reports for detailed results)'
type: string
runner_job_id:
description: runnerJobID is the runner job that this was performed within
type: string
status:
allOf:
- $ref: '#/components/schemas/app.CompositeStatus'
description: status denotes whether this passed, or whether it failed the job.
updated_at:
type: string
type: object
app.InstallRoleUsage:
properties:
created_at:
type: string
created_by_id:
type: string
id:
type: string
install_role_id:
type: string
org_id:
type: string
role_name:
type: string
role_selection_trace:
items:
$ref: '#/components/schemas/app.InstallRoleSelectionRecord'
type: array
role_source:
type: string
runner_job:
$ref: '#/components/schemas/app.RunnerJob'
runner_job_id:
type: string
updated_at:
type: string
workflow:
$ref: '#/components/schemas/app.Workflow'
workflow_step_id:
type: string
type: object
state.AWSCloudAccount:
properties:
region:
type: string
type: object
app.QueueEmitter:
properties:
created_at:
type: string
created_by_id:
type: string
cron_schedule:
description: 'Schedule configuration
For cron mode: cron expression (e.g., "0 * * * *")'
type: string
description:
type: string
emit_count:
type: integer
fired:
description: 'For scheduled mode: whether the signal has been fired'
type: boolean
id:
type: string
jitter_window:
description: 'For cron mode: spread emitter ticks deterministically across this window
to avoid thundering-herd when many emitters share a schedule. A hash of the
emitter ID determines each emitter''s static offset within the window. Zero
disables jitter (default).'
type: integer
last_emitted_at:
type: string
mode:
allOf:
- $ref: '#/components/schemas/app.QueueEmitterMode'
description: 'Emitter mode: "cron" for recurring, "scheduled" for one-shot'
name:
description: Emitter identity
type: string
next_emit_at:
type: string
org_id:
type: string
queue_id:
description: 'Many-to-one: each emitter belongs to exactly one queue'
type: string
scheduled_at:
description: 'For scheduled mode: the time to fire the signal'
type: string
signal_expires_in:
description: 'Optional TTL for emitted signals. When set, each emitted signal''s ExpiresAt
is computed as time.Now().Add(SignalExpiresIn) at emission time.'
type: integer
signal_template:
$ref: '#/components/schemas/signaldb.SignalData'
signal_type:
description: Signal template - the signal to emit on each tick
type: string
status:
allOf:
- $ref: '#/components/schemas/app.CompositeStatus'
description: Runtime state using shared CompositeStatus
updated_at:
type: string
workflow:
allOf:
- $ref: '#/components/schemas/signaldb.WorkflowRef'
description: Workflow reference for the emitter's cron workflow
type: object
github_com_nuonco_nuon_pkg_labels.Selector:
properties:
match_labels:
$ref: '#/components/schemas/github_com_nuonco_nuon_pkg_labels.Labels'
not_match_labels:
# --- truncated at 32 KB (146 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nuon/refs/heads/main/openapi/nuon-runners-runner-api-openapi.yml