Website Social Links Extractor
Pricing
from $1.99 / 1,000 results
Website Social Links Extractor
Website Social Links Extractor finds Facebook, Twitter, Instagram and YouTube profile links on any website. ๐ A fast way to enrich CRM records, map competitor social presence and build influencer or brand contact datasets.
Pricing
from $1.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Hub
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
๐ Website Social Links Extractor โ Find Facebook, Twitter, Instagram & YouTube Profiles from Any URL
The Website Social Links Extractor scans any list of websites and pulls out the social media profile URLs those sites link to โ Facebook, Twitter, Instagram and YouTube โ returning one clean JSON record per domain. Give it a list of company homepages, e-commerce stores, agency sites or prospect URLs, and it hands back the social handles that were buried in the header, the footer, the contact page or an icon strip nobody wants to click through manually.
This social links extractor exists because the same tedious job keeps reappearing. Sales teams need the social presence of 5,000 prospects. Agencies need to audit which brands actually run a YouTube channel. CRM records go stale because nobody updates the Instagram field. Doing that by hand costs a person hours per hundred sites; doing it with a social media links scraper costs one run. The actor uses plain HTTP requests and an HTML parser rather than a headless browser, so it moves quickly through large URL lists without the overhead of rendering full pages.
๐ What Data Can You Extract with This Social Links Scraper?
Every website you submit produces one flat record. The schema is deliberately small and completely predictable, which is exactly what you want when the output is going straight into a CRM import or a spreadsheet column.
| Category | Fields | What it gives you |
|---|---|---|
| ๐ Source identity | scrapedUrl | The website URL that was scanned, so every row is traceable back to the exact input you submitted. |
| ๐ Facebook presence | facebook | The Facebook page or profile URL linked from the site, typically the brand's official business page. |
| ๐ฆ Twitter presence | twitter | The Twitter/X profile URL the site links to, usually the company's primary handle. |
| ๐ธ Instagram presence | instagram | The Instagram profile URL found on the page โ the field most in demand for consumer brands and e-commerce. |
| โถ๏ธ YouTube presence | youtube | The YouTube channel URL, whether it is a classic channel link or a modern @handle URL. |
| โ ๏ธ Run diagnostics | error | A human-readable message explaining why a particular URL could not be processed, populated only when something went wrong. |
The field most people underestimate is error. Because it appears per row rather than failing the whole run, a batch of 2,000 prospect sites gives you a precise, machine-readable list of exactly which domains were unreachable, blocked or malformed โ turning a silent gap in your data into an actionable retry queue.
๐ Key Features of the Website Social Links Extractor
| Feature | Description |
|---|---|
| ๐ฏ Four-platform coverage | Extracts Facebook, Twitter, Instagram and YouTube profile URLs in a single pass over each website. |
| ๐ Bulk URL input | Accepts a list of start URLs in one run, so you can process an entire prospect list, client roster or competitor set at once. |
| โก HTTP-first architecture | Built on httpx and the parsel selector library instead of a browser, keeping runs fast and light on compute for standard HTML pages. |
| ๐งฑ Flat, stable schema | Every record carries the same six keys, so CSV exports never shift columns and database inserts never break on a missing field. |
| ๐งฏ Per-URL error isolation | A failing website populates its own error field instead of aborting the run โ the remaining URLs are processed normally. |
| ๐ Whole-page scanning | Social links are found wherever they live: header navigation, footer icon strips, contact sections or inline body content. |
| ๐ Free to run | The actor carries no per-result charge; you only consume standard Apify platform compute. |
| ๐ฆ Multi-format export | Results land in an Apify dataset and export to JSON, CSV, Excel, XML or HTML, or stream out through the API. |
| ๐ Integration ready | Works with Apify schedules, webhooks and the standard API client, so extracted social profiles can flow directly into downstream systems. |
๐ Why Choose This Social Links Extractor?
Zero configuration per website. There are no selectors to write, no per-domain templates to maintain and no rules to update when a brand redesigns its footer. The social links extractor takes a list of URLs and applies the same detection logic to every one of them, which means adding a new prospect to your pipeline costs exactly one line of input.
Built for bulk, not one-offs. A single URL is a job for your browser. The reason this actor exists is the list of two thousand domains sitting in a spreadsheet column. The startUrls array accepts as many entries as you want to submit, and the per-row error field means one dead domain never costs you the other 1,999 results.
Genuinely lightweight. Because extraction runs on direct HTTP requests with a fast parser rather than launching a browser per page, throughput stays high and compute stays low. For the standard server-rendered HTML that the overwhelming majority of company websites still serve, a headless browser is expensive overhead you do not need.
Output that drops straight into a CRM. Six columns, one row per domain, consistent key names, null where a platform is absent. There is no nested structure to flatten, no array to unwind and no post-processing step between the export and the import. That matters when the person consuming the data is a sales operations analyst rather than an engineer.
๐ฅ Input
The Website Social Links Extractor takes a single required input: the list of websites you want to scan. The field uses Apify's request list editor, so each entry is an object with a url key.
{"startUrls": [{ "url": "https://www.playstation.com/en-us/" },{ "url": "https://icrush.de" }]}
๐ง Website Social Links Extractor Input Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array of objects | โ Yes | [{"url": "https://www.playstation.com/en-us/"}, {"url": "https://icrush.de"}] | URLs to scrape. Each entry is an object containing a url key. Every URL is fetched and scanned for social media profile links. |
๐ก Input Examples
A single website
{"startUrls": [{ "url": "https://icrush.de" }]}
A batch of prospect domains for lead enrichment
{"startUrls": [{ "url": "https://example-agency.com" },{ "url": "https://example-store.co.uk" },{ "url": "https://example-saas.io" },{ "url": "https://example-manufacturer.de" }]}
A competitor set you re-scan on a schedule
{"startUrls": [{ "url": "https://competitor-one.com/about" },{ "url": "https://competitor-two.com/contact" },{ "url": "https://competitor-three.com" }]}
๐ค Output
Each website produces one JSON object in the dataset. Below is a real record from an actual run.
{"scrapedUrl": "https://icrush.de","facebook": "https://www.facebook.com/icrushjewelry/","instagram": "https://www.instagram.com/icrush_jewelry/","youtube": "https://www.youtube.com/@icrush_jewelry"}
Note what is absent as much as what is present. This site links to Facebook, Instagram and YouTube but not to Twitter, so no twitter value is returned โ and because the page was fetched and parsed successfully, there is no error value either. A record for a website that could not be reached would carry scrapedUrl and error instead.
๐งพ Website Social Links Extractor Output Fields
| Field | Type | Description |
|---|---|---|
scrapedUrl | string | null | The URL of the website that was scanned. |
facebook | string | null | Facebook profile or page URL found on the site. |
twitter | string | null | Twitter/X profile URL found on the site. |
instagram | string | null | Instagram profile URL found on the site. |
youtube | string | null | YouTube channel URL found on the site. |
error | string | null | Error message, if the item failed to process. |
A missing platform field means the scanned page contained no link to that network. That is a finding in its own right, not a failure โ "this brand has no Instagram presence on its homepage" is often the exact insight a social audit is looking for.
๐ป How to Use the Website Social Links Extractor (Step by Step)
Step 1: Assemble Your Website URL List
Start with the domains you want to scan. These typically come from a CRM export, a prospecting tool, a conference exhibitor list, a directory scrape or an industry association member page. The social links extractor accepts full URLs, so make sure each entry includes the protocol (https://). If your source data holds bare domains, prefix them before submission โ a spreadsheet formula handles thousands of rows in one pass.
Step 2: Choose the Right Page Per Domain
You can point the scraper at any page on a site, and that choice matters. Homepages are the safest default because most brands put their social icon strip in the global footer, which renders on every page. If a particular company hides its social links elsewhere, submitting the /contact, /about or /connect page instead usually surfaces them. When you are unsure, submit both the homepage and the contact page as separate entries and reconcile the two rows afterwards.
Step 3: Configure the Input
Open the actor in the Apify Console and go to the Input tab. The startUrls field renders as a request list editor where you can add entries one at a time, paste a block of URLs, or upload them. If you prefer working in raw JSON, switch to the JSON editor and supply the object structure shown in the Input section above, with each URL wrapped as { "url": "..." }.
Step 4: Run the Social Links Scraper
Click Start and watch the log. The actor works through the list, fetching each website and scanning its HTML for social media profile links. Because extraction is HTTP-based rather than browser-based, the log stays readable and progress moves quickly โ you see results accumulating per URL rather than waiting through browser startup cycles.
Step 5: Review the Dataset Preview
When the run finishes, open the Storage โ Dataset tab. The preview table shows one row per website with all six fields as columns. Sort by the error column first to isolate any URLs that failed, then scan the four platform columns to see your coverage rate at a glance. A quick count of non-empty instagram values, for example, immediately tells you what share of your prospect list runs an Instagram presence.
Step 6: Export the Social Profile Data
Use the export button to download the dataset as JSON, CSV, Excel, XML or HTML. CSV and Excel are the natural choices here because the schema is already flat โ six columns map directly onto a CRM import template or a spreadsheet the sales team will actually open. JSON is the better option when the data is feeding a script or an API call.
Step 7: Automate with Schedules and Webhooks
For ongoing monitoring, attach an Apify schedule so the same domain list is re-scanned weekly or monthly. Brands launch new channels, retire old ones and change handles more often than most teams realise. Pair the schedule with a webhook that fires on run success to push fresh records into your own system automatically, and compare each run against the last to catch social presence changes as they happen.
๐ API Access & Integrations
Run the social links extractor directly from the Apify API and receive the dataset items back in a single synchronous call.
curl -X POST "https://api.apify.com/v2/acts/scrapers-hub~website-social-links-extractor/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{ "url": "https://icrush.de" },{ "url": "https://www.playstation.com/en-us/" }]}'
The equivalent run from Python using the official client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run_input = {"startUrls": [{"url": "https://icrush.de"},{"url": "https://www.playstation.com/en-us/"},]}run = client.actor("scrapers-hub/website-social-links-extractor").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item.get("error"):print(item["scrapedUrl"], "โ failed:", item["error"])continueprint(item["scrapedUrl"])for network in ("facebook", "twitter", "instagram", "youtube"):if item.get(network):print(f" {network}: {item[network]}")
Beyond the API, the actor connects to Zapier, Make, Google Sheets, Slack and generic HTTP webhooks, so extracted social profile URLs can flow straight into your CRM, your outreach sequencer, a shared spreadsheet or a notification channel without any custom glue code.
๐ก Best Use Cases for Social Links Data
๐ฏ B2B Lead Generation and Prospect Enrichment
Sales teams routinely work from lists of company domains with no contact context attached. Feeding those domains through the social links extractor returns facebook, twitter, instagram and youtube URLs per prospect, giving reps a social touchpoint alongside the cold email. Knowing that a target actively runs an Instagram account changes the opening line of an outreach message, and knowing they run none at all is equally useful qualifying information.
๐๏ธ CRM Data Hygiene and Record Enrichment
Social media fields in a CRM decay quietly โ handles change, pages get merged, channels get abandoned. Re-scanning your account list on a schedule and matching scrapedUrl back to the account record lets you refresh the Facebook, Twitter, Instagram and YouTube fields in bulk. Rows where a previously populated platform now returns nothing flag accounts whose social presence has changed, which is often an early signal about the business itself.
๐ Competitor Social Presence Audits
Marketing teams need to know where competitors actually invest their attention. Run a competitor set through the extractor and the pattern is immediate: which brands maintain a youtube channel, which have quietly dropped twitter, which lead with instagram. Because the output is one row per domain, the entire competitive landscape fits into a single comparison table rather than a folder of manual screenshots.
๐ค Agency Prospecting and Pitch Preparation
Social media agencies pitch better when they arrive with evidence. Scanning a list of target companies surfaces exactly which networks each one is present on and which they are missing. A prospect with a strong facebook and instagram presence but no youtube link is a concrete, specific pitch โ a video content gap you can name in the first meeting, backed by data you gathered before the call.
๐ฃ Influencer and Brand Partnership Vetting
Before committing to a partnership, you need the counterparty's real, official channels rather than whatever a search engine surfaces first. Because the instagram, youtube, facebook and twitter URLs come from the brand's own website, they carry a level of verification that a search result does not โ these are the accounts the company itself points customers toward, which is exactly what you want when checking for impersonation or abandoned handles.
๐ M&A Screening and Due Diligence
When evaluating a portfolio of acquisition targets, social presence is a cheap proxy for marketing maturity and customer engagement. Running the full target list through the social links extractor produces a consistent comparison set in minutes, and the error field doubles as a technical signal โ a target whose website cannot be fetched reliably is telling you something about the state of its digital infrastructure.
๐งน Directory Building and Data Quality Auditing
If you maintain a directory, marketplace or member listing, the social fields inevitably drift out of date. Scheduling a periodic run against every listed scrapedUrl and comparing the returned platform URLs against your stored values produces a precise diff of what needs updating. Rows returning an error identify listings whose websites have gone offline entirely โ a data quality problem worth catching before your users do.
โ๏ธ Tips for Better Social Links Extraction Results
- Always include the protocol. Submit
https://example.com, notexample.com. Bare domains are a common cause of failed rows, and prefixing them in bulk takes one spreadsheet formula. - Prefer homepages and contact pages. Social icon strips almost always live in the global footer, which renders on the homepage. When a homepage returns nothing, the
/contactor/aboutpage is the next best target. - Deduplicate and normalise before you submit. The same company frequently appears as
example.com,www.example.comandexample.com/en. Collapsing those variants first avoids three rows for one business and keeps your coverage statistics honest. - Treat a null platform as a finding, not a bug. An empty
instagramvalue usually means the site genuinely does not link to Instagram. That is real, reportable information โ resist the urge to chase it as an extraction failure without checking the page source first. - Batch in manageable chunks. A few hundred to a couple of thousand URLs per run keeps logs readable and makes it straightforward to trace an anomaly back to a specific batch. Very large lists are better split across several scheduled runs.
- Filter on
errorimmediately after every run. Sorting the dataset by that column instantly separates clean results from the retry queue, and it takes seconds compared to spot-checking rows by hand.
๐ ๏ธ Troubleshooting
Why did a website return no social links at all? The most common reason is that the page genuinely does not link to any social profile โ some corporate and B2B sites deliberately keep them off the main site. The second most common reason is that you scanned a page without the global footer, such as a landing page or a checkout step. Try the homepage or the contact page, and view the page source to confirm whether the links exist in the served HTML.
Why is the twitter field empty when I know the brand has an account?
The social links extractor reports what the scanned website links to, not what exists elsewhere on the internet. A brand can maintain an active Twitter/X account and simply not link to it from the page you submitted โ many sites dropped their Twitter icon from the footer without closing the account.
A URL returned an error value. What does that mean?
The error field carries the reason the specific website could not be processed โ an unreachable host, a connection timeout, a malformed URL or a server rejecting the request. Check first that the URL is publicly reachable in a normal browser and that the protocol is included, then re-submit just the failed entries as a smaller retry batch.
Some social links appear to be missing on JavaScript-heavy sites. This actor fetches the served HTML directly rather than executing a browser. If a site injects its footer or social icon strip purely through client-side JavaScript after page load, those links will not be present in the HTML the scraper receives. Sites that server-render their markup โ still the large majority of company websites โ extract normally.
The run completed but returned fewer records than URLs I submitted.
Duplicate entries in startUrls and URLs that fail to resolve are the usual explanation. Compare the scrapedUrl values in the dataset against your original input list to identify which entries dropped out, then verify those specific links directly in a browser.
โ Frequently Asked Questions About Social Links Extraction
What does the Website Social Links Extractor actually do? It takes a list of website URLs, fetches each page, and returns the Facebook, Twitter, Instagram and YouTube profile URLs that the site links to, along with the source URL and an error message when a page cannot be processed.
Which social platforms does this social links extractor support? Four: Facebook, Twitter/X, Instagram and YouTube. Those are the only platform fields in the output schema.
What input does the actor require?
A single required field, startUrls, containing an array of objects each with a url key. That is the only input property.
Can I scan multiple websites in one run?
Yes โ that is the primary use case. The startUrls array accepts as many entries as you want to submit, and each website is processed independently so one failure never affects the rest.
Do I need to write selectors or configure anything per website? No. The same detection logic is applied to every URL you submit, so there is nothing to configure and nothing to maintain when a site changes its design.
Does this social links scraper use a headless browser? No. It uses direct HTTP requests with a fast HTML selector library, which keeps runs quick and light. The trade-off is that content injected purely by client-side JavaScript after page load is not visible to it.
What happens when a website has no social links?
You still get a record containing the scrapedUrl, simply with no platform values populated. An absent social presence is recorded as an absence rather than dropped from the dataset.
How is the error field different from a failed run?
The error field is per record. A single unreachable website populates its own error value while the rest of your URL list processes normally, so a large batch never fails wholesale because of a handful of bad domains.
Can I schedule the social links extractor to run automatically? Yes. Attach an Apify schedule to re-scan the same domain list on any cadence, and add a webhook so downstream systems are notified the moment a run finishes and fresh records land.
Is there a limit on how many URLs I can submit? The input schema imposes no fixed cap. Practical limits come from run duration and memory, so very large lists are best divided across several runs.
What export formats are available for the social profile data? Apify datasets export to JSON, JSONL, CSV, Excel, XML, HTML and RSS. CSV and Excel suit CRM imports because the schema is already flat; JSON suits scripted pipelines.
Should I submit the homepage or a deeper page? Start with the homepage, since the footer that carries social icons renders site-wide on most builds. If a homepage returns nothing useful, submit the contact or about page for that domain as a second entry.
Will it find social links placed anywhere on the page? The scraper scans the fetched page's HTML, so links found in the header, the footer, a contact block or the body content are all candidates โ it is not restricted to one region of the page.
Can I use this for lead generation and CRM enrichment?
Yes, that is one of the most common applications. Match scrapedUrl back to your account records and populate the four platform fields in bulk, then re-run periodically to keep them current.
Does the actor cost anything per result? No. It carries no per-result charge โ you consume only standard Apify platform compute for the run itself.
๐ Support & Feedback
Found a bug, hit an edge case, or seen a website whose social links are not being detected? Open a ticket on the actor's Issues tab and include the exact URL along with a short note about what you expected to see. Reproducible reports with a specific failing URL get resolved fastest.
Need a customised version โ additional platforms, deeper crawling across multiple pages per domain, contact detail extraction alongside social profiles, or a private actor built around your own prospect pipeline? Email scraperhubapi@gmail.com and describe what you are trying to build.
If the Website Social Links Extractor saves you time, please leave a review on the Apify Store. Ratings and written feedback genuinely influence which improvements get built next.
โ๏ธ Disclaimer
The Website Social Links Extractor collects publicly available data only โ social media profile URLs that a website publishes openly on pages any visitor can reach without logging in or bypassing an access control. It does not attempt to defeat authentication, and it does not access content behind a login.
You are responsible for how you use the extracted social profile data. Before running the social links extractor at scale, review each target website's Terms of Service and robots.txt and respect the restrictions they set out. Sensible request volumes and reasonable scheduling are part of scraping responsibly, and the same applies to the terms of the social platforms whose profile URLs you collect.
Where the websites you scan belong to sole traders, freelancers or individuals, the resulting social profile URLs may constitute personal data. If you process such data relating to people in the EU, UK or other regulated jurisdictions, you must comply with the GDPR and equivalent privacy laws โ establish a lawful basis, honour data subject rights, collect only what you need, and delete what you no longer use. This is particularly relevant when social links data feeds outreach and marketing workflows, which carry their own consent requirements under laws such as the GDPR and PECR.
If you believe data collected by this actor relates to you and you would like it removed, contact scraperhubapi@gmail.com with the relevant details and we will action the request.