See who bought from a broadcast
Open a sent campaign's funnel and pull the specific list of fans who purchased from it.
The funnel is a mirror, not a live number
GET /broadcasts/stats mirrors the connected platform's own mass-message statistics page rather
than computing sent/opened/replied/bought independently — it's a snapshot the engine captured, not
a real-time count. Four honest states cover why the screen might look empty:
state | Meaning |
|---|---|
off | The feature flag for this workspace is off. |
connecting | The engine hasn't captured a snapshot yet. |
stale | The last snapshot is older than 24 hours — figures still shown, just labeled dated. |
ok | Fresh. |
A blank funnel therefore isn't automatically "broken" — check the state before assuming a data problem.
Pulling the buyer list for one send
The one action here that actually reaches out is GET /broadcasts/stats/{mm_id}/buyers — a
narrow, read-only request for who bought a specific broadcast, gated three ways: the feature
flag, the broadcast belonging to this workspace (checked before any request goes out — an id
that isn't yours is a plain 404, never a live lookup), and a rate limit of one request per hour
per broadcast.
The call is asynchronous by design — the engine fetches this at a human pace, and a request that
waited synchronously wouldn't survive a restart or a dropped connection. The response's state
tells you where things stand:
requested— queued, the engine hasn't fetched it yet;ok— a buyer list is ready, withshownout of the connected platform's owntotalcount;failed— the last attempt didn't land; wait out the hourly cooldown before it's retried.
Once a list is ready, it keeps refreshing in the background on the same hourly cadence — you don't lose what's already been fetched while a newer pull is in flight.
Revenue on the funnel is an estimate, not a ledger
The funnel's revenue_cents is price × purchase count from the campaign's own record, marked
with "≈" in the panel — it's not pulled from the actual transaction ledger. For the authoritative
figure, cross-reference against Logs/transactions rather than trusting the funnel card alone.
What's next
- Send a broadcast campaign — where the campaign this funnel describes came from.
Configure the four auto-messages
Turn on/edit the welcome, subscription-expiring, subscription-expired, or fan-online auto-message, and check who it would have reached via the shadow log.
Create a smart link
Set up one /r/<slug> link with a paid/free-trial policy — no OnlyFans write, one link to hand out per domain.