See ad spend and ROI for one link
Pull one link's own two revenue numbers and its paying fans, so you can judge whether that specific link is profitable — not just the domain as a whole.
The domain-wide links list already carries a revenue figure per row. This endpoint is the drill-down for one link: its full paying-fan list, plus a second, independent revenue number straight from OnlyFans so you can sanity-check ours against theirs.
Pull the numbers
curl "https://app.tease.link/api/admin/domains/links.creator.com/links/482/spenders" \
-H "Authorization: Bearer $TEASE_API_KEY"{
"link": { "id": 482, "country": "DE", "arm": "paid", "link_type": "tracking",
"provider_id": "abc123", "name": "angel-links-de-paid", "url": "..." },
"our_totals": { "revenue_cents": 184200, "spenders": 11, "fans": 14 },
"ofapi": { "clicks": 5320, "subscribers": 19, "revenue_cents": 179900, "spenders": 12 },
"spenders": [
{ "fan_id": "f_9231", "fan_username": "someuser", "total_net_cents": 42000,
"purchases": 3, "first_at": "2026-08-11T10:02:00Z", "last_at": "2026-08-29T00:14:00Z",
"country": "DE" }
]
}Two revenue numbers, never one
our_totals and ofapi measure genuinely different things and are never added together:
| Field | What it counts |
|---|---|
our_totals | Lifetime net revenue of fans who first entered through this exact link — our own database, exact. |
ofapi | OnlyFans's own headline for this link (clicks, subscribers, revenue, spenders) — account-wide vendor attribution, fetched best-effort and matched by provider id or name. |
ofapi is null when the vendor lookup fails or no matching link is found there — that's a
best-effort miss, not an error. our_totals and the spenders list are always our own exact
numbers regardless of whether ofapi resolved.
spenders is the per-fan breakdown behind our_totals.revenue_cents, sorted by lifetime net
descending — useful for spotting whether one link's revenue is a handful of whales or a broad
base.
Judging ROI
Neither number here is an ad-spend figure — this endpoint reports return, not cost. To get an
actual ROI, divide what you know you spent driving traffic to this specific link by
our_totals.revenue_cents (or ofapi.revenue_cents, if you'd rather sanity-check against the
vendor's own count). If a link's spend is tracked in an ad platform connected to a
smart link instead, compare against that platform's own report.
Don't confuse this endpoint's spenders with Club's account-wide "who paid" fan-payer views —
same word, different thing, defined side by side in
Concepts. This one is scoped to fans who entered
through this link; Club's views are scoped to a source, a whole account, or a fan profile.
If it didn't work
404— the domain doesn't exist, orlink_idisn't asegment_linksrow on this domain (it may belong to another domain).ofapi: null— not an error; see the callout above.our_totalsstill holds.
What's next
- Add, list, or remove a link on a domain — disable or delete a link once you've decided it isn't worth keeping.
- Troubleshooting