Beacons Profile & Links Scraper avatar

Beacons Profile & Links Scraper

Pricing

from $0.75 / 1,000 profiles

Go to Apify Store
Beacons Profile & Links Scraper

Beacons Profile & Links Scraper

Extract public Beacons profiles in structured JSON with identities, biographies, social destinations, featured links, public emails, images, media, video URLs and SEO metadata. Useful for creator research, link-in-bio analysis and competitor monitoring.

Pricing

from $0.75 / 1,000 profiles

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

16

Total users

8

Monthly active users

2 days ago

Last modified

Share

Turn public Beacons usernames or profile URLs into structured records with creator identity, biographies, featured links, social destinations, public emails, and media when available. Submit one profile or a batch, then export the results from Apify.

What this Actor does

The Actor normalizes submitted profile references, removes duplicate profiles, and collects the information available on each public profile page. It saves successful profiles and non-billable collection status records in the Dataset.

Results can include a display name, biography, avatar, featured links, social destinations, public emails, image and video URLs, and SEO metadata. The available links may be a subset of the buttons shown on the Beacons page; a successful profile record does not guarantee a complete button list.

Use cases

  • Research creators, brands, competitors, and link-in-bio strategies.
  • Enrich CRM, directory, or outreach-review records with public profile data.
  • Audit outbound links, social destinations, public emails, and embedded media.
  • Compare profile content and destinations across creator platforms.

How to use

  1. Add one or more Beacons usernames or public profile URLs.
  2. Start the Actor from Apify Console.
  3. Open the Dataset when the run finishes.
  4. Export the structured profile rows in your preferred format.

Follow preparation, collection, and saving progress in the run's log while it is working. The final message distinguishes complete collection from a partial result; check the Dataset and run summary for the outcome.

Input

FieldRequiredAccepted values
profilesYesAn array of one to five hundred non-empty strings: Beacons usernames, @usernames, or public beacons.ai profile URLs.

The Console example starts with beacons; provide the profiles array when supplying your own input. Usernames are normalized to lowercase. Different references to the same profile are processed only once within the run. References from other platforms or unsupported profile paths produce an invalid-input status record and are not charged as successful profiles. Do not add fields outside this input contract.

This exact input produced the complete output below:

{
"profiles": [
"beacons"
]
}

Output

Each Dataset item represents either a collected profile or a non-billable collection outcome. Use ok and status to distinguish successful profiles from invalid or unavailable references before importing results into another system.

FieldsHow to interpret them
profileUrl, slug, username, displayNameProfile identity and public display name.
bio, bioParagraphs, textBlocksAvailable biography text, which may be repeated in different representations.
links, socialLinks, linksCount, socialLinksCountAvailable destinations and the counts of their returned arrays.
emails, emailsCountEmail addresses explicitly available in the public page content.
avatarUrl, profileImage, media, videoLinks, videoCountAvailable image and video references; videos are URLs, not downloaded files.
seo, themeAvailable page metadata and theme color.
ok, status, warnings, capturedAtCollection outcome, data limitations, and capture time.

Empty arrays and null values are retained. profileId and groupSections are currently unpopulated; contentBlocks summarizes returned links rather than reproducing the complete page layout. Image and media URLs hosted by the source platform can expire. Export Dataset items as JSON or use Apify's other available export formats; JSON preserves the nested structure.

The RUN_STATS record in the default Key-Value Store summarizes successful profiles, outcome counts, and any unprocessed profiles. A partial summary means that some requested work was unavailable or could not be finished. Already saved rows remain available; a finished run alone does not establish that every requested profile was collected. The summary can be unavailable if reporting could not finish.

This is the complete first Dataset item from a real successful run:

{
"recordType": "profile",
"ok": true,
"status": "ok",
"profileUrl": "https://beacons.ai/beacons",
"slug": "beacons",
"profileId": null,
"username": "beacons",
"displayName": "@beacons",
"pageTitle": "@beacons | Sign up for free, 💰 Beacons Smart Reply | Beacons",
"description": "Beacons.ai",
"bio": "Beacons.ai",
"bioParagraphs": [
"Beacons.ai"
],
"textBlocks": [
{
"text": "Beacons.ai",
"position": 0,
"source": "json_ld_or_meta"
}
],
"avatarUrl": "https://cdn.beacons.ai/user_content/AHnOl9MMnuMm1Z7JLxNaIU5g9qU2/profile_beacons.gif?t=1774978729639",
"profileImage": {
"url": "https://cdn.beacons.ai/user_content/AHnOl9MMnuMm1Z7JLxNaIU5g9qU2/profile_beacons.gif?t=1774978729639",
"alt": "@beacons",
"source": "json_ld_or_meta"
},
"backgroundImageUrl": "https://cdn.beacons.ai/user_content/AHnOl9MMnuMm1Z7JLxNaIU5g9qU2/profile_beacons.gif?t=1774978729639",
"profileSocialUrl": null,
"links": [
{
"title": "Featured link",
"url": "https://beacons.ai/signup",
"kind": "link",
"platform": null,
"position": 0,
"source": "json_ld"
}
],
"socialLinks": [],
"groupSections": [],
"contentBlocks": [
{
"blockType": "link",
"title": "Featured link",
"url": "https://beacons.ai/signup",
"position": 0
}
],
"emails": [],
"emailsCount": 0,
"theme": {
"themeColor": "#000000"
},
"seo": {
"title": "@beacons | Sign up for free, 💰 Beacons Smart Reply | Beacons",
"description": "Beacons.ai",
"canonicalUrl": "https://beacons.ai/beacons",
"themeColor": "#000000",
"ogUrl": "https://beacons.ai/beacons",
"ogTitle": "@beacons | Sign up for free, 💰 Beacons Smart Reply | Beacons",
"ogDescription": "Beacons.ai",
"ogImage": "https://cdn.beacons.ai/user_content/AHnOl9MMnuMm1Z7JLxNaIU5g9qU2/profile_beacons.gif?t=1774978729639",
"ogType": "website",
"ogSiteName": "Beacons",
"twitterCard": "summary_large_image",
"twitterTitle": "@beacons | Sign up for free, 💰 Beacons Smart Reply | Beacons",
"twitterDescription": "Beacons.ai",
"twitterImage": "https://cdn.beacons.ai/user_content/AHnOl9MMnuMm1Z7JLxNaIU5g9qU2/profile_beacons.gif?t=1774978729639"
},
"media": [
{
"kind": "image",
"url": "https://cdn.beacons.ai/user_content/AHnOl9MMnuMm1Z7JLxNaIU5g9qU2/profile_beacons.gif?t=1774978729639",
"title": "@beacons",
"position": 0,
"source": "json_ld_or_meta"
}
],
"linksCount": 1,
"socialLinksCount": 0,
"videoCount": 0,
"videoLinks": [],
"warnings": [
"full_button_list_not_available_from_public_html"
],
"httpStatus": 200,
"requestAttempts": 1,
"finalUrl": "https://beacons.ai/beacons",
"capturedAt": "2026-10-21T10:08:07.353664+00:00"
}

Pricing

The Actor uses pay-per-event pricing. One successfully collected profile saved to the default Dataset triggers one profile-item event. The actual charge is per successful profile; the 1,000-profile column is an equivalent for comparison.

Apify planPrice per successful profileEquivalent per 1,000 successful profiles
Free$0.00100$1.00
Bronze$0.00090$0.90
Silver$0.00080$0.80
Gold$0.00075$0.75
Platinum$0.00075$0.75
Diamond$0.00075$0.75

Apify selects the applicable price from the customer's plan. Invalid references, duplicate references removed within the run, unavailable or not-found profiles, and status records do not trigger a profile charge. There is no start fee or separate video charge. Check the Actor's Pricing tab for the current prices before running it.

ActorBest for
Linktree Profile & Links ScraperCollecting Linktree profile identities, pinned links, themes, and social destinations.
Bio Sites Profile & Links ScraperExtracting content sections, links, social destinations, and media from Bio Sites profiles.
Lnk.Bio Profile ScraperExtracting grouped links, public contact details, media, and SEO data from Lnk.Bio.
Taplink Profile ScraperCollecting Taplink text blocks, links, social destinations, themes, and public contact data.

Limits and data quality

The five hundred reference limit is a maximum input size, not a guaranteed result count. Only publicly accessible information can be returned. Private, deleted, unavailable, regionally restricted, or temporarily blocked profiles may produce a status record instead of a successful profile. A run's spending or time limit can leave some profiles unprocessed; those profiles may have no Dataset row, so also check RUN_STATS.

The Actor does not guarantee every button, page section, custom design, or embedded item shown on Beacons. Returned counts describe the arrays collected, not a verified total for the whole page. Counts, links, page content, and signed media URLs can change after collection. A successful profile can still have empty contact, social, or media fields.

Profiles whose content is too large or unusually complex to collect safely produce an uncharged status record. Other profiles in the input can still be collected.

Frequently asked questions

Can I submit usernames and full URLs together?

Yes. Both forms are normalized and duplicates are removed within the run.

Why is a field empty?

The public profile may not expose that field, the content may be intentionally hidden, or the source may have changed. Check the item's status and warnings before treating an empty value as an error.

No. It extracts the destinations and public metadata exposed on the profile; it does not crawl the external websites behind those links.

Can a run finish with fewer successful profiles than I submitted?

Yes. Duplicate references are removed, some profiles may be unavailable, and the run may reach its spending or time limit. Check each item's status and the RUN_STATS summary. Only successfully collected profiles trigger the profile event charge.

Will resurrecting a run collect unavailable profiles again?

Resurrection resumes unfinished work and preserves results already recorded, including unavailable-profile outcomes. To collect those profiles again after a temporary source problem, start a new run with just the affected references. A run may stop if it cannot safely verify a previous result or charge; repeating an uncertain operation could create duplicates.

Responsible use

Use only publicly available information for lawful purposes. Respect Beacons's terms, applicable privacy and data-protection laws, copyright, and profile-owner rights. Do not use the output for harassment, discrimination, deceptive activity, or unsolicited outreach without the required permission.

Support

Open an issue in the Actor's Issues tab with the run ID, affected public profile reference, returned status, and expected result. Never include passwords, tokens, or private credentials.

Python integration examples and CSV export guide on GitHub