---
title: "Send Fde Message"
method: POST
path: "/api/v1/fde/conversations/{conversation_id}/message"
tags: ["fde", "fde-messages"]
---

# Send Fde Message

`POST /api/v1/fde/conversations/{conversation_id}/message`

## Path parameters

- `conversation_id` string, uuid, required

## Request body

- FDEMessageCreate
  - `content` string, required
  - `skill_slug` string, nullable — Run one of the skills from GET /fde/conversations/{id}/skills. The slug is validated against THIS conversation's context, so a skill that exists elsewhere is still rejected here.
  - `disabled_tools` string[], nullable
  - `attachments` ChatAttachmentIn[], nullable
    - `s3_key` string, required
    - `filename` string, required
    - `content_type` 'image/png' | 'image/jpeg' | 'image/gif' | 'image/webp' | 'text/plain' | 'text/csv' | 'text/markdown' | 'application/json', required
    - `file_size` integer, required
  - `model` string, nullable — OpenRouter id of the model to run this turn on, from GET /fde/models/catalog. Omit to use the configured default.

## Response `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

## Changes

> 26 revisions in range; 1 not diffed.

- **2026-09-12** `0e71c3cd9536` — 1 info
  - added the new optional request property `skill_slug`
- **2026-09-07** `f074102ed7eb` — 1 info
  - added the new optional request property `model`
- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/fde/conversations/:conversation_id/message/post.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/4df7b22a7dae?raw)
