Canonical profile, tip, subscribe and buy links
API reference

Canonical profile, tip, subscribe and buy links

Every shareable link for the creator behind the key, in one call — never template Dropfans URLs by hand.

View as MarkdownUpdated Aug 19, 2026
GET/api/external/linksNew

Every shareable link for the creator behind the key, in one call — never template Dropfans URLs by hand.

The web block always exists. The telegram block (Mini App deep links) is null when the shared Dropfans bot is not configured — fall back to the web links. Fields ending in Template contain literal placeholders to substitute: {usd} (whole dollars, web tip), {cents} (Telegram tip — note the unit difference), {productId} (buy links).

Tip prefill bounds: web ?tip=<usd> opens the sheet prefilled when the amount is between $5 and $750; out-of-range amounts open the sheet unfilled rather than erroring.

Authentication

Send the creator's API key as a bearer token: Authorization: Bearer dpfn_…. See Authentication & API keys.

Responses

200The creator’s links.
NameTypeDescription
usernamestringThe creator’s @handle the links are built for.
webobjectCanonical web links. Templates contain literal placeholders — substitute before use.
Show child attributes
profilestringThe creator’s public profile.
Format: uri
tipstringOpens the profile with the tip sheet open.
Format: uri
tipTemplatestringTip link with the amount prefilled — replace {usd} with whole US dollars. Amounts outside the allowed range open the sheet unfilled.
subscribestringOpens the profile with the subscribe sheet open.
Format: uri
buyTemplatestringCheckout link for any drop — replace {productId} with the id from create-drop.
telegramobject | nullTelegram Mini App deep links. **Null when the shared Dropfans bot is not configured** — fall back to the web links.
Show child attributes
botstringThe shared bot username, without @.
profilestringOpens the creator’s Mini App profile.
Format: uri
tipstringOpens the Mini App tip sheet.
Format: uri
tipTemplatestringTip prefilled — replace {cents} with the amount in **cents** (the web template takes dollars; this one takes cents).
subscribestringOpens the Mini App subscribe flow.
Format: uri
spinstringOpens the Lucky Wheel (when enabled for the creator).
Format: uri
buyTemplatestringMini App checkout for any drop — replace {productId}.
Example response
{
  "username": "valeria",
  "web": {
    "profile": "https://www.dropfans.io/u/valeria",
    "tip": "https://www.dropfans.io/u/valeria?tip=1",
    "tipTemplate": "https://www.dropfans.io/u/valeria?tip={usd}",
    "subscribe": "https://www.dropfans.io/u/valeria?subscribe=1",
    "buyTemplate": "https://www.dropfans.io/buy/{productId}"
  },
  "telegram": {
    "bot": "DropfansBot",
    "profile": "https://t.me/DropfansBot/app?startapp=p_valeria",
    "tip": "https://t.me/DropfansBot/app?startapp=t_valeria",
    "tipTemplate": "https://t.me/DropfansBot/app?startapp=pt_{cents}_valeria",
    "subscribe": "https://t.me/DropfansBot/app?startapp=s_valeria",
    "spin": "https://t.me/DropfansBot/app?startapp=w_valeria",
    "buyTemplate": "https://t.me/DropfansBot/app?startapp=b_{productId}"
  }
}

Errors

StatusBodyWhen
401{"error":"Unauthorized","code":"unauthorized"}Missing or invalid API key.
409{"error":"Set a username first","code":"username_required"}The creator has no username yet — every link embeds it. Have the creator pick a handle in their Dropfans settings, then retry.

Rate limiting

Every response carries the X-RateLimit-Tier header and, on limited tiers, the per-minute and per-day trios — read X-RateLimit-Remaining and X-RateLimit-Reset instead of hardcoding limits. Details in Rate limits.

Code samples

curl "https://www.dropfans.io/api/external/links" \
  -H "Authorization: Bearer $DROPFANS_API_KEY"

Notes

There is no endpoint to create a checkout session or an arbitrary-amount payment link: buyers pay through these pages/Mini App flows. The tip templates are the closest thing to a "payment link" — the amount is prefilled, the buyer confirms on Dropfans.

Questions? [email protected]