Linktree Profile Scraper avatar

Linktree Profile Scraper

Pricing

Pay per event

Go to Apify Store
Linktree Profile Scraper

Linktree Profile Scraper

Scrape any public Linktree profile into a structured, link-level dataset — every link's title, URL, type, position, group, and gate status (age/passcode/password/NFT), with profile identity fields denormalized onto every row. Built for link-in-bio research, creator tooling, and affiliate audits.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share


🎯 What this scrapes

Linktree profile pages ship their real data as a __NEXT_DATA__ JSON payload embedded in the page. This Actor reads that payload directly: give it one or more usernames or profile URLs and it returns one row per link — not one row per profile — so you get an analyzable, filterable table instead of a hand-scraped page dump.

🔥 Features

  • 🔗 Link-level rows, not profile-level — filter by link type, gated status, or group membership directly in your dataset.
  • 🧩 Group linkage resolved — child links carry group_id / group_title so you can reconstruct group membership with a simple join.
  • 🔒 Gate status surfaced — age / passcode / password / NFT-gated links are flagged (gated, gate_type) without attempting to bypass them.
  • 🏷️ Every link type covered — CLASSIC, GROUP, YOUTUBE_VIDEO, COMMERCE_PRODUCT, and unrecognized future types are all emitted, never dropped.
  • 🛡️ We rotate browser fingerprints so the target sees a real browser, not a script.
  • 🧊 Clean, typed rows — Pydantic-validated, ISO-8601 timestamps. Export JSON / CSV / Excel straight from the Apify Console.

💡 Use cases

  • Link-in-bio market research — analyze what creators and brands actually link to, and how they organize it.
  • Creator tooling & influencer platforms — pull structured profile + link data instead of screen-scraping by hand.
  • Affiliate-link auditing — surface every outbound destination a profile publishes, at scale.
  • Brand-safety & monetization analysis — spot commerce links, affiliate patterns, and gated content across many profiles.

⚙️ How to use it

  1. Click Try for free at the top of the Store listing.
  2. Add one or more Usernames or profile URLs — a bare username (selenagomez) or a full URL (https://linktr.ee/selenagomez) both work.
  3. Click Start. Rows stream into the dataset as each profile is fetched.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or pull via the Apify API.

📥 Input

FieldTypeRequiredDefaultNotes
usernamesarray✅—Linktree usernames or full profile URLs. Case preserved for bare usernames.
includeZeroLinkProfilesbooleannofalseReserved for a future version — v1 always skips zero-link profiles.
proxyConfigurationobjectnoBUYPROXIES94952 / USApify Proxy configuration.

Example input

{
"usernames": ["selenagomez"],
"includeZeroLinkProfiles": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["BUYPROXIES94952"],
"apifyProxyCountry": "US"
}
}

📤 Output

One row per link.

FieldTypeNotes
usernamestringInput-normalized username.
profile_titlestring | nullProfile display title.
profile_descriptionstring | nullProfile bio/description.
profile_avatar_urlstring | nullProfile avatar image URL.
profile_is_verifiedbooleanWhether the profile is verified.
profile_tierstring | nullLinktree account tier, e.g. pro.
profile_has_passwordbooleanWhether the whole page is password-gated.
link_idstringStable link id.
link_titlestringLink title.
link_urlstringDestination URL (empty for GROUP rows).
link_typestringCLASSIC, GROUP, YOUTUBE_VIDEO, COMMERCE_PRODUCT, or another open-ended value.
positionintegerPosition within the profile.
group_idstring | nullParent GROUP link's id, when this link is a child.
group_titlestring | nullParent GROUP link's title.
thumbnail_urlstring | nullLink thumbnail image.
gatedbooleanWhether any gate (age/passcode/password/NFT) is active.
gate_typestring | nullWhich gate is active, when gated is true.
meta_titlestring | nullLink-level metadata title.
meta_descriptionstring | nullLink-level metadata description.
scraped_atstringISO-8601 timestamp.

Example output

{
"username": "selenagomez",
"profile_title": "Selena Gomez",
"profile_description": "Rare Beauty | Wondermind | Music",
"profile_avatar_url": "https://example.linktr.ee/avatar.jpg",
"profile_is_verified": true,
"profile_tier": "pro",
"profile_has_password": false,
"link_id": "123456789",
"link_title": "Rare Beauty",
"link_url": "https://rarebeauty.com",
"link_type": "CLASSIC",
"position": 0,
"group_id": null,
"group_title": null,
"thumbnail_url": "https://example.linktr.ee/thumb.jpg",
"gated": false,
"gate_type": null,
"meta_title": null,
"meta_description": null,
"scraped_at": "2026-09-24T18:00:00Z"
}

💰 Pricing

Pay-per-event — you pay only for what lands in your dataset.

EventPrice
Actor start$0.20 (once per run)
Result emitted$0.004 per link row

At 1,000 link rows in a run, that's $4.20 / 1,000 ($0.20 start + $4.00 for the rows) — pricing amortizes toward $4.00/1,000 on larger runs.

🚧 Limitations

  • Public profiles only — no login-required data, analytics, or edit-mode fields.
  • Gated links (age/passcode/password/NFT) are flagged, not bypassed — this Actor never attempts to fetch what's behind a gate.
  • Group membership is flat (group_id / group_title join), not a nested tree — reconstruct groups with a simple join if you need hierarchy.
  • Zero-link profiles emit no rows for that profile (logged, not a failure) — the run only fails if every requested profile yields zero rows.

❓ FAQ

Does this need a Linktree account or API key? No — it reads the same public JSON payload the profile page itself serves.

Can I pass a full profile URL instead of a bare username? Yes — either works. A full https://linktr.ee/<username> URL has its username extracted automatically.

What happens if a profile doesn't exist or has no links? The run continues and reports zero rows for that profile — never a silent failure and never a crash, unless every requested profile comes back empty.

💬 Your feedback

Found a field that's missing, or a profile shape that doesn't behave as documented? Open an issue on the Actor's Store page or reach out via apify.com/DevilScrapes — we ship fixes fast.