Nuon apps API

apps

Operations 73

GET /v1/apps get all apps for the current org #
POST /v1/apps create an app #
DELETE /v1/apps/{app_id} delete an app #
GET /v1/apps/{app_id} get an app #
PATCH /v1/apps/{app_id} update an app #
GET /v1/apps/{app_id}/branches get app branches #
POST /v1/apps/{app_id}/branches #
DELETE /v1/apps/{app_id}/branches/{app_branch_id} delete an app branch #
GET /v1/apps/{app_id}/branches/{app_branch_id} get an app branch #
PATCH /v1/apps/{app_id}/branches/{app_branch_id} update app branch metadata #
GET /v1/apps/{app_id}/branches/{app_branch_id}/configs get app branch app configs #
POST /v1/apps/{app_id}/branches/{app_branch_id}/configs create an app branch config #
GET /v1/apps/{app_id}/branches/{app_branch_id}/latest-config get latest app branch config #
GET /v1/apps/{app_id}/branches/{app_branch_id}/runs get app branch workflow runs #
POST /v1/apps/{app_id}/branches/{app_branch_id}/runs trigger app branch workflow run #
GET /v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/builds get builds for an app branch run #
GET /v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/install-group-runs list install group runs for an app branch run #
GET /v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/install-group-runs/{install_group_run_id} get a specific install group run #
GET /v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/install-groups get install group deployments for an app branch run #
POST /v1/apps/{app_id}/break-glass-configs #
GET /v1/apps/{app_id}/break-glass-configs/{config_id} get app break_glass config #
POST /v1/apps/{app_id}/config #
GET /v1/apps/{app_id}/config/{app_config_id} get an app config #
PATCH /v1/apps/{app_id}/config/{app_config_id} #
GET /v1/apps/{app_id}/config/{app_config_id}/graph get an app config graph #
POST /v1/apps/{app_id}/config/{app_config_id}/update-installs #
GET /v1/apps/{app_id}/configs get app configs #
POST /v1/apps/{app_id}/configs #
GET /v1/apps/{app_id}/configs/{config_id} get an app config #
PATCH /v1/apps/{app_id}/configs/{config_id} #
POST /v1/apps/{app_id}/configs/{config_id}/build Build all components for an app config #
GET /v1/apps/{app_id}/configs/{config_id}/diff diff two app configs #
GET /v1/apps/{app_id}/configs/{config_id}/graph get an app config graph #
POST /v1/apps/{app_id}/configs/{config_id}/update-installs #
POST /v1/apps/{app_id}/input-config #
GET /v1/apps/{app_id}/input-configs get app input configs #
GET /v1/apps/{app_id}/input-configs/{input_config_id} get app input config #
GET /v1/apps/{app_id}/input-latest-config get latest app input config #
POST /v1/apps/{app_id}/kubernetes-contexts-configs create a kubernetes contexts config #
GET /v1/apps/{app_id}/labels get all labels used across an app #
GET /v1/apps/{app_id}/latest-break-glass-config get latest app break glass config #
GET /v1/apps/{app_id}/latest-config get latest app config #
GET /v1/apps/{app_id}/latest-permissions-config get latest app permissions config #
GET /v1/apps/{app_id}/latest-policies-config get latest app policies config #
GET /v1/apps/{app_id}/latest-secrets-config get latest app secrets config #
POST /v1/apps/{app_id}/operation-role-configs create operation role config #
GET /v1/apps/{app_id}/operation-role-configs/{operation_role_config_id} get operation role configs #
POST /v1/apps/{app_id}/permissions-configs #
GET /v1/apps/{app_id}/permissions-configs/{config_id} get app permissions config #
GET /v1/apps/{app_id}/policies-configs get app policies configs #
POST /v1/apps/{app_id}/policies-configs #
GET /v1/apps/{app_id}/policies-configs/{config_id} get app policies config #
GET /v1/apps/{app_id}/policy-config/{policy_config_id} get app policy config #
GET /v1/apps/{app_id}/runner-configs get app runner configs #
POST /v1/apps/{app_id}/runner-configs create an app runner config #
GET /v1/apps/{app_id}/runner-latest-config get latest app runner config #
POST /v1/apps/{app_id}/sandbox-config create an app sandbox config #
GET /v1/apps/{app_id}/sandbox-configs get app sandbox configs #
POST /v1/apps/{app_id}/sandbox-configs create an app sandbox config #
GET /v1/apps/{app_id}/sandbox-latest-config get latest app sandbox config #
GET /v1/apps/{app_id}/sandbox/builds get app sandbox builds #
POST /v1/apps/{app_id}/sandbox/builds create app sandbox build #
GET /v1/apps/{app_id}/sandbox/builds/{build_id} get app sandbox build #
POST /v1/apps/{app_id}/secret create an app secret #
DELETE /v1/apps/{app_id}/secret/{secret_id} delete an app secret #
GET /v1/apps/{app_id}/secrets get app secrets #
POST /v1/apps/{app_id}/secrets create an app secret #
POST /v1/apps/{app_id}/secrets-configs #
GET /v1/apps/{app_id}/secrets-configs/{config_id} get app secrets config #
DELETE /v1/apps/{app_id}/secrets/{secret_id} delete an app secret #
POST /v1/apps/{app_id}/stack-configs create an app stack config #
GET /v1/apps/{app_id}/stack-configs/{config_id} get app stack config #
GET /v1/apps/{app_id}/template-config get an app config template #

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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/nuon-apps-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

nuon-apps-api-openapi.yml Raw ↑
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 Apps API
  version: 0.19.1074
servers:
- url: https://api.nuon.co/
tags:
- description: apps
  name: apps
paths:
  /v1/apps:
    get:
      description: 'Returns all apps for the authenticated user.

        '
      operationId: GetApps
      parameters:
      - description: offset of jobs to return
        in: query
        name: offset
        schema:
          type: integer
          default: 0
      - description: search query to filter apps by name or ID
        in: query
        name: q
        schema:
          type: string
      - description: limit of jobs 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.App'
                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 all apps for the current org
      tags:
      - apps
    post:
      description: 'Create a new app.

        '
      operationId: CreateApp
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.App'
        '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 an app
      tags:
      - apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/service.CreateAppRequest'
        description: Input
        required: true
  /v1/apps/{app_id}:
    delete:
      description: 'Delete an app.

        '
      operationId: DeleteApp
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.EmptyResponse'
        '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 an app
      tags:
      - apps
    get:
      description: 'Return an app.

        '
      operationId: GetApp
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.App'
        '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 app
      tags:
      - apps
    patch:
      description: 'Update an app''s configuration.

        '
      operationId: UpdateApp
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.App'
        '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 an app
      tags:
      - apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/service.UpdateAppRequest'
        description: Input
        required: true
  /v1/apps/{app_id}/branches:
    get:
      description: 'Returns all branches for the provided app.

        '
      operationId: GetAppBranches
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: offset of branches to return
        in: query
        name: offset
        schema:
          type: integer
          default: 0
      - description: limit of branches 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.AppBranch'
                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 app branches
      tags:
      - apps
    post:
      description: 'Cancel a runner job.

        '
      operationId: CreateAppBranch
      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.AppBranch'
        '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: []
      tags:
      - apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/service.CreateAppBranchRequest'
        description: Input
        required: true
  /v1/apps/{app_id}/branches/{app_branch_id}:
    delete:
      description: Deletes an app branch and all associated configs, runs, and install group runs.
      operationId: DeleteAppBranch
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.EmptyResponse'
        '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 an app branch
      tags:
      - apps
    get:
      description: 'Get an app branch by ID. Use `latest_config=true` query parameter to include only the most recent config with its VCS settings and install groups.

        '
      operationId: GetAppBranch
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      - description: include only the latest config
        in: query
        name: latest_config
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.AppBranch'
        '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 app branch
      tags:
      - apps
    patch:
      description: Updates app branch metadata (name only). To update configuration, create a new AppBranchConfig via POST /branches/:id/configs
      operationId: UpdateAppBranch
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.AppBranch'
        '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 app branch metadata
      tags:
      - apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/service.UpdateAppBranchRequest'
        description: Input
        required: true
  /v1/apps/{app_id}/branches/{app_branch_id}/configs:
    get:
      description: 'Returns all branch configurations for the provided app.

        '
      operationId: GetAppBranchAppConfigs
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      - description: offset of branches to return
        in: query
        name: offset
        schema:
          type: integer
          default: 0
      - description: limit of branches 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.AppConfig'
                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 app branch app configs
      tags:
      - apps
    post:
      description: 'Create a branch configuration for an app.

        '
      operationId: CreateAppBranchConfig
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.AppBranchConfig'
        '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 an app branch config
      tags:
      - apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/service.CreateAppBranchConfigRequest'
        description: Input
        required: true
  /v1/apps/{app_id}/branches/{app_branch_id}/latest-config:
    get:
      description: Returns the latest AppBranchConfig ordered by config_number (descending)
      operationId: GetAppBranchLatestConfig
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.AppBranchConfig'
        '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 latest app branch config
      tags:
      - apps
  /v1/apps/{app_id}/branches/{app_branch_id}/runs:
    get:
      description: Returns workflow runs for an app branch ordered by creation time (descending)
      operationId: GetAppBranchRuns
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      - 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.Workflow'
                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 app branch workflow runs
      tags:
      - apps
    post:
      description: Creates and triggers a workflow run for an app branch. If config_id is not provided, uses the latest config.
      operationId: TriggerAppBranchRun
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app.AppBranchRun'
        '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: trigger app branch workflow run
      tags:
      - apps
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/service.TriggerAppBranchRunRequest'
        description: Input
        required: true
  /v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/builds:
    get:
      description: Returns component builds triggered by a specific app branch run
      operationId: GetAppBranchRunBuilds
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      - description: app branch run ID
        in: path
        name: run_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/app.ComponentBuild'
                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 builds for an app branch run
      tags:
      - apps
  /v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/install-group-runs:
    get:
      description: Returns all install group runs for a specific app branch run
      operationId: GetInstallGroupRuns
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      - description: app branch run ID
        in: path
        name: run_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/app.InstallGroupRun'
                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 install group runs for an app branch run
      tags:
      - apps
  /v1/apps/{app_id}/branches/{app_branch_id}/runs/{run_id}/install-group-runs/{install_group_run_id}:
    get:
      description: Returns a single install group run with full details
      operationId: GetInstallGroupRun
      parameters:
      - description: app ID
        in: path
        name: app_id
        required: true
        schema:
          type: string
      - description: app branch ID
        in: path
        name: app_branch_id
        required: true
        schema:
          type: string
      - description: app branch run ID
        in: path
        name: run_id
        required: true
        schema:
          type: string
      - description: install group run 

# --- truncated at 32 KB (310 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nuon/refs/heads/main/openapi/nuon-apps-api-openapi.yml