Link-in-Bio Contact Leads Scraper avatar

Link-in-Bio Contact Leads Scraper

Pricing

from $1.92 / 1,000 item extracteds

Go to Apify Store
Link-in-Bio Contact Leads Scraper

Link-in-Bio Contact Leads Scraper

Extract public identity, displayed emails and phones, social accounts, bios, and destination links from supplied Linktree and Beacons profiles.

Pricing

from $1.92 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Automation Lab

Automation Lab

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

3

Monthly active users

5 days ago

Last modified

Share

Turn supplied public Linktree and Beacons profiles into normalized creator-outreach records. The Actor extracts public identity, bio text, displayed email or phone contacts, social accounts, and outbound destination links. It does not guess contact details or require a profile login.

Use the same output schema for both supported platforms, so a mixed list can flow directly into a spreadsheet, CRM import, scheduled enrichment job, or data pipeline.

For every valid profile URL, the Actor produces one dataset row containing:

  • source platform and normalized profile URL;
  • username, display name, bio, and avatar URL;
  • email addresses visibly published on the profile;
  • phone contacts exposed through public phone links;
  • categorized Instagram, TikTok, YouTube, X, Facebook, and other social links;
  • other destination links, such as a storefront, newsletter, portfolio, donation page, or website;
  • contact and link counts for quick filtering;
  • an extraction timestamp.

Linktree pages use a lightweight structured-HTML route. Beacons pages use browser rendering because their public pages can reject ordinary HTTP clients. The browser starts only when a run includes a Beacons URL.

This Actor is useful for:

  • creator partnership teams enriching an approved prospect list;
  • influencer marketing agencies consolidating public contact channels;
  • sales operations teams preparing creator outreach imports;
  • researchers mapping public cross-platform identities;
  • brand teams reviewing destinations linked from creator profiles;
  • developers normalizing Linktree and Beacons records through one API;
  • analysts tracking changes with separate scheduled dataset runs.

It is a URL-list enrichment tool, not a creator discovery search engine. Supply the profiles you are authorized to process.

Why use this Actor?

A creator may put contact details and key destinations on a link-in-bio page rather than on the original social profile. Checking those pages manually is slow and produces inconsistent columns.

This Actor provides:

  1. Two popular sources in one contract — Linktree and Beacons records share field names.
  2. Public contacts only — email and phone values come from visible page content or public contact links.
  3. Useful link classification — social accounts are separated from other destinations.
  4. Mixed-list support — process Linktree and Beacons URLs in the same run.
  5. Bounded inputs — duplicate profiles are removed and each run accepts up to 100 unique profiles.
  6. Integration-ready output — use the default dataset with API, CSV, Excel, webhooks, or Apify integrations.

What data can you extract?

FieldTypeMeaning
inputUrlstringOriginal URL supplied in the input
profileUrlstringNormalized public profile URL
platformstringLinktree or Beacons
usernamestringUsername from the profile path
displayNamestring or nullPublic profile or creator name
biostring or nullPublic profile description
avatarUrlstring or nullPublic profile image URL
emailsstring[]Email addresses displayed on the page
emailCountintegerNumber of unique displayed emails
phonesstring[]Values from public tel: contact links
socialLinksobject[]Categorized social profile links
destinationLinksobject[]Non-social outbound links and labels
linkCountintegerUnique social plus destination links
hasContactbooleanWhether a displayed email or phone was found
scrapedAtstringISO 8601 extraction time

Each link object contains its resolved url and visible title when available. Social link objects also contain platform.

How to scrape Linktree and Beacons profiles

  1. Open the Actor input page.
  2. Add one or more public linktr.ee or beacons.ai profile URLs.
  3. Set Maximum profiles to the output limit you need.
  4. Click Start.
  5. For recurring lists that may contain deleted profiles, enable Skip unavailable profiles.
  6. Open the default dataset when the run succeeds.
  7. Export JSON, CSV, Excel, XML, or another supported dataset format.

A first test can use the prefilled profile:

{
"startUrls": [
{ "url": "https://linktr.ee/thefashionsessions" }
],
"maxItems": 10
}

Input parameters

startUrls

Required array of public Linktree or Beacons profile URLs. The Actor accepts full https://linktr.ee/<username> and https://beacons.ai/<username> URLs. Query strings and fragments are removed during normalization. Duplicate URLs are processed once.

Unsupported domains, malformed URLs, and URLs without a profile username fail input validation. This fail-closed behavior prevents a successful but misleading empty dataset.

maxItems

Optional integer from 1 to 100. The default is 25. The Actor stops after this many unique profile inputs.

maxItems does not discover additional profiles and does not silently change source scope.

skipFailedProfiles

Optional boolean, disabled by default to preserve strict fail-fast behavior. When enabled, an unavailable or failed profile is named in the run log and the Actor continues with the remaining URLs. Failed profiles produce no dataset row and no item charge. If every profile fails, the run still fails with a summary of the affected URLs instead of returning a misleading successful empty dataset.

{
"startUrls": [
{ "url": "https://linktr.ee/thefashionsessions" },
{ "url": "https://linktr.ee/deleted-profile" }
],
"skipFailedProfiles": true
}

Output example

A current Beacons profile produces a row shaped like this:

{
"inputUrl": "https://beacons.ai/1minuteanimals",
"profileUrl": "https://beacons.ai/1minuteanimals",
"platform": "Beacons",
"username": "1minuteanimals",
"displayName": "1minuteanimals",
"bio": null,
"avatarUrl": "https://cdn.beacons.ai/...",
"emails": [],
"emailCount": 0,
"phones": [],
"socialLinks": [
{
"platform": "YouTube",
"title": "Youtube 1 Minute Animals",
"url": "https://www.youtube.com/c/AnimalPlanetVideos_?sub_confirmation=1"
},
{
"platform": "Instagram",
"title": "Instagram 1 Minute Animals",
"url": "https://www.instagram.com/1minuteanimal/"
}
],
"destinationLinks": [
{
"title": "Buy Me A Coffee",
"url": "https://www.buymeacoffee.com/1minuteanimals"
}
],
"linkCount": 9,
"hasContact": false,
"scrapedAt": "2026-08-11T14:09:00.000Z"
}

The example abbreviates the avatar URL and link arrays for readability. Actual dataset rows contain all extracted fields. A profile is still useful when emails is empty: its identity, social accounts, and destinations remain available.

Pricing uses one start event per run plus one item event per saved dataset row. Email addresses, phones, and individual links do not create separate charges.

The current start price is $0.005 per run. The BRONZE profile price is $0.0032 per saved profile, with lower per-profile rates at higher platform tiers.

Examples at the BRONZE item rate:

Saved profilesStartitem eventsEstimated total
1$0.005$0.0032$0.0082
10$0.005$0.0320$0.0370
25$0.005$0.0800$0.0850
100$0.005$0.3200$0.3250

The active tier attached to your Apify account determines the exact per-profile price. Only saved profile records trigger the item charge. Invalid input fails before profile extraction.

Creator outreach enrichment workflow

A practical recurring workflow is:

  1. Keep an approved list of creator Linktree and Beacons URLs in a table.
  2. Run the Actor on a schedule with that URL list.
  3. Export the new default dataset to Google Sheets, Airtable, or your warehouse.
  4. Match rows by profileUrl.
  5. Compare emails, socialLinks, and destinationLinks with the previous run.
  6. Review changes before updating a CRM or contacting a creator.

The Actor creates current snapshots. It does not itself compare runs, send outreach, monitor continuously, or mutate your CRM. Apify schedules, webhooks, and integrations can connect those steps.

Spreadsheet and data-pipeline integrations

Use Apify integrations to send the default dataset to:

  • Google Sheets for list review;
  • Airtable for outreach operations;
  • Make or Zapier for workflow automation;
  • Slack for internal run notifications;
  • a webhook endpoint after a run finishes;
  • a data warehouse through the Dataset API.

Filter hasContact = true when a workflow specifically needs a displayed email or phone. Keep rows with hasContact = false when social identity and linked destinations are still useful.

Run with the Apify API

Replace YOUR_TOKEN with your Apify API token. Do not place tokens in source control.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~link-in-bio-contact-leads-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [
{"url": "https://linktr.ee/thefashionsessions"},
{"url": "https://beacons.ai/1minuteanimals"}
],
"maxItems": 2
}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/link-in-bio-contact-leads-scraper').call({
startUrls: [
{ url: 'https://linktr.ee/thefashionsessions' },
{ url: 'https://beacons.ai/1minuteanimals' },
],
maxItems: 2,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("automation-lab/link-in-bio-contact-leads-scraper").call(run_input={
"startUrls": [
{"url": "https://linktr.ee/thefashionsessions"},
{"url": "https://beacons.ai/1minuteanimals"},
],
"maxItems": 2,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

Use with Model Context Protocol (MCP)

Add the Actor to Claude Code through Apify MCP:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/link-in-bio-contact-leads-scraper"

The same endpoint works in Claude Desktop, Cursor, and VS Code MCP settings. Add an HTTP MCP server named apify in any of those clients with the following configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/link-in-bio-contact-leads-scraper"
}
}
}

Example prompts:

  • “Extract the public contact and social links from these Linktree URLs.”
  • “Normalize these Linktree and Beacons profiles into creator lead rows.”
  • “Return only rows that expose a displayed email or phone.”
  • “Summarize the storefront and social destinations on these profiles.”

The MCP client still needs authorization to run the Actor in your Apify account.

Reliability and retry behavior

Linktree requests use bounded retries for temporary network, rate-limit, and server failures. Permanent invalid-profile responses are not retried blindly.

Beacons extraction uses a browser session because normal requests may receive a Cloudflare block page. A challenged or transiently failed profile receives one retry in a fresh browser context. If useful page content still cannot be loaded, the run fails with a diagnostic error rather than saving an empty record.

By default, any failed profile stops the batch. Enable skipFailedProfiles for mixed or recurring lists where deleted profiles should not discard valid results. Each skipped URL and reason appears in the run log; a batch where every profile fails still ends as failed.

One browser is reused across Beacons profiles to reduce startup cost, while contexts isolate profile sessions.

Limits and expected behavior

  • Supported sources are linktr.ee and beacons.ai public profile pages.
  • A run accepts at most 100 input URLs and saves at most 100 records.
  • The Actor does not search Linktree or Beacons directories.
  • The Actor does not log in or access private profile data.
  • The Actor does not follow outbound websites to discover hidden contacts.
  • Email and phone coverage depends on what the profile owner publicly displays.
  • Links loaded only after unsupported user interaction may be absent.
  • Source layout and anti-bot changes can temporarily affect extraction.
  • Deleted or unavailable profiles cause an explicit failure unless skipFailedProfiles is enabled; all-failed batches always fail.
  • A full video link in profile bio is preserved as a destination or social URL; the Actor does not download the video.

Responsible use and legality

Only process data you are authorized to collect and use. Public availability does not remove obligations under privacy, marketing, consumer-protection, copyright, or database laws.

Before outreach:

  • verify that your purpose and legal basis are appropriate;
  • respect opt-outs, suppression lists, and applicable anti-spam rules;
  • avoid sensitive-person profiling or discriminatory use;
  • minimize retained personal data;
  • secure exports and API tokens;
  • follow Linktree, Beacons, and linked-platform terms;
  • review records before automated contact.

The Actor reports owner-published contact values without claiming that they are verified, current, or intended for every kind of outreach.

Data handling, AI, and support

The Actor uses deterministic HTTP and browser extraction and does not send input or output to an AI model. Linktree and Beacons receive only the public profile requests needed for supplied URLs. No login credentials are requested.

Input URLs and operational diagnostics can appear in the run log. Extracted public profile identity, displayed contact details, and links are written only to the run's default dataset. The Actor creates no external cache or separate database. Dataset, key-value-store, and log retention follows your Apify account settings, and you can delete those records through Apify storage controls.

The repository-tracked icon is company-controlled. Linktree and Beacons names identify supported public sources only; this Actor is not affiliated with or endorsed by either service.

For help, use the Issues tab on the Actor's Apify Store page and include a sanitized input plus the run ID. Do not post API tokens, credentials, or private personal data.

Troubleshooting

“Only public Linktree and Beacons profile URLs are supported”

Check that every input is a complete URL on linktr.ee or beacons.ai and includes a username path. Social profile URLs and generic websites are not accepted.

The run succeeded but emails is empty

The profile did not visibly publish a parseable email address at extraction time. Check socialLinks and destinationLinks; those fields may still support your research. The Actor intentionally does not infer an email.

A Beacons profile failed after two attempts

The source may have returned an anti-bot challenge, an incomplete page, or a temporary network failure. Inspect the run log and retry later if the public profile still opens normally. Do not replace the URL with a private or account-only page.

Why are there fewer records than input URLs?

Exact duplicate profile URLs are normalized and processed once. maxItems can also stop the run before every unique URL is processed. When skipFailedProfiles is enabled, inspect the run's Skipping failed profile warnings and final failedUrls summary for unavailable inputs. Those profiles are neither saved nor charged.

Can I supply usernames without URLs?

No. Full URLs keep source selection explicit and avoid ambiguous usernames across Linktree and Beacons.

FAQ

Does the Actor verify email deliverability?

No. It extracts email addresses displayed on the public profile. Use an appropriate verification workflow separately when required and lawful.

Does it scrape linked websites for more emails?

No. Destination links are returned, but the Actor does not crawl those external sites. This keeps scope, cost, and provenance clear.

Can I schedule profile enrichment?

Yes. Create an Apify schedule with the same input URL list. Each run creates a current dataset snapshot that your downstream workflow can compare.

Are profiles charged when extraction fails?

The one-time start event is charged when the run initializes. The item event is charged only for a normalized record that reaches the output path.

Not currently. The validated contract covers public Linktree and Beacons profile URLs only.

Does it download images or videos?

No. It returns public avatar and destination URLs where available.

Choose this Actor when Linktree and Beacons pages are the source of truth and you already have the profile URLs.