---
title: "Send Message"
method: POST
path: "/v1/ask-feather/sessions/{session_id}/messages"
tags: ["ask-feather"]
---

# Send Message

`POST /v1/ask-feather/sessions/{session_id}/messages`

Enqueue a turn (Phase 3 split contract): run the same fast pre-flight gates
as before, commit a durable ``queued`` turn row, drop a job on the ``ask_feather``
worker queue, and return ``{turn_id}``. The client then opens a separate
``…/turns/{turn_id}/stream`` request to watch it. The web process holds no DB
connection and does no AI work past this point.

## Path parameters

- `session_id` string, uuid, required

## Request body

- SrcAskFeatherSchemasSendMessageRequest
  - `content` string, required
  - `workflow` string, nullable

## Response `202`

Successful Response

- TurnAcceptedResponse — Phase 3 split contract: POST enqueues a turn and returns its id + status; the client then opens a separate ``…/turns/{turn_id}/stream`` SSE request to watch it. ``status`` is ``queued`` immediately after enqueue.
  - `turn_id` string, uuid, required
  - `status` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/oneloop-hq/apis/feather-api.md) · [All operations](https://skmtc.net/oneloop-hq/apis/feather-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneloop-hq/feather-api/revisions/9cd7291d4228/schema)
