The Only API docs
Messaging

Send a mass DM

OnlyFans-only synchronous fan-out of individual DMs, not a native queue item. Fansly returns 501 PLATFORM_NOT_SUPPORTED. dry_run defaults to the JSON boolean true and returns a…

POST
/accounts/{of_user_id}/messages/mass

OnlyFans-only synchronous fan-out of individual DMs, not a native queue item. Fansly returns 501 PLATFORM_NOT_SUPPORTED. dry_run defaults to the JSON boolean true and returns a cached recipient count and up to ten sample entries without sending. It does not validate attachments or reserve recipients.

Use audience.type active (default), all, or expired. Cache resolution currently reads at most 500 rows without pagination; min_spent filtering happens after that cap. Explicit audience.fan_ids overrides the other filters, uses at most 5,000 inputs and should be deduplicated by the caller. Cache freshness and these limits prevent treating this route as guaranteed all-fan coverage. Native userLists/excludedLists are not supported audience fields here.

A real send requires dry_run: false and allow_of_write_actions. It loops within the HTTP request and has no durable mass-job ID. Check sent, failed and every results entry; success: true can include partial failures. Do not retry the whole audience after an ambiguous timeout. Normal API accounting and rate limits apply. Prefer POST /api2/v2/messages/queue for one native mass message. See Messaging & mass DM.

X-API-Key<token>

Your CRM panel API key

In: header

Path Parameters

of_user_id*string

Creator account ID of the connected account (OnlyFans or Fansly). Use GET /accounts to list connected accounts and their IDs.

Header Parameters

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/accounts/string/messages/mass" \  -H "Content-Type: application/json" \  -d '{    "text": "New update",    "price": 0,    "mediaFiles": [],    "audience": {      "type": "active"    },    "dry_run": true  }'
{  "dry_run": true,  "failed": 0,  "note": "string",  "recipients": 0,  "results": [],  "sample": [],  "sent": 0,  "success": true}