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

Discontinued: Link in Bio Email Finder: Taplink, AllMyLinks

Deprecated

Pricing

from $2.80 / 1,000 profile with emails

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

Discontinued: Link in Bio Email Finder: Taplink, AllMyLinks

Deprecated

Find a creator's email, phone and socials from their Taplink, AllMyLinks, Stan Store, Carrd 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

from $2.80 / 1,000 profile with emails

Rating

0.0

(0)

Developer

Data Gleaner

Data Gleaner

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

a day ago

Last modified

Share

Link in Bio Email Finder: Taplink, AllMyLinks, Stan Store, Carrd

Discontinued on 2 November 2026. Taplink's terms forbid scraping and AllMyLinks' terms forbid copying its material, and creators' emails were this Actor's whole output, so it no longer fetches any page. A run ends at once with one free note row and a status message, and costs nothing. Old Taplink or AllMyLinks inputs get that same note row.

Find a creator's email, phone and socials from their Taplink, AllMyLinks, Stan Store, Carrd 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 "link in bio email finder", "link in bio contacts", "find email from a link in bio page", "Taplink email" and "creator contact from bio link": give it taplink.cc/name, allmylinks.com/name, a Stan Store, Carrd, link.bio, lit.link, bio.site or Snipfeed URL, 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 link-in-bio URL, paying only when an email is found.

What it reads

PlatformHowWhat comes back
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, Carrd, link.bio, lit.link, bio.site, Snipfeed)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.

Not supported: Linktree (its robots.txt disallows every page for crawlers), Beacons, bio.link, lnk.bio, solo.to, direct.me, Linkfly, Heylink and Komi (they answer plain requests with an anti-bot challenge or 403). Every site's robots.txt is checked before each page is fetched; a page it disallows is returned as a free row with robotsBlocked: true, and nothing is 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.
datasetIdOptional. A dataset from another Actor to read creators from (see below). datasetField names a custom link field; maxDatasetItems (default 1000) caps what is read.
tryPlatformsWhere a bare handle is looked up, in order: taplink, allmylinks (default ["taplink", "allmylinks"]). 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://allmylinks.com/allmylinks", "@aliabdaal", "https://www.instagram.com/melrobbins/", "taplink.cc/abrine"],
"tryPlatforms": ["taplink", "allmylinks"],
"crawlWebsite": true
}

Run it after Instagram Profile Scraper or any scraper

Open the source Actor's Integrations tab, add this Actor (datagleaner/bio-link-email-finder) and set its input to:

{"datasetId": "{{resource.defaultDatasetId}}"}

Every time the source run succeeds, this Actor reads each result. It takes a link-in-bio page from externalUrl, externalUrls[].url, authorMeta.bioLink, bioLink, link, url or website (the first one on a supported bio-link host such as Taplink, AllMyLinks, Stan Store or bio.site; Linktree and the other unsupported hosts are ignored and the handle is tried instead; datasetField names another field). If an item has none, the creator's Instagram, TikTok or X profile URL, or username, is tried as a handle on the platforms in tryPlatforms, which is matched by name (see Limits). Items with neither are skipped, as are duplicates. At most maxDatasetItems (default 1000) are read and maxProfiles (default 100) still caps the run, so raise it for big datasets. Billing is the same: $0.004 for each page with a public email, nothing for pages without one. Works with Instagram Profile Scraper (apify/instagram-profile-scraper), TikTok scrapers and any Actor whose output has one of those fields.

The same works from code, for one finished run:

run = client.actor("datagleaner/bio-link-email-finder").call(run_input={"datasetId": "SOURCE_DATASET_ID", "maxProfiles": 1000})

The status message tells how many items were read from the dataset, how many were skipped and how many profiles were checked, or says so if the dataset could not be read. It also works as an integration: open the source Actor's Integrations tab, choose Add integration and pick this Actor, and the dataset is passed automatically.

Output

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

{
"platform": "allmylinks",
"url": "https://allmylinks.com/example",
"found": true,
"username": "example",
"displayName": "Example Creator",
"bio": null,
"avatarUrl": "https://allmylinks.com/img/example.png",
"verified": null,
"category": null,
"email": "collab@example-creator.com",
"emails": ["collab@example-creator.com"],
"emailSource": "page",
"hasEmail": true,
"phones": [],
"socials": {
"instagram": "https://www.instagram.com/examplecreator",
"tiktok": null,
"youtube": "https://www.youtube.com/channel/UCexample",
"x": "https://x.com/examplecreator",
"facebook": "https://www.facebook.com/examplecreator",
"twitch": null,
"spotify": "https://open.spotify.com/show/example",
"linkedin": null, "threads": null, "snapchat": null, "pinterest": null, "website": null
},
"website": null,
"businessLinks": [],
"links": [
{"title": "YouTube", "url": "https://www.youtube.com/channel/UCexample", "type": "YOUTUBE_CHANNEL"},
{"title": "Podcast", "url": "https://podcasts.apple.com/us/podcast/example/id1", "type": "CLASSIC"}
],
"linkCount": 12,
"status": "ok",
"error": null,
"input": "example",
"scrapedAt": "2026-10-09T15:40:21+00:00"
}

Illustrative row; the values are placeholders.

  • 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 (none of the supported hosts show one), 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 bio-link 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

Rates depend heavily on who you look up. Small creators and UGC sellers who take sponsorships usually publish an email on their bio-link page; large celebrities rarely do. Test with 20 to 50 of your own handles first; a page without an email costs nothing.

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 pages return what the page exposes without unlocking it.
  • Pages built entirely in the browser (some Stan Store pages) may show fewer links than you see.
  • Linktree, Beacons, bio.link, lnk.bio and solo.to are not supported (see above).

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": ["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://allmylinks.com/allmylinks', '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://taplink.cc/abrine", "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 Taplink or AllMyLinks 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://taplink.cc/abrine", "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 link-in-bio page? Give the page 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 Taplink and AllMyLinks (the platforms in 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.