# Website Social Links Extractor (`codescraper/website-social-links-extractor`) Actor

⚡ Extract 30+ social profiles (💼 LinkedIn, 🪶 X, 📘 Facebook, 📸 Instagram, ▶️ YouTube, 🎵 TikTok, 🐙 GitHub) from any website using Playwright. Scans JS SPAs, filters out tracking pixels, and delivers clean company channels ready for Excel, CSV, and CRM exports.

- **URL**: https://apify.com/codescraper/website-social-links-extractor.md
- **Developed by:** [CodeScraper](https://apify.com/codescraper) (community)
- **Categories:** Social media, Lead generation
- **Features:** Limited permissions
- **Stats:** 193 total users, 3 monthly users, 100.0% runs succeeded, 11 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.60 / 1,000 social profile extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🔗 Website Social Links Extractor — Bulk Social Media Scraper (Playwright)

Extract verified social media profiles, handles, and official company channels from any website or domain at scale. Powered by headless **Playwright** browser rendering, this actor accurately uncovers social media links from modern JavaScript single-page applications (React, Next.js, Vue, Nuxt, Angular, Svelte, Webflow, Shopify, WordPress) where conventional static scrapers fail.

Whether you need company social profiles for lead generation, B2B sales enrichment, competitor benchmarking, or influencer discovery, **Website Social Links Extractor** inspects the entire page lifecycle — including live DOM, JSON-LD structured data, meta tags, and script data — to extract clean, deduplicated social links directly into ready-to-use spreadsheet columns.

***

### 💰 Transparent Pay-Per-Event Pricing

This Actor uses Apify's **Pay-Per-Event** monetization model with **Platform Usage (Compute & Proxies) 100% INCLUDED**. You never pay for expensive hourly server compute or bandwidth — you only pay for the exact volume of work performed.

#### Official Pricing Table

| Event / Resource | Free Tier (No discount) | Starter (Bronze) | Scale (Silver) | Business (Gold) | Description |
|---|---|---|---|---|---|
| **Social Profile Extracted** | **$3.00** / 1,000 ($0.0030) | **$2.80** / 1,000 ($0.0028) | **$2.70** / 1,000 ($0.0027) | **$2.60** / 1,000 ($0.0026) | Charged only when an authentic, verified social profile URL is extracted. |
| **Result (Dataset Record)** | **$1.50** / 1,000 ($0.0015) | **$1.40** / 1,000 ($0.0014) | **$1.30** / 1,000 ($0.0013) | **$1.20** / 1,000 ($0.0012) | Charged per website domain processed and delivered to your dataset. |
| **Actor Start** | **$0.0010** / run | **$0.0010** / run | **$0.0010** / run | **$0.0010** / run | Flat micro-charge to initialize the Actor container per crawl run. |
| **Platform Usage (Compute & Proxies)** | **FREE ($0.00)** | **FREE ($0.00)** | **FREE ($0.00)** | **FREE ($0.00)** | Headless Chromium browser compute, memory, and datacenter proxy rotation are included at no extra cost. |

***

#### 🧮 Real-World Cost Examples

*Most business and e-commerce websites have an average of **3 to 4 social media profiles** (e.g. LinkedIn, Twitter/X, Facebook, Instagram, YouTube).*

##### 🔹 200 Websites Run (e.g. Local Business List)

- **Actor Start:** $0.0010
- **Results:** 200 websites × $0.0015 = **$0.300**
- **Profiles Extracted:** ~700 profiles (avg 3.5 per domain) × $0.0030 = **$2.100**
- **Compute & Proxies:** **FREE ($0.00)**
- 💵 **Total Cost:** **$2.40** *(Only ~1.2¢ per website!)*
  *(Starter: $2.24 | Scale: $2.15 | Business: $2.06)*

##### 🔹 500 Websites Run (e.g. E-Commerce Stores)

- **Actor Start:** $0.0010
- **Results:** 500 websites × $0.0015 = **$0.750**
- **Profiles Extracted:** ~1,750 profiles (avg 3.5 per domain) × $0.0030 = **$5.250**
- **Compute & Proxies:** **FREE ($0.00)**
- 💵 **Total Cost:** **$6.00** *(Only ~1.2¢ per website!)*
  *(Starter: $5.60 | Scale: $5.38 | Business: $5.15)*

##### 🔹 1,000 Websites Run (e.g. B2B Prospecting Campaign)

- **Actor Start:** $0.0010
- **Results:** 1,000 websites × $0.0015 = **$1.500**
- **Profiles Extracted:** ~3,500 profiles (avg 3.5 per domain) × $0.0030 = **$10.500**
- **Compute & Proxies:** **FREE ($0.00)**
- 💵 **Total Cost:** **$12.00** *(Only ~1.2¢ per website!)*
  *(Starter: $11.20 | Scale: $10.75 | Business: $10.30)*

##### 🔹 5,000 Websites Run (e.g. Large Directory Enrichment)

- **Actor Start:** $0.0010
- **Results:** 5,000 websites × $0.0015 = **$7.500**
- **Profiles Extracted:** ~17,500 profiles (avg 3.5 per domain) × $0.0030 = **$52.500**
- **Compute & Proxies:** **FREE ($0.00)**
- 💵 **Total Cost:** **$60.00** *(Starter: $56.00 | Scale: $53.75 | Business: $51.50)*

##### 🔹 100 Dead or Inactive Websites (Zero Profiles Found)

- **Actor Start:** $0.0010
- **Results:** 100 websites × $0.0015 = **$0.150**
- **Profiles Extracted:** 0 profiles × $0.0030 = **$0.000**
- 💵 **Total Cost:** **$0.15** *(You never pay for profiles that do not exist!)*

***

### ✨ Why Choose This Extractor?

- 🎭 **Full Playwright Browser Rendering:** Modern websites load social links via client-side hydration, popups, or lazy-loaded footers. Playwright evaluates the rendered DOM just like a real user.
- 🌐 **34+ Supported Platforms:** Broad coverage spanning global giants (LinkedIn, X/Twitter, Facebook, Instagram), developer hubs (GitHub, GitLab), creative communities (Behance, Dribbble), and regional leaders (WeChat, VK, Xing).
- 📑 **Organized Social Column Ordering:** Columns in the **Social Links Results** tab are strictly ordered with website details on the left, primary social channels grouped in the center, and statistics/diagnostics on the right.
- 🎯 **Dynamic Platform Filtering:** Only extract the platforms you need. If you select 5 platforms, only those 5 platforms appear in your dataset — no empty or unselected null columns cluttering your CSV/Excel.
- 🛡️ **Zero Tracking Pixels or Junk Data:** Built-in telemetry and pixel filtering automatically ignores background beacons (TikTok Pixel, LinkedIn Insight Tag, Meta Pixel, Twitter Ads) so you only receive and pay for legitimate social channels.
- 🔄 **Smart Canonical Deduplication:** Consolidates platform aliases (`twitter.com` & `x.com`, `fb.com` & `facebook.com`, `youtu.be` & `youtube.com`) and normalizes protocols (`http` to `https`) to eliminate redundant profile counts.
- 🧹 **URL Sanitization:** Strips query tracking parameters (`utm_source`, `ref`, `fbclid`, `igshid`, `si`), decodes URI components, and standardizes trailing slashes.
- 🎯 **Primary vs. Secondary Link Routing:** Distinct company profiles are placed directly in primary columns; secondary or subsidiary profiles are cataloged cleanly in `otherSocialLinks`.
- 🛡️ **Anti-Bot Datacenter Proxies:** Automated proxy rotation mitigates rate limits, Cloudflare verification, and regional blocks.
- ⚡ **Instant Dead-Domain Dropping:** Fast connectivity pre-checks drop invalid or parked domains immediately, saving runtime and eliminating phantom costs.
- 🔬 **Multi-Engine Extraction Pipeline:** Combines rendered DOM scanning, JSON-LD Schema.org parsing, OpenGraph / Twitter meta tags, and JavaScript hydration state analysis.
- ⚡ **High-Throughput Concurrency:** Built on Apify Crawlee infrastructure to crawl domains rapidly without browser crashes or memory bloat.

***

### 📱 34+ Supported Platforms

The actor recognizes and extracts links across all major international, professional, and regional ecosystems:

#### 1. Mainstream Social Networks

- 📘 **Facebook:** Company pages, groups, community profiles (`facebook.com/...`)
- 🪶 **Twitter / X:** Corporate handles, brand feeds (`twitter.com/...`, `x.com/...`)
- 💼 **LinkedIn:** Company pages, showcase pages, executive profiles (`linkedin.com/company/...`)
- 📸 **Instagram:** Official brand profiles, creator accounts (`instagram.com/...`)
- ▶️ **YouTube:** Official channels, custom vanity handles (`youtube.com/@...`, `youtube.com/c/...`)
- 🎵 **TikTok:** Brand channels, verified creator accounts (`tiktok.com/@...`)
- 📌 **Pinterest:** Brand boards, creator hubs (`pinterest.com/...`)
- 🤖 **Reddit:** Official subreddits, community forums (`reddit.com/r/...`)
- 🐙 **GitHub:** Organization repositories, open-source teams (`github.com/...`)
- 💬 **Discord:** Community invite links, support servers (`discord.gg/...`, `discord.com/invite/...`)

#### 2. Messaging & Community Channels

- ✈️ **Telegram:** Announcement channels, community groups (`t.me/...`)
- 💬 **WhatsApp:** Business chat links, verified catalog channels (`wa.me/...`, `chat.whatsapp.com/...`)
- 👻 **Snapchat:** Brand profiles, lens publisher profiles (`snapchat.com/add/...`)
- 🧵 **Threads:** Meta Threads profile feeds (`threads.net/@...`)
- 🎮 **Twitch:** Live broadcast channels, creator streams (`twitch.tv/...`)
- ✍️ **Medium:** Company publications, engineering blogs (`medium.com/...`)
- 🎧 **Spotify:** Brand podcasts, curated official playlists (`open.spotify.com/...`)

#### 3. Creative & Professional Portfolios

- 🎥 **Vimeo:** Showcase channels, video portfolios (`vimeo.com/...`)
- 🎨 **Behance:** Design team portfolios, creative showcases (`behance.net/...`)
- 🏀 **Dribbble:** Product design agency portfolios (`dribbble.com/...`)
- 📰 **Substack:** Official corporate newsletters, investor updates (`*.substack.com`)
- 🎭 **Patreon:** Creator membership channels (`patreon.com/...`)
- 📝 **Tumblr:** Microblogs, editorial visual boards (`*.tumblr.com`)
- 📷 **Flickr:** Official press photos, company galleries (`flickr.com/photos/...`)
- 🎶 **SoundCloud:** Audio podcasts, brand sound tracks (`soundcloud.com/...`)

#### 4. International & Regional Platforms

- 🐘 **Mastodon:** Fediverse instances, decentralized accounts
- 💼 **Xing:** DACH-region professional networks (`xing.com/pages/...`)
- 🇷🇺 **VK (VKontakte):** Eastern European business communities (`vk.com/...`)
- 🦊 **GitLab:** Enterprise source code repositories (`gitlab.com/...`)
- 💚 **WeChat:** Official brand accounts and QR hubs
- 🟢 **LINE:** Asian messaging accounts (`line.me/...`)
- 📺 **Rumble:** Video channels (`rumble.com/...`)
- 🇨🇳 **Weibo:** Official enterprise accounts (`weibo.com/...`)
- 🎙️ **Clubhouse:** Audio room communities (`clubhouse.com/@...`)

#### 5. Direct Contact Channels

- 📧 **Email:** Captured via `mailto:` links with address validation
- 📞 **Phone:** Captured via `tel:` telephone links with formatting sanitization

***

### 🚀 How to Use

Follow these simple steps to start extracting social media links in minutes:

1. **Paste Target Websites:**\
   Provide bare domains (`stripe.com`), subdomains (`blog.hubspot.com`), or full URLs (`https://apify.com`). You can copy-paste thousands of rows directly from Excel or Google Sheets into the input field. Duplicates are resolved automatically.
2. **Select Specific Platforms (Optional):**\
   Choose specific platforms if you only need LinkedIn and Twitter, or leave the filter empty to retrieve all 34+ platforms automatically.
3. **Configure Contact Extras (Optional):**\
   Toggle "Extract Email Addresses" or "Extract Phone Numbers" if you need direct contact touchpoints alongside social links.
4. **Run the Actor:**\
   Click the green **Start** button. The actor starts Playwright browser instances in parallel and crawls each domain.
5. **Download Your Structured Results:**\
   Once completed, navigate to the **Dataset** tab and export your data in CSV, Excel, JSON, XML, or connect directly to Zapier, Make, or HubSpot.

***

### ⚙️ Input Configuration

Configure your crawl using the intuitive form interface or raw JSON:

| Field | Type | Default | Description |
|---|---|---|---|
| `startUrls` | Array of Strings | `["apify.com", "github.com", "playstation.com"]` | Target domains or URLs to scrape. Accepts domains with or without `https://` or `www`. |
| `platforms` | Array of Strings | `["facebook", "twitter", ...]` | Filter to specific networks. If empty or all selected, all supported platforms are extracted. |
| `includeEmail` | Boolean | `false` | Extract `mailto:` email addresses found on target pages. |
| `includePhone` | Boolean | `false` | Extract `tel:` telephone numbers found on target pages. |

#### JSON Input Example

```json
{
  "startUrls": [
    "apify.com",
    "github.com",
    "https://slack.com",
    "stripe.com"
  ],
  "platforms": [
    "linkedin",
    "twitter",
    "youtube",
    "github",
    "discord"
  ],
  "includeEmail": true,
  "includePhone": false
}
```

***

### 📊 Sample Output — Successful Domain

Results are stored in a tabular dataset where each extracted platform, contact channel, and metadata field is neatly placed into its own column without missing values:

```json
{
  "inputUrl": "apify.com",
  "normalizedUrl": "https://apify.com",
  "domain": "apify.com",
  "brandName": "apify",
  "facebook": "https://facebook.com/apifytech",
  "twitter": "https://x.com/apify",
  "linkedin": "https://linkedin.com/company/apify",
  "instagram": "https://instagram.com/apifytech",
  "youtube": "https://youtube.com/apify",
  "tiktok": "https://tiktok.com/@apifytech",
  "github": "https://github.com/apify",
  "discord": "https://discord.com/invite/jyEM2PRvMU",
  "threads": "https://threads.net/@apifytech",
  "telegram": "https://t.me/apify",
  "reddit": "https://reddit.com/r/apify",
  "pinterest": "https://pinterest.com/apify",
  "snapchat": "https://snapchat.com/add/apify",
  "whatsapp": "https://wa.me/15551234567",
  "twitch": "https://twitch.tv/apify",
  "medium": "https://medium.com/@apify",
  "spotify": "https://open.spotify.com/show/4rOoJ6Egrf8K2IrywzwOMk",
  "vimeo": "https://vimeo.com/apify",
  "behance": "https://behance.net/apify",
  "dribbble": "https://dribbble.com/apify",
  "substack": "https://apify.substack.com",
  "patreon": "https://patreon.com/apify",
  "tumblr": "https://apify.tumblr.com",
  "flickr": "https://flickr.com/photos/apify",
  "soundcloud": "https://soundcloud.com/apify",
  "mastodon": "https://mastodon.social/@apify",
  "xing": "https://xing.com/pages/apify",
  "vk": "https://vk.com/apify",
  "gitlab": "https://gitlab.com/apify",
  "wechat": "https://wechat.com/apify",
  "line": "https://line.me/R/ti/p/@apify",
  "rumble": "https://rumble.com/c/apify",
  "weibo": "https://weibo.com/apify",
  "clubhouse": "https://clubhouse.com/@apify",
  "email": "contact@apify.com",
  "phone": "+1-555-019-2834",
  "otherSocialLinks": {
    "discord": [
      "https://discord.gg/w3e2v7rWDw"
    ],
    "github": [
      "https://github.com/apify/crawlee"
    ],
    "youtube": [
      "https://youtube.com/c/apifytutorials"
    ]
  },
  "statistics": {
    "totalProfilesFound": 37,
    "platformsFound": 34,
    "extractionEngines": [
      "dom",
      "header-footer",
      "meta",
      "json-ld",
      "script"
    ]
  },
  "scrapedAt": "2026-10-17T11:00:00.000Z"
}
```

***

### 📊 Sample Output — Failed Domain

When a website is unresponsive, dead, or non-existent, the actor outputs a structured record with error diagnostics so your downstream pipelines don't crash:

```json
{
  "inputUrl": "invalid-offline-sample-domain.org",
  "normalizedUrl": "https://invalid-offline-sample-domain.org",
  "domain": "invalid-offline-sample-domain.org",
  "brandName": "invalid-offline-sample-domain",
  "facebook": null,
  "twitter": null,
  "linkedin": null,
  "instagram": null,
  "youtube": null,
  "tiktok": null,
  "github": null,
  "discord": null,
  "threads": null,
  "telegram": null,
  "statistics": {
    "totalProfilesFound": 0,
    "platformsFound": 0,
    "extractionEngines": []
  },
  "error": "Failed to load page after 2 retries.",
  "errorDetails": "net::ERR_NAME_NOT_RESOLVED at https://invalid-offline-sample-domain.org",
  "scrapedAt": "2026-10-17T11:00:00.000Z"
}
```

***

### 🔍 Advanced Extraction Engines

The extractor utilizes an orchestrated multi-engine pipeline to guarantee maximum recall across diverse web architectures:

1. **Rendered DOM Analysis:**\
   Inspects all interactive elements, anchor tags, SVG icon wrappers, and footer menus rendered in Playwright after client-side JavaScript execution finishes.
2. **JSON-LD Structured Data:**\
   Decodes Schema.org definitions (`Organization`, `Corporation`, `LocalBusiness`, `Brand`, `WebSite`) to capture official `sameAs` entity declarations provided by site owners for search engines.
3. **Meta Tag Extraction:**\
   Parses OpenGraph (`og:see_also`), Twitter site cards (`twitter:site`, `twitter:creator`), and publisher tags embedded in document `<head>` blocks.
4. **JavaScript Hydration State Analysis:**\
   Evaluates inline global state stores (such as Next.js `__NEXT_DATA__`, Nuxt payload, Gatsby page data, Redux state, and window configs) where modern single-page apps store social handles.
5. **Network Traffic Capture:**\
   Passively monitors background XHR and Fetch API requests triggered during initial page load to detect asynchronously fetched profile endpoints.
6. **Semantic Header & Footer Deep Scan:**\
   Applies focused heuristics to high-probability DOM regions (`<footer>`, `<header>`, `.social-links`, `#footer-socials`, `.follow-us`) to prioritize verified corporate profiles over user-submitted comments or blog share buttons.

***

### 💼 Use Cases

- 🎯 **B2B Lead Generation & Account Intelligence:**\
  Enrich cold company domain lists with verified corporate LinkedIn pages, Twitter feeds, and YouTube channels. Accelerate outbound sales prospecting and qualify accounts faster.
- 📈 **Competitor Monitoring & Benchmarking:**\
  Track competitors' social footprint across YouTube, TikTok, Threads, and Discord. Monitor where industry leaders are investing their community-building efforts.
- 🏢 **CRM & Marketing Database Enrichment:**\
  Populate missing social fields in HubSpot, Salesforce, Pipedrive, or Airtable. Connect this actor directly via Apify webhooks or Zapier integrations to run enrichment automatically when new accounts are created.
- 🔍 **SEO & Digital PR Audits:**\
  Verify that client and competitor websites properly link to their official social properties and declare accurate JSON-LD `sameAs` schemas.
- 🎙️ **Influencer & Brand Discovery:**\
  Surface creator communities on Discord, Telegram, Patreon, and Substack for partnership outreach and co-marketing campaigns.
- 🛡️ **Brand Protection & Impersonation Monitoring:**\
  Identify unauthorized social handles or inconsistent branding across newly registered partner or vendor domains.

***

### ❓ FAQ (Frequently Asked Questions)

##### 1. How does the pricing work?

The Actor uses a predictable Pay-Per-Event model with **Compute and Proxies 100% FREE**:

- **Actor Start:** $0.0010 per run (one-time micro-charge per batch).
- **Result:** $0.0015 per website delivered to your dataset.
- **Social Profile Extracted:** $0.0030 per verified social profile found (with discounts up to $0.0026 on Apify subscriber plans).
- For example, scraping **500 websites** finding 1,750 profiles costs **$6.00 total** (~1.2¢ per website).

##### 2. Will I be charged for social profiles if none exist?

**No.** If a website has zero social links, or if the website is down, the profile extraction charge is **$0.00**. You only pay for actual verified profiles found.

##### 3. Does this actor handle JavaScript-heavy SPAs (React, Vue, Next.js)?

**Yes.** Unlike basic HTTP scrapers that only parse static HTML, this actor uses headless Playwright browsers to fully render modern JavaScript frameworks, client-side hydration scripts, and dynamic footers.

##### 4. What happens if a company operates multiple handles on one platform?

The actor selects the primary corporate handle for the main platform column (e.g. `twitter`) and stores any secondary, regional, or developer handles (e.g. `@apifydevs`) inside the `otherSocialLinks` object.

##### 5. Can I process large batches (e.g., 10,000+ domains)?

**Yes.** The actor is built for high-throughput concurrency. Large URL lists are distributed across browser instances with automated memory management, anti-blocking protection, and retry safeguards.

##### 6. Does the scraper accidentally capture social "Share" or "Intent" links?

**No.** The extraction pipeline specifically filters out sharing dialogs (`facebook.com/sharer`, `twitter.com/intent/tweet`, `linkedin.com/shareArticle`) and only accepts verified profile and channel URLs.

##### 7. How do I export my data to Microsoft Excel or Google Sheets?

Navigate to the **Storage** or **Dataset** tab in your Apify Console run overview. Click **Export**, choose **CSV** or **Excel**, and select "Social Links Results" to download a clean, single-row-per-domain spreadsheet.

##### 8. Can I integrate this actor with Zapier, Make, or webhooks?

**Yes.** Apify provides native integrations for Zapier, Make, and custom HTTP webhooks. Because our output fields are completely flattened, mapping fields to HubSpot, Airtable, or Slack requires zero transformation.

##### 9. What happens when a domain is expired, parked, or unreachable?

The actor performs rapid connectivity checks. Unreachable domains fail over quickly with a diagnostic message in the `error` column, incurring zero profile fees ($0.00) and preventing prolonged timeouts.

##### 10. Are email addresses and phone numbers extracted by default?

No, email and phone extraction are optional toggles (`includeEmail` and `includePhone`). Turn them on in the input settings if you need direct contact data alongside social channels.

##### 11. Will I ever be charged for tracking pixels, analytics scripts, or ads tags?

**No.** The extractor features built-in telemetry filtering that automatically blocks tracking subdomains and endpoints (including `analytics.tiktok.com`, `px.ads.linkedin.com`, `connect.facebook.net`, and marketing beacons). You will only ever be billed for authentic, verified user, channel, and company social profiles.

##### 12. Does the actor unify Twitter (`twitter.com`) and X (`x.com`) handles?

**Yes.** Links pointing to `twitter.com` and `x.com` for the same account are automatically normalized and deduplicated. If a website references both domains, it is treated as a single profile, eliminating duplicate charges and keeping your dataset clean.

***

### 🏷️ Tags

`website-social-links-extractor` • `social-links-extractor` • `social-media-scraper` • `facebook-scraper` • `instagram-scraper` • `linkedin-scraper` • `youtube-scraper` • `twitter-scraper` • `tiktok-scraper` • `bulk-social-scraper` • `social-links` • `social-extractor` • `website-crawler` • `social-profile-finder` • `apify-social-scraper` • `playwright-scraper` • `social-media-extractor` • `lead-generation` • `competitor-analysis` • `seo-tools` • `marketing-automation` • `web-scraping` • `crawlee`

***

### 👨‍💻 Support & Inquiries

Developed and maintained by **codescraper**.

- **Author:** codescraper
- **Support Email:** <codescraper011@gmail.com>
- **Custom Scraper Requests & Inquiries:** Contact via email for custom platform extractors, high-volume enterprise crawls, or bespoke data pipelines.

# Actor input Schema

## `startUrls` (type: `array`):

Enter domains or URLs to scrape (e.g. apify.com, github.com, or https://stripe.com/about). Accepts bare domains or full URLs with or without http/https. Duplicate domains are deduplicated automatically.

## `platforms` (type: `array`):

Select from all 34 supported networks. The top 10 mainstream platforms are preselected. Results are presented as flattened, clickable columns ready for Excel, CSV, or CRM exports.

## `includeEmail` (type: `boolean`):

If enabled, mailto: links found on the website will be extracted and included in the output.

## `includePhone` (type: `boolean`):

If enabled, tel: links found on the website will be extracted and included in the output.

## Actor input object example

```json
{
  "startUrls": [
    "apify.com",
    "https://github.com"
  ],
  "platforms": [
    "facebook",
    "twitter",
    "linkedin",
    "instagram",
    "youtube",
    "tiktok",
    "github",
    "discord",
    "threads",
    "telegram"
  ],
  "includeEmail": false,
  "includePhone": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        "apify.com",
        "https://github.com"
    ],
    "platforms": [
        "facebook",
        "twitter",
        "linkedin",
        "instagram",
        "youtube",
        "tiktok",
        "github",
        "discord",
        "threads",
        "telegram"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("codescraper/website-social-links-extractor").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [
        "apify.com",
        "https://github.com",
    ],
    "platforms": [
        "facebook",
        "twitter",
        "linkedin",
        "instagram",
        "youtube",
        "tiktok",
        "github",
        "discord",
        "threads",
        "telegram",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("codescraper/website-social-links-extractor").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    "apify.com",
    "https://github.com"
  ],
  "platforms": [
    "facebook",
    "twitter",
    "linkedin",
    "instagram",
    "youtube",
    "tiktok",
    "github",
    "discord",
    "threads",
    "telegram"
  ]
}' |
apify call codescraper/website-social-links-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codescraper/website-social-links-extractor"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/i4cQLdpP0tiQ3kETv/builds/fyXDpaRFX3T6XmsyE/openapi.json
