ONLYFANS AUTOMATION
OnlyFans Automation API — Mass DMs, Events & Webhooks for Agencies
The Only API is the developer-first OnlyFans and Fansly automation platform. 200+ endpoints, typed events, and a production-grade rules engine for mass DMs, tip-driven flows, fan tagging, and signed webhooks. Built by agency operators who got tired of paying per-credit and waiting weeks for fixes.
DEFINITION
What is OnlyFans automation?
OnlyFans automation is the practice of using software to perform repetitive creator-account work — sending welcome DMs, blasting PPV campaigns, tagging fans by spend, replying to tips, and exporting earnings — without a human having to log in and click through the OnlyFans web app for each action. In an agency context, it is what makes managing 50, 100, or 500 accounts financially viable: one chatter operates a roster of creators while the automation layer handles the predictable work in the background. The same model applies to Fansly, which The Only API supports through the same normalized interface.
In practice, OnlyFans automation runs through an OnlyFans API that wraps the same endpoints the official site uses, signed with realistic browser headers and routed through per-account proxies so the platform sees ordinary, human-paced traffic. On top of that API sits a rules engine that listens for events (a new subscriber, a tip, a renewal, a lapse) and dispatches actions (send a DM, tag a fan, fire a webhook, post to Discord). That is what an OnlyFans automation API delivers — and it is what this page covers in detail.
Done well, automation is invisible to the fan and transformative for the operator. Done badly, it gets accounts banned. The difference is engineering. The Only API was built by agency operators specifically to make the first outcome the default and the second outcome impossible-by-default.
CAPABILITIES
What you can automate
Nine workflows backed by 200+ endpoints and the built-in rules engine, across OnlyFans and Fansly. Mix and match.
Mass DM Campaigns
Send one message body to a resolved audience — active, all, or expired — filterable by min_spent and a subscribe-date window, with media attachments and PPV pricing. Defaults to dry_run, capped at 5,000 recipients per call. OnlyFans only.
Welcome Message Flows
Trigger an instant DM the moment a new subscriber joins, on OnlyFans or Fansly. The new_subscriber event carries the fan object, so the message can address them by name.
Transparent OnlyFans Proxy
Call any OnlyFans endpoint we have not wrapped through POST /api/crm/{crm_id}/api2/v2/{path} — same signed session, same proxy, same account. Drive it from your own scheduler; there is no first-party post-scheduling endpoint.
Tip Auto-Replies
When a fan tips, the new_tip event carries the fan object and the amount. Fire an automation that thanks them via DM or tags them as a high-value spender behind a payload.amount condition.
Fan Tagging & Segmentation
Auto-tag fans from any event using the tag_fan action, with conditions on payload fields such as transaction amount. Spend-based segmentation is also available directly on mass DM via audience.min_spent.
Expired Subscriber Win-Back
Detect lapsed renewals via the expired_subscriber event, or target lapsed fans directly with a mass DM using audience.type = "expired". The expired event carries counts, not a fan object — the mass DM path is the one that reaches them.
Transaction Webhooks
Stream every tip, purchase, and subscription to your stack via signed HMAC-SHA256 webhooks with automatic retries. Endpoints on non-allowlisted domains are created as pending and receive nothing until an admin approves the domain.
Automation Rules Engine
Compose triggers, conditions, and actions. Nine operators — eq, neq, gt, gte, lt, lte, contains, startswith, in — all AND-joined. Persists across restarts via SQLAlchemy job store.
Multi-Account Orchestration
Manage OnlyFans and Fansly accounts from a single API key with per-account proxies, isolated sessions, and quota tracking. Account capacity equals the slots you have purchased.
HOW IT WORKS
From zero to first automation in three steps
Connect an account, pick a trigger, define the action. Anything beyond that is optional polish.
Connect an account and enable writes
Add an OnlyFans or Fansly account from the dashboard or POST a session to /accounts. Each account gets its own isolated session, stored per-account under saved_sessions/, sealed with Chrome 136 impersonation and optionally pinned to a residential proxy. Writes are off by default — enable them with PATCH /api/crm/{crm_id}/accounts/{of_user_id}/polling and allow_of_write_actions=1, or every DM action will fail.
Choose a trigger
Pick from typed events: new_subscriber, renewed_subscriber, expired_subscriber, new_tip, new_message, new_purchase, balance_increased, and polling_paused. The poller emits these on your per-account schedule (default 120s, configurable 60–3600s).
Define the action
Send a DM, post to a signed webhook, push to Discord/Slack/Telegram, or tag a fan. Conditions filter the trigger and templating fills in payload data. Actions do not emit new events, so one rule cannot chain into another.
Example: create an automation
curl -X POST https://theonlyapi.com/api/crm/$CRM_ID/automations \
-H "X-API-Key: $OF_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Welcome new VIPs",
"trigger_event": "new_subscriber",
"conditions": [
{ "field": "payload.amount", "op": "gt", "value": 25 }
],
"action_type": "send_dm",
"action_params": {
"message": "Hey {payload.fan.username} — thanks for subscribing!",
"to_fan_id": "{payload.fan.id}"
}
}'That single POST creates a persisted rule. Every time a fan subscribes for more than $25, they receive a templated welcome DM. Template tokens are dot-paths into the event, so {payload.fan.username} and {payload.fan.id} resolve at dispatch time. The account must have allow_of_write_actions enabled, or the run is logged as failed.
You do not have to use automations to consume events. GET /api/crm/{crm_id}/events returns the persisted event log, filterable by types, of_user_id, since, until, and limit — the backfill path. GET /api/crm/{crm_id}/events/stream is a Server-Sent Events feed with optional ?types= server-side filtering — the live path. To debug a rule that is not firing, read GET /api/crm/{crm_id}/automations/{id}/runs.
WHO USES IT
Three personas, one API
Solo creators, OF management agencies, and chatter teams each automate a different slice of the same pipeline.
Solo creator
Send a welcome DM to every new subscriber, thank tippers automatically, and get a Discord ping the moment a fan tips over $50. One account, a free-tier API key, and ten minutes of setup is all it takes.
OF management agency
Run a roster of 50–500 creators across OnlyFans and Fansly with per-account proxies, dedicated chatters, and a unified earnings dashboard. The webhook stream feeds a central data warehouse that powers commission splits, performance dashboards, and creator-facing analytics.
Chatter team
Auto-tag fans by spend tier so chatters always pick the highest-value conversation first. Welcome DMs and tip thank-yous fire automatically — chatters spend their time on the conversations that actually need a human voice.
SAFETY & RATE LIMITS
Responsible automation, by default
OnlyFans is a real platform with real rate limits and real terms of service. Any provider promising a "ban-proof" or "undetectable" automation is selling a fantasy. What an honest OnlyFans automation API can deliver is engineering that minimises risk: conservative polling defaults, browser-grade header signing, isolated per-account sessions, optional residential proxies, and exponential back-off on every retry.
Polling runs on a per-account interval you control. It defaults to 120 seconds and is configurable between 60 and 3,600 seconds, so you can dial an active account tighter and let idle ones idle. We sign requests with the same Chrome 136 fingerprint a logged-in browser uses, and every account gets its own isolated session, stored per-account under saved_sessions/. We have not seen an account banned as a direct consequence of using the API. We will not promise that record holds forever — what we will promise is that we treat the upstream platform with respect, and we ship fixes within hours when something changes.
Writes are opt-in per account: DM automations and mass sends alike require allow_of_write_actions=1, which is off by default. Mass DM defaults to dry_run and caps a single call at 5,000 recipients. New webhook endpoints on non-allowlisted domains land in a pending state until an admin approves the domain, so a misconfigured URL cannot quietly leak events. Webhook deliveries retry on a [5s, 30s, 5m, 30m, 2h] back-off and auto-deactivate after sustained failure. If you want to push beyond the defaults, you can — but the defaults are deliberately conservative because the cost of a banned creator account is always higher than the value of an extra DM per minute.
PRICING
Free to start. Per-account from $15.
Free for 1 account, capped at 1,000 API calls per month. Slots are $20/month per account, and once you reach 15 slots every slot drops to $15/month. Enterprise is custom. Paid slots include unlimited API calls, all 200+ endpoints, the automation rules engine, and webhook delivery. No credits, and no per-call charges on paid slots. See the full breakdown on the pricing page.
Looking for a deeper dive? Our companion guide to OnlyFans auto DM walks through mass-message audiences, PPV blasts, and welcome flows step by step. If you are evaluating alternatives, the Only API vs Infloww comparison breaks down endpoint coverage, per-seat versus per-account pricing, and which workflows each platform actually handles end to end.
FAQ
OnlyFans Automation — Frequently Asked Questions
Honest answers about safety, pricing, and what the automation engine actually does.
Automate the boring half of your agency
Free for 1 account and 1,000 calls/month. 200+ endpoints across OnlyFans and Fansly. Webhooks, mass DMs, and the rules engine included.