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-vcs-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 VCS API
version: 0.19.1074
servers:
- url: https://api.nuon.co/
tags:
- description: vcs
name: vcs
paths:
/v1/vcs/connection-callback:
post:
description: 'Handle VCS connection callback for OAuth flow.
'
operationId: CreateVCSConnectionCallback
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/app.VCSConnection'
'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'
summary: public connection to create a vcs connection via a callback
tags:
- vcs
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service.CreateConnectionCallbackRequest'
description: Input
required: true
/v1/vcs/connections:
get:
description: 'Returns all VCS connections for the provided organization.
'
operationId: GetOrgVCSConnections
parameters:
- description: offset of results to return
in: query
name: offset
schema:
type: integer
default: 0
- description: limit of results to return
in: query
name: limit
schema:
type: integer
default: 10
- description: page number of results to return
in: query
name: page
schema:
type: integer
default: 0
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/app.VCSConnection'
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 vcs connection for an org
tags:
- vcs
post:
description: 'Create a VCS connection for version control integration.
'
operationId: CreateVCSConnection
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/app.VCSConnection'
'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 a vcs connection for Github
tags:
- vcs
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/service.CreateConnectionRequest'
description: Input
required: true
/v1/vcs/connections/{connection_id}:
delete:
description: 'Delete a VCS connection.
'
operationId: DeleteVCSConnection
parameters:
- description: Connection ID
in: path
name: connection_id
required: true
schema:
type: string
- description: If true, also uninstall the GitHub App on the GitHub side. Defaults to false so other Nuon orgs sharing the same installation are not impacted.
in: query
name: delete_github_app
schema:
type: boolean
responses:
'204':
description: No Content
'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: Deletes a VCS connection
tags:
- vcs
get:
description: 'Return a VCS connection by id.
'
operationId: GetVCSConnection
parameters:
- description: connection ID
in: path
name: connection_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.VCSConnection'
'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: returns a vcs connection for an org
tags:
- vcs
/v1/vcs/connections/{connection_id}/branches:
get:
description: Returns list of branches for the specified repository
operationId: GetVCSConnectionRepoBranches
parameters:
- description: connection ID
in: path
name: connection_id
required: true
schema:
type: string
- description: repository owner
in: query
name: owner
required: true
schema:
type: string
- description: repository name
in: query
name: repo
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
items:
$ref: '#/components/schemas/service.Branch'
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: List branches for a repository
tags:
- vcs
/v1/vcs/connections/{connection_id}/check-status:
get:
description: 'Check the real-time status of a VCS (GitHub App) connection.
This endpoint queries GitHub''s API directly to fetch the current installation status, including:
- Active/Suspended state
- Account information
- Permissions
- Suspension details (if applicable)
**Important**: This endpoint always fetches fresh data from GitHub (no caching) to ensure accurate status information.
## Response Status Values
- `active`: The GitHub App installation is active and functioning
- `suspended`: The installation has been suspended (see `suspended_at` and `suspended_by` for details)
- `unknown`: Unable to determine status (GitHub API error - see `error` field)
## Use Cases
- Troubleshooting connection issues
- Monitoring installation health
- Detecting suspended or revoked installations
- Validating permissions before operations
'
operationId: CheckVCSConnectionStatus
parameters:
- description: connection ID
in: path
name: connection_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/service.VCSConnectionStatusResponse'
'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: check the real-time status of a VCS connection
tags:
- vcs
/v1/vcs/connections/{connection_id}/repos:
get:
description: Lists all repositories accessible by a GitHub App installation (VCS connection)
parameters:
- description: VCS Connection ID
in: path
name: connection_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/service.VCSConnectionReposResponse'
'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: List VCS connection repositories
tags:
- vcs
/v1/vcs/connections/{connection_id}/webhook-subscription:
get:
description: 'Returns the webhook subscription associated with a VCS connection.
'
operationId: GetVCSConnectionWebhookSubscription
parameters:
- description: connection ID
in: path
name: connection_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.VCSWebhookSubscription'
'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: returns the webhook subscription for a vcs connection
tags:
- vcs
post:
description: 'Creates a webhook subscription for a VCS connection. This enqueues a signal that will register a GitHub webhook for receiving push and pull request events.
'
operationId: CreateVCSConnectionWebhookSubscription
parameters:
- description: connection ID
in: path
name: connection_id
required: true
schema:
type: string
responses:
'201':
description: Created
'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: creates a webhook subscription for a vcs connection
tags:
- vcs
/v1/vcs/webhooks/{subscription_id}/events:
post:
description: Receives webhook events for a webhook subscription and creates a GithubEvent for processing
operationId: WriteWebhookEvent
parameters:
- description: Webhook Subscription ID
in: path
name: subscription_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.GithubEvent'
'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'
'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'
summary: Write a VCS webhook event (shared per subscription)
tags:
- vcs
/v1/vcs/{vcs_connection_id}/events:
post:
description: Writes incoming webhook events for a VCS connection (legacy endpoint)
operationId: WriteVCSEvent
parameters:
- description: VCS Connection ID
in: path
name: vcs_connection_id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/app.GithubEvent'
'400':
description: Bad Request
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'
summary: Write a VCS webhook event
tags:
- vcs
components:
schemas:
app.VCSWebhookSubscription:
properties:
created_at:
type: string
created_by_id:
type: string
github_hook_id:
type: integer
github_install_id:
type: string
id:
type: string
status:
$ref: '#/components/schemas/app.CompositeStatus'
updated_at:
type: string
vcs_connection_id:
type: string
webhook_url:
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
cctx.SignalContext:
properties:
account_id:
type: string
log_stream_id:
type: string
org_id:
type: string
trace_id:
type: string
type: object
service.VCSConnectionRepo:
properties:
default_branch:
type: string
description:
type: string
fork:
type: boolean
full_name:
type: string
html_url:
type: string
id:
type: integer
name:
type: string
private:
type: boolean
updated_at:
type: string
type: object
signaldb.SignalData:
properties:
signal: {}
type: object
service.Branch:
properties:
name:
type: string
type: object
github.Plan:
properties:
collaborators:
type: integer
filled_seats:
type: integer
name:
type: string
private_repos:
type: integer
seats:
type: integer
space:
type: integer
type: object
service.VCSConnectionStatusResponse:
properties:
account:
$ref: '#/components/schemas/service.VCSConnectionAccount'
checked_at:
type: string
error:
type: string
github_install_id:
type: string
permissions:
additionalProperties:
type: string
type: object
repository_selection:
type: string
status:
type: string
suspended_at:
type: string
suspended_by:
$ref: '#/components/schemas/github.User'
type: object
github.Match:
properties:
indices:
items:
type: integer
type: array
text:
type: string
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
service.VCSConnectionReposResponse:
properties:
repositories:
items:
$ref: '#/components/schemas/service.VCSConnectionRepo'
type: array
total_count:
type: integer
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
app.Status:
enum:
- error
- pending
- in-progress
- checking-plan
- success
- not-attempted
- cancelled
- retrying
- discarded
- user-skipped
- auto-skipped
- planning
- applying
- queued
- warning
- failed-pending-retry
- generating
- awaiting-user-run
- provisioning
- active
- outdated
- expired
- approved
- drifted
- no-drift
- approval-expired
- approval-denied
- approval-retry
- building
- deleting
- noop
- approval-awaiting
type: string
x-enum-varnames:
- StatusError
- StatusPending
- StatusInProgress
- StatusCheckPlan
- StatusSuccess
- StatusNotAttempted
- StatusCancelled
- StatusRetrying
- StatusDiscarded
- StatusUserSkipped
- StatusAutoSkipped
- StatusPlanning
- StatusApplying
- StatusQueued
- StatusWarning
- StatusFailedPendingRetry
- InstallStackVersionStatusGenerating
- InstallStackVersionStatusPendingUser
- InstallStackVersionStatusProvisioning
- InstallStackVersionStatusActive
- InstallStackVersionStatusOutdated
- InstallStackVersionStatusExpired
- WorkflowStepApprovalStatusApproved
- WorkflowStepDrifted
- WorkflowStepNoDrift
- WorkflowStepApprovalStatusApprovalExpired
- WorkflowStepApprovalStatusApprovalDenied
- WorkflowStepApprovalStatusApprovalRetryPlan
- StatusBuilding
- StatusDeleting
- InstallDeployStatusV2Noop
- AwaitingApproval
app.QueueEmitterMode:
enum:
- cron
- scheduled
- fire_once
type: string
x-enum-varnames:
- QueueEmitterModeCron
- QueueEmitterModeScheduled
- QueueEmitterModeFireOnce
app.VCSConnection:
properties:
created_at:
type: string
created_by_id:
type: string
github_account_id:
type: string
github_account_name:
type: string
github_install_id:
type: string
id:
type: string
queues:
items:
$ref: '#/components/schemas/app.Queue'
type: array
status:
$ref: '#/components/schemas/app.CompositeStatus'
updated_at:
type: string
vcs_connection_commit:
items:
$ref: '#/components/schemas/app.VCSConnectionCommit'
type: array
type: object
service.CreateConnectionRequest:
properties:
github_install_id:
type: string
required:
- github_install_id
type: object
github.TextMatch:
properties:
fragment:
type: string
matches:
items:
$ref: '#/components/schemas/github.Match'
type: array
object_type:
type: string
object_url:
type: string
property:
type: string
type: object
app.CompositeStatus:
properties:
created_at_ts:
type: integer
created_by_id:
type: string
history:
items:
$ref: '#/components/schemas/app.CompositeStatus'
type: array
metadata:
additionalProperties: {}
type: object
status:
$ref: '#/components/schemas/app.Status'
status_human_description:
type: string
type: object
service.VCSConnectionAccount:
properties:
id:
type: integer
login:
type: string
type:
type: string
type: object
app.GithubEvent:
properties:
created_at:
type: string
created_by_id:
type: string
event_type:
type: string
github_install_id:
type: string
id:
type: string
payload:
$ref: '#/components/schemas/blobstore.Blob'
status:
$ref: '#/components/schemas/app.CompositeStatus'
updated_at:
type: string
type: object
blobstore.Blob:
type: object
callback.Ref:
properties:
namespace:
type: string
signal_name:
type: string
workflow_id:
type: string
type: object
github.User:
properties:
avatar_url:
type: string
bio:
type: string
blog:
type: string
collaborators:
type: integer
company:
type: string
created_at:
$ref: '#/components/schemas/github.Timestamp'
disk_usage:
type: integer
email:
type: string
events_url:
type: string
followers:
type: integer
followers_url:
type: string
following:
type: integer
following_url:
type: string
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nuon/refs/heads/main/openapi/nuon-vcs-api-openapi.yml