---
title: "Send Conversation Message"
method: POST
path: "/v1/agents/{agent_id}/conversations/{conversation_id}/messages"
tags: ["API v1", "Agents", "Agent Conversations"]
---

# Send Conversation Message

`POST /v1/agents/{agent_id}/conversations/{conversation_id}/messages`

## Request

- Base URL: `https://api.xpander.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.xpander.ai/v1/agents/{agent_id}/conversations/{conversation_id}/messages`
- Auth: API key in header `x-api-key`

Send a follow-up to a (possibly running) conversation. mode=auto queues while running and signals 'started' when idle; mode=queue always enqueues; mode=steer delivers into the running task at its next tool boundary (409 when idle); mode=interrupt stops the task and runs this message as the next turn. A conversation with a live process (an external-harness agent between turns) takes every mode into that process: the answer is `steered` with steer_target `process`, never 409, and the process reads it on its next turn.

## Path parameters

- `agent_id` string, required
- `conversation_id` string, required

## Request body

- GatewayMessageRequest: Body of the chat-backend `messages` / `steer` endpoints.
  - `text` string
  - `files` string[]
  - `attachments` object[]
  - `mode` 'auto' | 'queue' | 'steer' | 'interrupt' | 'steer_if_running': How an inbound message to a (possibly running) conversation is handled.
  - `idempotency_key` string, nullable
  - `user` object, nullable
  - `ui_context` object, nullable
  - `is_notice` boolean

## Response `200`

Successful Response

- GatewayMessageAccepted: Result of accepting an inbound message for a running conversation.
  - `action` string, required
  - `message_id` string, nullable
  - `queue_depth` integer
  - `steer_target` 'none' | 'gateway' | 'child' | 'process': Where a steer would land right now (run-state / accept responses). Distinct from `GatewaySteerTarget`, which records where a steer WAS delivered after the fact (`router | child | next_turn`).
  - `conversation_id` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/xpander/apis/xpander-ai-api-service.md) - [All operations](https://skmtc.dev/xpander/apis/xpander-ai-api-service/llms.txt) - [OpenAPI document](https://skmtc.dev/xpander/apis/xpander-ai-api-service/revisions/4389ec0875d0?raw)
