---
title: "Send a message to a task"
method: POST
path: "/v1/tasks/{taskId}/messages"
tags: ["Adam API"]
---

# Send a message to a task

`POST /v1/tasks/{taskId}/messages`

Continues asynchronous work. Supplying attachments additionally requires files:write; each uploadId must come from POST /v1/uploads.

## Path parameters

- `taskId` string, uuid, required

## Headers

- `Idempotency-Key` string, required

## Request body

- AppendPublicApiTaskMessageRequestDto
  - `content` string
  - `attachments` object[]
    - `uploadId` string, required
  - `model` object
    - `slug` string, required
    - `fast` boolean
    - `effort` 'low' | 'medium' | 'high' | 'xhigh', nullable

## Response `202`

- AppendPublicApiTaskMessageResponseDto
  - `accepted` true, required
  - `task` object, required
    - `id` string, required
    - `title` string, required
    - `status` 'queued' | 'running' | 'awaiting_input' | 'completed' | 'cancelled' | 'failed', required
    - `projectId` string, nullable, required
    - `model` object, required
      - `slug` string, nullable, required
      - `fast` boolean, required
      - `effort` 'low' | 'medium' | 'high' | 'xhigh', nullable, required
    - `pendingInteraction` object, nullable, required
      - `id` string, required
      - `type` 'question' | 'approval', required
      - `prompt` string, nullable, required
    - `createdAt` string, required
    - `updatedAt` string, required

## Other responses

- `400` — Invalid request
- `401` — Missing or invalid Bearer credential
- `402` — Payment or subscription required
- `403` — Credential is missing a required scope
- `404` — Resource not found
- `409` — Request conflict
- `429` — Rate limit exceeded
- `500` — Internal API error

---

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