THE FANSLY API
The Fansly API for agencies and developers — OnlyFans included
Fansly has no public developer API. The Only API is the third-party Fansly API that closes that gap — messaging, fans, subscribers, earnings, transactions, the vault, webhooks, automations, and full data export through documented REST endpoints. The same key also covers OnlyFans, normalized to identical request and response shapes, so you build one integration for both platforms. Free plan: 1 account and 1,000 calls per month, no card.
Does Fansly have an API?
Not officially. Fansly publishes no developer API, issues no API keys, and runs no developer portal. So when an agency or a developer searches for a "Fansly API," what they actually need is a reliable third-party layer that turns the platform into clean, authenticated REST endpoints — without scraping the web app or babysitting browser automation.
That is what The Only API provides. We handle the connection, session persistence, and request signing, then expose normalized endpoints under a single API key. You write ordinary HTTP requests; we keep the session alive.
The important part for most teams: the same key covers OnlyFans. Subscribers, fans, earnings, transactions, chats, exports — all of it returns the same shape regardless of which platform the account belongs to. One integration, two platforms, and a capabilities object on every account telling you exactly what that account supports.
What Fansly supports, honestly
Most third-party APIs advertise a platform and let you discover the gaps in production. Here is the actual matrix. Anything a platform does not support returns an explicit 501 with a platform_not_supported code and the feature name — never a silent failure or an empty result. Note that it cuts both ways: several capabilities exist for Fansly and not for OnlyFans.
| Feature | Fansly | OnlyFans |
|---|---|---|
| Messaging & single DMs | Yes — send a DM or PPV to one fan, with vault media, free teaser previews, and a price. Read conversations and mark them read. | Yes |
| Fans, subscribers & CRM data | Yes — subscriber lists, cached reads that cost zero platform requests, fan records with notes and tags, spend history. | Yes |
| Earnings, balances & transactions | Yes — normalized to the same shapes as OnlyFans, with the platform's different money scale converted for you. | Yes |
| Media upload | Yes — multipart, or from a public URL fetched server-side. | Yes |
| Vault routes & media permissions | Yes — four dedicated /vault/* routes plus permission gating on individual media items. | No — 501. The OnlyFans equivalents live on the passthrough instead. |
| Lists & scheduled broadcasts | Yes — GET /accounts/{of_user_id}/lists, and read access to scheduled broadcasts. | No — 501 |
| Message deletion | Yes — DELETE /accounts/{of_user_id}/messages/{message_id} | No — 501 |
| Webhooks, events & automations | Yes — HMAC-SHA256 signed webhooks with retries, the SSE event stream, and the rule engine. | Yes |
| Data export | Yes — messages, tips, subscribers and earnings by date range, in CSV or JSON. | Yes |
| Mass DMs | No — 501 PLATFORM_NOT_SUPPORTED | Yes |
| Payout requests | No — 501 | Yes |
| Campaign creation & claimers | No — 501 | Yes |
| PPV stats & subscription-price PATCH | No — 501 (the GET on subscription price works) | Yes |
| Transparent passthrough (/api2/v2/*) | No — 501. Raw access instead goes through POST /accounts/{of_user_id}/request. | Yes — OnlyFans' own response body, wrapped in a small envelope |
| Real-time updates | Polling only — no WebSocket for Fansly. | Yes — real-time WebSocket |
Connect Fansly in one call
Paste your Fansly session credentials once. We store the session server-side, so every later request is authenticated by your API key alone. The proxy header is optional for Fansly — it is required for OnlyFans.
# 1. Connect a Fansly account. Unlike OnlyFans, the proxy header is optional.
curl -X POST https://theonlyapi.com/api/crm/$CRM_ID/accounts/login/cookies \
-H "X-API-Key: $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"platform": "fansly",
"auth_token": "<your Fansly auth token>",
"fansly_session_id": "<your Fansly session id>"
}'
# 2. Read subscribers. Cached reads cost zero platform requests and return
# the same shape you already get for OnlyFans accounts.
curl "https://theonlyapi.com/api/crm/$CRM_ID/accounts/$FANSLY_USER_ID/subscribers/cached?limit=500" \
-H "X-API-Key: $YOUR_API_KEY"
# 3. Send a DM. Same call, same fields, either platform.
curl -X POST https://theonlyapi.com/api/crm/$CRM_ID/accounts/$FANSLY_USER_ID/chats/$FAN_ID/messages \
-H "X-API-Key: $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "text": "Thanks for subscribing!", "mediaFiles": [], "price": 0 }'Fansly API — frequently asked
One key. Fansly and OnlyFans.
Start on the free plan — 1 account, 1,000 API calls a month, every endpoint unlocked. No card required.