Bio-Link Scraper — Linktree, Beacons, Komi, link.me & More
Pricing
from $3.00 / 1,000 profile scrapeds
Bio-Link Scraper — Linktree, Beacons, Komi, link.me & More
Scrape link-in-bio profiles from Linktree, Beacons, Komi, link.me, Pillar, Tap.bio & bio.link — one actor, one schema. Name, bio, avatar, verified status, every outbound link, all social handles resolved, on-page contact email. 7 dedicated extractors. Pure HTTP, no browser. JSON or CSV out.
Pricing
from $3.00 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Turn any link-in-bio page into a clean, structured row. Point the actor at profile URLs from Linktree, Beacons, Komi, link.me, Pillar, Tap.bio, or bio.link — mix platforms freely in one run — and get back the creator's name, bio, avatar, every outbound link, every social handle, and the on-page contact email, all normalized to one schema.

Seven dedicated extractors under one actor, plus a generic fallback for any other bio-link host — so a single dataset can hold a creator's whole cross-platform footprint. Pure HTTP, no browser.
Why Use This Scraper?
- ✅ Seven platforms, one actor — Linktree, Beacons, Komi, link.me, Pillar, Tap.bio, and bio.link, no separate scraper per site
- ✅ One normalized schema — every platform maps onto the same
UnifiedProfilerow, so you never write per-site parsing - ✅ Every outbound link captured — each link with its title, URL, type, and (for socials) the resolved network + handle
- ✅ On-page contact email — captured natively where the page exposes it, ready for lead-gen (no third-party enrichment)
- ✅ All social handles resolved — Instagram, TikTok, YouTube, Spotify, X, Facebook and more, each with the clean handle
- ✅ Mix platforms in one run — paste any combination of profile URLs; each is routed to the right extractor by its host
- ✅ Bulk-by-username mode — feed bare handles + a platform and let the actor build the URLs
- ✅ JSON, CSV, or Excel output, ready for spreadsheets, CRMs, and BI tools
Overview
The Bio-Link Scraper is built for creator marketers, talent agencies, lead-gen teams, and researchers who need link-in-bio data in a spreadsheet instead of a browser tab.
You give it profile URLs (or bare usernames + a platform). Each URL is routed by hostname to a dedicated extractor that reads the platform's real data source — embedded page JSON, a public GraphQL API, or the rendered DOM — and returns a clean, flat row. Because every platform normalizes onto the same schema, a Linktree profile and a Komi profile come back as the same shape, side by side.
The actor is pure HTTP — no login, no browser, no API key required from you. Cloudflare-walled hosts (bio.link, Beacons) are unblocked automatically. Output is one row per profile, exportable straight to CSV or Excel.
Supported Inputs
Platforms
Each profile URL is routed to its platform extractor by hostname:
| Platform | Example profile URL | Coverage |
|---|---|---|
| link.me | https://link.me/danucd | Full — identity, all links, socials, on-page email |
| Linktree | https://linktr.ee/shopify | Full — identity, all links, socials |
| Tap.bio | https://tap.bio/@nasa | Full — identity, card links, socials |
| Komi | https://kennyg.komi.io | Full — identity, all module links, socials, theme |
| Pillar | https://pillar.io/ninja | Full — identity, links, socials |
| bio.link | https://bio.link/art | Full — identity, links, socials, on-page email |
| Beacons | https://beacons.ai/defleppard | Identity + full social list + featured link (see FAQ) |
| Any other bio-link host | https://example.bio/name | Generic fallback — identity, socials, visible links |
Input formats
- Profile URLs — one or more full URLs, any mix of platforms:
https://link.me/danucdhttps://linktr.ee/shopifyhttps://kennyg.komi.io
- Usernames + platform — bare handles resolved against one selected platform (bulk mode):
- usernames:
["danucd", "another"], platform:link.me
- usernames:
Copy-pasteable input
{"profileUrls": ["https://link.me/danucd","https://linktr.ee/shopify","https://tap.bio/@nasa","https://kennyg.komi.io","https://pillar.io/ninja","https://bio.link/art","https://beacons.ai/defleppard"],"maxItems": 100}
Unsupported inputs
- Search/discovery by keyword — the actor scrapes profiles you supply; it does not find creators for you
- Private, deleted, or password-locked profiles — nothing to return
- Analytics/click counts per link — bio-link platforms don't expose these publicly
- Non-bio-link URLs — feeding a random website returns only whatever generic identity markup it exposes
Use Cases
| Audience | What they get |
|---|---|
| Creator marketing / influencer outreach | Every social handle + on-page email per creator, in one row — an instant lead list |
| Talent agencies | Build and refresh a roster's cross-platform link + contact database |
| Market & competitor research | Compare what links/products creators feature across platforms |
| Social-graph enrichment | Resolve a bio-link URL into all the creator's downstream social accounts |
| Data / growth teams | Feed normalized creator profiles into a CRM, warehouse, or BI tool |
| Monitoring | Track how a creator's featured links change over time |
How It Works
- Input — supply profile URLs (mix platforms freely) or bare usernames + a platform
- Route by host — each URL is matched to its dedicated extractor by hostname; unknown hosts fall to the generic extractor
- Fetch the real data source — embedded page JSON, a public GraphQL API, or the rendered DOM (Cloudflare-walled hosts are unblocked automatically), all over HTTP
- Normalize — every platform's data is mapped onto one
UnifiedProfileschema: identity, socials, links, email - Output — one flat row per profile as JSON, CSV, or Excel, stopping once
maxItemsis reached
Input Configuration
| Field | Type | Required | Notes |
|---|---|---|---|
profileUrls | array<string> | one of these two | Bio-link profile URLs. Mix platforms freely — each is routed by host. |
usernames | array<string> | one of these two | Bare handles, resolved against platform below (bulk-by-username mode). |
platform | string | with usernames | Which platform the bare handles belong to. One of linkme, linktree, tapbio, beacons, biolink, komi, pillar. Default linkme. Ignored for full profileUrls. |
includeRawData | boolean | no | Attach the raw upstream payload (page JSON / GraphQL / JSON-LD) to each row for debugging or extra fields. Default false. |
maxItems | integer | no | Hard cap on total dataset rows. Default 100. Free-tier runs are capped. |
maxConcurrency | integer | no | Maximum profiles fetched in parallel. Range 1–20. Default 10. |
proxy | object | no | Paying users are auto-routed through premium residential proxies (no setup). Free users can enable Apify Proxy here. Walled hosts are unblocked automatically. |
Common scenarios
Mixed platforms in one run
{"profileUrls": ["https://link.me/danucd","https://linktr.ee/shopify","https://kennyg.komi.io","https://bio.link/art"]}
Bulk by username (one platform)
{"usernames": ["danucd", "someone", "another"],"platform": "linkme"}
Include the raw upstream payload
{"profileUrls": ["https://linktr.ee/shopify"],"includeRawData": true}
Output Overview
One row per profile. Every row is the same UnifiedProfile shape regardless of source platform:
- Identity —
platform,username,displayName,bio,avatar,cover,verified,isAdult - Reach —
visitCount,followerCount(where the platform exposes them) - Contact —
email,phone,location,websites[] - Links —
socialLinks[](resolved social accounts) andlinks[](all outbound links), each withtitle,url,type,network,handle,thumbnail,position; plustotalLinks - Meta —
theme,createdAt,updatedAt,scrapedAt, andnote(present only on partial/generic extractions)
Fields the source doesn't expose come back null or empty rather than missing.
Output Samples
Profile row — link.me/danucd (links trimmed for brevity)
{"platform": "linkme","profileUrl": "https://link.me/danucd","username": "danucd","displayName": "Dana","bio": "ALL MY LINKS👇","avatar": "https://media.link.me/_resize/image/quality=90,format=webp/images/webp-images/user-profile/1169288/tmp-2541-1763300314455.webp","cover": null,"verified": false,"isAdult": false,"visitCount": "48.5k","followerCount": null,"email": "dana.danucd@gmail.com","phone": null,"location": null,"websites": [],"socialLinks": [{"title": "Instagram","url": "https://www.instagram.com/danucd/","type": "social","network": "instagram","handle": "danucd","thumbnail": "https://media.link.me/style/icons/v5.0/Instagram-1.png","position": 4},{"title": "Spotify","url": "https://open.spotify.com/artist/0A8XmfCL2yangEtvot3peD","type": "social","network": "spotify","handle": "0A8XmfCL2yangEtvot3peD","thumbnail": "https://media.link.me/style/icons/v5.0/Spotify-1.png","position": 10}],"links": [{"title": "Instagram","url": "https://www.instagram.com/danucd/","type": "social","network": "instagram","handle": "danucd","position": 4}],"totalLinks": 13,"theme": { "backgroundColor": "", "mainTextColor": "" },"createdAt": "2024-11-01 12:37:51","updatedAt": "2025-11-16 13:43:17","scrapedAt": "2026-06-30T22:41:08.912Z"}
Beacons row (identity + socials + featured link)
{"platform": "beacons","username": "defleppard","displayName": "defleppard","avatar": "https://cdn.beacons.ai/user_content/.../profile_defleppard.png","socialLinks": [{ "url": "https://tiktok.com/@defleppard", "type": "social", "network": "tiktok", "handle": "defleppard" },{ "url": "https://instagram.com/defleppard", "type": "social", "network": "instagram", "handle": "defleppard" }],"links": [ { "title": "Featured", "url": "https://DefLeppard.com", "type": "link" } ],"totalLinks": 6,"note": "Beacons exposes identity + full social list + one featured link via JSON-LD; its multi-link button list loads from a private API and is not available HTTP-only."}
Key Output Fields
Identity
| Field | Description |
|---|---|
platform | Which extractor produced the row (linkme, linktree, tapbio, komi, pillar, biolink, beacons, or generic) |
username | Handle / slug |
displayName | Human display name |
bio | Bio / description text |
avatar / cover | Absolute image URLs |
verified / isAdult | Verified badge / age-gated flags |
Reach & contact
| Field | Description |
|---|---|
visitCount / followerCount | Where the platform exposes them |
email / phone | On-page contact captured natively (no enrichment) |
location / websites[] | Free-text location and featured websites |
Links
| Field | Description |
|---|---|
socialLinks[] | Resolved social accounts, each with network + handle |
links[] | All outbound links, each with title, url, type, network, handle, thumbnail, position |
totalLinks | Count of links[] |
Meta
| Field | Description |
|---|---|
theme | Brand colours / theme hints where exposed |
createdAt / updatedAt | Platform timestamps where exposed |
scrapedAt | ISO timestamp of the scrape |
note | Present only when extraction was partial (Beacons) or via the generic fallback |
FAQ
Which platforms are supported?
link.me, Linktree, Tap.bio, Komi, Pillar, bio.link, and Beacons each have a dedicated extractor. Any other link-in-bio host falls to a generic extractor that returns identity, socials, and visible links.
Do I need to log in or supply an API key?
No. The actor reads public profile pages over HTTP. No login, no cookies, no API key from you.
Can I mix platforms in one run?
Yes — that's the point. Put any combination of profile URLs in profileUrls; each is routed to the right extractor by its host.
Is the on-page email always present?
No. email is only populated when the creator has published a contact email on the page (common on link.me and bio.link). It is captured natively — the actor does not perform third-party email enrichment or guessing.
Why is Beacons partial?
Beacons' full outbound-button list is loaded by its app from a private, header-gated API that isn't reachable with a public HTTP request. The actor still returns Beacons identity, the full social list, and the featured link from the page's public data, and flags the limitation in the row's note field. All other platforms return the complete link list.
Is this the official API of any of these platforms?
No. This actor is not affiliated with or endorsed by any of the platforms. It reads publicly available profile pages.
What does the actor NOT scrape?
Per-link click analytics, private/locked profiles, and creator discovery (it scrapes profiles you supply — it doesn't find them for you).
Can I export to JSON, CSV, or Excel?
Yes. Results land in the dataset and export to JSON, CSV, Excel, or the API like any Apify actor.
Support
- Issues & feature requests: use the Issues tab on the actor's Apify Console page.
- Email: muhamed.didovic@gmail.com
We actively maintain this actor; if a platform changes its page structure, report it and we'll patch quickly.
Additional Services
Need a custom bio-link platform added, a tailored export shape, a scheduled feed into your warehouse, or on-page email enrichment wired to a specific workflow? Contact muhamed.didovic@gmail.com — custom scraping and integration work is available.
Explore More Scrapers
Found the creator's links? Go deeper on each account — these pair naturally with bio-link lead-gen:
- Instagram Profile Scraper — the full Instagram profile behind the handle you resolved (bio, followers, posts)
- TikTok Profile Videos Scraper — a creator's TikTok content and stats from their handle
- LinkedIn Profiles Scraper — professional and company profiles for business bio-links and B2B outreach
- Pinterest Scraper — pins and boards for creators who feature Pinterest
Full portfolio: apify.com/memo23 — social, app-store, marketplace, real-estate, and jobs scrapers.
⚠️ Disclaimer
This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by link.me, Linktree, Tap.bio, Komi, Pillar, bio.link, Beacons, or any of their operators. "Linktree", "Beacons", "Komi", "Pillar", "Tap.bio", "link.me", "bio.link" and all related names, logos, and trademarks are the property of their respective owners and are used here for descriptive and identification purposes only.
The actor scrapes only publicly accessible profile data — the same information any visitor sees without logging in. It does not bypass authentication, access private or restricted content, or collect data behind a login.
You are responsible for how you use the data. Ensure your use complies with each platform's Terms of Service and with applicable laws and regulations, including data-protection rules such as GDPR and CCPA, especially when collecting or processing information relating to identifiable individuals. Collect and use only what you have a lawful basis to use.
SEO Keywords
bio link scraper, link in bio scraper, Linktree scraper, Beacons scraper, Komi scraper, link.me scraper, Pillar scraper, Tap.bio scraper, bio.link scraper, link-in-bio data extractor, creator profile scraper, influencer lead generation, social handle extractor, creator contact email scraper, social media links scraper, creator database builder, link in bio API, bio link data export, multi-platform creator scraper, influencer marketing data, creator outreach list, social profile enrichment