The Only API docs
Messaging

Send a message

Send a direct message to a user. Supports text, media attachments (uploaded via the media upload endpoint first), PPV pricing, and locked text. Media must be uploaded to the…

POST
/api2/v2/chats/{user_id}/messages

Send a direct message to a user. Supports text, media attachments (uploaded via the media upload endpoint first), PPV pricing, and locked text. Media must be uploaded to the vault first, then referenced by ID in the mediaFiles array.

OnlyFans only. Requests made with a user-id belonging to a Fansly account are rejected — use the platform-neutral CRM data routes (/notifications, /balances, /chats, /purchases, /subscribers/cached, ...) which are Fansly-aware.

Guide: The two surfaces

X-API-Key<token>

Your CRM panel API key

In: header

Path Parameters

user_id*string

Header Parameters

user-id*string

Creator account ID of the account to act as (e.g. 509955039). Required — omitting it returns 400 user-id header is required. Use GET /accounts to list your connected accounts. On /api2/v2/* the account must be an OnlyFans account; Fansly accounts are rejected there.

X-Proxy?string

Proxy URL — HTTP or SOCKS5 (e.g. http://user:pass@host:port or socks5://user:pass@host:port). Optional on post-connection routes, where it overrides the proxy saved at login time. Required on the connection routes (POST /accounts/login, POST /accounts/login/cookies, POST /accounts/login/verify-otp) for OnlyFans accounts; optional for Fansly.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api2/v2/chats/string/messages" \  -H "user-id: 509955039" \  -H "Content-Type: application/json" \  -d '{    "text": "Hey! How are you?"  }'
{  "id": 0,  "text": "string",  "price": 0,  "isFromQueue": true,  "isOpened": true,  "isNew": true,  "createdAt": "2019-08-24T14:15:22Z",  "changedAt": "2019-08-24T14:15:22Z",  "isFree": true,  "media": [    {      "id": 0,      "type": "photo",      "createdAt": "2019-08-24T14:15:22Z",      "duration": 0,      "convertedToVideo": true,      "canView": true,      "isReady": true,      "hasError": true,      "hasPosts": true,      "hasCustomPreview": true,      "counters": {        "buyersCount": 0,        "likesCount": 0,        "tipsSumm": 0      },      "listStates": [        {          "id": 0,          "name": "string",          "hasMedia": true,          "canAddMedia": true        }      ],      "files": {        "full": {          "url": "string",          "width": 0,          "height": 0,          "size": 0        },        "preview": {          "url": "string",          "width": 0,          "height": 0        },        "thumb": {          "url": "string",          "width": 0,          "height": 0        },        "squarePreview": {          "url": "string",          "width": 0,          "height": 0        }      },      "videoSources": {        "property1": "string",        "property2": "string"      }    }  ],  "fromUser": {}}