Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Clutch Agencies Scraper icon

Clutch Agencies Scraper

Scrape agencies from any public Clutch directory page. Get ratings, reviews, services, city, hourly rates, team size and profile links.

147 runs on Apify $0.0008 per agency profile ($0.8 / 1,000)
Run this in the cloudRun on Apify →

Developer & Research Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust directoryUrls, maxAgenciesPerDirectory, enableResidentialFallback (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.0008 per agency profile = $0.8 per 1,000

You are charged forWhenPrice
Agency profileCharged once per agency profile returned. Sample rows and failure diagnostics are never charged.$0.0008

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-08-22, and they are what you are actually charged.

Inputs

FieldWhat it doesType
directoryUrlsPublic Clutch directory URLs such as https://clutch.co/ca/web-developers/toronto. Empty input returns one uncharged sample row.array
maxAgenciesPerDirectoryMaximum public agency rows to return from each directory URL. The limit keeps compute and optional proxy exposure bounded.integer
enableResidentialFallbackAfter a direct 403 or rate limit, retry at most one directory through a proxy. Metered groups are not offered by this actor.boolean

What you get

A structured dataset — each result includes fields like:

namelocationratingreviewCountminimumProjectSizehourlyRateteamSizewebsiteprofileUrldirectoryUrl

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in Developer & Research Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

GitHub Scraper iconDeveloper & Research Tools

GitHub Scraper

Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.

18 use cases

Stack Overflow / Stack Exchange Scraper iconDeveloper & Research Tools

Stack Overflow / Stack Exchange Scraper

Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.

2 use cases

Package Registry Scraper (npm + PyPI) iconDeveloper & Research Tools

Package Registry Scraper (npm + PyPI)

Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.

2 use cases

arXiv Scraper iconDeveloper & Research Tools

arXiv Scraper

Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.

2 use cases

OpenAlex Scholarly Works Scraper iconDeveloper & Research Tools

OpenAlex Scholarly Works Scraper

Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.

2 use cases

Crossref Scholarly Works Scraper iconDeveloper & Research Tools

Crossref Scholarly Works Scraper

Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.

2 use cases

See all Developer & Research Tools →

Clutch Agencies Scraper: agency leads with rates, team size and reviews

Paste a public Clutch directory URL and the agencies listed on it come back as rows. Name, profile link, website, where they work, hourly rate band, the smallest project they take, team size, star rating, review count and the service lines they advertise.

It reads the first page of each directory URL and stops there. A category with hundreds of agencies gives you that first page, not the whole category, so plan on one URL per page you actually want.

InputPublic Clutch directory URLs, up to 10 per run
OutputOne row per agency
Ceiling100 agencies per directory URL, first page only
Account neededNone
Price$0.80 per 1,000 agencies, flat on every plan

🔍 What Clutch Agencies Scraper does

You give it directory pages you copied out of Clutch, like the web developers in Toronto or the SEO firms in Berlin. It reads the cards on that page and turns each one into a row with the numbers buyers actually compare on: the hourly rate band, the minimum project size, how big the team is, the rating and how many reviews sit behind it.

Up to 10 directory URLs per run, up to 100 agencies from each. Anything Clutch does not print on the card comes back as null rather than a guess, so a missing website is a missing website and not an empty string you have to second-guess later.

It stays on the directory page. It does not open each agency's profile, so there are no contact details and no review text in the output.

📥 What you give it

{
  "directoryUrls": ["https://clutch.co/ca/web-developers/toronto"],
  "maxAgenciesPerDirectory": 25
}
FieldDefaultWhat it is
directoryUrlsemptyPublic Clutch directory URLs, copied from the address bar. Up to 10. The input box starts with a Toronto example in it, which is a suggestion and not a default.
maxAgenciesPerDirectory25How many agencies to take from each URL. Up to 100.
enableResidentialFallbackfalseOff. When a directory page turns down the first request, this allows one more attempt, once per run, using the network settings below. The field name is historical and switches nothing metered on.
proxyConfiguration{"useApifyProxy": true}Optional, and only used by that one retry. Your own servers are used exactly as given.

Run it with directoryUrls empty and you get a single labelled sample row back, so you can see the output shape before committing to a real list.

📤 What you get back

A real row from a recent run:

{
  "ok": true,
  "name": "True Market",
  "profileUrl": "https://clutch.co/profile/true-market",
  "website": null,
  "rating": 4.9,
  "reviewCount": 26,
  "minimumProjectSize": "$5,000+",
  "hourlyRate": "$100 - $149 / hr",
  "teamSize": "10 - 49",
  "location": "Serves Toronto, Canada",
  "services": ["Web Development", "Web Design", "Branding", "Graphic Design", "E-Commerce Development"],
  "directoryUrl": "https://clutch.co/ca/web-developers/toronto",
  "scrapedAt": "2026-09-06T17:08:53.875Z",
  "transport": "direct_http"
}
FieldWhat it is
profileUrlThe agency's Clutch profile, with tracking query strings stripped off. Use it as your dedupe key.
websiteThe agency's own site, unwrapped from Clutch's redirect link. null when the card does not show one.
hourlyRate, minimumProjectSize, teamSizeKept as the bands Clutch prints, text like $100 - $149 / hr, not parsed into numbers.
locationClutch's own wording, which is often "Serves <city>" rather than a head-office address.
servicesThe service lines on the card, as an array.
directoryUrlWhich of your URLs this row came from, so you can join the results back to your list.
transportAn internal note about how the page was read. Nothing you need to act on.

🧾 Reading the output

Three kinds of row can land in your dataset.

RowHow to spot itCharged
An agencyok: true and a nameyes
The sample row_sample: trueno
A diagnosticok: false and _diagnostic: trueno

Filter on _sample and _diagnostic being absent. The sample row also carries ok: true, so a filter on that alone keeps it.

A diagnostic row carries a status telling you what happened to that one URL:

statusWhat it means
BAD_INPUTThat URL is not a Clutch directory page. The other URLs still ran.
NO_RESULTSThe page answered but no agency cards were found on it. The row carries a bodySnippet so you can see what came back instead.
BLOCKEDClutch turned the request down. Try again later, or a different directory page.
RATE_LIMITEDToo many requests too quickly. Give it a few minutes.
NETWORKClutch was unreachable or answered badly. Re-run it.

One bad URL never stops the others, and a diagnostic row never fails the run.

▶️ How to run it

1. Open Clutch Agencies Scraper and click Try for free. 2. Paste your directory pages into Clutch directory URLs, one per line. 3. Set Maximum agencies per directory. Start at 25 to see the shape of the output. 4. Click Start. 5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost?

$0.80 per 1,000 agencies. Flat on every Apify plan, no volume tiers.

You pay per agency row. The sample row is not charged, diagnostic rows are not charged, and the same agency appearing twice on a page is dropped before it becomes a row.

💡 What people use it for

  • Building an outreach list of agencies in one city and one service line, with the rate band already

attached so you can drop the ones out of budget before you write anything.

  • Comparing what the same kind of agency charges in three different cities, by running three

directory URLs in one go.

  • Shortlisting by evidence rather than by page position: rating is easy to look good on when only

four people reviewed you, and reviewCount is right there beside it.

  • Keeping a monthly snapshot of a category so you can see which agencies appeared, moved or vanished.

🚧 What it does not do

  • First page only. It does not follow Clutch's pagination, so 100 is a cap on what page one can

give you, not a promise of 100 rows.

  • Directory cards only. No agency profile pages, which means no contact details, no email, no

phone and no review text.

  • More than 10 URLs and the rest are dropped, without a warning row. Split a longer list across

runs.

  • The rate and size fields stay as text bands, because that is how Clutch publishes them. Parsing

$100 - $149 / hr into numbers is your side.

  • Some cards carry no location, and those come back null. Clutch's own layout decides this, not

the actor.

  • No review text, no case studies, no portfolio items.
  • Rows are a snapshot. Ratings and review counts move, and scrapedAt records when the page was

read.

🧭 Which lead scraper do you need?

If you wantUse
Agencies from a Clutch directory pageThis one
People by job title, company or locationLinkedIn Profile Search Scraper
Everyone who works at one companyLinkedIn Company Employees Scraper
Local businesses with addresses and phone numbersYandex Maps Scraper
What clients are saying about a placeGoogle Maps Reviews Scraper

❓ Questions people ask

Do I need a Clutch account? No. Everything here comes off public directory pages.

Can I get the agency's email? Not from this actor. It stays on the directory page, and emails live behind the profile.

Why did I get fewer rows than my maximum? The first page of that directory had fewer cards than you asked for. You are charged for what arrived.

Can I run a whole category? Not in one go. Clutch paginates and this reads page one, so you would need the pages you want as separate URLs if Clutch gives them distinct addresses.

Can I schedule it? Yes, like any Apify actor. profileUrl is stable, so comparing this month's run against last month's is a straight join.

Is scraping Clutch legal? These are public directory listings. They still describe real businesses and sometimes real people, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the directory URL and the run ID. If you got a diagnostic row, its status and bodySnippet usually explain it on their own.