Linktree Profile Scraper
Pricing
from $3.52 / 1,000 result emitteds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
13 hours ago
Last modified
Categories
Security
Limited permissionsShare
🎯 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_titleso 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
- Click Try for free at the top of the Store listing.
- Add one or more Usernames or profile URLs — a bare username (
selenagomez) or a full URL (https://linktr.ee/selenagomez) both work. - Click Start. Rows are written to the dataset as each profile is fetched.
- Export from Storage → Dataset as JSON, CSV, or Excel — or pull via the Apify API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
usernames | array | ✅ | — | Linktree usernames or full profile URLs. Case preserved for bare usernames. |
includeZeroLinkProfiles | boolean | no | false | Reserved for a future version — v1 always skips zero-link profiles. |
proxyConfiguration | object | no | US datacenter pool | Apify 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.
| Field | Type | Notes |
|---|---|---|
username | string | Input-normalized username. |
profile_title | string | null | Profile display title. |
profile_description | string | null | Profile bio/description. |
profile_avatar_url | string | null | Profile avatar image URL. |
profile_is_verified | boolean | Whether the profile is verified. |
profile_tier | string | null | Linktree account tier, e.g. pro. |
profile_has_password | boolean | Whether the whole page is password-gated. |
link_id | string | Stable link id. |
link_title | string | Link title. |
link_url | string | Destination URL (empty for GROUP rows). |
link_type | string | CLASSIC, GROUP, YOUTUBE_VIDEO, COMMERCE_PRODUCT, or another open-ended value. |
position | integer | Position within the profile. |
group_id | string | null | Parent GROUP link's id, when this link is a child. |
group_title | string | null | Parent GROUP link's title. |
thumbnail_url | string | null | Link thumbnail image. |
gated | boolean | Whether any gate (age/passcode/password/NFT) is active. |
gate_type | string | null | Which gate is active, when gated is true. |
meta_title | string | null | Link-level metadata title. |
meta_description | string | null | Link-level metadata description. |
scraped_at | string | ISO-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.
| Event | USD per event | Billing unit |
|---|---|---|
result-emitted | $0.004 | Charged 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_titlejoin), 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.