OnlyFans Chat API
Where the messaging API reads and sends individual messages, the chat endpoints give you the conversation list — the backbone of any unified inbox, support queue, or triage view spanning one creator or a whole agency roster. A chat is the thread; a message lives inside it.
What you can do
- List a creator's chats, paginated and ordered by recent activity.
- List chats scoped to a specific linked account (agencies managing several creators).
- Drive an inbox that stays current by pairing the list with webhooks.
Endpoints
GET /api/public/v1/chats
GET /api/public/v1/accounts/{accountId}/chats
The global form uses the first active account; the scoped form addresses one creator by accountId, which is what you want when several creators are linked under one key.
List chats
curl "https://api.ofapis.com/api/public/v1/chats?limit=50" \
-H "Authorization: Bearer ofapis_sk_..."
Each entry carries the fan, the last message, and unread state. Page through with the returned cursor to pull the full conversation set, then load any thread's history and reply with the messaging API. Every successful page debits one credit.
Use cases
- Unified inbox. Merge chats from every linked account into a single queue so a chatter works one screen instead of logging into each OnlyFans account separately.
- Priority triage. Sort by unread and by fan value to route high-spend fans to a human and let a bot handle the rest — the basis of a chatbot that knows when to hand off.
- SLA monitoring. Track how long conversations sit unanswered and alert when a thread breaches your response-time target.
Gotchas
- Poll sparingly. Re-listing every few seconds burns credits fast. Subscribe to the
message.receivedwebhook and refresh only the affected chat, so the inbox updates in near real time without a polling loop. - Chats vs. subscribers. This endpoint returns conversations, not your full audience. To enumerate every fan, use the subscribers API instead.
- Billing. One successful list page is one credit; a failed call (expired session, upstream error) is free.
- Rate limits are per your plan's requests-per-minute — see pricing.
FAQ
How do I read the messages inside a chat?
Use the messaging endpoints (/chats/{chatId}/messages). The chat list gives you the thread ids and last-message preview; the messaging API returns the full history and lets you reply.
Is the chat list per creator or global?
Both. The scoped form addresses one account by accountId; the global /chats form uses the first active linked account.
How do I keep an inbox live without polling constantly?
Subscribe to the message.received webhook and refresh only the chat that changed. That keeps credit use low while the inbox stays near real time.
Does listing chats cost a credit?
Yes — one credit per successful page. Failed calls are not billed.