# Clutch.co Scraper — B2B Agency Leads, Phones & Websites (`maged120/clutch-scraper`) Actor

Scrape Clutch.co directories for B2B agency leads: company name, website, phone, address, rating, reviews, hourly rate, team size, min project size and services.

- **URL**: https://apify.com/maged120/clutch-scraper.md
- **Developed by:** [Maged](https://apify.com/maged120) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 78.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 results

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?

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

**Build B2B lead lists from Clutch.co in minutes.** Get every agency and software company in a Clutch directory with its **website, phone number, full address, rating, review count, hourly rate, team size, minimum project size and service mix**.

### What does Clutch.co Scraper do?

Clutch.co Scraper extracts company listings from [Clutch](https://clutch.co), the leading directory of B2B service providers — web developers, app developers, digital marketing, SEO, design, IT services, consulting and hundreds of other categories, filtered by country or city. For each company it returns the **name, website (clean, without tracking), phone, street address, city, region, postal code, country, rating, number of reviews, verification badge, average hourly rate, number of employees, minimum project size, services with percentage focus, short description, logo and Clutch profile URL**.

Running on Apify gives you scheduling, an API and integrations with HubSpot, Google Sheets, Airtable, Zapier, Make and webhooks.

### Why use Clutch.co Scraper?

- **B2B lead generation** — reach agencies and IT firms with verified websites and phone numbers.
- **Partnership and outsourcing research** — shortlist vendors by rate, size, rating and location.
- **Competitive analysis** — map competitors in your category and city, with pricing signals.
- **SaaS sales** — target agencies that use (or need) your tools, segmented by services.
- **Market research** — analyse rates and team sizes across regions and categories.

### How to scrape Clutch.co

1. Open the Clutch category you want (filter by location if needed) and copy the URL.
2. Paste it into **Clutch directory URLs** (one per line).
3. Set **Max companies per URL**.
4. Click **Start** and download your lead list as CSV, Excel or JSON.

### Input

| Field | Description |
|---|---|
| `startUrls` | Clutch directory pages, e.g. `https://clutch.co/agencies/digital-marketing`, `https://clutch.co/web-developers/new-york`. |
| `maxCompanies` | Max companies per URL (0 = all). |
| `skipSponsored` | Leave out sponsored placements. |
| `proxyConfiguration` | Residential proxies (default) give reliable results. |

### Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
    "name": "Imaginovation",
    "website": "https://imaginovation.net/web-app-development/",
    "phone": "919-568-1256",
    "location": "Raleigh, NC",
    "streetAddress": "8801 Fast Park, Dr Suite 301",
    "city": "Raleigh",
    "region": "NC",
    "postalCode": "27617",
    "country": "US",
    "rating": 4.9,
    "reviewCount": 16,
    "verification": "Premier Verified",
    "hourlyRate": "$50 - $99 / hr",
    "employees": "10 - 49",
    "minProjectSize": "$10,000+",
    "services": [{ "service": "Web Development", "percent": 25 }, { "service": "AI Development", "percent": 25 }],
    "profileUrl": "https://clutch.co/profile/imaginovation"
}
```

### Data fields

| Field | Meaning |
|---|---|
| `name`, `website`, `phone`, `logoUrl`, `profileUrl` | Company and contacts |
| `streetAddress`, `city`, `region`, `postalCode`, `country`, `location` | Address |
| `rating`, `reviewCount`, `verification` | Reputation |
| `hourlyRate`, `employees`, `minProjectSize` | Size and pricing |
| `services`, `servicesText`, `description` | What they do |
| `isSponsored`, `companyId`, `directoryUrl` | Listing context |

Views: **Companies**, **Contacts & address**, **Services & details**.

### How many results will I get?

One row per unique company, up to `maxCompanies` for each directory URL. Large categories contain thousands of companies; use location or service filters on Clutch to target precisely.

### Tips

- Filter on Clutch first (location, budget, industry focus), then paste the filtered URL.
- Run several city URLs in one go to build a regional list.
- Combine with a website contact scraper to find emails for each company website.

### FAQ

**Are emails included?** Clutch does not publish emails on listings; you get the website and phone number, which you can enrich with a contact scraper.

**Is it legal?** It collects publicly listed business information. Use it in line with Clutch's terms and anti-spam laws.

**Need reviews or full profiles?** Open an issue in the **Issues** tab.

# Actor input Schema

## `startUrls` (type: `array`):

Any Clutch directory/category page, including location or filter pages, e.g. https://clutch.co/agencies/digital-marketing, https://clutch.co/web-developers/new-york or https://clutch.co/web-developers/uk.

## `maxCompanies` (type: `integer`):

Maximum companies saved for each directory URL. 0 = all available.

## `skipSponsored` (type: `boolean`):

Leave out companies shown as sponsored placements.

## `proxyConfiguration` (type: `object`):

Residential proxies are required for reliable results.

## Actor input object example

```json
{
  "startUrls": [
    "https://clutch.co/web-developers/new-york",
    "https://clutch.co/agencies/digital-marketing"
  ],
  "maxCompanies": 100,
  "skipSponsored": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "startUrls": [
        "https://clutch.co/web-developers/new-york",
        "https://clutch.co/agencies/digital-marketing"
    ],
    "maxCompanies": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("maged120/clutch-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 = {
    "startUrls": [
        "https://clutch.co/web-developers/new-york",
        "https://clutch.co/agencies/digital-marketing",
    ],
    "maxCompanies": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("maged120/clutch-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 '{
  "startUrls": [
    "https://clutch.co/web-developers/new-york",
    "https://clutch.co/agencies/digital-marketing"
  ],
  "maxCompanies": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call maged120/clutch-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maged120/clutch-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/aet0fYlzQscSnj5w8/builds/uGiOBGHNfv2RF7Vhk/openapi.json
