# Linkedin Phone Number Scraper (`scrapers-hub/linkedin-phone-number-scraper`) Actor

📞 LinkedIn Phone Number Scraper pulls verified phone numbers from LinkedIn profiles to supercharge B2B lead gen, sales outreach, and recruiting. ✅ Faster prospecting, cleaner data, better targeting. 🚀 Try it today!

- **URL**: https://apify.com/scrapers-hub/linkedin-phone-number-scraper.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Lead generation, Automation, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

### Linkedin Phone Number Scraper - Advanced, Fast & Reliable 🔍

**Linkedin Phone Number Scraper - Advanced, Fast & Reliable** is an automated actor that **scrapes phone numbers from LinkedIn profiles, bios, and post content** using your selected **keywords** and **country targeting**. It’s built for people who need a reliable **LinkedIn phone number scraper** for lead generation, outreach lists, and research—especially when you want results faster than manual collection, at scale.

Whether you’re a marketer, recruiter, sales ops specialist, or data analyst, this **Linkedin contact scraper tool** helps you find relevant contacts by combining your keyword list with a phone **dial code** filter so you can collect phone numbers in the right market—saving you hours of manual work.

***

### 🚀 Why choose Linkedin Phone Number Scraper - Advanced, Fast & Reliable?

| Feature | Benefit |
|---|---|
| ✅ Keyword-driven extraction | Uses your keywords to focus on relevant LinkedIn profiles for phone discovery |
| ✅ Country targeting with dial code | Directs results toward your selected country using its dial code formatting |
| ✅ Reliability with fallbacks | Uses built-in resilience so large runs are less likely to fail mid-way |
| ✅ Structured dataset output | Saves results into a dataset with consistent fields for easy export and analysis |
| ✅ Bulk-friendly scale | Supports large scraping tasks with a configurable stop condition and resumable progress |
| ✅ Incremental saving to dataset | Pushes each discovered record immediately, reducing data loss during long runs |

***

### 🔑 Key features

- 📌 **Profile, bio, and post content scraping**: Extracts phone numbers from LinkedIn profiles, bios, and post content using your keywords.
- 🎯 **Keyword targeting for lead relevance**: Improves signal quality by searching for phone-related mentions around your chosen terms (like a LinkedIn lead phone number scraper).
- 🌍 **Country dial code focus**: Filters formatting using the selected country, helping you run a more targeted “LinkedIn bulk phone number scraper”.
- 🛡️ **Resilient execution**: Includes reliability behaviors (fallbacks and resilience checks) to handle real-world scraping volatility.
- 🔄 **Progress persistence for long runs**: Saves progress as it goes, so you can continue where you left off (useful for automated LinkedIn phone number collection).
- 💾 **Dataset-ready structured results**: Every match is pushed to the output dataset with fields ready for CRM import or spreadsheets.
- ⏱️ **Task-size control**: Use the `maxPhoneNumbers` limit to control runtime and collection volume.
- 📊 **Duplicate avoidance**: Maintains a set of already-seen numbers to keep your results unique (by phone number).

***

### 📝 Input

Provide input via an `input.json` file. Example structure:

```json
{
  "keywords": ["marketing", "founder"],
  "location": "",
  "country": "United Kingdom (+44)",
  "maxPhoneNumbers": 20
}
```

#### Input Fields

| Field | Required | Description |
|---|---:|---|
| `keywords` | ✅ | A list of keywords to guide extraction from LinkedIn bios, profiles, and post content. For example: `["marketing", "founder"]`. |
| `location` | ❌ | Optional location text (e.g., `London`, `California`) to help refine targeting. Leave empty for a global search. |
| `country` | ✅ | Select the country to target for phone numbers using its dial code (e.g., `United Kingdom (+44)`). |
| `maxPhoneNumbers` | ❌ | Stop scraping after this many phone numbers are found. Higher limits can extend runtime (range: `1` to `10000`, default: `20`). |

***

### 📦 Output

The actor saves scraped results into the **Linkedin Phone Numbers Dataset**. Each discovered match is pushed incrementally into the dataset as a JSON object.

Example output record:

```json
[
  {
    "platform": "LinkedIn",
    "keyword": "marketing",
    "title": "No title",
    "description": "No data",
    "url": "No URL",
    "phone_number": "+447700900123",
    "country": "United Kingdom",
    "dial_code": "+44"
  }
]
```

#### Output Fields

| Field | Type | Description |
|---|---|---|
| `platform` | string | The platform label for each record (`"LinkedIn"`). |
| `keyword` | string | The keyword currently driving the extraction run. |
| `title` | string | The result title associated with the extracted content. |
| `description` | string | The text content used for phone extraction (stored as extracted text). |
| `url` | string | The source URL associated with the record. |
| `phone_number` | string | The phone number formatted in E.164 format (unique in the run). |
| `country` | string | The selected target country name (derived from the `country` input). |
| `dial_code` | string | The dial code used for country targeting (derived from the selected country). |

> Note: The dataset view uses these fields: `keyword`, `title`, `description`, `url`, `phone_number`, `country`, `dial_code`.

***

### 🚀 How to use Linkedin Phone Number Scraper - Advanced, Fast & Reliable (via Apify Console)

1. **Open Apify Console**
   Go to [console.apify.com](https://console.apify.com) and log in.

2. **Find the actor**
   Search for **Linkedin Phone Number Scraper - Advanced, Fast & Reliable** and open the actor page.

3. **Open the INPUT tab**
   Add your scraping parameters using the built-in input form (or paste `input.json`).

4. **Set your extraction keywords**
   Provide `keywords` as an array (for example: `["marketing", "founder"]`). This is the core driver for relevance—closely aligned with a **LinkedIn phone number scraper** workflow.

5. **Choose your country**
   Set `country` to the country you want phone numbers from (e.g. `United Kingdom (+44)`).

6. **Optional: refine with location**
   If you want tighter targeting, fill `location` (e.g., `London`). Leave it empty for broader coverage.

7. **Optional: cap the results**
   Use `maxPhoneNumbers` to stop after a certain number of matches (default: `20`). This is helpful for testing before running a larger batch.

8. **Run and monitor progress**
   Watch the logs during execution. Results are pushed incrementally to the dataset as matches are found.

9. **Open the dataset and export**
   After the run finishes, open the dataset named **Scraped Phone Numbers** (default view: table) and export in your preferred format (JSON/CSV).

No coding required—get fast, reliable phone number collection for **Linkedin contact scraper tool** use cases in minutes. 🚀

***

### 🌟 Advanced features & SEO optimization

- 🧠 **Engineered for “advanced LinkedIn phone number finder” workflows**: Built around keyword + country targeting for high-intent lead collection.
- 🧾 **Input normalization & focus controls**: Your `keywords`, optional `location`, and `country` work together to keep the extraction relevant to your market.
- 💾 **Resumable progress behavior**: Uses stored progress so long scraping tasks are less likely to restart from scratch.
- 📈 **Designed for bulk data extraction**: You can set `maxPhoneNumbers` up to `10000` to control large **automated LinkedIn phone number collection** runs.
- 🧹 **Unique output via deduplication**: Avoids pushing duplicates by tracking already-seen phone numbers during the run.

***

### 🎯 Best use cases

- 📈 **Sales teams building outbound lists**: Quickly assemble a target-ready **LinkedIn lead generation phone numbers scraper** dataset for outreach.
- 🎓 **Market researchers by region**: Compare phone contact availability across countries using the `country` dial code targeting.
- 🧠 **Recruiters sourcing local talent**: Use **LinkedIn contact details scraper** results to support role-based outreach and relationship building.
- 🏢 **B2B marketers running enrichment**: Enrich lead records by collecting profile phone numbers alongside keyword context.
- 🔁 **Data analysts validating contact sources**: Export structured fields (`phone_number`, `url`, `keyword`, etc.) into your pipeline for analysis.
- 🧾 **Operations teams preparing CRM imports**: Use the consistent dataset schema to streamline **LinkedIn phone number enrichment tool** workflows.
- 🧑‍💻 **Developer-led automations**: Integrate dataset exports into internal systems without manual copy-paste.

***

### 🧰 Technical specifications

- **Supported Input Formats**
  - ✅ `keywords` (array of strings)
  - ✅ `location` (string; optional)
  - ✅ `country` (string; selected from the provided list)
  - ✅ `maxPhoneNumbers` (integer; `1`–`10000`, default `20`)

- **Proxy Support**
  - ✅ Built-in proxy support for reliable scraping during large tasks.

- **Retry / Resilience**
  - ✅ Includes resilience behaviors and fallback logic to reduce interruption risk during long runs.

- **Dataset Structure**
  - ✅ Records are pushed into the **Linkedin Phone Numbers Dataset** with fields:
    `keyword`, `title`, `description`, `url`, `phone_number`, `country`, `dial_code`

- **Rate Limits & Performance**
  - ✅ Supports large scraping tasks; runtime can vary depending on how many records are discovered and where you target.

- **Limitations**
  - ❌ Results depend on publicly available phone mentions on LinkedIn profiles, bios, and post content.
  - ❌ If results are fewer than expected, broaden keywords or change country settings (as recommended in the input guidance).

***

### ❓ FAQ

#### Is this a “LinkedIn phone number scraper” for LinkedIn profiles only?

No. This **Linkedin Phone Number Scraper - Advanced, Fast & Reliable** is designed to scrape phone numbers from LinkedIn profiles, bios, and post content—then stores them in a structured dataset.

#### What inputs are required to run this actor?

You must provide `keywords` and `country`. `location` is optional, and `maxPhoneNumbers` is optional if you want to cap the amount of output.

#### How do I limit how many phone numbers I collect?

Use the `maxPhoneNumbers` input. The actor stops when it reaches that number of phone numbers found.

#### Can I scrape multiple keywords in one run?

Yes. `keywords` is an array, and the actor iterates through them, pushing matches incrementally to the dataset.

#### Is the output unique or can I get duplicates?

The actor avoids duplicates during the run by tracking already-seen phone numbers.

#### Do I need to code to use this tool?

No. You can use it directly from Apify Console by providing input in the form or uploading an `input.json` file.

#### Where can I export the results after the run?

After execution, open the dataset in the **OUTPUT** section and export from the dataset view (the actor pushes each record into the dataset as it finds them).

#### Does this actor scrape private or authenticated profile data?

No. It’s intended to work with **publicly available sources** for phone number discovery.

***

### 🤝 Support & feature requests

If you’re using this **Linkedin Phone Number Scraper - Advanced, Fast & Reliable** and want improvements, share feedback—we read it. 👇

💡 **Feature Requests:** Ideas like CSV export customization, additional field formatting, or stronger filtering options are all welcome.\
📧 **Contact:** For support or custom needs, email us at <dataforleads@gmail.com>.

Your feedback helps shape future upgrades to this **Linkedin phone number scraping software**.

***

### 🔚 Closing CTA / Final thoughts

*If you need the most comprehensive, SEO-optimized way to collect phone numbers for LinkedIn outreach, this is it.*\
**Linkedin Phone Number Scraper - Advanced, Fast & Reliable** makes bulk phone discovery straightforward—so you can move from data gathering to action faster. ✅

***

### Disclaimer

**This actor accesses publicly accessible sources only.** It does not access private profiles, authenticated data, or password-protected pages. Legal compliance is your responsibility—please ensure your use aligns with applicable laws and platform rules (including GDPR/CCPA and spam regulations).

If you need data removal, contact us at <dataforleads@gmail.com>.

Use this tool responsibly, ethically, and for legitimate purposes.

# Actor input Schema

## `keywords` (type: `array`):

Enter keywords to search for (e.g., 'Target Keyword').

## `location` (type: `string`):

Filter by location (e.g., 'London', 'California'). Leave empty for global search.

## `country` (type: `string`):

Select the country to target for phone numbers.

## `maxPhoneNumbers` (type: `integer`):

Stop scraping after this many phone numbers are found. Setting a higher limit extends the scraping duration.

## Actor input object example

```json
{
  "keywords": [
    "marketing",
    "founder"
  ],
  "country": "United Kingdom (+44)",
  "maxPhoneNumbers": 20
}
```

# 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 = {
    "keywords": [
        "marketing",
        "founder"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/linkedin-phone-number-scraper").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 = { "keywords": [
        "marketing",
        "founder",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/linkedin-phone-number-scraper").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 '{
  "keywords": [
    "marketing",
    "founder"
  ]
}' |
apify call scrapers-hub/linkedin-phone-number-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers-hub/linkedin-phone-number-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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