# Clutch.co Scraper (`solidcode/clutch-scraper`) Actor

\[💰 $1.8 / 1K ] Extract company profiles from Clutch.co — agencies, developers, marketers, IT services. Get name, rating, reviews, location, hourly rate, employees, services, and contact info. Filter by category, country, rating, or paste Clutch.co URLs directly.

- **URL**: https://apify.com/solidcode/clutch-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.80 / 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.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Clutch.co Scraper

Extract B2B service-provider company profiles from [Clutch.co](https://clutch.co) — agencies, developers, marketers, and IT service firms — at scale. Get names, ratings, review counts, hourly rates, employee bands, locations, services, websites, social links, and full client reviews with quality, schedule, and cost sub-ratings. Built for B2B lead generation, competitor research, agency discovery, and market sizing.

### Why This Scraper?

- **Transparent pay-per-event pricing** — **$1.80 per 1,000 companies** and **$0.50 per 1,000 reviews** (only billed when reviews are on). No compute charges, no run-time surprises.
- **Up to 100,000 results per run** — directory-scale data extraction across every Clutch category.
- **Guided filters, no URL hacking** — pick a category and country from a dropdown, or paste any Clutch.co URL directly. Mix and match in one run.
- **Embedded client reviews** — each company row carries its review history with overall + quality / schedule / cost / would-refer sub-ratings, reviewer role, project size, and project duration.
- **Tunable review depth** — cap at 20 reviews per company (default), set to 0 to capture every review, or disable reviews entirely for fast, cheap directory pulls.
- **Smart country handling** — paste the country dropdown, get the right URL form. Falls back to the global listing automatically when a country/category combo doesn't have a regional page.
- **Clean, non-technical inputs** — no developer-flavored knobs, no proxy settings to wire up, no URL hacking. Just pick a category and country and run.

### Use Cases

**Lead Generation & Sales**
- Build prospect lists of every web-development agency in the UK
- Find IT-services firms in your region for partnership outreach
- Pull every Clutch profile in a niche with website + LinkedIn + phone for cold outreach campaigns

**Competitor Research**
- Track your competitors' Clutch ratings, review counts, and hourly-rate bands over time
- Snapshot the entire competitive set for a category and rerun monthly to see who's gaining momentum
- Read every published review of a competitor to understand their positioning, strengths, and recurring complaints

**Agency Discovery & Procurement**
- Build a shortlist of design agencies in Germany with full review histories
- Compare hourly rates across hundreds of similar firms in seconds
- Pull full review feedback to vet vendors before sending an RFP

**Market Sizing & Industry Analysis**
- Count how many marketing agencies are listed in each country to size regional B2B services markets
- Aggregate hourly-rate bands, employee counts, and review-volume distributions across a category
- Build datasets for analyst reports on the global agency landscape

**M&A & Investment Due Diligence**
- Pull a target company's full Clutch profile, founding year, employee count, and every public review in one row
- Benchmark a target against its category peers on rating, review velocity, and price band
- Identify acquisition candidates by category and country, then sort the dataset by rating or review count yourself

**Directory Building & Data Enrichment**
- Power your own B2B services directory with 350,000+ Clutch providers
- Enrich a CRM with rating, review count, employee count, and HQ for every account
- Build "best of" listicles backed by real review data, not guesses

### Getting Started

#### Top US Developers, No Reviews

The fastest way to pull a directory snapshot — listing data only, no review pages.

```json
{
    "category": "development",
    "country": "us",
    "includeReviews": false,
    "maxResults": 50
}
````

#### UK Marketing Agencies, With Reviews

Lead list for the UK marketing space, with up to 20 reviews per company for context. Sort the resulting dataset by `rating` or `reviewCount` to surface the strongest candidates.

```json
{
    "category": "marketing",
    "country": "uk",
    "includeReviews": true,
    "maxReviewsPerCompany": 20,
    "maxResults": 200
}
```

#### Mixed URLs + Filter — Power-User Run

Combine a Clutch listing URL with a single profile URL, capture every review per company, and run unbounded.

```json
{
    "searchUrls": [
        "https://clutch.co/us/agencies/creative",
        "https://clutch.co/profile/simform"
    ],
    "includeReviews": true,
    "maxReviewsPerCompany": 0,
    "maxResults": 0
}
```

`maxResults: 0` removes the cap (an internal safety limit of 100,000 still applies). `maxReviewsPerCompany: 0` captures every available review per company.

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchUrls` | string\[] | `[]` | One or more Clutch.co URLs. Accepts category listings (`/agencies`, `/developers`), country-scoped listings (`/us/agencies/creative`, `/agencies/uk`), and individual company profiles (`/profile/<slug>`). Any URL filters are honored as-is. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `category` | string (select) | `"all"` | Top-level category — All, Development, Design, Marketing, Advertising, Business Services, IT Services. Ignored when `searchUrls` is set. |
| `country` | string (select) | `"all"` | Country scope — 23 supported countries plus "All countries". When a country / category combo has no regional page, the actor falls back to the global listing for that category. |

#### Output

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeReviews` | boolean | `true` | Embed each company's client reviews on the result row, with quality / schedule / cost sub-ratings. Disable for faster, cheaper runs that return only company-card data. |
| `maxReviewsPerCompany` | integer | `20` | Cap on reviews captured per company (most recent first). Set to `0` to capture every available review. Ignored when `includeReviews` is off. |

#### Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `500` | Hard cap on total company rows across all sources. Set to `0` for no cap (an internal safety limit of 100,000 still applies). The run stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots. |

### Output

Each result is a **company profile** with all profile details and (optionally) a nested array of client reviews. Example:

```json
{
    "name": "Simform",
    "profileUrl": "https://clutch.co/profile/simform",
    "slug": "simform",
    "clutchPid": null,
    "tagline": "Your Product Engineering & Gen AI Partner",
    "description": "Simform is a premier digital engineering company specializing in Cloud, Data, AI/ML, and Experience Engineering...",
    "rating": 4.8,
    "reviewCount": 84,
    "verified": true,
    "minProjectSize": "$25,000+",
    "hourlyRate": "$25 - $49",
    "employeeCount": "1,000 - 9,999",
    "foundedYear": 2010,
    "headquartersLocation": "Orlando, United States, FL",
    "offices": [
        {
            "city": "Orlando",
            "region": "FL",
            "country": "US",
            "address": "111 North Orange Avenue Suite 800",
            "postalCode": "32801"
        }
    ],
    "website": "https://www.simform.com",
    "socialLinks": {
        "linkedin": "https://www.linkedin.com/company/simform/",
        "twitter": null,
        "facebook": null,
        "instagram": null
    },
    "phone": "3212372727",
    "logo": "https://img.shgstatic.com/clutch-static-prod/image/scale/50x50/s3fs-public/logos/...png",
    "services": [
        "AI Development",
        "Cloud Consulting & SI",
        "Custom Software Development",
        "Mobile App Development"
    ],
    "serviceFocus": [],
    "industries": [],
    "languagesCount": 1,
    "sponsored": false,
    "sourceUrl": "https://clutch.co/profile/simform",
    "scrapedAt": "2026-04-25T21:07:16+00:00",
    "reviews": [
        {
            "reviewId": "165772",
            "reviewer": "Anonymous",
            "role": "Chief Technology Officer, Medical Device Company",
            "company": null,
            "reviewerIndustry": "Other industries",
            "reviewerLocation": "Denver, Colorado",
            "reviewerSize": "1-10 Employees",
            "date": "Nov 7, 2022",
            "rating": 5.0,
            "qualityRating": 5.0,
            "scheduleRating": 5.0,
            "costRating": 5.0,
            "willingToRefer": 5.0,
            "projectType": "Custom Software Development",
            "projectServices": ["Custom Software Development", "Mobile App Development"],
            "projectSummary": null,
            "quote": "\"Everyone is highly experienced and easy to work with.\"",
            "feedback": "Simform has successfully helped deploy a number of well-performing mobile apps...",
            "projectCost": null,
            "projectDuration": null
        }
    ]
}
```

#### All Available Fields

##### Company Fields

| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Company name |
| `profileUrl` | string | Canonical Clutch profile URL |
| `slug` | string | Profile slug |
| `clutchPid` | string | null | Clutch internal provider ID, when surfaced |
| `tagline` | string | null | Short positioning line shown on the company card |
| `description` | string | null | Full company bio from the profile page |
| `rating` | number | null | Overall star rating (0–5) |
| `reviewCount` | integer | Total reviews on Clutch |
| `verified` | boolean | Whether Clutch has verified the company |
| `minProjectSize` | string | null | e.g. `"$25,000+"` |
| `hourlyRate` | string | null | e.g. `"$25 - $49"` |
| `employeeCount` | string | null | e.g. `"1,000 - 9,999"` |
| `foundedYear` | integer | null | Year the company was founded |
| `headquartersLocation` | string | null | "City, Country, Region" of HQ |
| `offices` | object\[] | All office locations: `{city, region, country, address, postalCode}` |
| `website` | string | null | Company website (de-tracked) |
| `socialLinks` | object | `{linkedin, twitter, facebook, instagram}` |
| `phone` | string | null | HQ phone number |
| `logo` | string | null | Company logo URL |
| `services` | string\[] | Services offered (e.g. `"AI Development"`, `"Custom Software Development"`) |
| `serviceFocus` | object\[] | Services-mix breakdown `[{service, percentage}]` when available |
| `industries` | string\[] | Industries served, when available |
| `languagesCount` | integer | Number of languages the company supports |
| `sponsored` | boolean | `true` for paid / sponsored placements, `false` for organic |
| `sourceUrl` | string | The listing or profile URL that produced this row |
| `scrapedAt` | string | ISO-8601 timestamp when the row was captured |
| `reviews` | object\[] | Embedded reviews when `includeReviews=true` (see below) |

##### Review Fields (when `includeReviews=true`)

| Field | Type | Description |
|-------|------|-------------|
| `reviewId` | string | null | Clutch internal review ID, when surfaced |
| `reviewer` | string | null | Reviewer name (`"Anonymous"` or `null` for anonymous reviews) |
| `role` | string | null | Reviewer's role and company description, e.g. `"CTO, Estima Scientific"` |
| `company` | string | null | Reviewer's company name, when separate from `role` |
| `reviewerIndustry` | string | null | Industry of the reviewer's company |
| `reviewerLocation` | string | null | Location of the reviewer's company |
| `reviewerSize` | string | null | Employee band of the reviewer's company, e.g. `"11-50 Employees"` |
| `date` | string | null | Review date as displayed on Clutch |
| `rating` | number | null | Overall review rating (0–5) |
| `qualityRating` | number | null | "Quality" sub-rating (0–5) |
| `scheduleRating` | number | null | "Schedule" sub-rating (0–5) |
| `costRating` | number | null | "Cost" sub-rating (0–5) |
| `willingToRefer` | number | null | "Willing to refer" sub-rating (0–5) |
| `projectType` | string | null | Top-line project category, e.g. `"Custom Software Development"` |
| `projectServices` | string\[] | All services tagged on the project |
| `projectSummary` | string | null | Short project headline, when present |
| `quote` | string | null | Reviewer's pull quote |
| `feedback` | string | null | Full review text |
| `projectCost` | string | null | Reported project budget band |
| `projectDuration` | string | null | Reported project duration |

### Tips for Best Results

- **Filters first, URLs second.** The `category` + `country` dropdowns cover most lead-list use cases without ever touching a URL. Reach for `searchUrls` only when you need a Clutch sub-category page that isn't in the dropdown (e.g. `/agencies/digital-marketing`) or when you already have a list of profile slugs to enrich.
- **Match the country and category for best volume.** `category=development` + `country=us` will return the largest pool. Some country / sub-category combos have no regional page on Clutch — when that happens the actor automatically falls back to the global listing for that category.
- **Free-text search isn't supported.** Clutch's own keyword search runs entirely in JavaScript with no API behind it, so the actor uses category, country, and direct URLs instead. To target a niche, paste the closest Clutch sub-category URL into `searchUrls`.
- **Disable reviews for fast directory pulls.** Setting `includeReviews=false` skips the per-company review pages and runs roughly an order of magnitude faster — perfect when you only need names, ratings, contact info, and hourly rates.
- **Sort the dataset, don't pre-filter.** Every row carries `rating` and `reviewCount`, so quality cuts (e.g. ≥ 4-star, ≥ 50 reviews) are one click away in the Apify dataset viewer or one line of code downstream. The actor itself only filters at the URL level so you never pay for rows that get thrown away.
- **Batch large pulls by country.** For a 10,000-row run across the global all-agencies directory, splitting into per-country runs is usually faster and easier to QA than one giant run.
- **Reviews are nested, not separate rows.** One row per company, with the reviews embedded as a nested array. If you need a flat reviews table for BI tools, unpack the `reviews` array downstream.

### Good to Know

- **Industry / client-focus chart percentages may be empty.** Clutch renders these breakdowns with a JavaScript chart library, so they aren't always present in the HTML payload. Top-tier sponsored providers tend to have them populated; smaller listings often don't. Affected fields: `industries`, `serviceFocus`.
- **Reviewer email addresses are never returned.** Clutch redacts reviewer email on every review card — no scraper can surface it.
- **Anonymous reviewers stay anonymous.** Some reviewers post as "Anonymous"; the `reviewer` field will be `"Anonymous"` or `null` in those cases.
- **`maxResults: 0` is bounded by an internal safety cap of 100,000** to prevent runaway pagination on broken responses.

### Pricing

**$1.80 per 1,000 companies + $0.50 per 1,000 reviews — pay-per-event. No compute charges, no run-time surprises.**

You're billed for two things only:

- **Company row** — $1.80 per 1,000 companies returned.
- **Review** — $0.50 per 1,000 reviews captured (only when "Include Client Reviews" is enabled). Turn the toggle off and reviews are free — you pay only for company rows.

| Companies | Avg reviews per company | Estimated Cost |
|-----------|-------------------------|----------------|
| 100 | 0 (reviews off) | $0.18 |
| 1,000 | 0 (reviews off) | $1.80 |
| 1,000 | 10 | $1.80 + $5.00 = $6.80 |
| 10,000 | 10 | $18.00 + $50.00 = $68.00 |
| 100,000 | 10 | $180.00 + $500.00 = $680.00 |

If a run hits a Clutch error and returns zero rows, you pay nothing.

### Integrations

Export your data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **API** — Access results programmatically via the Apify API
- **Webhooks** — Get notified when a run completes
- **Google Sheets** — Direct spreadsheet export
- **Zapier / Make / n8n** — Automate workflows with 1,000+ app integrations
- **Slack / Email** — Notifications on new results
- **Datasets** — Download as JSON, CSV, XML, or Excel

### Legal & Ethical Use

This actor extracts publicly visible data from Clutch.co for legitimate B2B research, lead generation, market intelligence, and competitor analysis. Users are responsible for complying with applicable laws, Clutch.co's Terms of Service, and data-protection regulations (GDPR, CCPA) in their jurisdiction. Do not use the extracted data for spam, harassment, or any illegal purpose. When publishing or redistributing review content, attribute Clutch.co and respect the original reviewer's contribution.

# Actor input Schema

## `searchUrls` (type: `array`):

Paste one or more Clutch.co URLs. Accepts category listings (e.g. https://clutch.co/agencies, https://clutch.co/developers), country-scoped listings (e.g. https://clutch.co/us/agencies/creative), or individual company profiles (https://clutch.co/profile/<slug>). Filters in the URL are honored as-is.

## `category` (type: `string`):

Top-level Clutch category to search. Ignored when you provide URLs above (the URL already specifies the category).

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

Restrict results to companies in a specific country. Some country/category combinations don't have a regional listing — in that case the actor falls back to the global listing for that category.

## `includeReviews` (type: `boolean`):

Embed each company's client reviews (with quality, schedule, and cost sub-ratings) on the result row. Disable for faster, cheaper runs that return only the company-card data.

## `maxReviewsPerCompany` (type: `integer`):

Cap on the number of reviews captured per company (most recent first, ~11 reviews per page). Set to 0 to capture every available review (an internal hard cap of ~2,200 reviews per company applies to prevent runaway pagination). Ignored when 'Include Client Reviews' is off.

## `maxResults` (type: `integer`):

Hard cap on total company rows across all sources. Default 100 — increase for bigger runs, or set to 0 for no cap (an internal upper limit of 100,000 still applies to prevent infinite pagination). The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots.

## Actor input object example

```json
{
  "searchUrls": [],
  "category": "all",
  "country": "all",
  "includeReviews": true,
  "maxReviewsPerCompany": 20,
  "maxResults": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped companies with the most useful columns at a glance.

# 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 = {
    "searchUrls": [],
    "category": "all",
    "country": "all",
    "includeReviews": true,
    "maxReviewsPerCompany": 20,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/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 = {
    "searchUrls": [],
    "category": "all",
    "country": "all",
    "includeReviews": True,
    "maxReviewsPerCompany": 20,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/clutch-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 '{
  "searchUrls": [],
  "category": "all",
  "country": "all",
  "includeReviews": true,
  "maxReviewsPerCompany": 20,
  "maxResults": 100
}' |
apify call solidcode/clutch-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Clutch.co Scraper",
        "description": "[💰 $1.8 / 1K ] Extract company profiles from Clutch.co — agencies, developers, marketers, IT services. Get name, rating, reviews, location, hourly rate, employees, services, and contact info. Filter by category, country, rating, or paste Clutch.co URLs directly.",
        "version": "1.0",
        "x-build-id": "GdQL3FWb9N74Xudy6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~clutch-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-clutch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/solidcode~clutch-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-clutch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/solidcode~clutch-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-clutch-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchUrls": {
                        "title": "Clutch.co URLs",
                        "type": "array",
                        "description": "Paste one or more Clutch.co URLs. Accepts category listings (e.g. https://clutch.co/agencies, https://clutch.co/developers), country-scoped listings (e.g. https://clutch.co/us/agencies/creative), or individual company profiles (https://clutch.co/profile/<slug>). Filters in the URL are honored as-is.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "all",
                            "development",
                            "design",
                            "marketing",
                            "advertising",
                            "business-services",
                            "it-services"
                        ],
                        "type": "string",
                        "description": "Top-level Clutch category to search. Ignored when you provide URLs above (the URL already specifies the category).",
                        "default": "all"
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "all",
                            "us",
                            "uk",
                            "ca",
                            "au",
                            "in",
                            "de",
                            "fr",
                            "es",
                            "it",
                            "nl",
                            "pl",
                            "ae",
                            "sg",
                            "br",
                            "mx",
                            "ar",
                            "ph",
                            "jp",
                            "se",
                            "ie",
                            "ng",
                            "za",
                            "co"
                        ],
                        "type": "string",
                        "description": "Restrict results to companies in a specific country. Some country/category combinations don't have a regional listing — in that case the actor falls back to the global listing for that category.",
                        "default": "all"
                    },
                    "includeReviews": {
                        "title": "Include Client Reviews",
                        "type": "boolean",
                        "description": "Embed each company's client reviews (with quality, schedule, and cost sub-ratings) on the result row. Disable for faster, cheaper runs that return only the company-card data.",
                        "default": true
                    },
                    "maxReviewsPerCompany": {
                        "title": "Max Reviews Per Company",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap on the number of reviews captured per company (most recent first, ~11 reviews per page). Set to 0 to capture every available review (an internal hard cap of ~2,200 reviews per company applies to prevent runaway pagination). Ignored when 'Include Client Reviews' is off.",
                        "default": 20
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Hard cap on total company rows across all sources. Default 100 — increase for bigger runs, or set to 0 for no cap (an internal upper limit of 100,000 still applies to prevent infinite pagination). The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots.",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
