The Only API docs
Messaging

Create a mass message

Queue a mass message to be sent to multiple subscribers. You can target all subscribers, specific lists, or exclude certain users.

POST
/api2/v2/messages/queue

Queue a mass message to be sent to multiple subscribers. You can target all subscribers, specific lists, or exclude certain users.

Attaching media: POST /accounts/{of_user_id}/media (raw bytes or a source_url we fetch for you) returns a media object — pass it through here. Media already in the vault is referenced by its integer ID from GET /api2/v2/vault/media.

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

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

curl -X POST "https://example.com/api2/v2/messages/queue" \  -H "user-id: 509955039" \  -H "Content-Type: application/json" \  -d '{    "text": "Happy weekend! Check your DMs for a surprise 🎁",    "mediaFiles": [      12345    ],    "price": 5,    "queueBuyers": []  }'
Empty