---
title: "Send a direct message"
method: POST
path: "/v1/conversations/{id}/messages"
tags: ["Messages"]
---

# Send a direct message

`POST /v1/conversations/{id}/messages`

## Request

- Base URL: `https://api.postlake.dev`
- URL: `https://api.postlake.dev/v1/conversations/{id}/messages`
- Auth: `bearerAuth` (a scheme the document does not define)

Free on supported networks except X, where sending a direct message costs 6 credits.

## Path parameters

- `id` string, required

## Request body

- object
  - `account` string, required
  - `text` string, required
  - `humanAgent` boolean: Assert that a PERSON wrote this reply. Meta allows a reply within 24 hours of someone's last message; the Human Agent tag extends that to 7 days and is granted only for replies a human composed. Never set it for an automated reply: the account carries the penalty, not the caller.

## Response `200`

Sent

- Message
  - `id` string
  - `text` string
  - `createdAt` string, date-time
  - `from` SocialActor
    - `handle` string
    - `displayName` string, nullable
    - `avatarUrl` string, nullable
    - `id` string, nullable: The network's own id, for follow/block/mute
  - `fromMe` boolean: True when you sent it, so callers never compare handles
  - `content` MessageContent: A meaningful non-text direct-message payload. This is present for attachments, shared media, and message types the network does not expose in readable form. Do not treat an empty text field with this object as an empty message.
    - `kind` 'attachment' | 'shared_media' | 'unsupported', required
    - `label` string, required
    - `url` string, uri, nullable, required: Provider URL when available. Null means the provider withheld a destination.

---

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