---
title: "POST /experimental/tasks/{id}/inputs"
method: POST
path: "/experimental/tasks/{id}/inputs"
tags: ["Tasks"]
---

# POST /experimental/tasks/{id}/inputs

`POST /experimental/tasks/{id}/inputs`

Sends a single input to a task. If the task is idle, this starts a new run; if a run is already in progress, the input is queued for the next run.

## Path parameters

- `id` string, uuid, required

## Headers

- `Authorization` string

## Request body

- object
  - `text` string, required
  - `structured` object
  - `inResponseTo` string, uuid

## Response `201`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'task-event', required
    - `attributes` union, required
      - object
        - `taskId` string, uuid, required
        - `runId` string, uuid, nullable, required
        - `actor` object, required
          - `kind` union, required
            - 'trigger'
            - 'agent'
            - 'human'
            - 'system'
          - `id` string
          - `name` string
        - `createdAt` string, date-time, required
        - `type` 'task.created', required
        - `payload` object, required
          - `definition` object, required
            - `skillRef` string, required
            - `repoUrl` string, required
            - `baseBranch` string
            - `agent` string, required
            - `model` string
            - `environmentId` string, uuid
            - `environmentName` string
            - `snapshotFamily` union
              - …
          - `inputs` object, required
      - object
        - `taskId` string, uuid, required
        - `runId` string, uuid, nullable, required
        - `actor` object, required
          - `kind` union, required
            - 'trigger'
            - 'agent'
            - 'human'
            - 'system'
          - `id` string
          - `name` string
        - `createdAt` string, date-time, required
        - `type` 'user_input.received', required
        - `payload` object, required
          - `text` string
          - `structured` object
          - `inResponseTo` string, uuid
      - object
        - `taskId` string, uuid, required
        - `runId` string, uuid, nullable, required
        - `actor` object, required
          - `kind` union, required
            - 'trigger'
            - 'agent'
            - 'human'
            - 'system'
          - `id` string
          - `name` string
        - `createdAt` string, date-time, required
        - `type` 'run.created', required
        - `payload` object, required
          - `runId` string, uuid, required
          - `consumedInputEventIds` string[], required
          - `resumeOfRunId` string, uuid
      - object
        - `taskId` string, uuid, required
        - `runId` string, uuid, nullable, required
        - `actor` object, required
          - `kind` union, required
            - 'trigger'
            - 'agent'
            - 'human'
            - 'system'
          - `id` string
          - `name` string
        - `createdAt` string, date-time, required
        - `type` 'run.finished', required
        - `payload` object, required
          - `outcome` union, required
            - 'completed'
            - 'needs_input'
            - 'failed'
          - `launchResult` object, required
            - `status` union, required — Coarse outcome: whether the skill changed anything. `succeeded` — the skill did its work; `no-action` — the skill ran but made no change; `failed` — the skill tried and could not complete. This is NOT derivable from the launch run's own status; the skill governs its domain-specific outcome via `output`.
              - …
            - `summary` string, required — Short human-readable summary of what the skill did.
            - `output` unknown
          - `questions` object[]
            - `id` string, required
            - `prompt` string, required
            - `options` string[]
            - `default` string
      - object
        - `taskId` string, uuid, required
        - `runId` string, uuid, nullable, required
        - `actor` object, required
          - `kind` union, required
            - 'trigger'
            - 'agent'
            - 'human'
            - 'system'
          - `id` string
          - `name` string
        - `createdAt` string, date-time, required
        - `type` 'run.error', required
        - `payload` object, required
          - `error` object, required
            - `code` string, required
            - `message` string, required
      - object
        - `taskId` string, uuid, required
        - `runId` string, uuid, nullable, required
        - `actor` object, required
          - `kind` union, required
            - 'trigger'
            - 'agent'
            - 'human'
            - 'system'
          - `id` string
          - `name` string
        - `createdAt` string, date-time, required
        - `type` 'task.cancelled', required
        - `payload` object, required
          - `reason` string
      - object
        - `taskId` string, uuid, required
        - `runId` string, uuid, nullable, required
        - `actor` object, required
          - `kind` union, required
            - 'trigger'
            - 'agent'
            - 'human'
            - 'system'
          - `id` string
          - `name` string
        - `createdAt` string, date-time, required
        - `type` 'input.requested', required
        - `payload` object, required
          - `questions` object[], required
            - `id` string, required
            - `prompt` string, required
            - `options` string[]
            - `default` string
      - object
        - `taskId` string, uuid, required
        - `runId` string, uuid, nullable, required
        - `actor` object, required
          - `kind` union, required
            - 'trigger'
            - 'agent'
            - 'human'
            - 'system'
          - `id` string
          - `name` string
        - `createdAt` string, date-time, required
        - `type` 'run.progress', required
        - `payload` object, required
          - `message` string, required
          - `tool` string
  - `meta` object, required
    - `task` object, required
      - `id` string, uuid, required
      - `status` union, required
        - 'running'
        - 'waiting_for_input'
        - 'cancelled'
        - 'completed'
      - `currentRunId` string, uuid, nullable, required
    - `startedRun` object
      - `launchRunId` string, uuid, required
      - `temporalWorkflowId` string, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

## Changes

- **2026-09-04** `ffb03b5d287f` — 2 info
  - added `subschema #4, subschema #5` to the `data/attributes` response property `anyOf` list for the response status `201`
  - removed `subschema #4, subschema #5` from the `data/attributes` response property `anyOf` list for the response status `201`
- **2026-08-12** `a3e84124ece4` — 1 info
  - added the optional property `data/attributes/anyOf[subschema #1]/payload/definition/snapshotFamily` to the response with the `201` status

[Change history](https://skmtc.dev/tessl/apis/tessl-api/changes/experimental/tasks/:id/inputs/post.md)

---

[API](https://skmtc.dev/tessl/apis/tessl-api.md) · [All operations](https://skmtc.dev/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tessl/tessl-api/revisions/ffb03b5d287f/schema)
