# LeadRocks Scraper (`scraptivo/leadrocks-scraper`) Actor

Export filtered B2B leads from the LeadRocks dataset by category, state, job title, company, and industry. Includes name, title, company, email, phone, LinkedIn, and website.

- **URL**: https://apify.com/scraptivo/leadrocks-scraper.md
- **Developed by:** [Scraptivo](https://apify.com/scraptivo) (community)
- **Categories:** Lead generation, Integrations, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.70 / 1,000 leads

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

**LeadRocks Scraper** exports filtered B2B leads from the LeadRocks dataset and turns them into structured, export-ready records for outbound sales, CRM enrichment, and market research. Provide a category or a free-text search query, run the Actor, and collect names, job titles, companies, emails, phones, LinkedIn profiles, and company websites. Narrow results by state, location, job title, company, and industry. Pricing is pay-per-event, from **$0.003 per lead**, with free Apify plans returning 5 sample records per run.

### What can you automate with LeadRocks Scraper?

- **Build targeted prospect lists** — Filter the LeadRocks dataset by category to export SEO agencies, trucking companies, travel nurses, real estate agents, HVAC businesses, dentists, and hundreds of other niches.
- **Geo-target your outreach** — Limit results to specific US states or location substrings so you only pay for leads in your serviceable markets.
- **Filter by decision-maker** — Match job-title substrings such as "Owner," "Founder," or "CEO" to reach people who can actually buy.
- **Enrich company and contact data** — Attach emails, phone numbers, LinkedIn profiles, company websites, team size, and revenue range to every lead.
- **Schedule recurring exports** — Run the Actor on a schedule so your pipeline refreshes automatically without manual work.

### Who is this scraper for?

| Team | Workflow |
|---|---|
| Lead-generation agencies | Export niche prospect lists for clients and deliver clean CSV files on a recurring schedule |
| Sales and SDR teams | Build outreach lists filtered by title, industry, and state, then push leads to a CRM |
| Marketers | Assemble audiences of business owners and founders for cold email or paid campaigns |
| Market researchers | Analyze company density, team size, and industry distribution by region |

### What data can you collect from LeadRocks?

| Data group | Example fields | How it helps |
|---|---|---|
| Contact identity | `fullName`, `jobTitle`, `company` | Know exactly who you are reaching and their role |
| Contact details | `email`, `phone`, `linkedinUrl`, `workEmails`, `directEmails` | Open an outreach or follow-up channel for each lead |
| Company signals | `companyWebsite`, `industry`, `teamSize`, `revenueRange` | Qualify accounts by size, vertical, and fit |
| Source context | `category`, `sourceQuery`, `state`, `location` | Trace every record back to the filter that produced it |

Some fields are conditional — for example, `industry`, `revenueRange`, `phone`, and `facebookProfile` may be empty when LeadRocks does not list a value for that lead.

### How to use LeadRocks Scraper

1. Open the **LeadRocks Scraper** Actor on Apify Store.
2. Enter the simplest valid input — a `searchQueries` value like `"seo"` or a category such as `seo`.
3. Add optional filters for state, location, job title, company, and industry.
4. Set `maxItems` to cap results (default 100; `0` = unlimited for paying users).
5. Run the Actor and download the dataset as JSON, CSV, or Excel, or push it to your integrations.

Minimal input:

```json
{
  "searchQueries": ["seo"],
  "states": ["CA"],
  "maxItems": 100
}
```

### Example workflow

#### Build a weekly list of California SEO decision-makers

1. Run the Actor every Monday with `searchQueries: ["seo"]` and `states: ["CA"]`.
2. Keep records where `jobTitle` matches "Owner," "Founder," or "Director" and `teamSize` fits your ideal account profile.
3. Send new `email` and `linkedinUrl` values to Google Sheets or your CRM.
4. Deduplicate on the `linkedinUrl` field, which is stable across runs for the same person.

Steps 2–4 happen in your own tools — the Actor returns the raw leads and the filters it applied.

### Automate and integrate your results

- **Schedules** — Set a daily or weekly run to keep your lead lists fresh without manual effort.
- **Webhooks** — Trigger a webhook after each successful run to notify your pipeline.
- **Integrations** — Send results to Google Sheets, Make, Zapier, Slack, a CRM, a database, or cloud storage.
- **API** — Call the Actor programmatically for recurring pipelines:

```shell
curl "https://api.apify.com/v2/acts/scraptivo~leadrocks-scraper/runs" \
  -X POST -H "Content-Type: application/json" \
  -d '{ "searchQueries": ["seo"], "states": ["CA"], "maxItems": 100 }'
```

### Input reference

| Field | Type | Required | Default | What it controls |
|---|---:|---|---|---|
| `categories` | array | No | `[]` | LeadRocks lead categories to export, chosen from an enum of ~150 options |
| `searchQueries` | array | No | `[]` | Free-text category search matched against category names (e.g. `"seo"`, `"trucking"`) |
| `states` | array | No | `[]` | US state abbreviations to filter leads (e.g. `CA`, `TX`, `NY`) |
| `locations` | array | No | `[]` | Location substrings matched against the lead location (e.g. `"Los Angeles"`) |
| `jobTitles` | array | No | `[]` | Job-title substrings (e.g. `"Owner"`, `"Founder"`, `"CEO"`) |
| `companies` | array | No | `[]` | Company-name substrings (e.g. `"Tipalti"`) |
| `industries` | array | No | `[]` | Industry substrings (e.g. `"Software"`, `"Healthcare"`) |
| `maxItems` | integer | No | `100` | Maximum leads to return; `0` = unlimited. Free plans are capped at 5 records per run |

All fields are optional. If you leave both `categories` and `searchQueries` empty, the Actor has no category filter to apply, so provide at least one to target a specific segment.

### Output example

Each lead is stored as one dataset item:

```json
{
  "category": "SEO",
  "fullName": "Logan Bryant",
  "jobTitle": "Advisor, SEO & Demand Gen",
  "company": "Tipalti",
  "location": "San Francisco, CA",
  "state": "CA",
  "email": "logan.bryant@example.com",
  "phone": "+1 (650) 555-0187",
  "linkedinUrl": "https://linkedin.com/in/example-profile",
  "companyWebsite": "http://example.com",
  "industry": "Payments, Software, Fintech",
  "teamSize": "663",
  "revenueRange": "$10M to $50M",
  "sourceQuery": "seo",
  "workEmails": [{ "email": "logan.bryant@example.com", "status": "ok" }],
  "directEmails": [{ "email": "loganbryant@example.com", "status": "ok" }],
  "phones": ["+1 (650) 555-0187"],
  "companyEmail": "contact@example.com",
  "companyPhone": "+1 (650) 555-0187",
  "facebookProfile": ""
}
```

### How much does it cost to scrape LeadRocks?

LeadRocks Scraper is billed **pay-per-event**. The primary event is `lead` — one dataset item — priced from **$0.003 per lead** on the free plan and down to **$0.0027 per lead** on higher Apify plans. A one-time `Actor Start` event of **$0.00005** applies per run.

- **100 leads** ≈ $0.30
- **10,000 leads** ≈ $30 (or less on discounted plans)

Free Apify plan users are capped at **5 records per run** so you can evaluate data quality before upgrading.

### Reliability and responsible use

The Actor reads from the LeadRocks dataset and filters the results you request. Fields that LeadRocks does not populate for a given lead — such as `industry`, `revenueRange`, or `phone` — are returned empty. The data represents publicly available business contact information. You are responsible for using exported contact data in compliance with applicable laws, including anti-spam and data-protection regulations.

### Frequently asked questions

#### Can I scrape any B2B niche from LeadRocks?

LeadRocks covers roughly 150 lead categories, including SEO, trucking, travel nursing, staffing agencies, real estate agents, HVAC, dentists, and more. Use `categories` to pick from the list or `searchQueries` to search category names with free text.

#### How do I target a specific state or city?

Set the `states` field to US state abbreviations such as `CA` or `TX`, and use `locations` with substrings like `"Los Angeles"` or `"United Kingdom"` to narrow the lead location field.

#### What counts as one result?

One result is one lead record — a single dataset item. Each lead is billed once at the `lead` event rate.

#### Why are some fields empty?

LeadRocks does not populate every field for every lead. Fields like `industry`, `revenueRange`, `phone`, and `facebookProfile` appear empty when the source dataset has no value for that contact.

#### How do I avoid duplicate records?

Use the stable `linkedinUrl` value to deduplicate records across runs in your own CRM or spreadsheet. The Actor returns the raw filtered results and does not perform downstream deduplication.

#### Do I need a proxy?

No. The Actor reads directly from the LeadRocks dataset, so you do not need to configure a proxy.

### Related Scraptivo automations

- [LinkedIn Profile Scraper](https://apify.com/scraptivo/linkedin-profile-scraper) — Collect LinkedIn profile data for individuals to enrich your lead lists.
- [LinkedIn Company Scraper](https://apify.com/scraptivo/linkedin-company-scraper) — Extract company pages, follower counts, and firmographics from LinkedIn.
- [LinkedIn Job Scraper](https://apify.com/scraptivo/linkedin-job-scraper) — Scrape LinkedIn job postings to track hiring demand and target recruiters.
- [Upwork Jobs Scraper](https://apify.com/scraptivo/upwork-jobs-scraper) — Export freelance job listings from Upwork by keyword and budget.
- [Glassdoor Jobs Scraper](https://apify.com/scraptivo/glassdoor-jobs-scraper) — Collect Glassdoor job listings and company data for market research.
- [ZipRecruiter Scraper](https://apify.com/scraptivo/ziprecruiter-scraper) — Scrape ZipRecruiter job postings with location and keyword filters.

### Support and custom workflows

Need a different field, source, or delivery workflow? Contact Scraptivo at scraptivo@gmail.com. Include the Actor name, a sample URL or category, the fields you need, and your expected volume so we can assess the request.

# Actor input Schema

## `categories` (type: `array`):

LeadRocks lead categories to export (e.g. SEO, Trucking, Travel Nurse). Select one or more. If empty, use searchQueries instead.

## `searchQueries` (type: `array`):

Free-text category search matched against category names (e.g. "seo", "trucking", "travel nurse", "staffing agency"). Use instead of (or together with) the categories list.

## `states` (type: `array`):

Optional US state filter (abbreviations). Only leads in these states are returned when set.

## `locations` (type: `array`):

Optional location substrings matched against the lead Location field (e.g. "Los Angeles", "Miami", "United Kingdom").

## `jobTitles` (type: `array`):

Optional job-title substrings (e.g. "Owner", "Founder", "CEO").

## `companies` (type: `array`):

Optional company-name substrings (e.g. "Acme", "Tipalti").

## `industries` (type: `array`):

Optional industry substrings matched against the Industry field (e.g. "Software", "Healthcare").

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

Maximum number of leads to return (0 = unlimited for paying users). Free Apify plans are capped at 5 records per run.

## Actor input object example

```json
{
  "categories": [
    "seo"
  ],
  "searchQueries": [
    "seo"
  ],
  "states": [],
  "locations": [],
  "jobTitles": [],
  "companies": [],
  "industries": [],
  "maxItems": 100
}
```

# Actor output Schema

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

Dataset containing filtered LeadRocks lead records

## `runStats` (type: `string`):

Aggregate statistics for this run including record count and free-tier status

# 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 = {
    "categories": [
        "seo"
    ],
    "searchQueries": [
        "seo"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraptivo/leadrocks-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 = {
    "categories": ["seo"],
    "searchQueries": ["seo"],
}

# Run the Actor and wait for it to finish
run = client.actor("scraptivo/leadrocks-scraper").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 '{
  "categories": [
    "seo"
  ],
  "searchQueries": [
    "seo"
  ]
}' |
apify call scraptivo/leadrocks-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/HS5PPoVPe2CbMbpYY/builds/o4Nu2JTtHjSAzLOxc/openapi.json
