# Social Media Profile Finder (`automation-lab/social-media-profile-finder`) Actor

Find social media profiles linked from any website — Facebook, Twitter/X, LinkedIn, Instagram, YouTube, TikTok, and more.

- **URL**: https://apify.com/automation-lab/social-media-profile-finder.md
- **Developed by:** [Stas Persiianenko](https://apify.com/automation-lab) (community)
- **Categories:** Social media, Lead generation
- **Stats:** 379 total users, 43 monthly users, 99.8% runs succeeded, 3 bookmarks
- **User rating**: 4.02 out of 5 stars

## Pricing

from $0.60 / 1,000 url scanneds

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?

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

## Social Media Profile Finder

Find social media profiles linked from any website. Extracts Facebook, Twitter/X, LinkedIn, Instagram, YouTube, TikTok, and 10+ other platforms. Also parses JSON-LD structured data for social links.

### Channel enrichment for lead lists

Use Social Media Profile Finder to add public social channels to lead lists when you have company websites. For email and phone discovery, run [Website Contact Finder](https://apify.com/automation-lab/website-contact-finder); for outreach safety, clean discovered emails with [Bulk Email MX Verifier](https://apify.com/automation-lab/email-mx-verifier) and [Bulk SMTP Email Verifier](https://apify.com/automation-lab/smtp-email-verifier).

### Build a cold-outreach lead workflow on Apify

Use this actor as one step in a scrape → enrich → verify → export workflow:

1. **Source B2B accounts or contacts** with [LinkedIn Company Employees Scraper](https://apify.com/automation-lab/linkedin-company-employees-scraper), [LinkedIn Company Scraper](https://apify.com/automation-lab/linkedin-company-scraper), [Clutch.co Scraper](https://apify.com/automation-lab/clutch-scraper), [Yellow Pages Scraper](https://apify.com/automation-lab/yellowpages-scraper), [YellowPages Canada Business Scraper](https://apify.com/automation-lab/yellowpages-canada-scraper), or [Substack Scraper](https://apify.com/automation-lab/substack-scraper).
2. **Find public contact signals** with [Website Contact Finder](https://apify.com/automation-lab/website-contact-finder) or [Social Media Profile Finder](https://apify.com/automation-lab/social-media-profile-finder) when you have company domains/websites.
3. **Clean the list before outreach** with [Bulk Email MX Verifier](https://apify.com/automation-lab/email-mx-verifier) for fast syntax/MX/disposable/role-risk screening, then [Bulk SMTP Email Verifier](https://apify.com/automation-lab/smtp-email-verifier) when you need deeper mailbox and catch-all checks.
4. **Export to your outreach stack** as CSV/Excel/JSON for Instantly, HubSpot, Salesforce, Pipedrive, Airtable, Make, Zapier, or n8n.

Use only public/business contact data and comply with CAN-SPAM, GDPR, and your outreach platform's rules. Prefer company emails over personal addresses, filter role-based/risky emails when needed, and do not send to invalid or unverified addresses.

### What does Social Media Profile Finder do?

This actor scans any website's HTML for **social media profile links** across 16+ platforms. It checks anchor tags and Schema.org JSON-LD `sameAs` properties, rejects known share/navigation/content routes, canonicalizes duplicate URLs, and ranks JSON-LD declarations ahead of ordinary links. Use it for lead enrichment, competitive analysis, or building social media directories at scale by processing hundreds of websites in a single run.

### Platforms detected

Facebook, Twitter/X, LinkedIn, Instagram, YouTube, TikTok, Pinterest, GitHub, Reddit, Discord, Telegram, WhatsApp, Snapchat, Medium, Threads, Mastodon

### Who is it for?

- **Sales teams** -- enrich lead lists with social media profiles to personalize outreach and find decision-makers
- **Competitive analysts** -- map competitors' social media presence and identify which platforms they prioritize
- **Marketing agencies** -- build social media directories for client industries to benchmark platform adoption
- **Brand monitors** -- verify that official social profile links on websites are correct and up to date
- **Researchers** -- collect social media presence data across hundreds of companies for market studies

### Why use Social Media Profile Finder?

- **16+ platforms** -- detects Facebook, Twitter/X, LinkedIn, Instagram, YouTube, TikTok, Pinterest, GitHub, Reddit, Discord, Telegram, WhatsApp, Snapchat, Medium, Threads, and Mastodon
- **Dual detection methods** -- scans both HTML anchor tags and Schema.org JSON-LD `sameAs` properties for maximum coverage
- **Batch processing** -- scan hundreds of websites in a single run instead of manually visiting each site
- **Accurate, auditable selection** -- rejects known non-profile routes, deduplicates URL variants, and shows whether each ranked candidate came from an anchor, JSON-LD, or both
- **Backward-compatible JSON output** -- retains the per-platform profile map and flat social-link list while adding candidate provenance
- **Auto-prefixes domains** -- enter just `apify.com` and the actor adds `https://` automatically
- **Pay-per-event pricing** -- costs just $0.001 per website scanned with no monthly subscription

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `urls` | string\[] | Yes | -- | List of websites to scan for social media profiles. Domain names without protocol are auto-prefixed with https:// |

#### Example input

```json
{
    "urls": ["apify.com", "stripe.com", "github.com"]
}
```

### Saved input for repeat profile monitoring

Social links change when companies launch new channels, rebrand, or remove inactive profiles. Save your lead, vendor, or competitor domain list and schedule a monthly run to keep social profile data fresh in your CRM or research spreadsheet.

Example monthly monitoring input:

```json
{
    "urls": [
        "apify.com",
        "stripe.com",
        "github.com"
    ]
}
```

Use Apify integrations to append results to Google Sheets, update CRM records via Zapier or Make, or alert your team when `profileCount` changes for important accounts.

Repeat workflow ideas:

- **Lead-list refresh** — schedule a weekly or monthly run against your CRM domain list and update missing LinkedIn, Twitter/X, YouTube, or TikTok fields.
- **Competitor profile watchlist** — rerun the same competitor domains to catch new channels, rebrands, or removed social links.
- **Partner or vendor checks** — monitor `profileCount` and `allSocialLinks` so stale or changed official profiles can be reviewed.

For broader website intelligence, combine this actor with [Tech Stack Detector](https://apify.com/automation-lab/tech-stack-detector) and [Sitemap URL Extractor](https://apify.com/automation-lab/sitemap-url-extractor).

### Output example

```json
{
    "url": "https://apify.com/",
    "profiles": {
        "facebook": null,
        "twitter": "https://x.com/apify",
        "linkedin": "https://linkedin.com/company/apify",
        "instagram": null,
        "youtube": null,
        "tiktok": "https://tiktok.com/@apifytech",
        "pinterest": null,
        "github": "https://github.com/apify",
        "reddit": null,
        "discord": "https://discord.com/invite/jyEM2PRvMU",
        "telegram": null,
        "whatsapp": null,
        "snapchat": null,
        "medium": null,
        "threads": null,
        "mastodon": null
    },
    "allSocialLinks": [
        "https://x.com/apify",
        "https://linkedin.com/company/apify",
        "https://tiktok.com/@apifytech",
        "https://github.com/apify",
        "https://discord.com/invite/jyEM2PRvMU",
        "https://discord.gg/w3e2v7rWDw"
    ],
    "profileCandidates": [
        {
            "platform": "twitter",
            "url": "https://x.com/apify",
            "sources": ["jsonLd", "anchor"],
            "selected": true
        },
        {
            "platform": "linkedin",
            "url": "https://linkedin.com/company/apify",
            "sources": ["jsonLd", "anchor"],
            "selected": true
        },
        {
            "platform": "tiktok",
            "url": "https://tiktok.com/@apifytech",
            "sources": ["jsonLd", "anchor"],
            "selected": true
        },
        {
            "platform": "github",
            "url": "https://github.com/apify",
            "sources": ["jsonLd", "anchor"],
            "selected": true
        },
        {
            "platform": "discord",
            "url": "https://discord.com/invite/jyEM2PRvMU",
            "sources": ["jsonLd", "anchor"],
            "selected": true
        },
        {
            "platform": "discord",
            "url": "https://discord.gg/w3e2v7rWDw",
            "sources": ["anchor"],
            "selected": false
        }
    ],
    "profileCount": 5,
    "checkTimeMs": 234,
    "error": null,
    "checkedAt": "2026-03-01T12:00:00.000Z"
}
```

### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `url` | string | The scanned website URL |
| `profiles` | object | Per-platform profile URLs (null if not found) |
| `profiles.facebook` | string | Facebook profile URL |
| `profiles.twitter` | string | Twitter/X profile URL |
| `profiles.linkedin` | string | LinkedIn profile URL |
| `profiles.instagram` | string | Instagram profile URL |
| `profiles.youtube` | string | YouTube channel URL |
| `profiles.tiktok` | string | TikTok profile URL |
| `profiles.github` | string | GitHub profile URL |
| `profiles.discord` | string | Discord invite URL |
| `allSocialLinks` | string\[] | Flat, canonicalized list of all valid detected profile candidates |
| `profileCandidates` | object\[] | Ranked candidates with `platform`, canonical `url`, discovery `sources` (`anchor` and/or `jsonLd`), and whether the candidate was selected in `profiles` |
| `profileCount` | number | Total number of platforms with a selected profile |
| `checkTimeMs` | number | Scan duration in milliseconds |
| `error` | string | Error message if scan failed, null otherwise |
| `checkedAt` | string | ISO timestamp of the scan |

### How much does it cost to find social media profiles?

Social Media Profile Finder uses Apify's pay-per-event pricing model. You only pay for what you use.

| Event | Price | Description |
|-------|-------|-------------|
| Start | $0.035 | One-time per run |
| URL scanned | $0.001 | Per website scanned |

**Example costs:**

- 10 websites: $0.035 + 10 x $0.001 = **$0.045**
- 100 websites: $0.035 + 100 x $0.001 = **$0.135**
- 1,000 websites: $0.035 + 1,000 x $0.001 = **$1.035**

### How to find social media profiles from websites

1. Go to the [Social Media Profile Finder](https://apify.com/automation-lab/social-media-profile-finder) on Apify Store.
2. Enter one or more website URLs or domain names in the **URLs** field.
3. Click **Start** and wait for the run to finish.
4. Review the detected social media profiles for each website.
5. Download your results in JSON, CSV, or Excel format.

### API usage

You can start Social Media Profile Finder programmatically from your own applications using the Apify API. The following examples show how to run the actor and retrieve results in both Node.js and Python.

#### Node.js

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

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('automation-lab/social-media-profile-finder').call({
    urls: ['apify.com', 'stripe.com'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient('YOUR_TOKEN')
run = client.actor('automation-lab/social-media-profile-finder').call(run_input={
    'urls': ['apify.com', 'stripe.com'],
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/automation-lab~social-media-profile-finder/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["apify.com", "stripe.com"]
  }'
```

### Use with Claude AI (MCP)

This actor is available as a tool in Claude AI through the Model Context Protocol (MCP). Add it to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.

#### Setup for Claude Code

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=automation-lab/social-media-profile-finder"
```

#### Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

```json
{
    "mcpServers": {
        "apify": {
            "url": "https://mcp.apify.com/?tools=automation-lab/social-media-profile-finder"
        }
    }
}
```

#### Example prompts

- "Find social media profiles linked on this company's website: apify.com"
- "Get all social links from these business sites: stripe.com, github.com, shopify.com"
- "Which of these companies have TikTok profiles linked on their websites?"

Learn more in the [Apify MCP documentation](https://docs.apify.com/platform/integrations/mcp).

### Integrations

Social Media Profile Finder works with all major automation platforms available on Apify. Export results to **Google Sheets** to build a social media directory for your industry. Use **Zapier** or **Make** to trigger scans whenever new leads are added to your CRM. Send profile discovery results to **Slack** for your sales team to review. Pipe results into **n8n** workflows to automatically enrich contact databases, or set up **webhooks** to get notified as soon as a scan finishes. Chain it with other Apify actors to build end-to-end lead enrichment pipelines.

### Tips and best practices

- **Use domain names without protocol** -- the actor auto-prefixes `https://` so you can just enter `apify.com` instead of the full URL
- **Scan the homepage** rather than deep pages -- social media links are almost always in the homepage footer or header
- **Filter results by `profileCount`** to quickly identify websites with the most active social media presence
- **Combine with a website list actor** -- use Sitemap URL Extractor or a Google Search scraper to build a target list, then pipe those domains into this actor
- **Schedule regular runs** on your competitor list to detect when they add new social channels or change profile URLs

### Legality

This tool analyzes publicly accessible web content. Automated analysis of public web resources is standard practice in SEO and web development. Always respect robots.txt directives and rate limits when analyzing third-party websites. For personal data processing, ensure compliance with applicable privacy regulations.

### FAQ

**Does it find personal social media profiles?**
The actor reports valid profile URLs that a website links to or declares in JSON-LD. These are usually company/brand profiles, but the actor cannot independently prove account ownership. Use `profileCandidates.sources` to audit how each URL was discovered; JSON-LD `sameAs` candidates rank ahead of ordinary anchors.

**What if a social link is in an image or icon without an href?**
The actor only detects links in anchor (`<a>`) tags and JSON-LD `sameAs` properties. Social icons that use JavaScript click handlers or are embedded as images without proper links will not be detected.

**Can it scan pages that require login?**
No. The actor uses plain HTTP requests and cannot handle authentication. It works with publicly accessible homepages and landing pages.

**The actor found zero social profiles for a website I know has them. Why?**
The actor scans the HTML source of the homepage. If social links are loaded dynamically via JavaScript (e.g., in a React/Vue widget), they will not appear in the raw HTML. Also, some websites put social links only on specific pages like "About" or "Contact" rather than the homepage.

**Can I scan multiple pages of a website, not just the homepage?**
The actor scans only the URL you provide. If you want to check deeper pages, add those specific URLs (e.g., `example.com/about`, `example.com/contact`) to the input list. For comprehensive contact discovery including social links, consider using the Website Contact Finder actor instead, which crawls multiple pages.

### How do I find a company's social media profiles from their website?

The most reliable way to find a company's official social media profiles is to check their website's homepage footer and header, where brands almost always link to their official accounts. Social Media Profile Finder automates this for any number of companies — just provide domain names and it scans each homepage for links to Facebook, LinkedIn, Instagram, X/Twitter, TikTok, YouTube, and 12 other platforms.

It also parses Schema.org JSON-LD `sameAs` properties embedded in page metadata, which some sites use to declare their official social presence without visible footer links. This dual-detection approach catches profiles that plain HTML link scraping would miss.

### How can I enrich a lead list with social media profiles at scale?

Manual social media research — searching LinkedIn or Twitter for each company — is slow and error-prone. A more scalable workflow is to extract social links directly from company websites:

1. Start with a list of company domains (from a CRM export, a Google Maps Scraper run, or a sourced list).
2. Feed those domains into Social Media Profile Finder.
3. Filter results by `profileCount > 0` to focus on companies with an active social presence.
4. Use the LinkedIn URL for decision-maker prospecting and the Instagram or TikTok URL for brand research.

At $0.001 per website, enriching 1,000 leads costs about $1.04 — cheaper and faster than any manual process. Export the results to Google Sheets or pipe them into your CRM via Zapier or Make.

### What social media platforms can I detect automatically?

Social Media Profile Finder detects 16 platforms from a single website scan:

- **Professional networks**: LinkedIn
- **Short-form video**: TikTok, YouTube
- **Photo and lifestyle**: Instagram, Pinterest
- **General social**: Facebook, Twitter/X, Threads, Mastodon
- **Developer and open source**: GitHub, Reddit
- **Messaging and communities**: Discord, Telegram, WhatsApp, Snapchat
- **Publishing**: Medium

Each platform is returned as a separate field with the profile URL or `null` if not found. The `allSocialLinks` array gives you a flat list of all detected URLs for easy iteration, while `profileCount` tells you how many platforms the company is active on.

### How do I find which competitors are active on TikTok or Instagram?

Understanding which competitors have invested in a specific social platform helps you benchmark your own strategy. To audit a competitor set:

1. Compile a list of competitor domains.
2. Run Social Media Profile Finder on all of them in one batch.
3. Filter the results in Google Sheets or your data tool for rows where `profiles.tiktok` or `profiles.instagram` is not null.

This instantly shows you which competitors have TikTok or Instagram presences linked from their sites. You can then feed those profile URLs into a TikTok or Instagram scraper to analyze their content volume, engagement, and posting frequency — giving you a full competitive picture.

### How do I verify that my company's social media links are correct on our website?

Broken or outdated social links — a Twitter handle that changed, a Facebook page that was migrated, a YouTube channel that was rebranded — are a common oversight on company websites. Customers who click a broken social link lose trust, and outdated profiles mislead search engines about your brand's online presence.

Running Social Media Profile Finder on your own domain takes seconds and returns all social URLs currently linked in your HTML and JSON-LD metadata. Cross-check the output against your active profiles to catch any discrepancies. For agencies managing dozens of client sites, this is an efficient bulk audit: run all domains in one job and review any mismatches in the exported CSV.

### Other lead generation tools

- [Website Contact Finder](https://apify.com/automation-lab/website-contact-finder) — find public emails, phones, contact pages, and socials from company websites
- [Email Finder](https://apify.com/automation-lab/email-finder) — Find email addresses for any domain
- [Website Contact Finder](https://apify.com/automation-lab/website-contact-finder) — Extract contact information from websites
- [LinkedIn Company Scraper](https://apify.com/automation-lab/linkedin-company-scraper), [Clutch.co Scraper](https://apify.com/automation-lab/clutch-scraper), or [Yellow Pages Scraper](https://apify.com/automation-lab/yellowpages-scraper) — Find business leads from Google Maps

### Related social media scrapers

- [Instagram Scraper](https://apify.com/automation-lab/instagram-scraper) — Scrape Instagram posts, profiles, and hashtag data
- [Twitter/X Scraper](https://apify.com/automation-lab/twitter-scraper) — Scrape Twitter/X user profiles and tweets
- [TikTok Profile Scraper](https://apify.com/automation-lab/tiktok-profile-scraper) — Extract TikTok profile metadata, follower counts, and video statistics
- [Bluesky Scraper](https://apify.com/automation-lab/bluesky-scraper) — Scrape Bluesky posts, profiles, and follower data

# Actor input Schema

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

List of websites to scan for social media profiles. Domain names without protocol are auto-prefixed with https://.

## Actor input object example

```json
{
  "urls": [
    "apify.com",
    "stripe.com",
    "github.com"
  ]
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of selected profiles and auditable alternatives for every scanned website.

# 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": [
        "apify.com",
        "stripe.com",
        "github.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("automation-lab/social-media-profile-finder").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": [
        "apify.com",
        "stripe.com",
        "github.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("automation-lab/social-media-profile-finder").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 '{
  "urls": [
    "apify.com",
    "stripe.com",
    "github.com"
  ]
}' |
apify call automation-lab/social-media-profile-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automation-lab/social-media-profile-finder"
        }
    }
}

```

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/s94mN9AczxXoxgb9u/builds/6ZmAx1i83MtOS7hk0/openapi.json
