Links & Telegram deep links
Guides

Links & Telegram deep links

Canonical profile, tip, subscribe and buy URLs for a creator — on the web and inside the Dropfans Telegram Mini App.

View as MarkdownUpdated Aug 19, 2026

Never assemble Dropfans URLs by hand — GET /links returns every canonical link for the creator behind your key, in one call.

The response#

curl "https://www.dropfans.io/api/external/links" \
  -H "Authorization: Bearer $DROPFANS_API_KEY"
{
  "username": "ava",
  "web": {
    "profile": "https://www.dropfans.io/u/ava",
    "tip": "https://www.dropfans.io/u/ava?tip=1",
    "tipTemplate": "https://www.dropfans.io/u/ava?tip={usd}",
    "subscribe": "https://www.dropfans.io/u/ava?subscribe=1",
    "buyTemplate": "https://www.dropfans.io/buy/{productId}"
  },
  "telegram": {
    "bot": "dropfansbot",
    "profile": "https://t.me/dropfansbot/app?startapp=p_ava",
    "tip": "https://t.me/dropfansbot/app?startapp=t_ava",
    "tipTemplate": "https://t.me/dropfansbot/app?startapp=pt_{cents}_ava",
    "subscribe": "https://t.me/dropfansbot/app?startapp=s_ava",
    "spin": "https://t.me/dropfansbot/app?startapp=w_ava",
    "buyTemplate": "https://t.me/dropfansbot/app?startapp=b_{productId}"
  }
}

A creator without a username returns 409 { "error": …, "code": "username_required" } — ask them to set one in their profile first.

  • /u/<username> — the profile.
  • /u/<username>?tip=1 — profile with the tip sheet auto-opened.
  • /u/<username>?tip=<usd> — tip sheet prefilled with that dollar amount, when it is within $5–$750; out-of-range values open the sheet unfilled.
  • /u/<username>?subscribe=1 — profile with the subscribe sheet open.
  • /buy/<productId> — a drop’s checkout page.

t.me/<bot>/app?startapp=<param> opens the Dropfans Mini App inside Telegram. The startapp prefixes:

PrefixOpens
p_<username>the creator’s profile
t_<username>the tip sheet
pt_<cents>_<username>the tip sheet prefilled — amount in cents
s_<username>the subscribe sheet
w_<username>the reward-wheel spin
b_<productId>a drop’s checkout
Never hardcode the bot username

When the telegram block is null, the Telegram bot is not configured for this environment — fall back to the web links. Always build Telegram links from the templates in the response, never from a bot name you saw once.

Templating into a message#

const links = await (await fetch('https://www.dropfans.io/api/external/links', {
  headers: { Authorization: 'Bearer ' + process.env.DROPFANS_API_KEY },
})).json();

const buyLink = (links.telegram ?? links.web).buyTemplate.replace('{productId}', productId);
const message = 'new set just dropped — ' + buyLink;

Note the units difference between the two tip templates: web.tipTemplate takes dollars ({usd}), telegram.tipTemplate takes cents ({cents}). $10 is ?tip=10 on the web and pt_1000_ava in Telegram.

Next: Sell a drop end-to-end or Post to the For You feed.

Questions? [email protected]