> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcliq.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Supply run inputs

> Gives a paused run (`awaiting_input`) the inputs it is waiting for. The values are merged
into the run's inputs (new values win), and the run resumes at once. CliqHub sends this
when someone answers in the CliqHub UI; you can call it too.

With `tx_id` (CliqHub's command id) a repeated call returns the first reply instead of
running again, and the outcome is acknowledged to CliqHub. Validation messages for this
endpoint are short codes CliqHub understands: `missing_run_id`, `missing_inputs`.

No credential is needed from this machine. From another host, send `Authorization: Bearer` with a dispatch token CliqHub signed for this daemon or a `cliq_tok_…` personal token of a user in the daemon's realm; this only works once the daemon is connected to CliqHub. See [Authentication](/daemon-api/overview#authentication).



## OpenAPI

````yaml /openapi/daemon-by-tag/daemon-runs.yaml post /v1/runs/supply_inputs
openapi: 3.1.0
info:
  title: cliqd API
  version: 1.9.48
  description: >-
    HTTP API of `cliqd`, the local Cliq daemon. Generated from the daemon source
    by `scripts/generate_daemon_openapi.mjs` — do not edit by hand. See the
    [overview](/daemon-api/overview).
servers:
  - url: http://127.0.0.1:4900
    description: Local daemon (default port; `CLIQ_DAEMON_PORT` changes it)
security: []
tags:
  - name: Daemon Runs
    description: >-
      Runs on this daemon. Start one with Start a run (Workspaces); everything
      after that is

      here: list runs, read a run's log, phases and tree of sub-runs, follow it
      live, supply

      the inputs a paused run is waiting for, and rerun a finished run from a
      phase.


      Wherever a body takes `run_id` you may also send the run's **name**,
      except the event

      endpoints, which need the id. Run ids are UUIDs.


      A run's life: `running` → (`awaiting_input` ↔ `running`)* → `completed`,
      `failed`,

      `cancelled` or `crashed`.
paths:
  /v1/runs/supply_inputs:
    post:
      tags:
        - Daemon Runs
      summary: Supply run inputs
      description: >-
        Gives a paused run (`awaiting_input`) the inputs it is waiting for. The
        values are merged

        into the run's inputs (new values win), and the run resumes at once.
        CliqHub sends this

        when someone answers in the CliqHub UI; you can call it too.


        With `tx_id` (CliqHub's command id) a repeated call returns the first
        reply instead of

        running again, and the outcome is acknowledged to CliqHub. Validation
        messages for this

        endpoint are short codes CliqHub understands: `missing_run_id`,
        `missing_inputs`.


        No credential is needed from this machine. From another host, send
        `Authorization: Bearer` with a dispatch token CliqHub signed for this
        daemon or a `cliq_tok_…` personal token of a user in the daemon's realm;
        this only works once the daemon is connected to CliqHub. See
        [Authentication](/daemon-api/overview#authentication).
      operationId: daemon_post_runs_supply_inputs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                run_id:
                  description: Run id or run name
                  type:
                    - string
                    - number
                inputs:
                  type: object
                  propertyNames:
                    type: string
                  additionalProperties: {}
                  description: Inputs merged into the run
                tx_id:
                  description: Hub command id (dedup + ack)
                  type: string
              required:
                - run_id
                - inputs
              additionalProperties: {}
            examples:
              default:
                value:
                  run_id: fix-login-timeout
                  inputs:
                    approve: true
                    comment: Ship it
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
                required:
                  - ok
                  - data
                properties:
                  ok:
                    type: boolean
                    const: true
                  data:
                    $ref: '#/components/schemas/RunInputsSupplied'
              example:
                ok: true
                data:
                  run_id: 0c8d7e6f-5a4b-4c3d-9e2f-1a0b9c8d7e6f
                  inputs:
                    pr_url: https://github.com/acme/api/pull/42
                    approve: true
                    comment: Ship it
                  resumed: true
        '400':
          description: >-
            `PAYLOAD_INVALID` — `run_id` is missing, or `inputs` is missing, not
            an object, or empty.


            `BAD_REQUEST` — The body is not valid JSON or is larger than the
            route allows (10 MB; artifact uploads more).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorReply'
              examples:
                PAYLOAD_INVALID:
                  summary: PAYLOAD_INVALID
                  value:
                    ok: false
                    error:
                      code: PAYLOAD_INVALID
                      message: 'inputs: missing_inputs'
                      details:
                        - path: inputs
                          message: missing_inputs
                BAD_REQUEST:
                  summary: BAD_REQUEST
                  value:
                    ok: false
                    error:
                      code: BAD_REQUEST
                      message: >-
                        Request body could not be read: Unexpected token } in
                        JSON at position 12
        '401':
          description: >-
            `UNAUTHORIZED` — A caller on another host sent no `Authorization:
            Bearer` token, or one that does not verify (expired, wrong
            audience).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorReply'
              examples:
                UNAUTHORIZED:
                  summary: UNAUTHORIZED
                  value:
                    ok: false
                    error:
                      code: UNAUTHORIZED
                      message: Missing or invalid Authorization Bearer token
        '403':
          description: >-
            `WEB_REQUEST_REFUSED` — The request carries an `Origin` header (it
            came from a web page).


            `HOST_NOT_LOCAL` — A loopback caller addressed a `Host` other than
            localhost (DNS rebinding guard).


            `LOCAL_ONLY` — The daemon isn't connected to CliqHub (no dispatch
            key) and the caller is on another host.


            `FORBIDDEN` — A `cliq_tok_…` token's user is not in this daemon's
            realm ACL, or the ACL is not loaded yet.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorReply'
              examples:
                WEB_REQUEST_REFUSED:
                  summary: WEB_REQUEST_REFUSED
                  value:
                    ok: false
                    error:
                      code: WEB_REQUEST_REFUSED
                      message: cliqd doesn't accept requests from web pages
                HOST_NOT_LOCAL:
                  summary: HOST_NOT_LOCAL
                  value:
                    ok: false
                    error:
                      code: HOST_NOT_LOCAL
                      message: cliqd only answers requests addressed to localhost
                LOCAL_ONLY:
                  summary: LOCAL_ONLY
                  value:
                    ok: false
                    error:
                      code: LOCAL_ONLY
                      message: >-
                        This cliqd isn't connected to CliqHub yet, so from
                        another machine it only accepts a local token (minted by
                        tokens/create on the machine running cliqd)
                FORBIDDEN:
                  summary: FORBIDDEN
                  value:
                    ok: false
                    error:
                      code: FORBIDDEN
                      message: Access denied — identity not in realm ACL
        '404':
          description: '`RUN_NOT_FOUND` — No run has this id or name.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorReply'
              examples:
                RUN_NOT_FOUND:
                  summary: RUN_NOT_FOUND
                  value:
                    ok: false
                    error:
                      code: RUN_NOT_FOUND
                      message: Run 'fix-login-timeout' not found
        '409':
          description: >-
            `RUN_INVALID_STATE` — The run is not `awaiting_input` (it is running
            or already finished).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorReply'
              examples:
                RUN_INVALID_STATE:
                  summary: RUN_INVALID_STATE
                  value:
                    ok: false
                    error:
                      code: RUN_INVALID_STATE
                      message: Run is in state 'running', not 'awaiting_input'
        '500':
          description: >-
            `INTERNAL_ERROR` — An unexpected daemon fault. The message names the
            request id; the cause is in the cliqd log.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorReply'
              examples:
                INTERNAL_ERROR:
                  summary: INTERNAL_ERROR
                  value:
                    ok: false
                    error:
                      code: INTERNAL_ERROR
                      message: >-
                        cliqd hit an unexpected error (request 7f3a…). Details
                        are in the cliqd log.
      security:
        - {}
        - DaemonBearer: []
components:
  schemas:
    RunInputsSupplied:
      type: object
      required:
        - run_id
        - inputs
        - resumed
      properties:
        run_id:
          type: string
          format: uuid
          example: 0c8d7e6f-5a4b-4c3d-9e2f-1a0b9c8d7e6f
        inputs:
          type: object
          additionalProperties: true
          description: All of the run's inputs after the merge.
          example:
            pr_url: https://github.com/acme/api/pull/42
            approve: true
        resumed:
          type: boolean
          const: true
          description: Always `true`; the run is `running` again.
    ErrorReply:
      type: object
      description: >-
        Every failure. Switch on `error.code` — it is stable; `message` is for
        people and may change.
      required:
        - ok
        - error
      properties:
        ok:
          type: boolean
          const: false
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Stable error code. See [Errors](/daemon-api/errors).
              example: TEAM_NOT_FOUND
            message:
              type: string
              description: What went wrong and, where possible, what to do.
              example: Team 'acme/code-review' not found
            details:
              description: >-
                Structured detail when there is some: the list of schema issues
                for `PAYLOAD_INVALID`, the agent problems for
                `TEAM_AGENT_CONFIG_REQUIRED`, …
  securitySchemes:
    DaemonBearer:
      type: http
      scheme: bearer
      description: >-
        Not needed from the same machine. From another host: a dispatch JWT
        CliqHub signed for this daemon, or a `cliq_tok_…` personal token whose
        user is in the daemon's realm.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.