# Bulk Social Profile Extractor - Twitter, LinkedIn (`logiover/bulk-social-profile-extractor`) Actor

Extract social media profiles from thousands of domains. Finds Twitter/X, LinkedIn, Facebook, Instagram, YouTube, TikTok, GitHub, Discord and more from any website. One row per profile — a domain often yields 5–10+ links. No API key, export to CSV/JSON. Ideal for lead gen and competitor research.

- **URL**: https://apify.com/logiover/bulk-social-profile-extractor.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Bulk Social Profile Extractor 👥 — Twitter, LinkedIn, Instagram & More (No API Key)

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00A67E?logo=apify\&logoColor=white) ![No API key](https://img.shields.io/badge/No%20API%20key-required-2ea44f) ![Pay per result](https://img.shields.io/badge/Pricing-Pay%20per%20result-1C7ED6) ![Lead Generation](https://img.shields.io/badge/Category-Lead%20Generation-8B5CF6) ![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel-F59E0B)

Extract social media profiles from **thousands of domains in a single run**. This **bulk social profile finder** fetches every domain's homepage and automatically discovers links to **Twitter/X, LinkedIn, Facebook, Instagram, YouTube, TikTok, GitHub, Discord, Reddit, Medium, Twitch, Pinterest, WhatsApp, Telegram, Bluesky, Threads, Mastodon and Snapchat**. Each profile found becomes its own row — so a single **domain** often yields **5, 10 or 15+ rows** with the **platform, full profile URL and extracted handle**. **Fast, no headless browser, no API key, no login.**

> ### 🏆 Why this social profile extractor?
>
> **19 social platforms** · **one row per profile** (thousands of rows from a few hundred domains) · direct HTTP + regex, **no browser** · handle + source tracking · export to JSON / CSV / Excel. The unofficial **social media link extraction API alternative** for lead generation, competitor research and CRM enrichment.

***

### ✨ What this Actor does / Key features

- 🔍 **19 social platforms** — Twitter/X, LinkedIn (company + personal + school), Facebook, Instagram, YouTube, TikTok, GitHub, Discord, Reddit, Medium, Twitch, Pinterest, WhatsApp, Telegram, Bluesky, Threads, Mastodon and Snapchat.
- 📄 **One row per profile** — each domain can produce multiple rows; a well-connected company easily yields 5–10+ social profile links.
- 🧩 **Handle extraction** — the username, handle or slug is pulled straight from each profile URL, ready for outreach tools.
- 🔎 **Three discovery sources** — scans `<a href>` links in the HTML, `sameAs` in JSON-LD structured data, and `twitter:site` / `twitter:creator` meta tags.
- 📍 **Source tracking** — every row reports whether the link was found in `html-link`, `json-ld` or `meta-tag`.
- 📝 **Link text captured** — the visible text or title of each `<a>` element is preserved for context.
- 📊 **Count per domain** — the `totalProfilesFound` field shows how many social profiles each domain has.
- 🧹 **Smart deduplication** — duplicate profile URLs on the same domain are removed automatically; same-domain and known non-social hosts are excluded.
- ⚡ **Direct HTTP + high concurrency** — pure HTML fetch + regex extraction, no DOM walking; configurable parallel fetches (default 20, up to 100).
- 🔑 **No API key** — standard HTTP GET requests only; no social media API authentication needed.
- 🛡️ **Proxy support** — Apify Proxy integration (datacenter by default) to avoid rate limiting on large lists.

### 🚀 Quick start (3 steps)

1. **Configure** — paste your list of domains or URLs into **URLs / Domains**, one per line (`stripe.com` or `https://stripe.com`, both work).
2. **Run** — click **Start**. The Actor fetches each homepage in parallel and streams one row per social profile into your dataset.
3. **Get your data** — open the **Output** tab and export to **JSON, CSV or Excel**, or pull it via the Apify API. Group by `domain` to see all profiles per site.

### 📥 Input

Give the Actor at least one entry in `urls`. Everything else is optional — the homepage is fetched for each domain and `https://` is added if missing.

#### Example — social profiles for a batch of company domains

```json
{
  "urls": ["stripe.com", "github.com", "figma.com", "notion.so"],
  "maxConcurrency": 20,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

#### Example — large list, higher concurrency (lead generation)

```json
{
  "urls": [
    "shopify.com", "vercel.com", "linear.app", "airtable.com",
    "cloudflare.com", "mongodb.com", "atlassian.com", "hubspot.com"
  ],
  "maxConcurrency": 50,
  "proxyConfiguration": { "useApifyProxy": true }
}
```

#### Example — single domain, quick check

```json
{
  "urls": ["notion.so"]
}
```

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `urls` | array | URLs or domains to scan. One entry per line; the homepage is fetched for each and `https://` is added if missing. **Required.** | – |
| `maxConcurrency` | integer | How many URLs to fetch in parallel. Higher is faster but may trigger rate limits (1–100). | `20` |
| `proxyConfiguration` | object | Proxy used for the HTTP requests. Recommended to avoid rate limiting on large lists. | Apify Proxy (datacenter) |

> **Tip:** Provide bare domains (`stripe.com`) and scan company/product **homepages** rather than deep pages — social links almost always live in the footer or header. If a domain returns `totalProfilesFound: "0"`, its homepage may be a JavaScript SPA that doesn't render links in static HTML.

### 📤 Output

Each row is **one social profile found on one domain** — the platform, full profile URL, extracted handle and where it was discovered. Exportable to JSON, CSV or Excel. Here is a trimmed sample:

```json
{
  "domain": "stripe.com",
  "pageUrl": "https://stripe.com/",
  "platform": "Twitter / X",
  "profileUrl": "https://twitter.com/stripe",
  "handle": "stripe",
  "foundIn": "html-link",
  "linkText": "@stripe",
  "homepageTitle": "Stripe | Financial Infrastructure for the Internet",
  "totalProfilesFound": "8",
  "scanLatencyMs": "342",
  "extractedAt": "2026-07-06T12:00:00.000Z"
}
```

A single domain like `stripe.com` produces one such row **per profile** — Twitter/X, LinkedIn, Instagram, YouTube, GitHub and more — each sharing the same `domain`, `homepageTitle` and `totalProfilesFound` so you can group or pivot on them easily.

<details>
<summary><b>📋 Full field reference (click to expand)</b></summary>

| Field | Description |
|-------|-------------|
| `domain` | The domain that was scanned |
| `pageUrl` | The actual URL that was fetched (after redirects) |
| `platform` | Social media platform name (e.g. `Twitter / X`, `LinkedIn`, `Instagram`) |
| `profileUrl` | Full URL of the social media profile page |
| `handle` | Extracted username or handle from the profile URL |
| `foundIn` | Where the link was found: `html-link`, `json-ld` or `meta-tag` |
| `linkText` | Text content or title attribute of the link element (HTML links only; `null` otherwise) |
| `homepageTitle` | The `<title>` tag of the homepage |
| `totalProfilesFound` | Total number of unique social profiles found on this domain |
| `scanLatencyMs` | Time taken to fetch and parse the page, in milliseconds |
| `extractedAt` | ISO 8601 timestamp of when the extraction was performed |

</details>

### 💡 Use cases

- **Lead generation & sales prospecting** — extract social profiles from a list of company websites to find the right channels for outreach.
- **CRM & data enrichment** — append Twitter/X, LinkedIn, Instagram and YouTube URLs to CRM records, company databases and market-research datasets in bulk.
- **Competitor research** — map your competitors' social presence by scanning their domains and clustering by `platform`.
- **Brand monitoring & verification** — check that acquired brands or partner sites link to the correct, active social profiles.
- **Marketing audits** — verify that every property in a brand portfolio links to its live social channels; find broken or outdated footer links.
- **Influencer discovery** — scan niche blogrolls and resource pages to surface creators on specific platforms.
- **Per-platform list building** — filter by `platform` to create dedicated LinkedIn-company, Twitter/X or Instagram lead lists.

### 👥 Who uses it

Sales & lead-gen teams building outreach lists · growth marketers and agencies · SDRs and RevOps enriching CRMs · competitive-intelligence and brand-monitoring teams · recruiters sourcing company channels · researchers and data journalists mapping social footprints at scale.

### 💰 Pricing

This Actor runs on a simple **pay-per-result** model — you pay for the social profiles you extract, with no separate Apify platform fees to calculate. Try it on the **free tier** first, then scale up. See the **Pricing** tab on this page for the current rate.

### ❓ Frequently Asked Questions

**Is it legal to extract social media links from websites?**
The Actor only collects publicly available links that websites already publish on their own homepages (footer, header, structured data). You are responsible for using the data in compliance with each site's terms and applicable laws such as GDPR.

**Is there a public social media API for this?**
No single social network offers an open, key-free API that returns a company's profile across every platform. This Actor works as a **social media link extraction API alternative** — it reads the site's own HTML, JSON-LD `sameAs` data and meta tags to find those profiles, with no API key.

**Can I extract social profiles without an API key or login?**
Yes. The Actor uses standard HTTP GET requests to fetch homepages and regex to find social links. No social media API credentials, account or login are required — only an Apify account.

**Can I export social profiles to CSV or JSON?**
Yes — each social profile is one row with the platform, URL and handle. Download as **CSV, JSON or Excel**, or pull the dataset through the REST API.

**How much data can I get?**
You can process thousands of domains per run and get **one row per profile per domain**, so a list of 100 companies can easily yield 500–1,000+ social profile rows. Raise `maxConcurrency` (up to 100) to go faster on large lists.

#### Which social platforms are detected?

19 platforms: Twitter/X, LinkedIn (company, personal, school), Facebook, Instagram, YouTube, TikTok, GitHub, Discord, Reddit, Medium, Twitch, Pinterest, WhatsApp, Telegram, Bluesky, Threads, Mastodon and Snapchat.

#### Does this work with JavaScript-rendered websites (React, Next.js)?

This Actor fetches raw HTML and does **not** execute JavaScript. Most company homepages include social links in static HTML (footer/menu), so they are found. For JS-heavy single-page apps where links are injected at runtime, use our [Website Contact Scraper](https://apify.com/logiover/website-contact-scraper), which renders pages in a headless browser.

#### How accurate is the handle extraction?

The `handle` is parsed from the URL path using platform-specific patterns (e.g. `twitter.com/<handle>`, `linkedin.com/company/<handle>`). Platforms with multiple URL shapes — such as YouTube `@handle` vs `/channel/` vs `/c/` — are all handled.

#### How do I extract LinkedIn company pages from a list of websites?

Paste your domains and run, then filter the output by the `LinkedIn` value in the `platform` column. Each LinkedIn company page found becomes one row with its URL and handle, ready to export to CSV.

### 🔗 More lead-generation & website scrapers by logiover

This extractor pairs perfectly with the rest of the logiover **lead-gen and website-data** suite — enrich the same domains with emails, contacts and tech signals:

| Use it for | Actor |
|---|---|
| 🧲 **Lead generation & contacts** | [Website Contact Scraper](https://apify.com/logiover/website-contact-scraper) · [B2B Lead Scraper](https://apify.com/logiover/b2b-lead-scraper) · [Website SEO Audit Crawler](https://apify.com/logiover/website-seo-audit-crawler) |
| ✉️ **Email finding & verification** | [Bulk Email Verifier](https://apify.com/logiover/bulk-email-verifier) · [Bulk Email Deliverability Checker](https://apify.com/logiover/bulk-email-deliverability-checker) · [YouTube Creator Email Finder](https://apify.com/logiover/youtube-creator-email-finder) |
| 👤 **Social & creator profiles** | [X (Twitter) Profile Email Scraper](https://apify.com/logiover/x-profile-email-scraper) · [TikTok Profile Email Scraper](https://apify.com/logiover/tiktok-profile-email-scraper) |
| 🧩 **Site metadata & structured data** | [JSON-LD Schema & Meta Tag Extractor](https://apify.com/logiover/json-ld-schema-meta-tag-extractor) · [Website Tech Stack Detector](https://apify.com/logiover/website-tech-stack-detector) · [Social Card Preview API](https://apify.com/logiover/social-card-preview-api) |
| 🗺️ **Crawl & discovery** | [Sitemap to URL Crawler](https://apify.com/logiover/sitemap-to-url-crawler) · [Subdomain Finder](https://apify.com/logiover/subdomain-finder) · [Website Image & Media Extractor](https://apify.com/logiover/website-image-media-extractor) |

👉 Browse all **[logiover scrapers on Apify Store](https://apify.com/logiover)** — 180+ actors across real estate, jobs, crypto, social media & B2B data.

### ⏰ Scheduling & integration

Schedule this Actor on Apify to keep social-profile lists fresh as you add new domains. Export results to JSON, CSV or Excel, sync to Google Sheets, or push to your database, BI tools and webhooks through the Apify API. Connect it to **Make, n8n or Zapier** to build automated lead-enrichment pipelines — feed domains in from your CRM and write profiles back out.

### ⭐ Support & feedback

Found a bug or need an extra platform or field? Open an issue on the **Issues** tab — response is usually fast. If this Actor saves you time, a **★★★★★ review** on the Store page genuinely helps and is hugely appreciated. 🙏

### ⚖️ Legal

This Actor extracts only publicly available links that websites publish themselves, and is intended for legitimate research, analytics and lead-generation use. You are responsible for complying with each website's terms of service, GDPR and any applicable local laws.

***

### 📝 Changelog

#### 2026-08-01

- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
- Fixed the run Output link from `{{links.apiDefaultDatasetUrl}}` to `{{links.apiDefaultDatasetUrl}}/items` so the results table opens the dataset items endpoint.

#### 2026-08-01 — Health-check remediation

- August 2026 monthly health-check remediation is in progress; this build contains fixes verified from empty/default, Console-default, targeted live probes, or field-level semantic review.
- Fixed the run Output link from `{{links.apiDefaultDatasetUrl}}` to `{{links.apiDefaultDatasetUrl}}/items` so the results table opens the dataset items endpoint.
- The final four-input matrix verdict will be appended after post-build cloud revalidation.

#### 2026-07-06

- ✨ README overhaul: richer output sample, ready-to-run example scenarios, cross-promo links to related logiover scrapers, and clearer quick-start.

#### 2026-07-01

- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.

#### 2026-06-24

- Initial release — 19-platform social profile extraction from HTML, JSON-LD and meta tags, one-row-per-profile, no API key, CSV/JSON export.

# Actor input Schema

## `urls` (type: `array`):

List of URLs or domains to extract social media links from. One entry per line. The homepage is fetched for each and all social media links are extracted automatically. Leave empty to scan a default set of well-known sites.

## `maxResults` (type: `integer`):

Maximum number of URLs/domains to scan in this run. Caps an empty-input default run so it stays fast and cheap. Raise it to scan your full list.

## `maxConcurrency` (type: `integer`):

How many URLs to fetch in parallel. Higher is faster.

## `proxyConfiguration` (type: `object`):

Proxy used for the HTTP requests. Recommended to avoid rate limiting.

## Actor input object example

```json
{
  "urls": [
    "stripe.com",
    "github.com",
    "figma.com",
    "notion.so"
  ],
  "maxResults": 1000,
  "maxConcurrency": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

The dataset containing one row per social media profile found (platform, URL, handle) for each scanned domain.

# 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 = {
    "urls": [
        "stripe.com",
        "github.com",
        "figma.com",
        "notion.so"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/bulk-social-profile-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 = { "urls": [
        "stripe.com",
        "github.com",
        "figma.com",
        "notion.so",
    ] }

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

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "stripe.com",
    "github.com",
    "figma.com",
    "notion.so"
  ]
}' |
apify call logiover/bulk-social-profile-extractor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=logiover/bulk-social-profile-extractor",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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