Skip to main content
A bio page is a public list of links at 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 the bio 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 id stays the same, even if you change its url or label. Send back the ids you received.
  • A button you leave out of a links update 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_id and short_url are null. 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.
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.
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.
Create also honours an 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.