# Company Socials Finder (`lowlanddata/company-socials-finder`) Actor

Find a company's social profiles (LinkedIn, X, Facebook, Instagram, YouTube, TikTok, GitHub) in bulk from a list of domains. Company accounts only - personal profiles are never returned. GDPR-clean. Free on a no-match.

- **URL**: https://apify.com/lowlanddata/company-socials-finder.md
- **Developed by:** [Lowland Data](https://apify.com/lowlanddata) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 company socials founds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Company Socials Finder

You have a list of company domains and you need where each one lives on social —
its LinkedIn company page, its X, its Instagram, its YouTube. Copying them out of
footers by hand, one site at a time, is an afternoon gone.

Give this a list of domains and it hands back, for each one, the social profiles
the company links from its own homepage: LinkedIn, X (Twitter), Facebook,
Instagram, YouTube, TikTok and GitHub. It reads the links the company publishes
about itself — the official accounts, in the footer, that it wants you to find.

One line it never crosses: **LinkedIn is the company page only.** A personal
`/in/` profile is a person's data, and it is never returned — with or without any
setting. Company accounts are organisation-level; people are not.

**Live health record:** [lowlanddata.com/status/company-socials-finder](https://lowlanddata.com/status/company-socials-finder/) - 30-day success rate and daily canary results, failures included. Full input/output reference: [tool page](https://lowlanddata.com/tools/company-socials-finder/).

### Quick start (30 seconds)

1. Paste your domains into **domains**, one per line — `stripe.com`,
   `https://adyen.com` or `www.gitlab.com` all work.
2. Click **Start**. Each domain comes back with a column per platform, plus every
   social link it found.
3. Only have company names? Run the
   [Company Domain Finder](https://apify.com/lowlanddata/company-domain-finder)
   first, then feed its `domain` column in here.

### What you can build with it

- **Enrich a lead or CRM list with social handles.** One batch turns domains into
  ready-to-use LinkedIn, X and Instagram URLs for each account.
- **Build a monitoring list.** Feed the LinkedIn or X URLs into a social listener
  to watch what your prospects or competitors post.
- **Populate a directory or profile card.** A partner page, an investor list, a
  market map — each company's real, official links.
- **Route outreach to the right channel.** Know which companies are active on
  which platform before you reach out.

### What you get

Each domain is one row:

```json
{
  "input": "gitlab.com",
  "domain": "gitlab.com",
  "website": "https://gitlab.com",
  "linkedin": "https://www.linkedin.com/company/gitlab-com",
  "twitter": "https://x.com/gitlab",
  "facebook": "https://www.facebook.com/gitlab",
  "instagram": null,
  "youtube": "https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg",
  "tiktok": null,
  "github": "https://github.com/gitlab-org",
  "socialLinks": ["https://www.linkedin.com/company/gitlab-com", "https://x.com/gitlab"],
  "status": "found",
  "checkedAt": "2026-09-25T10:00:00.000Z"
}
```

Field notes:

- Each platform column holds the one canonical URL for that company, or `null`.
- `linkedin` is always a `/company/` (or `/school/`) page. **Personal `/in/`
  profiles are never returned** — that is a permanent property, not a setting.
- `socialLinks` is every distinct company profile found, in the order they
  appeared, if you want the flat list.
- `status` is `found` (at least one profile), `none` (the homepage linked no
  company socials), `unreachable`, or `invalid`.

### How it finds the profiles

It fetches each domain's homepage, follows redirects to the canonical site, and
reads the links the page publishes — the footer and header social icons. Each link
is matched to its platform and reduced to the canonical profile URL; share buttons,
intent links and site chrome are filtered out, and LinkedIn is restricted to
company pages. It returns only what the company links to itself, and never guesses
a handle it did not see.

One honest limit: a homepage that renders its footer entirely in JavaScript exposes
fewer static links, so a heavily client-rendered site may return less than a
conventional one.

### What does it cost?

$4.00 per 1,000 domains where **at least one** company social profile is found. A
domain that links none, is unreachable, or was not a valid domain is delivered
**free** — you pay only for real results. A run that finds nothing costs the
$0.00005 actor start and nothing else.

- **A 500-domain list, most with socials ≈ $1.80**, once.
- **A daily 50-domain feed ≈ $0.15/month.**

The price is all-inclusive: platform usage and homepage traffic are covered, and
the free plan returns a 5-item sample per run so you can see the output shape first.

### Not technical? Let your AI assistant set it up

Copy this into ChatGPT, Claude or any AI assistant, fill in the one line, and
follow the conversation:

```text
Help me set up the "Company Socials Finder" actor on Apify
(https://apify.com/lowlanddata/company-socials-finder). Guide me one step at a time.

What I have: [E.G. "a spreadsheet of 200 company domains I need LinkedIn and X links for"]

Guide me to:
1. Create a free Apify account (apify.com), open the actor page, and paste my
   domains into the domains field, one per line.
2. Start a run, then export the results as CSV or Excel, or read them from the API.
3. Explain the per-platform columns and the socialLinks list.
4. If I only have company names, point me to the Company Domain Finder first.
5. If it works, remind me to leave a quick rating on the actor page.
```

### Input

| Field      | Description                                                                                                    |
| ---------- | -------------------------------------------------------------------------------------------------------------- |
| `domains`  | The domains to find social profiles for, one per line. A bare domain, a URL, or a www host all work. Required. |
| `maxItems` | Stop after this many domains. Default 1000; free-plan runs are capped at 5.                                    |

### Use it from your code

```bash
curl -X POST "https://api.apify.com/v2/acts/lowlanddata~company-socials-finder/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["gitlab.com", "adyen.com"]}'
```

Schedules, webhooks and the Make/Zapier/n8n integrations all apply. This is a
standard Apify actor.

### Use it with AI agents (MCP)

Through Apify's hosted MCP server, an agent can call this as a tool: hand over the
domains, read the social profiles back.

Claude Code:

```bash
claude mcp add apify --transport http "https://mcp.apify.com?actors=lowlanddata/company-socials-finder"
```

Cursor or Claude Desktop (add a custom connector / MCP server with this URL):

```text
https://mcp.apify.com?actors=lowlanddata/company-socials-finder
```

Runs bill to the Apify account you sign in with. Per-client setup: [Apify MCP docs](https://docs.apify.com/platform/integrations/mcp).

### Is it legal to collect company social links?

A company's social links are public, and it publishes them on its own homepage
precisely so people find its accounts. This reads only those public links — nothing
gated. And it stays organisation-level by design: LinkedIn is the company page
only, and no personal profile, name or contact reaches the output.

### Is there a company social media API?

This is one. Send domains to `run-sync-get-dataset-items` and read the LinkedIn, X,
Facebook, Instagram, YouTube, TikTok and GitHub URLs straight back as JSON, on a
schedule, or as an MCP tool.

### FAQ

**Do you return personal LinkedIn profiles?** No, never. Only the company's
`/company/` (or `/school/`) page. Personal `/in/` profiles are personal data and
are excluded, with or without any setting.

**Why did a company come back with fewer socials than it has?** It links only some
from its homepage, or renders its footer in JavaScript so the links are not in the
static page. The profiles returned are the ones the site actually links.

**Which handle do I get if a company has several?** The canonical one it links from
its homepage, reduced to the profile URL (no tracking parameters).

**Can I export the results to Excel?** Yes: any dataset exports as Excel, CSV, JSON
or XML from the Apify Console or API.

**Why did I only get 5 results?** The Apify free plan caps this actor at a 5-item
sample. Any paid plan lifts the cap to your `maxItems`.

### The company-identity family

The domain is the key that unlocks the rest. This tool is one rung; each is
organisation-level, nothing personal:

- [Company Domain Finder](https://apify.com/lowlanddata/company-domain-finder) — company name → website domain, the entry point.
- [Company Logo & Favicon Finder](https://apify.com/lowlanddata/company-logo-finder) — a domain's favicon, logo and social image.
- [EU Company VAT Finder](https://apify.com/lowlanddata/company-vat-finder) — the official EU VAT id behind a domain, VIES-validated.
- [Company Email Security Checker](https://apify.com/lowlanddata/company-email-security) — a domain's SPF, DMARC, DKIM and email-spoofing grade.

### Troubleshooting

Failures are loud and named in the run's status message:

- **"Provide at least one domain."** `domains` was empty; add at least one.
- **A row came back `unreachable`.** The homepage did not respond (a transient block, or the domain is parked). Re-run later.
- **A row came back `none`.** The homepage loaded but linked no company socials — often a JS-rendered footer.
- **5 results instead of your maxItems**: the free-plan sample cap; a paid Apify plan removes it.

### Support

Missing a profile a site clearly links, or found one parsed wrong? Open a report on
the actor's **Issues tab**; this tool is actively maintained.

If it earns its keep, a **rating on this page** takes ten seconds and tells us which
enrichment tool to build next.

# Actor input Schema

## `domains` (type: `array`):

The company domains to find social profiles for, one per line. A bare domain (stripe.com), a URL or a www host all work. Only have company names? Run the Company Domain Finder first.

## `maxItems` (type: `integer`):

Stop after this many domains. Default 1000; free-plan runs are capped at 5.

## Actor input object example

```json
{
  "domains": [
    "stripe.com",
    "adyen.com",
    "backmarket.com"
  ],
  "maxItems": 1000
}
```

# Actor output Schema

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

One JSON object per domain, with its company social profile URLs.

# 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 = {
    "domains": [
        "stripe.com",
        "adyen.com",
        "backmarket.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("lowlanddata/company-socials-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 = { "domains": [
        "stripe.com",
        "adyen.com",
        "backmarket.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("lowlanddata/company-socials-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 '{
  "domains": [
    "stripe.com",
    "adyen.com",
    "backmarket.com"
  ]
}' |
apify call lowlanddata/company-socials-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lowlanddata/company-socials-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/i1OV5jMpwr4e9asfI/builds/jehaQ6P9gNLfmjuzZ/openapi.json
