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-runbooks-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 Runbooks API
version: 0.19.1074
servers:
- url: https://api.nuon.co/
tags:
- description: runbooks
name: runbooks
paths:
/v1/apps/{app_id}/runbooks:
get:
operationId: GetRunbooks
parameters:
- description: app ID
in: path
name: app_id
required: true
schema:
type: string
- description: search query to filter runbooks by name or ID
in: query
name: q
schema:
type: string
- description: offset
in: query
name: offset
schema:
type: integer
default: 0
- description: limit
in: query
name: limit
schema:
type: integer
default: 10
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/app.Runbook'
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 runbooks for an app
tags:
- runbooks
post:
operationId: CreateRunbook
parameters:
- description: app ID
in: path
name: app_id
required: true
schema:
type: string
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/app.Runbook'
'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: create a runbook for an app
tags:
- runbooks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service.CreateRunbookRequest'
description: Input
required: true
/v1/apps/{app_id}/runbooks/{runbook_id}:
delete:
operationId: DeleteRunbook
parameters:
- description: app ID
in: path
name: app_id
required: true
schema:
type: string
- description: runbook ID
in: path
name: runbook_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: boolean
'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 a runbook
tags:
- runbooks
get:
operationId: GetRunbook
parameters:
- description: app ID
in: path
name: app_id
required: true
schema:
type: string
- description: runbook ID
in: path
name: runbook_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.Runbook'
'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 a runbook
tags:
- runbooks
patch:
operationId: UpdateRunbook
parameters:
- description: app ID
in: path
name: app_id
required: true
schema:
type: string
- description: runbook ID
in: path
name: runbook_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.Runbook'
'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 a runbook
tags:
- runbooks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service.UpdateRunbookRequest'
description: Input
required: true
/v1/apps/{app_id}/runbooks/{runbook_id}/configs:
get:
operationId: GetRunbookConfigs
parameters:
- description: app ID
in: path
name: app_id
required: true
schema:
type: string
- description: runbook ID
in: path
name: runbook_id
required: true
schema:
type: string
- description: offset
in: query
name: offset
schema:
type: integer
default: 0
- description: limit
in: query
name: limit
schema:
type: integer
default: 10
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/app.RunbookConfig'
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 runbook configs
tags:
- runbooks
post:
operationId: CreateRunbookConfig
parameters:
- description: app ID
in: path
name: app_id
required: true
schema:
type: string
- description: runbook ID
in: path
name: runbook_id
required: true
schema:
type: string
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/app.RunbookConfig'
'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: create a runbook config
tags:
- runbooks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service.CreateRunbookConfigRequest'
description: Input
required: true
/v1/installs/{install_id}/runbook-runs:
get:
operationId: GetInstallRunbookRuns
parameters:
- description: install ID
in: path
name: install_id
required: true
schema:
type: string
- description: filter by runbook ID or name
in: query
name: runbook_id
schema:
type: string
- description: offset
in: query
name: offset
schema:
type: integer
default: 0
- description: limit
in: query
name: limit
schema:
type: integer
default: 10
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/app.InstallRunbookRun'
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 runbook runs for an install
tags:
- runbooks
/v1/installs/{install_id}/runbook-runs/{run_id}:
get:
operationId: GetInstallRunbookRun
parameters:
- description: install ID
in: path
name: install_id
required: true
schema:
type: string
- description: run ID
in: path
name: run_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.InstallRunbookRun'
'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 a runbook run
tags:
- runbooks
/v1/installs/{install_id}/runbooks:
get:
operationId: GetInstallRunbooks
parameters:
- description: install ID
in: path
name: install_id
required: true
schema:
type: string
- description: offset
in: query
name: offset
schema:
type: integer
default: 0
- description: limit
in: query
name: limit
schema:
type: integer
default: 10
- description: search by runbook name or ID
in: query
name: q
schema:
type: string
- description: return runbooks in the install's current app config; set false to return only runbooks no longer in it
in: query
name: synced
schema:
type: boolean
default: true
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/app.InstallRunbook'
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 runbooks for an install
tags:
- runbooks
/v1/installs/{install_id}/runbooks/{runbook_id}:
get:
operationId: GetInstallRunbook
parameters:
- description: install ID
in: path
name: install_id
required: true
schema:
type: string
- description: runbook ID or name
in: path
name: runbook_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.InstallRunbook'
'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 an install runbook
tags:
- runbooks
/v1/installs/{install_id}/runbooks/{runbook_id}/runs:
post:
operationId: CreateRunbookRun
parameters:
- description: install ID
in: path
name: install_id
required: true
schema:
type: string
- description: runbook ID or name
in: path
name: runbook_id
required: true
schema:
type: string
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/app.InstallRunbookRun'
'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: run a runbook on an install
tags:
- runbooks
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service.CreateRunbookRunRequest'
description: Input
components:
schemas:
github_com_nuonco_nuon_pkg_labels.Labels:
additionalProperties:
type: string
type: object
state.InputsState:
properties:
inputs:
additionalProperties:
type: string
type: object
populated:
type: boolean
type: object
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.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
app.InstallRunbook:
properties:
created_at:
type: string
created_by_id:
type: string
id:
type: string
install_id:
type: string
runbook:
$ref: '#/components/schemas/app.Runbook'
runbook_id:
type: string
runs:
items:
$ref: '#/components/schemas/app.InstallRunbookRun'
type: array
status:
description: after query fields
type: string
updated_at:
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
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
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.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:
propert
# --- truncated at 32 KB (156 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nuon/refs/heads/main/openapi/nuon-runbooks-api-openapi.yml