Build Your Own OnlyFans CRM with a Complete API Backend
Everything you need to build a CRM like Infloww, CreatorHero, or OnlyMonster. Embeddable auth via our NPM package, full chat and messaging endpoints, media upload and download, fan management, and real-time webhooks — all production-ready.
How Your CRM Connects to OnlyFans
Creators authenticate inside your app via our NPM package. Their account data, chats, and media flow through your CRM in real time.
Everything You Need to Build an OnlyFans CRM
Auth, chat, media, fans, analytics, and content — each with the webhook events and API endpoints that power it.
Embeddable Creator Authentication
Let creators connect their OnlyFans account directly inside your CRM. Our @onlyfansapi/auth NPM package opens a secure modal with iframe-based auth, handles 2FA, and returns the account ID.
Fires when a creator successfully connects their OnlyFans account
Zero-dependency NPM package for embedded OnlyFans auth
Full Chat & Messaging System
Build a complete inbox inside your CRM. List chats, read message history, send text and PPV messages, show typing indicators, and search conversations.
Fires on every incoming fan message with full content and sender data
Send messages — text, media, or PPV with price
Media Upload & Download
Upload photos and videos to the OnlyFans CDN, manage the vault with lists, and download media using CDN URLs. Full media pipeline for your CRM.
Fires when a fan unlocks paid content — track PPV revenue
Upload files or URLs to OnlyFans CDN for messages and posts
Fan Management & Segmentation
List all fans with spending data, create custom user lists, set notes and custom names, track subscription history. Everything for a fan CRM view.
Fires when a fan subscribes — auto-create CRM contact
List all fans with full spending breakdown
Revenue & Analytics Dashboard
Pull transaction history, earnings breakdowns, subscriber metrics, and financial forecasts. Build analytics dashboards that rival native OnlyFans.
Fires on every payment — subscriptions, tips, PPV, streams
Get earnings overview by category across accounts
Content Publishing
Create and schedule posts, manage stories, handle labels and archives. Let creators publish content directly from your CRM.
Fires when a fan likes a post — track engagement
Create a new post with media, captions, and scheduling
Ship Faster with Real Code Examples
Embed auth with our NPM package, build a chat inbox, and manage fan profiles — copy these into your project.
Use the @onlyfansapi/auth NPM package to let creators connect their OnlyFans account inside your CRM. Zero dependencies, framework-agnostic, full TypeScript support.
// npm install @onlyfansapi/auth
import { startOnlyFansAuthentication } from '@onlyfansapi/auth';
// Step 1: Create a client session on your backend
const sessionResponse = await fetch(
'https://app.onlyfansapi.com/api/client-sessions',
{
method: 'POST',
headers: {
'Authorization': 'Bearer sk_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
client_reference_id: 'user_123_in_your_db'
})
}
);
const { token } = await sessionResponse.json();
// Step 2: Open the auth modal in the browser
startOnlyFansAuthentication(token, {
onSuccess: (data) => {
// data.accountId = "acct_XXXX"
// data.username = "creator_username"
// data.onlyfansData = { id, username, email, avatar_url, name }
console.log('Connected:', data.accountId);
// Save to your database
await db.creators.create({
accountId: data.accountId,
username: data.username,
email: data.onlyfansData.email,
avatarUrl: data.onlyfansData.avatar_url,
});
},
onError: (error) => {
console.error('Auth failed:', error.message);
}
});Auth, Chat, Media & Fan Endpoints
The core endpoints and webhooks for building a CRM. Full documentation at docs.onlyfansapi.com.
APIEndpoints
/api/client-sessionsCreate client session for embedded auth
/api/authenticateStart authentication flow
/api/authenticate/{attempt_id}Poll authentication status
/api/authenticate/{attempt_id}Submit 2FA code
/api/{account}/chatsList all chats
/api/{account}/chats/{chat_id}/messagesList messages in a chat
/api/{account}/chats/{chat_id}/messagesSend message (text/media/PPV)
/api/{account}/chats/{chat_id}/messages/searchSearch messages in a chat
/api/{account}/chats/{chat_id}/typingShow typing indicator
/api/{account}/chats/{chat_id}/mediaList media in a chat (gallery)
/api/{account}/media/uploadUpload media to OnlyFans CDN
/api/{account}/media/download/{cdnUrl}Download media from CDN
/api/{account}/media/vaultList vault media
/api/{account}/media/vaultUpload media to vault
/api/{account}/media/vault/listsList vault categories
/api/{account}/fans/allList all fans with spending data
/api/{account}/fans/activeList active subscribers
/api/{account}/fans/expiredList expired subscribers
/api/{account}/fans/topList top fans by spend
/api/{account}/fans/{fan_id}/notesCreate or update fan notes
/api/{account}/fans/{fan_id}/custom-nameSet custom display name
/api/{account}/fans/{user_id}/subscriptions-historySubscription history
/api/{account}/user-listsList all user lists
/api/{account}/user-listsCreate user list
/api/{account}/user-lists/{id}/usersAdd users to a list
WHWebhook Events
accounts.connectedCreator connects their OnlyFans account via your embedded auth
accounts.reconnectedCreator reconnects after session expiry
accounts.authentication_failedSession expired and auto-reconnect failed — prompt re-auth
messages.receivedNew incoming fan message — update your CRM inbox in real time
messages.sentOutgoing message confirmed — sync sent status in your CRM
messages.ppv.unlockedFan unlocked PPV content — track revenue per message
subscriptions.newNew subscriber — auto-create fan profile in your CRM
subscriptions.renewedSubscription renewed — update lifecycle status
transactions.newPayment received — update fan spending data
tips.receivedFan sent a tip — update fan profile and trigger alerts
Building an OnlyFans CRM — Frequently Asked Questions
Common questions about using OnlyFans API as your CRM backend.
Build the Next Great OnlyFans CRM. We Handle the Infrastructure.
Start free. Ship your first auth flow and inbox in a day.