All platformsLive Lnk.Bio data

Lnk.Bio API. Profiles and links as JSON.

Read a public Lnk.Bio profile, page through every link on it, search inside one profile's links, and walk the public profile directory. Name the handle, get typed JSON.

No credit card requiredRead the API docs
  • Profiles + links
  • Search inside one profile
  • 1 credit per request
  • Failed requests aren't charged
99.8% uptime#3 Product of the Day3,200+ developers

Teams running monitoring, research, and enrichment pipelines

Lnk.Bio data as JSON. You build the product.

Live Lnk.Bio data in one response shape, with platform changes handled for you.

Lnk.Bio, plus every other platform

One key and one response envelope for Lnk.Bio and 56 more platforms.

Pricing you can reason about

One request, one credit. Know how far your balance will go before you run your next batch.

Live data on every request

Fetch public data when you ask for it.

Nothing to maintain

We handle platform changes and breakages.

Built for production jobs

Run concurrent workloads with explicit statuses and request IDs.

Regular jobs. Better rates.

Running lookups every month? Get lower per-credit rates with a monthly plan. For occasional projects, choose pay as you go.

Never expires
Use cases

What teams build with Lnk.Bio data

Monitoring, enrichment, research and content workflows on Lnk.Bio data, on the same API as every other platform.

What you can build

Enrich creator records

Collect links and social icons from a public profile.

Watch link changes

Re-read a profile's links and compare them over time.

How it works

Your first request in three steps.

Use TypeScript or your automation tool of choice.

Sources

+ 51 more platforms

One request

Social Fetch API

GET/v1/tiktok/profiles/charlidamelio

x-api-key: sk_live_••••••••

1 request · 1 credit

Same JSON shape

response.json200 OK
{
  "data": {
    "lookupStatus": "found",
    "profile": {
      "platform": "tiktok",
      "handle": "charlidamelio",
      "displayName": "charli d’amelio",
      "verified": true
    },
    "metrics": {
      "followers": 160263648
    }
  }
}
  1. Step 1

    Create your free account

    Get an API key with 100 requests included.

  2. Step 2

    Choose an endpoint

    Pass a username, URL, keyword, or post ID.

  3. Step 3

    Get clean JSON

    Use the response immediately or send it into your pipeline.

Works with your stack

Code, automate, or connect your AI.

Explore integrations

Pricing

Social data, priced simply.

Start with 100 free credits. Monthly plans give you predictable volume and lower per-request rates.

Starter

$29.00

18,000credits

  • Top up from $1.61 / 1k if you run out
  • Up to 25 monitors
Most popular

Growth

$79.00

50,000credits

  • Top up from $1.58 / 1k if you run out
  • 5 team seats
  • Up to 100 monitors

Scale

$225.00

150,000credits

  • Top up from $1.50 / 1k if you run out
  • 25 team seats
  • Up to 250 monitors
  • Cancel anytime
  • 30-day money-back guarantee
  • Price locked while you stay

Need 1M+ credits, invoicing, or volume rates? Talk to us

Trust signals

DevHunt

Product Hunt

Uneed

Customers

Teams building on Social Fetch.

“Our TikTok and Instagram scrapers broke constantly. Social Fetch took us off that rotation — we ship product again.”

Daniel Reeve · Founder, Social Crow
  • “Transcripts at volume from one endpoint. No broken scrapers for our small team to maintain.”

    Marcus Lin · Founder, Voice Gecko
  • “Live profile data on every request. We never flag accounts from a stale cache.”

    Hannah Webb · Founder, Scam Finder
  • “Heavy concurrent load, no rate limits to negotiate. The rare API I haven't wrapped in retries.”

    Owen Pritchard · Founder, IP Flare

Lnk.Bio API: common questions

Is there a Lnk.Bio API for public profiles and links?

Yes. Social Fetch has four Lnk.Bio routes under /v1/lnk-bio: a profile, its links, a search inside those links, and the public profile directory. Authenticate with your Social Fetch API key in x-api-key.

How do I pass a handle?

Use the handle as the profile shows it. Case is preserved, and @, &, +, *, . and _ are valid characters, so sportsillustrated, Curate.in, S&S and @brastel.thai all work. A percent-encoded handle in the path is decoded once. Handles are 2 to 128 characters.

Why is linksTotal null on a profile response?

linksTotal is null when the total is not known from this response; call GET /v1/lnk-bio/profiles/{handle}/links for the full count. When the response holds every link, linksTotal equals the number of links returned.

How many links can I get at once?

GET /v1/lnk-bio/profiles/{handle}/links takes limit from 1 to 200 and defaults to 100. Read page.nextCursor while page.hasMore is true. The cursor only works for the same handle. linksTotal is the known total, and page.hasMore says whether another page exists.

What does link search return?

GET /v1/lnk-bio/profiles/{handle}/links/search?query=draft returns up to 30 matching links from that one profile, the query in data.query, and page.hasMore false because search has no paging. data.truncatedAtLimit is true when the 30-match cap was hit. The query is 1 to 100 characters. No match is a found profile with an empty links list.

What is in the public profile directory?

GET /v1/lnk-bio/profiles returns rows with handle, profileUrl, lastModified, changeFrequency and priority. limit is 1 to 500 and defaults to 100. modifiedSince keeps only profiles changed at or after a time, and the cursor is tied to that filter. With a narrow filter, a page can be empty while page.hasMore is true; keep following page.nextCursor. The directory lists profiles only, not their links, and a listed handle can still return not_found if the profile has since been removed.

What are block links and why is url null?

A block link opens a form, image tag or carousel instead of a destination. It still has an id, title, position and group, but data.links[].url is null and data.links[].blockType names the block, for example form. All other links carry a public http or https url.

Does HTTP 200 mean the profile exists?

No. HTTP 200 means the request finished. Check data.lookupStatus: not_found means the profile does not exist, and the profile is null with empty links, socials and embeds.

How much does the Lnk.Bio API cost?

Each completed request charges one credit, and each page of a list is its own request. Check meta.creditsCharged on every response. New accounts get 100 free credits.

Can I use the Lnk.Bio routes from agents or MCP?

Yes. Every Lnk.Bio route is a typed MCP tool and is reachable through Ask (POST /v1/ask) in plain English. Use the typed routes for production jobs.

The Lnk.Bio API in detailHow the Lnk.Bio routes work, what they cost, and how they differ from the official API.

Why teams use Social Fetch for Lnk.Bio

Social Fetch exposes four routes under /v1/lnk-bio. GET /v1/lnk-bio/profiles/{handle} returns one public profile with its identity, bio, avatar, social and contact icons, page tabs, embed blocks and the links on its main page. GET /v1/lnk-bio/profiles/{handle}/links pages through every link on that profile, up to 200 per page. GET /v1/lnk-bio/profiles/{handle}/links/search searches the text of one profile's links and returns at most 30 matches. GET /v1/lnk-bio/profiles walks the public profile directory.

Handles are used as the profile shows them. Case is preserved, and @, & and + are real handle characters: sportsillustrated, Curate.in, S&S and @brastel.thai all name public pages. A percent-encoded handle in the public path is decoded once.

Every response uses the { data, meta } envelope. A profile that does not exist comes back as HTTP 200 with data.lookupStatus set to not_found, not as an error. Link and directory lists carry page.hasMore and page.nextCursor; the cursor is opaque and only works for the same handle or the same modifiedSince filter. On the directory, a page can be empty while page.hasMore is true, so follow page.nextCursor.

How to call the Lnk.Bio API

  1. 1. Create an API key

    Sign up at Social Fetch and copy a key (sfk_…). New accounts get 100 free credits, enough to try every Lnk.Bio route on a few profiles.

  2. 2. Pick the route and handle

    Use the handle as the profile shows it, for example GET /v1/lnk-bio/profiles/sportsillustrated for the profile, or GET /v1/lnk-bio/profiles/sportsillustrated/links?limit=200 for a full page of links. Send x-api-key on every request.

  3. 3. Branch on lookupStatus and page

    Check data.lookupStatus before storing a row. Keep requesting with page.nextCursor while page.hasMore is true, and bill from meta.creditsCharged.

What each Lnk.Bio route returns

  • Profile identity: display name, bio, avatar, verified flag, connected username, timezone, custom domain, share image and page tabs with their heading and text.
  • Up to 1,000 main-page links on a profile, and up to 200 per page on the links route, with title, URL, thumbnail, zero-based position, group heading, badge and block type.
  • Social and contact icons with a normalized platform slug, the raw network code and the icon title.
  • Link search inside one profile, up to 30 matches and no paging.
  • The public profile directory with handle, profileUrl, lastModified, changeFrequency and priority, filterable with modifiedSince.
  • Typed not_found for missing profiles, and opaque cursors for long link lists and directory walks.

How much does the Lnk.Bio API cost?

Each Lnk.Bio route charges one credit per completed request, and each page of links.list or profiles.list is its own request. meta.creditsCharged on every response is the billing source of truth. New accounts start with 100 free credits.

Social Fetch vs the official Lnk.Bio API

Lnk.Bio's documented API is built for account holders and needs OAuth, so it is not a way to read another person's public profile. Social Fetch covers the public side: one profile, its links in pages up to 200, a text search inside those links, and the public profile directory. All four routes share one JSON shape, use lookupStatus for a missing profile, and use cursors instead of offsets you have to compute.

Pull your first Lnk.Bio data.

Run a live Lnk.Bio request in the playground. 100 free credits, no card, JSON back in seconds.

No credit cardSign up in 30 seconds withGoogleGitHub