ofapisv1
solution

OnlyFans Fan Retention

OnlyFans fan retention is a data pipeline before it's a campaign: you can't win a fan back until you know they're slipping. ofapis exposes the audience and activity you need to detect churn, and the segments and mailings you need to act on it. The pattern is snapshot → diff → score → win-back.

Data flow

nightly:  GET /accounts/{id}/subscribers   → today's active set
          diff vs. yesterday               → churned (dropped off)
          GET /accounts/{id}/notifications  → activity signals (tips, messages)
          → score each fan: at-risk / lapsed / lost
          → POST /accounts/{id}/lists/{listId}/users/{fanId}  (tag the segment)
          → POST /accounts/{id}/mailings    (win-back to that segment)

Base URL: https://api.ofapis.com/api/public/v1.

1. Detect churn

Snapshot the subscribers list on a schedule and diff it against the previous run. Fans present yesterday but gone today have churned; fans still subscribed but silent for N days are at-risk. Page through and cache — a large audience is one credit per page, so store snapshots rather than re-pulling live each time.

curl "https://api.ofapis.com/api/public/v1/accounts/42/subscribers?limit=50&offset=0" \
  -H "Authorization: Bearer ofapis_sk_..."

Layer in engagement from notifications (last tip, last message) so "at-risk" means genuinely quiet, not just recently subscribed.

2. Segment the risk tiers

Push scored fans into fan segments — one list per tier — so campaigns target the right people:

# tag fan 78910 into the "at-risk" list (id 12)
curl -X POST https://api.ofapis.com/api/public/v1/accounts/42/lists/12/users/78910 \
  -H "Authorization: Bearer ofapis_sk_..."

Segments are the shared source of truth: the same list a win-back DM targets is the one your dashboard counts.

3. Win them back

Point a mailing at the at-risk segment, preview the cost, then trigger — the mass message flow, aimed at retention instead of promotion:

curl -X POST https://api.ofapis.com/api/public/v1/accounts/42/mailings \
  -H "Authorization: Bearer ofapis_sk_..." -H "Content-Type: application/json" \
  -d '{"text":"Missed you 💕 here's 30% off to come back","listId":12}'

Preview before triggering so a re-engagement blast never surprises your balance.

Build outline

  1. Snapshotter — nightly page through /subscribers, persist the id set with timestamps.
  2. Diff + score — compute churned and at-risk tiers, joining last-activity from notifications.
  3. Segment sync — upsert each fan into its risk list.
  4. Win-back — create a mailing per tier, preview, then trigger; track the run.
  5. Measure — feed retention rate and win-back conversion into an analytics dashboard.

Gotchas

FAQ

How do I detect churn without a churn endpoint?

Snapshot the subscribers list on a schedule and diff consecutive runs. Fans in yesterday's set but not today's have lapsed; silent-but-subscribed fans are at-risk. The signal comes from your stored history, not a single call.

What makes a fan "at-risk" versus "lost"?

Lost means they've dropped off the subscriber list entirely; at-risk means still subscribed but inactive — no recent tips or messages per notifications. Scoring the two separately lets you send a retention offer before they cancel.

How do I run the win-back campaign?

Tag scored fans into a fan segment, then point a mailing at that list, preview the reach and cost, and trigger it. The same segment powers both the campaign and your reporting.

What does retention automation cost in credits?

One credit per subscriber page during detection and one per recipient on the win-back send. Cache snapshots and sync on a schedule so you pay for real analysis and sends, not repeated polling. See pricing.

Start free · Subscribers API · Analytics dashboard

Related guides

All guides
Start free — 250 credits, no card
Generate a token and make your first call in minutes.
Get started