# Clutch Scraper — Agency Leads, Rates & Reviews (`tortuga/clutch-scraper`) Actor

Clutch.co agency and IT firm lists for B2B leads: company name, website, phone, HQ address, hourly rate, min project size, team size, rating, review count and service mix from any directory URL. Add full profiles (offices, industries, social links) and verified client reviews. No login.

- **URL**: https://apify.com/tortuga/clutch-scraper.md
- **Developed by:** [Trevor Ortega](https://apify.com/tortuga) (community)
- **Categories:** Lead generation, Business
- **Features:** Limited permissions
- **Stats:** 4 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 companies

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/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

## Clutch Scraper: Agency Leads, Rates & Reviews

Turn any Clutch.co directory into a B2B lead list: one row per agency or IT firm with its real website, phone, headquarters address, hourly rate, minimum project size, team size, rating, review count and service mix. Paste a category, location or filtered directory URL (for example `https://clutch.co/agencies/digital-marketing` or `https://clutch.co/us/web-developers`) and the Actor follows every page of it, 50 companies per page. Or simply type **search terms** such as `shopify developers` or `seo agency` plus a location: the Actor runs clutch.co's own search and scrapes the directory that matches best.

Turn on **Open each company profile** for the full profile (every office, industries and client sizes, founding year, social links, registered legal entity), **Include reviews** for verified client reviews with ratings, budget and project details, and **Add emails, phones and social links from company websites** to read each agency's own website for its published contact details. No login, no browser; you pay per company.

**What you get**

- **Contact:** company name, website (resolved from Clutch's tracking link), phone, headquarters street address, city and country
- **Pricing signals:** hourly rate band with parsed min / max, minimum project size
- **Size and focus:** employee band, service lines with their share of the business, Clutch-certified services
- **Reputation:** rating, review count, Premier / Verified level, badges, directory rank and sponsored flag
- **Profile** (optional): description, founding year, all offices, industries, client sizes, languages, social links, legal entity
- **Reviews** (optional): rating breakdown, project budget and length, review text, reviewer role, company, industry and size
- **Website contacts** (optional): email addresses, phone numbers and social links (LinkedIn, Facebook, Instagram, X, YouTube...) published on the agency's own website, plus its contact page

**Try it:** the input is prefilled with the Digital Marketing directory and 50 companies (one directory page). Click **Start** and the list is usually ready in under a minute, for about $0.15 plus a little proxy usage.

**Sample output** (one company, trimmed; the full field list and example follow below):

```json
{
  "name": "Ignite Visibility",
  "websiteUrl": "https://ignitevisibility.com",
  "phone": "(619) 752-1955",
  "location": { "text": "San Diego, CA", "street": "4370 La Jolla Village Drive", "postalCode": "92122", "country": "United States" },
  "rating": 4.8,
  "reviewCount": 175,
  "hourlyRate": "$100 - $149 / hr",
  "minProjectSize": "$1,000+",
  "employees": "250 - 999",
  "serviceLines": [{ "name": "Search Engine Optimization", "percent": 30, "isCertified": true }],
  "verificationLevel": "premier",
  "profileUrl": "https://clutch.co/profile/ignite-visibility"
}
```

### What data does Clutch Scraper extract?

Every company record (directory pages, charged as `result`):

| Field | Description |
|---|---|
| `name`, `slug`, `id` | Company name, Clutch slug and numeric Clutch provider id |
| `profileUrl` | Clutch profile URL |
| `websiteUrl` | The company's own website, resolved from Clutch's outbound redirect (utm tags removed) |
| `logoUrl` | Logo image |
| `rating`, `reviewCount` | Clutch rating (0-5) and number of reviews |
| `projectCount` | Projects / reviews listed on the profile |
| `hourlyRate`, `hourlyRateMin`, `hourlyRateMax` | Published hourly rate band ("$100 - $149 / hr") plus parsed numbers |
| `minProjectSize`, `minProjectSizeUsd` | Minimum project size ("$5,000+") plus parsed number |
| `employees`, `employeesMin`, `employeesMax` | Team size band ("50 - 249") plus parsed numbers |
| `location` | `{text, city, region, country, street, postalCode}` of the headquarters |
| `phone` | Business phone number shown on the listing |
| `serviceLines` | `[{name, percent, isCertified}]` service lines with share of business |
| `certifiedServices` | Service lines carrying the "Clutch Certified" mark |
| `isVerified`, `verificationLevel`, `badges` | Clutch verification (`premier` / `verified`) and badges such as "Clutch Guarantee" |
| `summary` | Clutch's summary of what clients say about the company |
| `insights` | Directory insight chips, e.g. "Reviewed 3 times in the past 6 months" |
| `rank`, `page`, `positionOnPage`, `listingType` | Position in the directory (`organic` / `sponsored`; `featured` only when enabled) |
| `sourceUrl`, `scrapedAt` | Where and when the record was scraped |
| `changeType`, `previousValues` | Only with **Only new or changed items** on: `new` or `changed`, and for changed companies the old values of the fields that changed |
| `searchTerm` | Only for companies found through **Search terms**: the term that found them |

With **Open each company profile** (charged as `detail`, one extra request per company):

| Field | Description |
|---|---|
| `tagline`, `description` | Profile tagline and full company description |
| `founded` | Founding year |
| `serviceLines`, `focus`, `industries`, `clients` | Full percentage breakdowns (focus areas are grouped, e.g. "SEO Focus") |
| `locations` | Every office: `{name, isHeadquarters, street, city, region, country, postalCode, employees, phone}` |
| `languages`, `timezones` | Languages and timezones served |
| `ratingBreakdown`, `costRating` | Quality / schedule / cost / willing-to-refer averages |
| `mostCommonProjectSize`, `pricingSummary` | Pricing snapshot from the profile |
| `certifications`, `topMentions` | "Clutch Certified" credentials and the most mentioned review themes |
| `verifiedReviewCount`, `legalEntity` | Verified reviews and the registered business entity (name, jurisdiction, formation date, status, id) |
| `socialLinks` | `{linkedin, facebook, twitter, instagram, ...}` |
| `connectionsCount` | Number of client connections on Clutch |

With **Include reviews** each company additionally carries `reviews` (up to **Max reviews per company**):

| Field | Description |
|---|---|
| `id`, `title`, `url` | Review id, headline and Clutch review link |
| `rating`, `ratings` | Overall score and `{quality, schedule, cost, willingToRefer}` |
| `quote`, `summary`, `feedback` | The pull quote, project summary and outcome summary |
| `background`, `challenge`, `solution`, `results`, `companyResponse` | Full review sections as plain text |
| `services`, `focusAreas` | Services delivered in the project |
| `projectSize`, `projectCostMin`, `projectCostMax`, `projectLength` | Budget band and duration |
| `reviewerName` | Reviewer display name exactly as Clutch shows it publicly (full name, initial + surname, first name only, or "Anonymous"); `null` if missing |
| `reviewerRole`, `reviewerCompany`, `reviewerIndustry`, `reviewerCompanySize`, `reviewerLocation` | Who hired the company (role, client company, industry, size, city) |
| `reviewType`, `isVerified`, `date` | Online review / interview, verified flag, ISO date |

Clutch has no public reviewer profile pages, so there is no reviewer URL, id or LinkedIn link to export. Avatars and reviewers' contact details are not collected.

With **Add emails, phones and social links from company websites** (charged as `website-contacts`, only when an email or phone number was found) each company additionally carries:

| Field | Description |
|---|---|
| `emails` | Email addresses published on the company's own website (its own domain first) |
| `websitePhones` | Phone numbers from the website in international format (`+16197521955`); `phone` stays the number Clutch shows |
| `websiteSocialLinks` | `{linkedin: [...], facebook: [...], instagram: [...], twitter: [...], youtube: [...], ...}` linked from the website |
| `contactPageUrl` | The website's contact page |
| `websitePagesVisited` | The pages that were read (homepage plus up to 3 such as Contact and About) |
| `websiteContactsStatus`, `websiteContactsError` | `ok`, or why the website gave nothing: `noWebsite`, `blocked`, `unreachable`, `httpError`, `blockedByRobotsTxt`, `socialProfileOnly`... |

### How to use Clutch Scraper

1. Paste one or more Clutch.co URLs into **Start URLs**: a service directory (`https://clutch.co/seo-firms`), a location directory (`https://clutch.co/uk/web-developers`), a filtered directory URL copied from your browser, or a company profile (`https://clutch.co/profile/ignite-visibility`). Or leave it empty and type **Search terms** (and optionally a **Location**) instead.
2. Set **Max companies** to cap the run and the cost.
3. Turn on **Open each company profile**, **Include reviews** and/or **Add emails, phones and social links from company websites** if you need the deep data.
4. Click **Start**. Results appear in the **Dataset** tab (the **Website contacts** view shows the contact columns); export from there or use the API.

### Input example

```json
{
  "startUrls": [
    { "url": "https://clutch.co/agencies/digital-marketing" },
    { "url": "https://clutch.co/us/web-developers?agency_size=50+-+249" }
  ],
  "maxItems": 200,
  "includeProfileDetails": true,
  "includeReviews": true,
  "maxReviewsPerCompany": 20
}
```

Search by keyword and location, with website contacts:

```json
{
  "searchTerms": ["shopify developers", "seo agency"],
  "location": "London",
  "maxItems": 100,
  "includeWebsiteContacts": true
}
```

### Output example

```json
{
  "type": "company",
  "id": "25800",
  "slug": "ignite-visibility",
  "name": "Ignite Visibility",
  "profileUrl": "https://clutch.co/profile/ignite-visibility",
  "websiteUrl": "https://ignitevisibility.com/",
  "rating": 4.8,
  "reviewCount": 175,
  "hourlyRate": "$100 - $149 / hr",
  "hourlyRateMin": 100,
  "hourlyRateMax": 149,
  "minProjectSize": "$1,000+",
  "minProjectSizeUsd": 1000,
  "employees": "250 - 999",
  "location": { "text": "San Diego, CA", "city": "San Diego", "region": "CA", "country": "US", "street": "4250 Executive Square Suite #100", "postalCode": "92037" },
  "phone": "6197521955",
  "serviceLines": [
    { "name": "Search Engine Optimization", "percent": 30, "isCertified": true },
    { "name": "Advertising", "percent": 10, "isCertified": false }
  ],
  "isVerified": true,
  "verificationLevel": "premier",
  "badges": ["Premier Verified"],
  "summary": "Ignite Visibility is a digital marketing agency offering services in SEO, social media, paid media ...",
  "listingType": "sponsored",
  "rank": 1,
  "sourceUrl": "https://clutch.co/agencies/digital-marketing",
  "scrapedAt": "2026-09-07T12:00:00Z",
  "founded": 2013,
  "languages": ["Mandarin", "English", "Spanish"],
  "reviews": [
    {
      "id": "478317",
      "title": "PR, SEO, Content & Email Marketing for Recruiting Agency",
      "rating": 5.0,
      "ratings": { "quality": 5.0, "schedule": 5.0, "cost": 4.0, "willingToRefer": 5.0 },
      "projectSize": null,
      "projectLength": "Aug. 2025 - Aug. 2026",
      "reviewerName": "Kelly Clark",
      "reviewerRole": "Sr Mgr for Digital Marketing",
      "reviewerCompany": "Spherion Staffing & Recruiting",
      "reviewerIndustry": "Business services",
      "reviewerCompanySize": "51-200 Employees",
      "isVerified": true,
      "date": "2026-08-06"
    }
  ]
}
```

### How to scrape a Clutch.co category or location

Any directory URL works: service categories (`/agencies/digital-marketing`, `/developers`, `/it-services/msp`), country or city directories (`/us/web-developers`, `/gb/seo-firms`, `/web-developers/new-york`) and their filtered variants. Use the filters on clutch.co (budget, hourly rate, team size, location, reviews) and paste the resulting URL; the Actor keeps the query string and follows the site's own pagination, so one run can export a full category. Set **Max companies** to stop early.

### How to search Clutch by keyword and location

Fill in **Search terms** with the words you would type into clutch.co's search box: a service (`shopify developers`, `mobile app development`, `seo agency`), optionally with a city or country, or put the place into **Location** (`London`, `New York`, `Germany`) to apply it to every term. The Actor runs Clutch's own search and picks the directory whose title matches the most words (the largest one on a tie), so `seo` + `London` scrapes "Top SEO Agencies in London" with all its pages, exactly as if you had pasted that directory URL. If Clutch has no directory for the location, the run says so instead of falling back to a worldwide list.

Set **Directories per search term** to 2 or more to cover several matching directories (`shopify` matches both Shopify developers and Shopify SEO agencies); companies are saved once. Turn on **Add companies whose name matches** to also get the companies whose name contains the term (up to 4 per term, read from their profile pages). A company name such as `Ignite Visibility` has no directory, so it returns that company's profile directly: an easy way to look up a list of agencies by name.

### How to get a company's website and phone from Clutch

Clutch wraps every outbound link in a tracking redirect. The Actor decodes that redirect on the directory page itself, so `websiteUrl` is the real destination without visiting the vendor site, with `utm_*` parameters stripped. `phone` is the business number Clutch shows on the listing.

### How to get agency emails from Clutch

Clutch does not publish email addresses, so turn on **Add emails, phones and social links from company websites**. For every company the Actor opens its own website (the homepage, even when Clutch links a landing page, plus up to 3 pages such as Contact, About or Team, respecting robots.txt) and saves the email addresses, phone numbers and social profile links those pages publish, plus the contact page URL. Nothing is guessed or built from names and nothing is verified: you get exactly what the company shows. In our tests 8 to 10 of 10 agencies had an email address. You pay the `website-contacts` event only for companies where an email or phone number was found. Websites are fetched through Apify's datacenter proxy, not the residential proxy Clutch needs, so this adds little proxy usage.

### How to scrape Clutch reviews

Turn on **Include reviews** and set **Max reviews per company**. The profile page carries the first 11 reviews; each further 10 reviews cost one more page request. Reviews come nested inside the company record with rating breakdown, project budget and length, review text sections and the reviewer's name as shown on Clutch, role, industry and company size.

To get only recent reviews, set **Only reviews newer than** to a date (`2026-09-01`) or a period (`30 days`): older reviews are left out and the Actor stops paging a profile's reviews as soon as it reaches them, so it is cheaper too.

### Monitor changes on a schedule

Turn on **Only new or changed items** and the Actor remembers what earlier runs of the same input returned: each run outputs only companies that are new in the watched directory window or whose hourly rate, minimum project size, rating or review count changed. Unchanged companies are dropped on the directory page, before any profile page is opened, so they are not charged (profile start URLs are compared after their page is read and are not charged when unchanged). **Max companies** becomes the window checked on every run, e.g. the first 50 companies of a directory. Save the input as a task and add a Schedule to it in Apify Console (Schedules → Create new, for example daily). Every output company carries `changeType` (`new` or `changed`); changed ones carry `previousValues`, e.g. `{"reviewCount": 175}` for a company that now has 176 reviews. Add **Only reviews newer than** (`7 days`) to get just the new reviews of those companies. Use **Monitoring key** to keep several schedules on the same input separate.

### Does it work without login or proxies?

Yes. Clutch pages are public and server-rendered, so no login is needed. Apify Proxy is on by default for reliability on long runs; you can turn it off for small runs. Company websites (website contacts) go through Apify's datacenter proxy, or no proxy when you turn the proxy off.

### Pricing

Pay per company: a `result` event for every company saved from a directory page, plus a `detail` event for every company whose profile page was opened (which includes the nested reviews), plus a `website-contacts` event for every company whose own website showed an email address or phone number (only with that option on). Searching is free: you pay for the companies it finds. No subscription; Apify's free plan is enough to try it.

### Integrations and API

Use the run in Zapier, Make, n8n, Google Sheets, or call it from Python/Node with the Apify client. See the **API** tab for ready-made snippets.

### Is it legal to scrape Clutch.co?

This Actor collects only data that Clutch shows publicly without login: company profiles, rates, ratings and published reviews, including the reviewer's display name, job title and company as shown on the review (some reviewers appear as "Anonymous" or with an initial only, and that is kept as is). Reviewer names are personal data under GDPR and similar laws, so you need a lawful basis to store and use them. It does not collect avatars or reviewers' contact details. With website contacts on, it also saves the business contact details each company publishes on its own website; some of these can be named staff addresses, which are personal data too, and email marketing rules (GDPR, ePrivacy/PECR, CAN-SPAM) apply to how you contact them. You are responsible for how you use the data and for complying with Clutch's terms, the websites' terms and applicable law, including GDPR/CCPA where relevant.

### Support

Found a bug or need a field added? Open an issue in the **Issues** tab; it is usually answered within a day.

### Related scrapers

- [GoodFirms Scraper](https://apify.com/tortuga/goodfirms-scraper): Agencies, Rates & Reviews
- [Trustpilot Scraper](https://apify.com/tortuga/trustpilot-scraper): Reviews, TrustScore & Companies
- [Shopify App Store Scraper](https://apify.com/tortuga/shopify-app-store-scraper): Apps, Pricing, Reviews & Developers
- [Product Hunt Scraper](https://apify.com/tortuga/producthunt-scraper): Launches, Upvotes & Makers
- [Capterra Reviews Scraper](https://apify.com/tortuga/capterra-scraper): Software Reviews & Ratings

### Found it useful?

A ★ review on this Actor's Apify Store page helps other users find it and tells us what to improve. Issues and feature requests are welcome in the Actor's **Issues** tab.

# Actor input Schema

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

Clutch.co pages to scrape: directory pages (https://clutch.co/agencies/digital-marketing, https://clutch.co/us/web-developers, https://clutch.co/it-services/msp), filtered directory URLs copied from the site (any ?filters), or company profile pages (https://clutch.co/profile/ignite-visibility). Directory pages are paginated automatically (50 companies per page). Optional when Search terms are given.

## `searchTerms` (type: `array`):

Keywords as you would type them into clutch.co's search box, for example 'shopify developers', 'seo agency' or 'mobile app development'. Each term is matched to the Clutch directory that fits it best (the one whose title matches the most words, the largest one on a tie, e.g. 'seo london' gives Top SEO Agencies in London) and its companies are saved exactly like a directory URL. A company name such as 'Ignite Visibility' finds that company. Use instead of or together with Start URLs.

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

Optional city, state or country added to every search term, for example 'London', 'New York' or 'Germany'. Only Clutch directories for that location are used ('seo' + 'London' gives Top SEO Agencies in London); if Clutch has none, the run says so in its log. Leave empty to search worldwide.

## `directoriesPerSearch` (type: `integer`):

How many matching Clutch directories to save per search term, best match first (1 when empty). 'shopify' matches both Top Shopify Designers & Developers and Top Shopify SEO Agencies; 2 saves both. Companies listed in several directories are saved once.

## `includeNameMatches` (type: `boolean`):

Also save the companies whose name contains a search term (up to 4 per term, Clutch's 'Profiles' search results). They are read from their profile page, like profile URLs, so each one also counts as a Profile details event. When Clutch finds no directory for a term (e.g. a company name), these name matches are used automatically.

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

Stop after this many companies (across all start URLs). Keeps cost predictable.

## `includeProfileDetails` (type: `boolean`):

Fetch every company's profile page for the full picture: description, all service lines with percentages, focus areas, industries, client sizes, all office locations, languages, timezones, founding year, rating breakdown, verified-business data, social links. One extra request per company (charged as a `detail` event).

## `includeWebsiteContacts` (type: `boolean`):

Visit each company's own website (its homepage plus up to 3 pages such as Contact and About) and add the email addresses, phone numbers and social profile links published there, plus the contact page URL. Nothing is guessed or built from names: only what the company's own pages show. Charged as one Website contacts event per company where at least one email or phone number was found; companies without one are free. Websites are fetched through Apify's datacenter proxy (or without proxy when the proxy is off), not the residential proxy used for Clutch.

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

Nest verified client reviews inside each company (rating, title, summary, project size and length, reviewer name as shown on Clutch, role, industry and company size, date). Implies opening the profile; reviews are included in the `detail` price.

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

Upper limit of nested reviews per company when Include reviews is on. The profile page carries ~11 reviews; every further 10 reviews cost one more page request.

## `reviewsNewerThan` (type: `string`):

Only reviews newer than: a date (YYYY-MM-DD) or a period such as '7 days' or '24 hours'. Nested reviews older than this are left out and review paging stops once a page ends with an older review (Clutch lists reviews newest first). Turns on Include reviews. Clutch shows review dates by day, so the whole cutoff day is included.

## `includeFeatured` (type: `boolean`):

Also save the 'Featured' paid placements shown at the top of every directory page (listingType = featured, no rank). Off by default because they repeat on every page and may sit outside the directory's location.

## `onlyNewOrChanged` (type: `boolean`):

Remember what earlier runs of this search returned and output only new items or items whose price/status changed. Use with a Schedule; unchanged items are not charged. Compared: hourly rate, minimum project size, rating and review count (a new review raises the count, so combine with 'Only reviews newer than' to get just the new reviews). With this on, Max companies is the number of companies checked each run (the watched window), and profile pages are opened only for new or changed companies.

## `monitoringKey` (type: `string`):

Name for this watch, so several schedules on the same search stay separate; defaults to a key derived from the search input.

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

Clutch now blocks datacenter IPs, so residential Apify Proxy is the default. Proxy usage is billed to your account. Company websites (Website contacts option) are fetched through Apify's datacenter proxy instead, never residential.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://clutch.co/agencies/digital-marketing"
    }
  ],
  "maxItems": 50,
  "includeProfileDetails": false,
  "includeReviews": false,
  "maxReviewsPerCompany": 20,
  "includeFeatured": false,
  "onlyNewOrChanged": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (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": [
        {
            "url": "https://clutch.co/agencies/digital-marketing"
        }
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("tortuga/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": [{ "url": "https://clutch.co/agencies/digital-marketing" }],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

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

```

## MCP server setup

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