Linkbio Page API
lnk.bio → id, socials{} (SC often null), titled links[], website/email/whatsapp, other[]. Flat 1 credit.
GET request to /v1/linkbio/page that responds with clean JSON and costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.What is the Linkbio Page API?
Paste an lnk.bio URL and get the public page as clean JSON. Identity: id (lnk.bio numeric string, e.g. "-1344625"), handle/username, url, avatar. displayName/name are emitted only when lnk.bio publishes a real display name — @handle OG titles are not synthesised (null/omitted). socials{} is derived from data-network icon rows and username CTAs (facebook/twitter/instagram/tiktok/youtube/snapchat/triller/website/whatsapp/…) — ScrapeCreators often leaves these null even when the matching URL sits in links[]. other[] holds typed social networks we could not map to a known key so nothing disappears. Top-level website / email / whatsapp when published. links[] includes content buttons (pb-linkbox) plus primary social icons with titles from icon labels (Facebook, Instagram, Triller, …) — not null. lnk.bio does not expose follower counts or a verified badge. Flat 1 credit. Pass cache=true or cacheMaxAge (1d/3d/7d/14d/30d).
What you get
- lnk.bio id + avatar + handle (no fabricated displayName)
- socials{} filled from icon rows — beats SC's null social fields
- links[] with titles on social rows + content buttons
- website / email / whatsapp + other[] for unmapped networks
Try it
Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).
Parameters
curl "https://api.captapi.com/v1/linkbio/page?url=https%3A%2F%2Flnk.bio%2Fcharlidamelio" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."Edit the parameters and the code updates instantly. Switch languages and hit copy.
Example response
{
"success": true,
"data": {
"platform": "linkbio",
"id": "-1344625",
"url": "https://lnk.bio/charlidamelio",
"username": "charlidamelio",
"handle": "charlidamelio",
"avatar": "https://s3.us-west-2.amazonaws.com/cdn.lnk.bio/profilepics/-1344625_20220123667.jpg",
"website": "https://www.charlidamelio.com",
"linkCount": 15,
"socials": {
"facebook": "https://facebook.com/thecharlidamelio",
"twitter": "https://twitter.com/charlidamelio",
"instagram": "https://instagram.com/charlidamelio",
"triller": "https://triller.co/m/@charlidamelio",
"tiktok": "https://tiktok.com/@charlidamelio",
"youtube": "https://youtube.com/c/charlidamelio",
"snapchat": "https://www.snapchat.com/add/damelioc",
"website": "https://www.charlidamelio.com"
},
"links": [
{
"url": "https://www.charlidamelio.com",
"title": "official website of charli d'amelio",
"id": "61ec9244a0fa03.74794466",
"type": "TYPE_BUTTON"
},
{
"url": "https://www.hollisterco.com/shop/us/social-tourist/shop-all?%20cmp=SOC:SPR21:ST:D:US:Brand:X:BioINF:PInf:X:X:CD:STHP-ST:x:Charli%20IG",
"title": "shop social tourist january 2022 drop",
"id": "2733218",
"type": "TYPE_BIOLINK"
}
],
"other": []
}
}Billing metadata is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.
Response structure
A successful call returns success, cached, creditsUsed, and a data object with the following fields:
Top-level fields
platformPlatform identifier for this response (matches the endpoint's platform).idlnk.bio numeric profile id as a string (e.g. "-1344625"). From data-uid / avatar path.urlOn the page: https://lnk.bio/{username}. On a link row: outbound destination.usernameAccount username / handle.handlelnk.bio path slug. Canonical alongside username.avatarAvatar / profile picture URL. Canonical across profile endpoints.websiteOfficial website URL when published (hero TYPE_BUTTON / official-website CTA or SOCIAL_WEB). Null when unset.linkCountContent buttons + primary social icon rows (family deep-link dupes excluded).otherTyped social networks that did not map into socials{} [{url, title?, type?}]. Empty when every icon mapped.
Socials
The socials object contains:
facebookFacebook URL.twitterTwitter URL.instagramInstagram URL.trillerTriller URL.tiktokTiktok URL.youtubeYoutube URL.snapchatSnapchat URL.websiteOfficial website URL when published (hero TYPE_BUTTON / official-website CTA or SOCIAL_WEB). Null when unset.
Links
Each item in links contains:
urlOn the page: https://lnk.bio/{username}. On a link row: outbound destination.titleTitle of the item.idlnk.bio numeric profile id as a string (e.g. "-1344625"). From data-uid / avatar path.typeContent type of the item.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Linkbio (lnk.bio) page URL or username, e.g. https://lnk.bio/charlidamelio. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble. |
| cache | boolean | No | Set true to serve from the response cache (default TTL). Default false — always fetch fresh. Prefer cacheMaxAge when you need 1d–30d freshness control. Envelope includes cached + cachedAt on hits. |
| cacheMaxAge | string | No | Max age of a cached response: 1d, 3d, 7d, 14d, or 30d. When set, enables caching with that TTL (SC cache_max_age). Envelope: cached + cachedAt. |
Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs 1 credit. Pass cache=true for a free 24h cache hit; default is always fresh.
How it works
- 1. Sign up — get 100 free credits, no card required.
- 2. Create a key from your dashboard.
- 3. Send one request to
/v1/linkbio/pageand parse the JSON response.
Use cases
Social graph where SC returns null
Read socials.instagram/tiktok/youtube/… even when ScrapeCreators leaves those fields null despite URLs in links[].
Titled link inventory
Use links[].title on social rows (Facebook, Triller, …) plus content button labels for UI and dedupe.
Website + contact
Top-level website / email / whatsapp when lnk.bio publishes them — not buried only as an untitled link.
Unmapped networks
Inspect other[] for niche social icons that do not fit the fixed socials{} key list.
Frequently asked questions
What does the Linkbio Page API do?+
The Linkbio Page API lets you fetch profile or page details and audience stats from a public Linkbio profile or page using one GET request to /v1/linkbio/page. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Linkbio Page API cost?+
Each successful call costs 1 credit. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Linkbio API key or OAuth?+
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
Is the Linkbio Page API suitable for production use?+
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Hits include cached + cachedAt. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to use the Linkbio Page API?
Sign up, grab your key, and make your first call in 60 seconds.