Linktree Profile Scraper avatar

Linktree Profile Scraper

Pricing

from $3.52 / 1,000 result emitteds

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

from $3.52 / 1,000 result emitteds

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

18 hours ago

Last modified

Categories

Security

Limited permissions

Share


🎯 What this scrapes

Give this Actor one or more Linktree 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.
  • 🧊 Clean, typed rows — validated fields, 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 are written to 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.
proxyConfigurationobjectnoUS datacenter poolApify Proxy configuration. If it cannot be set up, the run fails.

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

No Actor start fee. You pay for the output events below.

EventUSD per eventBilling unit
result-emitted$0.004Charged for each link row written to the dataset.

1,000 output events cost $4.00 at the standard rate, with no start charge.

Existing subscriber discounts remain available in the Apify Pricing tab.

🚧 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.
  • Profiles that do not exist, are deactivated, or have no links produce no rows and do not fail the run. The run fails only if profiles could not be fetched or read and no rows were delivered.
  • If the run's charge limit is reached, delivery stops and the status message says remaining rows were not delivered.

❓ FAQ

Does this need a Linktree account or API key? No — it works on public profiles only.

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. The run succeeds with a status message describing what was searched; it fails only if profiles could not be fetched or read.

💬 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.