Clutch Scraper | Agency Directory Export
Pricing
from $0.08 / 1,000 companies
Clutch Scraper | Agency Directory Export
Export Clutch agency listings with websites, ratings, review counts, locations, rates and service mix. Filter directories and identify sponsored placements.
Pricing
from $0.08 / 1,000 companies
Rating
0.0
(0)
Developer
Eli J
Maintained by CommunityActor stats
1
Bookmarked
29
Total users
7
Monthly active users
6 hours ago
Last modified
Categories
Share
What you can export
Use this Clutch agency directory scraper to build a shortlist of B2B service providers. Choose a directory category or supply Clutch URLs, then export company names, websites, ratings, review counts, locations, published rates and service mix.
Directory filters help narrow the selection. Sponsored placements retain an isSponsored flag and can ignore filters; inspect that flag and the run warnings before treating a shortlist as uniformly filtered.
How to export Clutch agency listings
- Pick a
category, or paste Clutch directory URLs intostartUrls. - Optionally narrow the directory with
location,sortBy,minReviews,maxBudget,hourlyRate,companySize,serviceLines,industriesandverifiedOnly. - Set
maxItemsandmaxRunSeconds, and leaveproxyConfigurationenabled. - Start the run, then export the dataset as JSON, CSV or Excel.
- Check the run's
ERRORSrecord for pages that could not be read, and the log for location lookup warnings.
You can also start from a published task. Each one runs the saved input shown for it under Input:
- Find UK digital marketing agencies with 10 or more reviews: the digital marketing agencies directory, filtered to the United Kingdom and to companies with at least 10 reviews.
- Export digital marketing agencies from Clutch: digital marketing agency listings from Clutch without a country filter.
Pricing
How much does it cost to export Clutch agency listings?
This Actor charges two events. Company is one agency listing written to the dataset. Actor Start is charged when the Actor starts running; the number of events charged depends on the run's Actor memory (one event per GB, minimum one event). The unit prices you pay depend on your subscription plan; see the rates on the current Pricing tab.
Result rows and an automatic, memory-scaled Actor Start event are charged
separately. The run's own compute and its result writes are covered by the
event prices, so you are not billed twice for compute. Storage retention and
reads of the dataset after the run are billed according to your plan.
A nonzero maxItems caps how many result rows a run writes, and so how many are
charged. Filters change the result charge only through the rows they return,
sponsored rows can ignore filters, and the Actor Start event is charged either
way. There is
no result charge without result rows; pages that fail are never billed as rows.
The automatic Actor Start fee still applies; an empty or failed run is not
promised to be free.
minProjectSize, hourlyRate and their USD bound fields are Clutch's published
data about each company, not charges.
Input
Nothing is required. With empty input the Actor scrapes the digital marketing directory and stops at 100 companies.
| Field | Type | Default | Description |
|---|---|---|---|
category | string | "agencies/digital-marketing" | The Clutch directory path. Pick from the list or type another, e.g. seo-firms, web-designers, developers, it-services. |
startUrls | array | [] | Paste Clutch directory URLs instead. Filters already in the URL are kept and ?page= sets where the walk starts. Overrides category. |
location | string | "" | Country, state or city (United Kingdom, New York, Berlin). Resolved through Clutch's own location lookup; an unmatched name warns and continues unfiltered. |
sortBy | string | "" | Sponsorship (Clutch's default), ClutchRank, ReviewRating, NumberOfReviews, Verification, CompanyName. |
minReviews | string | "0" | Keep companies with at least 1 / 3 / 5 / 10 / 15 / 20 reviews. |
maxBudget | string | "0" | Keep companies taking projects under $5k … $250k. |
hourlyRate | array | [] | One or more rate bands, from 0-25 to 300. |
companySize | array | [] | One or more headcount bands, Freelancer through 10,000+. |
serviceLines | array | [] | Clutch service slugs, e.g. field_pp_sl_seo. Free-form — see below. |
industries | array | [] | Clutch industry slugs, e.g. field_pp_if_ecommerce. Free-form — see below. |
verifiedOnly | boolean | false | Keep only Clutch-verified companies. |
maxItems | integer | 100 | Hard cap on result rows. 0 means no limit. |
maxRunSeconds | integer | 900 | Stop requesting new pages after this long. 0 disables. |
maxRetriesPerRequest | integer | 20 | How hard to retry a refused page. |
rotateAfterRequests | integer | 1 | Retire each proxy identity after N requests. 0 disables. |
proxyConfiguration | object | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} | Recommended to leave enabled. |
Saved inputs of the published tasks
Each block below is a published task's saved input, exactly as stored.
Find UK digital marketing agencies with 10 or more reviews
{"category": "agencies/digital-marketing","location": "United Kingdom","minReviews": "10","maxItems": 50,"startUrls": [],"sortBy": "","maxBudget": "0","hourlyRate": [],"companySize": [],"serviceLines": [],"industries": [],"verifiedOnly": false,"maxRunSeconds": 900,"maxRetriesPerRequest": 20,"rotateAfterRequests": 1,"proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]}}
Export digital marketing agencies from Clutch
{"maxItems": 20,"proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]},"category": "agencies/digital-marketing","startUrls": [],"location": "","sortBy": "","minReviews": "0","maxBudget": "0","hourlyRate": [],"companySize": [],"serviceLines": [],"industries": [],"verifiedOnly": false,"maxRunSeconds": 900,"maxRetriesPerRequest": 20,"rotateAfterRequests": 1}
Automatic proxy switch
The Actor switches once to RESIDENTIAL when the first 4 attempts at a
listing request all return HTTP 403 and the proxy configuration has no
RESIDENTIAL group. It then retries that page on RESIDENTIAL with the full
maxRetriesPerRequest budget and continues the walk. If
maxRetriesPerRequest is 4 or less, every attempt must return HTTP 403.
This applies to the page read for a location lookup and to any page of
any start URL, including when no proxy is configured or useApifyProxy is
false. After switching, the run keeps using RESIDENTIAL with the configured
rotation; a page that still fails follows the usual error handling.
In 12 test runs on Apify datacenter proxies in October 2026, 10 switched. The median time to the switch was 7.75 seconds after the walk started.
The Actor never switches when your input names RESIDENTIAL (alone or with
other groups) or supplies your own proxyUrls. A transport error, a mix of
HTTP statuses or a page that loads but is not a directory listing does not
trigger a switch.
A switch appears once as a warning in the log and stays visible in the final
run status message. Only a switched run writes a SUMMARY key-value record.
It holds proxySwitched: true, from (the original groups, automatic groups
or no proxy), to: "RESIDENTIAL", reason and attemptCount (the number of
HTTP 403 attempts). When a request after the first triggers the switch, the
warning, final status and reason name the page number and listing URL.
SUMMARY then also includes listingPage and sourceUrl. Proxy URLs and
passwords are never included.
Finding service and industry slugs
serviceLines and industries take Clutch's own slugs, and each directory
publishes its own list — a slug that exists under digital marketing may not
exist under developers. Rather than ship a fixed dropdown that would block
valid values, these fields are free text. The quickest way to get one: tick the
filter on Clutch in your browser and read it out of the resulting URL, for
example ?related_services=field_pp_sl_seo.
The same escape hatch works for any filter this Actor does not expose as a
field. Filter the directory in your browser, paste the resulting URL into
startUrls, and those parameters are sent as-is.
Output
The field definitions below describe the deployed output contract. Actual values depend on the source.
A page that cannot be read is written to the run's ERRORS key-value record
and that directory's walk stops at that page; the other directories you asked
for still land. A failed location lookup is logged, the walk continues
unfiltered, and it is not written to ERRORS. Failures are never dataset rows.
What you get
One flat row per company:
| Field | What it is |
|---|---|
name | Company name as listed |
profileUrl | Its Clutch profile |
website | The company's own site, unwrapped from Clutch's click-tracking redirect |
rating / ratingScale | Clutch's aggregate score, on a 0–5 scale |
reviewCount | Number of Clutch reviews behind that score |
minProjectSize / minProjectSizeUsd | Smallest project taken, as text and as a number |
hourlyRate / hourlyRateMinUsd / hourlyRateMaxUsd | Rate band, as text and as bounds |
employees / employeesMin / employeesMax | Headcount band, as text and as bounds |
location | The location Clutch prints on the listing |
addressCity, addressState, addressCountry, addressPostalCode, addressStreet, phone | The postal address published in the listing's structured data |
services | Service mix, e.g. [{"service": "Search Engine Optimization", "percent": 40}, …] |
listingType / isSponsored | Whether the row is a paid placement or a ranked directory listing |
verificationBadge | Premier Verified, Verified, or empty |
summary | Clutch's review-derived summary of the company |
clutchId, listingPage, sourceUrl, scrapedAt | Provenance: which listing, which page, and when (ISO-8601 UTC) |
Related Actors
| Actor | Research fit | What it exports |
|---|---|---|
| Kalshi Weather Markets | Price History API | Weather-market price history | Hourly or daily candles for named Kalshi weather markets: prices, bids, asks, volume and open interest as exact decimal strings |
| UFCStats Scraper | Fight & Round Statistics | UFC fight statistics | UFCStats fight and round statistics as flat rows with fighter IDs, event dates and locations |
| Tennis Abstract Scraper | Match History API | Tennis match statistics | ATP and WTA player match histories from Tennis Abstract: scores, opponents, surfaces and available serve and return statistics |
| Google Trends Scraper | Keyword Data API | Search-interest research | Google Trends interest over time, interest by region and related or rising queries, plus the Trending Now board by country |
| Google Ads Transparency Scraper & Archive | Ad-creative research | Advertiser ad records from Google's Ads Transparency Center: creative format, available images, first and last shown dates and source links |
FAQ and support
How do I find UK digital marketing agencies with 10 or more reviews?
Keep category on the digital marketing directory, set location to
United Kingdom and minReviews to 10. The location is resolved through
Clutch's own location lookup; if the lookup fails or finds no match, the run logs
a warning and continues unfiltered, and that is not written to ERRORS.
Sponsored rows can ignore the filters you set, so filter on isSponsored if you
only want ranked results. location follows your filter to the matching branch
office, while the address* fields are the company's registered address (see
Notes and limits). The
Find UK digital marketing agencies with 10 or more reviews
task runs this search with the saved input shown under Input.
How do I export a Clutch directory to CSV or Excel?
Pick a category, or paste Clutch directory URLs into startUrls; pasted URLs
override category and keep the filters already in the URL. With empty input the
Actor scrapes the digital marketing directory and stops at 100 companies. To go
past that, set maxItems to 0 (no limit) and choose maxRunSeconds
deliberately. When the run ends, export the dataset as JSON, CSV or Excel. The
Export digital marketing agencies from Clutch
task runs the saved input shown under Input.
Can I use it for agency research and lead generation?
Each row carries the fields listed under What you get. website is only present
when Clutch shows a "Visit Website" button, and where Clutch says Undisclosed
for minProjectSize or hourlyRate, the field is empty rather than guessed. This
Actor collects public business listing information only.
Why does the same company appear more than once?
Within one directory walk, rows are keyed on the Clutch company id, so a repeated page never becomes a repeated row. Across different directories you asked for, a company listed in both is returned once for each directory.
Why did I get fewer companies than expected?
maxItemscaps result rows; it defaults to 100.- The
maxRunSecondsrun budget stops requesting new pages once it is reached. - A maximum cost for the run, if you set one, does the same: once it is reached the run stops requesting pages and ends normally, and the log says how many companies were delivered.
- Filters that match nothing finish with guidance in the log instead of rows.
- A page that still cannot be read after its retries ends that directory's walk
at that page and is written to the run's
ERRORSrecord. When the run still delivers companies, its final status message says how many pages or URLs could not be read. - If every page request fails and no row is written, the run ends as failed.
- Per-page counts in the log can be under 50; see Notes and limits.
Notes and limits
Things worth knowing before you rely on a column:
- Sponsored rows come first and can ignore your filters. Clutch places paid
listings above the ranked ones; on a location-filtered run a sponsor from
another country can still appear. Filter on
isSponsoredif you only want ranked results, or sort by something other thanSponsorship. locationand theaddress*fields can disagree, on purpose.locationis what Clutch prints on the card and follows your location filter to the matching branch office; theaddress*fields come from the listing's structured data and are the company's registered address. A London listing whose structured address is New York is a multi-office company, not an error. Uselocationfor "where this listing is",address*for "where the company is registered".addressCountryis Clutch's code, not always ISO 3166. The UK's constituent countries come back asSQ(Scotland),WL(Wales) andND(Northern Ireland) rather thanGB. Normalise before joining on it.websiteis only present when Clutch shows a "Visit Website" button, which is not every listing. The URL is the company's own, unwrapped from Clutch's redirect, and keeps the UTM parameters Clutch appends.ratingis Clutch's aggregate on a 0–5 scale (ratingScalesays so on every row) and moves as reviews land.minProjectSizeandhourlyRateare the bands Clutch publishes in USD; where Clutch says Undisclosed, the field is empty rather than guessed.- Per-page counts in the log can be under 50. The final page of a filtered result set is usually partial, and sponsored placements share page one with ranked listings, so a page can legitimately report fewer new companies than it listed.
- Set a deliberate cap.
maxItemsdefaults to 100 and a run time budget is on by default. Set both for the output you need. - This Actor collects public business listing information only.
Support
Found a bug or need a field that isn't here? Open an issue on the Actor's Issues tab and I'll take a look.