# Leads Scraper ✅ $1/1k with EMAILS ✅ Apollo | LinkedIn Profile (`peakydev/leads-scraper-ppe`) Actor

✅ BACK AND BETTER ✅  20% DISCOUNT ACTIVE ✅  - Cheap ways to Extract leads with verified ☎️ Mobile  ✅ Work & Personal Emails.  Similar to Apollo, ZoomInfo, Lusha, LinkedIn | Google Maps

- **URL**: https://apify.com/peakydev/leads-scraper-ppe.md
- **Developed by:** [Peaky Dev](https://apify.com/peakydev) (community)
- **Categories:** Lead generation
- **Stats:** 16,366 total users, 597 monthly users, 100.0% runs succeeded, 393 bookmarks
- **User rating**: 3.82 out of 5 stars

## Pricing

from $0.10 / actor start

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

## 🔍 Leads Scraper (Emails guaranteed)

Extract unlimited leads per run with high volume email scraping similar to Apollo from over 210M verified leads updated eevry week.

🔥 The Actor is designed to automatically track your progress across all runs and **start from your last scraped page**, ensuring clean, non-redundant data every time. <br>

***

**⚡ What’s New?**

- Work emails (80% coverage - data updated every week)
- Phone number coverage (20% currently)
- 20% DISCOUNT IS ACTIVE

***

### HOW TO USE THE ACTOR

**Tweak your filters ✨** to find your target audience (data is similar to Apollo).

***

> **🤝 Support:** peakydev00@gmail.com

***

### 📈 Performance

- Unlimited leads per run including **email**.
- Robust **Filters** to narrow your search
- 99% **Email enrichment** (hunter.io verified)
- **LinkedUrl** for both the individual and their organization
- 🔥 Actor tracks your progress across all runs and **starts from last scraped page**, skipping leads already fetched.
- 🔍 Market Analysis Ready: Ideal for building databases that support lead generation, competitive analysis, and market research efforts.

### 📌 Best Practices

- **Start with Fewer Filters**: Begin with 2–3 essential filters and add more gradually.
- **Broaden the Location:** Try searching by country instead of state if you’re not getting matches.
- **Remove strict filters**: Avoid strict filters like Company Domain or Departments if you're getting no results.
- **Check for Typos**: Ensure spelling is correct as small typos can yield zero results.
- **Save high performing Searches**: When a search gives good results, save it for future use or reference
- If the scraper fails before scraping all leads, check the Logs for detailed report or open an issue.

***

### 👀 Progress Tracking

By default, the actor automatically keeps track of your progress **for each Filter you provide**. So, if you give it exact same Filter again or resurrect run, it **doesn’t start all over from first page**, instead, it picks up right where you left off and continues scraping from the last page it reached.

This behavior remains consistent, even if you're running the actor multiple times.
The progress tracking is stored for 30 days, after which it resets automatically.

- Aborting a run could disrupt the accuracy of your progress tracking.
  <br>

### Run Policy:

> - **Minimum Charge**: Each run requires a minimum of `100` leads. If fewer than 100 are found, you’ll still be charged for 100. To avoid this, make sure you use filters that are not too narrow.
>
> - **Paid Apify User**: As low as $1 for every 1k leads the Actor finds. Check Pricing to learn more.
>
> - **Free Apify User Limit**: Free users can extract only `100` leads. Upgrade to paid Apify plan to enjoy premium features.
>
> - **Timeout**: It takes `5` mins to pull 1k leads. Configure your run limit accordingly

#### Sample Input

- These are sample input you can use
- Use our new [Filter Builder website](https://leadlance.io/filter-builder) to build your filters to use via your API

```Javascript
{
  "personTitle": ["ceo", "marketing manager"],
  "excludeTitle": ["intern", "assistant"],
  "firstName": "John",
  "lastName": "Smith",
  "department": ["Technology", "Sales - Marketing"],
  "excludeDepartment": ["Other"],
  "seniority": ["owner", "c_suite", "vp"],
  "excludeSeniority": ["intern", "entry"],
  "personCountry": ["United States"],
  "personState": ["California", "Texas"],
  "companyCountry": ["United States", "Germany"],
  "companyState": ["California", "Illinois"],
  "companyCityPostalCode": ["90210", "94105"],
  "industry": ["Software", "Financial Services"],
  "webKeywords": ["AI", "automation"],
  "technologyUsed": ["Salesforce", "AWS"],
  "companyDomain": ["apify.com", "apple.com"],
  "totalResults": 1000
}
```

<br>

### 📦 Sample Output

Each scraped lead is saved in a well structured format in the Apify dataset. <br>

### ⚠️ Disclaimer

- While the actor does its best to retrieve email addresses for each lead, some leads may not include an email due to data availability.
- Use responsibly and in compliance with all applicable laws, regulations, and governing policies. We assume no liability for misuse/abuse

<br>

### 🤝 Support

Need help? Contact us directly at peakydev00@gmail.com or open an issue on the "Issues" tab.

> We Available to create custom scrapers tailored to your needs. Contact us today

***

*Made with ❤️ by Peaky Dev (Anonymous minds in the shadows of code)*

# Actor input Schema

## `totalResults` (type: `integer`):

Total number leads to fetch per run

## `companyMode` (type: `boolean`):

When enabled, the Actor returns company leads only and does not return individual employee leads

## `firstName` (type: `string`):

Filter by a person's first name.

## `lastName` (type: `string`):

Filter by a person's last name.

## `personTitle` (type: `array`):

Titles like marketing, manager, ceo, cfo etc

## `excludeTitle` (type: `array`):

Titles to exclude from results, e.g. intern, assistant.

## `seniority` (type: `array`):

Filter individuals by their current job seniority level.

## `excludeSeniority` (type: `array`):

Seniority levels to exclude from results.

## `department` (type: `array`):

Filter individuals by their department.

## `excludeDepartment` (type: `array`):

Departments to exclude from results.

## `companyEmployeeSize` (type: `array`):

Employee size ranges.

## `personCountry` (type: `array`):

The country of the person's origin.

## `personState` (type: `array`):

The company state using full name codes. One per line

## `companyCountry` (type: `array`):

The country where the company operates.

## `companyState` (type: `array`):

The company state using full name codes. One per line

## `companyCityPostalCode` (type: `array`):

Enter postal codes

## `industry` (type: `array`):

Specify one or more industries to filter companies.

## `webKeywords` (type: `array`):

Keywords related to the company

## `technologyUsed` (type: `array`):

Enter technologies used by the company (one per line) e.g Salesforce

## `minYearFounded` (type: `integer`):

Find companies founded from this year onward

## `maxYearFounded` (type: `integer`):

Find companies founded up to this year

## `revenue` (type: `array`):

Revenue range of the company

## `companyDomain` (type: `array`):

Company domain or website names. Max 100 e.g github.com

## Actor input object example

```json
{
  "totalResults": 1000,
  "companyMode": true
}
```

# Actor output Schema

## `leads` (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 = {
    "totalResults": 1000,
    "companyMode": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("peakydev/leads-scraper-ppe").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 = {
    "totalResults": 1000,
    "companyMode": True,
}

# Run the Actor and wait for it to finish
run = client.actor("peakydev/leads-scraper-ppe").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 '{
  "totalResults": 1000,
  "companyMode": true
}' |
apify call peakydev/leads-scraper-ppe --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,peakydev/leads-scraper-ppe"
        }
    }
}

```

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/T1XDXWc1L92AfIJtd/builds/0b2Z9dGmby8nBEqrz/openapi.json
