Create a mass message
Create a native OnlyFans mass-message queue item. Select the native Fans audience explicitly with userLists: ["fans"]. Do not assume this includes expired subscribers or…
Create a native OnlyFans mass-message queue item. Select the native Fans audience explicitly with userLists: ["fans"]. Do not assume this includes expired subscribers or guarantees delivery to every subscriber. Discover lists with GET /api2/v2/lists?view=queue; preview Fans recipients using GET /api2/v2/chats/users?limit=1&offset=0&total=1&skip_users=all&filter[list_id]=fans&field=recent&sort=desc and read data.total.
Correction: queueBuyers selects buyers of previous queued messages; an empty array is not a verified all-subscribers selector.
For a free message use price: 0 and lockedText: false. For Feed-first reuse, persist the successful post ID and pass its permanent photo media[].id integers in mediaFiles. Do not re-upload or rely on reusing consumed temporary upload objects. The sending account must own the media.
This POST is a real send. There is no supported dry_run or documented idempotency-key contract. Requires allow_of_write_actions. Persist one unique local job per account/feed_post_id; hold ambiguous timeouts, transport errors and 5xx outcomes for reconciliation instead of blindly retrying. Never republish or roll back the Feed because a message fails. Queue acceptance does not prove delivery.
Verification on 27 October 2026 covered live reads and client payload construction, not a real send. See Messaging & mass DM and Write outcomes & verification. OnlyFans only.
Authorization
apiKey Your CRM panel API key
In: header
Header Parameters
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.
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": "See more here: https://onlyfans.com/MODEL_USERNAME", "price": 0, "lockedText": false, "mediaFiles": [ 123456789, 987654321 ], "previews": [], "isForward": false, "userLists": [ "fans" ] }'Get queued mass messages GET
Read native queued mass messages. The upstream body observed live is an array under data in the passthrough envelope, not data.list. This is not an exhaustive historical…
Preview an existing queue buyer selection POST
The inspected OnlyFans client uses this endpoint with an existing queue/buyer selection. It is not the general list-audience preview. Do not use queueBuyers: [] to mean all…