---
title: "POST /experimental/tasks"
method: POST
path: "/experimental/tasks"
tags: ["Tasks"]
---

# POST /experimental/tasks

`POST /experimental/tasks`

Create-or-get a task by `idempotencyKey`. Emits `task.created`; when `startImmediately` (default true) and inputs are supplied, kicks off the first run.

## Headers

- `Authorization` string

## Request body

- object
  - `workspaceName` string, required
  - `idempotencyKey` string, required
  - `definition` object, required
    - `skillRef` string, required
    - `repoUrl` string, required
    - `baseBranch` string
    - `agent` string, required
    - `model` string
    - `environmentId` string, uuid
    - `environmentName` string
  - `inputs` object, required
  - `links` object[]
    - `type` string, required
    - `value` string, required
    - `displayLabel` string
    - `displayTitle` string
    - `displayUrl` string
  - `initialUserInput` object
    - `text` string
    - `structured` object
  - `startImmediately` boolean

## Response `200`

Default Response

- object
  - `links` object, required
    - `web` string, uri, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'task', required
    - `attributes` object, required
      - `status` union, required
        - 'running'
        - 'waiting_for_input'
        - 'cancelled'
        - 'completed'
      - `definition` object, required
        - `skillRef` string, required
        - `repoUrl` string, required
        - `baseBranch` string
        - `agent` string, required
        - `model` string
        - `environmentId` string, uuid
        - `environmentName` string
      - `inputs` object, required
      - `currentRunId` string, uuid, nullable, required
      - `links` object[], required
        - `type` string, required
        - `value` string, required
        - `eventId` string, uuid, nullable, required
        - `displayLabel` string
        - `displayTitle` string
        - `displayUrl` string
      - `createdBy` string, uuid, nullable, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required

## Other responses

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

---

[API](https://skmtc.net/tessl/apis/tessl-api.md) · [All operations](https://skmtc.net/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tessl/tessl-api/versions/fbb186825642/schema)
