www.trackrev.io/<slug>. Pages made through the API belong
to the workspace of the key that made them; they never appear in (or can be edited from) the
dashboard’s free link-in-bio builder.
Scope: secret key (lk_). Any plan, except /stats, which needs a paid plan.
Tracked buttons
Each link button is given a TrackRev short link on thebio channel, and the public page sends
visitors through it. That is what counts a click, and, with the pixel on the destination, the
revenue it earned. Sections (headings) have no link.
- A button keeps its short link, and its history, while its
idstays the same, even if you change itsurlorlabel. Send back theids you received. - A button you leave out of a
linksupdate is removed, and its short link and click history with it. - Tracking never blocks a save. If a short link can’t be made (a free workspace at its link cap, for
example) the button is saved and links straight to its URL;
tracked_link_idandshort_urlarenull. Save again to retry.
Endpoints
Body
string
required
Create only; can’t change later. 3–40 characters, lowercase letters, digits and hyphens (spaces and
capitals are normalised). Reserved names, and names used by another page, a short link or a
program code, are refused:
400 for reserved, 409 for taken.string
Up to 60 characters.
string
Up to 280 characters.
string | null
An
http(s) image URL.array
Up to 50 buttons, replacing the whole list. Each:
id (optional, 1–64 of A-Z a-z 0-9 _ -; one
is generated if omitted), type (link or section), label (up to 80), url (http(s), for
links), emoji, image_url. A tracked field is ignored.array
Up to 12
{ platform, url } icons: instagram, tiktok, x, youtube, spotify,
apple-music, facebook, linkedin, github, twitch, discord, email.object
Colours, fonts and button style (
canvasMode, canvasValue, cardMode, cardBg, textColor,
buttonStyle, buttonColor, buttonTextColor, buttonRadius, buttonShadow,
buttonShadowColor, font, footerImage). On update it is merged onto the current theme.
A value outside its allowed set falls back to the default.boolean
default:"true"
Unpublished pages return 404 publicly.
boolean
default:"true"
Show the “Made with TrackRev” footer.
string
Create only. Your own id for the page (1–200 characters), unique per workspace. A create with a
known
external_id returns that page with 200 and changes nothing, so a retry never makes a
second page.object
A JSON object of up to 4 KB, stored with the page.
Idempotency-Key header, as POST /links does.
Response
Stats
GET /api/v1/bio-pages/:id/stats returns { window, totals, links }. Each entry in links is
{ id, label, url, tracked_link_id, clicks, visitors, conversions, revenue }, bots excluded.
totals.visitors adds the per-button counts, so someone who clicked two buttons counts twice. For
daily series or geography, pass the buttons’ tracked_link_ids to /clicks?link_ids=.
Page views are not counted; only clicks on tracked buttons are.
Limits
- Custom domains for bio pages aren’t available through the API. Pages are served at
www.trackrev.io/<slug>. - The workspace’s link cap applies to buttons (one link each). A free workspace past its cap saves untracked buttons.

