Link in Bio Email Finder: Linktree, Taplink, AllMyLinks avatar

Link in Bio Email Finder: Linktree, Taplink, AllMyLinks

Pricing

$4.00 / 1,000 profile with emails

Go to Apify Store
Link in Bio Email Finder: Linktree, Taplink, AllMyLinks

Link in Bio Email Finder: Linktree, Taplink, AllMyLinks

Find a creator's email, phone and socials from their Linktree or other link-in-bio page. Give URLs or handles. $0.004 per profile with an email. Pages without one are free. Returns Instagram, TikTok, YouTube, X, website, booking and shop links. No login.

Pricing

$4.00 / 1,000 profile with emails

Rating

0.0

(0)

Developer

Data Gleaner

Data Gleaner

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Find a creator's email, phone and socials from their Linktree or other link-in-bio page. Give URLs or handles. $0.004 per profile with an email; pages without one are free.

Answers questions like "find email from Linktree", "Linktree email", "link in bio email finder", "link in bio contacts" and "creator contact from Linktree": give it linktr.ee/name, taplink.cc/name, allmylinks.com/name, a bare handle, or an Instagram or TikTok profile URL, and get one row per creator with their public email, phone (E.164), Instagram, TikTok, YouTube, X and website, plus their booking, shop, newsletter and media-kit links. No login, no browser, no CAPTCHA. Every row has the same fields, so AI agents and lead pipelines can use it as well as people.

Who it is for

  • Influencer-marketing agencies and brands that have a creator's Instagram or TikTok handle and need a way to reach them. Instagram hides contact details behind a login; the creator's link-in-bio page usually shows them openly.
  • UGC platforms and creator marketplaces enriching sign-ups or prospect lists with email, portfolio and rate-card links.
  • AI agents asked "what is this creator's contact email?" for a handle or a Linktree URL, paying only when an email is found.

What it reads

PlatformHowWhat comes back
Linktree (linktr.ee)The profile JSON the page ships with itName, bio, avatar, category (Linktree verticals), every link with its type, social icons, email and phone buttons
Taplink (taplink.cc)The page's block dataTitle, bio text, every button, WhatsApp and messenger buttons, social icons
AllMyLinks (allmylinks.com)The page's HTML and profile JSON-LDName, bio, avatar, every link, email links (including addresses the page hides from plain view)
Other bio-link pages by URL (Stan Store, bio.site, Komi, hoo.be, Carrd, lnk.bio ...)The page's HTMLEmails, phones, socials and links the page renders

From each page it decodes mailto: buttons, tel: and SMS links, and wa.me / WhatsApp links into E.164 phone numbers, and reads emails and phones written in the bio and link titles (including name [at] domain [dot] com). Image file names, example.com and template placeholder numbers are rejected. With crawlWebsite on, a page with no email gets one more try: the creator's own website (never shops, marketplaces or social platforms) and its contact page, keeping only addresses on the creator's domain, a free mailbox or a domain named after the creator.

Pages that refuse automated requests (Beacons and solo.to answer 403) are reported as errors and never worked around.

Input

FieldMeaning
profilesOne per line: a bio-link URL, a bare handle (name or @name), or an Instagram, TikTok or X profile URL.
tryPlatformsWhere a bare handle is looked up, in order: linktree, taplink, allmylinks (default ["linktree"]). The first platform with a page that has content wins.
crawlWebsiteWhen the page has no email, read the creator's own website and contact page (default false, up to 3 extra pages).
maxProfilesStop after this many inputs (default 100).
requestDelaySecsMinimum gap between requests to one site (default 0.5 s, with jitter).
proxyConfigurationOptional. No proxy by default.

Leave profiles empty to run 5 example profiles.

{
"profiles": ["https://linktr.ee/mkbhd", "@aliabdaal", "https://www.instagram.com/melrobbins/", "taplink.cc/abrine"],
"tryPlatforms": ["linktree", "taplink", "allmylinks"],
"crawlWebsite": true
}

Output

One row per profile. Fields that were not found are empty, never invented.

{
"platform": "linktree",
"url": "https://linktr.ee/MKBHD",
"found": true,
"username": "MKBHD",
"displayName": "Waveform",
"bio": null,
"avatarUrl": "https://ugc.production.linktr.ee/USl9Uq9GR8y5K2Gdj0UL_74v07R9H8U7Iayn4",
"verified": false,
"category": "Creator",
"email": "podcast@mkbhd.com",
"emails": ["podcast@mkbhd.com"],
"emailSource": "page",
"hasEmail": true,
"phones": [],
"socials": {
"instagram": "https://www.instagram.com/wvfrmpodcast",
"tiktok": null,
"youtube": "https://www.youtube.com/channel/UCEcrRXW3oEYfUctetZTAWLw",
"x": "https://x.com/WVFRM",
"facebook": "https://www.facebook.com/WVFRM",
"twitch": null,
"spotify": "https://open.spotify.com/show/6o81QuW22s5m2nfcXWjucc",
"linkedin": null, "threads": null, "snapchat": null, "pinterest": null, "website": null
},
"website": null,
"businessLinks": [],
"links": [
{"title": "YouTube", "url": "https://www.youtube.com/channel/UCEcrRXW3oEYfUctetZTAWLw", "type": "YOUTUBE_CHANNEL"},
{"title": "Apple Podcasts", "url": "https://podcasts.apple.com/us/podcast/waveform-the-mkbhd-podcast/id1474429475", "type": "CLASSIC"}
],
"linkCount": 12,
"status": "ok",
"error": null,
"input": "mkbhd",
"scrapedAt": "2026-10-09T15:40:21+00:00"
}
  • email is the best address: business mailboxes (collab@, booking@, management) come before general ones, and shop support addresses last. emails lists them all.
  • emailSource says where the best email came from: page (an email button or link), bio (written in the page text) or website (the creator's own site, with crawlWebsite).
  • businessLinks[].kind is booking (Calendly, Cal.com ...), shop (Amazon storefront, LTK, ShopMy, Etsy, Stan ...), newsletter (Substack, beehiiv, Kit ...), membership (Patreon, Ko-fi ...), mediaKit, portfolio or contact (forms and collab pages).
  • verified is the platform's own badge where it has one (Linktree), and null where the platform shows none.
  • A page that does not exist comes back with found: false and status: "not_found"; one that could not be read has status: "error" and an error message. Neither is charged.

Pricing

One event, pay per answer:

  • profile-with-email: $0.004 for each bio-link page where at least one public email was found.
  • A page without an email is free. It is still returned with its socials and links, so you can see why.
  • Pages that do not exist or could not be read are free.

Worked example. You check 1,000 creator handles; 800 have a Linktree page and 45% of those show an email: 360 x $0.004 = $1.44. The 640 rows without an email cost nothing.

Set a maximum total charge on the run and the Actor stops cleanly when it is reached.

What to expect

Measured on 20 real creator handles (2026-10-09), 19 of which had a page: 10 of 15 Linktree pages showed a public email on the page itself. UGC and small creators who sell sponsorships almost always publish one; large celebrities rarely do. With crawlWebsite on, 2 more came from the creators' own websites (Linktree 11 of 15, Taplink 1 of 2). The two AllMyLinks pages in the sample had none. Rates depend heavily on who you look up.

Limits

  • A bare handle is matched by name. The same handle can belong to different people on different platforms. Give the full URL when you know it, and check the displayName and socials before outreach.
  • Only what the page shows publicly is returned. Contact forms are listed as links; nothing is submitted.
  • Password-protected or age-gated Linktree pages return what the page exposes without unlocking it.
  • Pages built entirely in the browser (some Stan Store and Komi pages) may show fewer links than you see.
  • Beacons and solo.to refuse automated requests, so those pages come back as errors.

Use with Python

# pip install apify-client
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("datagleaner/bio-link-email-finder").call(run_input={
"profiles": ["mkbhd", "https://www.tiktok.com/@aliabdaal"],
"tryPlatforms": ["linktree", "taplink", "allmylinks"],
})
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item["input"], item["platform"], item["email"], item["socials"]["instagram"])

Use with JavaScript / Node.js

// npm install apify-client
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('datagleaner/bio-link-email-finder').call({
profiles: ['https://linktr.ee/mkbhd', 'taplink.cc/abrine'],
crawlWebsite: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) console.log(item.url, item.emails, item.phones);

Use it from n8n, Make, Zapier or an AI agent

Actor ID: datagleaner/bio-link-email-finder

Minimal input:

{"profiles": ["https://linktr.ee/mkbhd", "https://linktr.ee/aliabdaal", "https://allmylinks.com/allmylinks"]}

Each tool below runs this Actor with your own Apify API token.

  • n8n: add the Apify node (@apify/n8n-nodes-apify). On n8n Cloud you install it from the community node registry. Choose Run an Actor and get dataset, set Actor to datagleaner/bio-link-email-finder and paste the input above.

  • Make: use the Apify app's Run an Actor module, then Get Dataset Items to read the results. Watch Actor Runs can trigger a scenario when a run finishes.

  • Zapier: use the Apify action Run Actor, then the search Fetch dataset items. The trigger Finished Actor run starts a Zap when a run ends.

  • AI agents (MCP): connect to https://mcp.apify.com?tools=datagleaner/bio-link-email-finder. Without a token, an agent can still find Actors with the search-actors tool, but running this one needs your Apify account. In Claude Code:

      claude mcp add --transport http apify "https://mcp.apify.com?tools=datagleaner/bio-link-email-finder"
    

    Then run /mcp to sign in to Apify in your browser. Then ask in plain language, for example: "Here are 30 TikTok creators' handles. Find each one's Linktree or Taplink page and give me their contact email, Instagram and booking link as a table."

  • LangChain (Python):

# pip install langchain-apify, then set APIFY_TOKEN in your environment
import json
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("datagleaner/bio-link-email-finder")
result = tool.invoke({"run_input": json.loads('{"profiles": ["https://linktr.ee/mkbhd", "https://linktr.ee/aliabdaal", "https://allmylinks.com/allmylinks"]}')})

Claude Desktop:

{
"mcpServers": {
"actors-mcp-server": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server"],
"env": { "APIFY_TOKEN": "YOUR_APIFY_TOKEN" }
}
}
}

FAQ

How do I find someone's email from their Linktree? Give the Linktree URL or the handle. The Actor reads the page's email button, the bio and the link titles, and returns every public address with where it was found.

I only have an Instagram or TikTok handle. Does that work? Yes. Paste the handle or the profile URL; it is looked up on Linktree (and on Taplink and AllMyLinks if you add them to tryPlatforms). Instagram itself is never scraped.

Why does a page with an email button show no email? Some creators use a contact form or a Gmail-compose link instead of an address. Those are listed in businessLinks (contact) and links, and the row is free.

Is it charged when nothing is found? No. Only rows with at least one email are charged, $0.004 each.

Does it log in or bypass anything? No. It reads the same public page any visitor sees, and pages that refuse automated requests are reported, not worked around.

Responsible use

This Actor reads public pages only. Email addresses and phone numbers can be personal data, even when a creator publishes them for business. You are responsible for lawful use, including consent and opt-out rules for outreach (GDPR, CAN-SPAM and local law), and for respecting the terms of the platforms you use the data on.