Clutch Scraper | Agency Directory Export avatar

Clutch Scraper | Agency Directory Export

Pricing

from $0.08 / 1,000 companies

Go to Apify Store
Clutch Scraper | Agency Directory Export

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

Eli J

Maintained by Community

Actor stats

1

Bookmarked

29

Total users

7

Monthly active users

6 hours ago

Last modified

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

  1. Pick a category, or paste Clutch directory URLs into startUrls.
  2. Optionally narrow the directory with location, sortBy, minReviews, maxBudget, hourlyRate, companySize, serviceLines, industries and verifiedOnly.
  3. Set maxItems and maxRunSeconds, and leave proxyConfiguration enabled.
  4. Start the run, then export the dataset as JSON, CSV or Excel.
  5. Check the run's ERRORS record 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:

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.

FieldTypeDefaultDescription
categorystring"agencies/digital-marketing"The Clutch directory path. Pick from the list or type another, e.g. seo-firms, web-designers, developers, it-services.
startUrlsarray[]Paste Clutch directory URLs instead. Filters already in the URL are kept and ?page= sets where the walk starts. Overrides category.
locationstring""Country, state or city (United Kingdom, New York, Berlin). Resolved through Clutch's own location lookup; an unmatched name warns and continues unfiltered.
sortBystring""Sponsorship (Clutch's default), ClutchRank, ReviewRating, NumberOfReviews, Verification, CompanyName.
minReviewsstring"0"Keep companies with at least 1 / 3 / 5 / 10 / 15 / 20 reviews.
maxBudgetstring"0"Keep companies taking projects under $5k … $250k.
hourlyRatearray[]One or more rate bands, from 0-25 to 300.
companySizearray[]One or more headcount bands, Freelancer through 10,000+.
serviceLinesarray[]Clutch service slugs, e.g. field_pp_sl_seo. Free-form — see below.
industriesarray[]Clutch industry slugs, e.g. field_pp_if_ecommerce. Free-form — see below.
verifiedOnlybooleanfalseKeep only Clutch-verified companies.
maxItemsinteger100Hard cap on result rows. 0 means no limit.
maxRunSecondsinteger900Stop requesting new pages after this long. 0 disables.
maxRetriesPerRequestinteger20How hard to retry a refused page.
rotateAfterRequestsinteger1Retire each proxy identity after N requests. 0 disables.
proxyConfigurationobject{"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:

FieldWhat it is
nameCompany name as listed
profileUrlIts Clutch profile
websiteThe company's own site, unwrapped from Clutch's click-tracking redirect
rating / ratingScaleClutch's aggregate score, on a 0–5 scale
reviewCountNumber of Clutch reviews behind that score
minProjectSize / minProjectSizeUsdSmallest project taken, as text and as a number
hourlyRate / hourlyRateMinUsd / hourlyRateMaxUsdRate band, as text and as bounds
employees / employeesMin / employeesMaxHeadcount band, as text and as bounds
locationThe location Clutch prints on the listing
addressCity, addressState, addressCountry, addressPostalCode, addressStreet, phoneThe postal address published in the listing's structured data
servicesService mix, e.g. [{"service": "Search Engine Optimization", "percent": 40}, …]
listingType / isSponsoredWhether the row is a paid placement or a ranked directory listing
verificationBadgePremier Verified, Verified, or empty
summaryClutch's review-derived summary of the company
clutchId, listingPage, sourceUrl, scrapedAtProvenance: which listing, which page, and when (ISO-8601 UTC)
ActorResearch fitWhat it exports
Kalshi Weather Markets | Price History APIWeather-market price historyHourly or daily candles for named Kalshi weather markets: prices, bids, asks, volume and open interest as exact decimal strings
UFCStats Scraper | Fight & Round StatisticsUFC fight statisticsUFCStats fight and round statistics as flat rows with fighter IDs, event dates and locations
Tennis Abstract Scraper | Match History APITennis match statisticsATP and WTA player match histories from Tennis Abstract: scores, opponents, surfaces and available serve and return statistics
Google Trends Scraper | Keyword Data APISearch-interest researchGoogle Trends interest over time, interest by region and related or rising queries, plus the Trending Now board by country
Google Ads Transparency Scraper & ArchiveAd-creative researchAdvertiser 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?

  • maxItems caps result rows; it defaults to 100.
  • The maxRunSeconds run 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 ERRORS record. 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 isSponsored if you only want ranked results, or sort by something other than Sponsorship.
  • location and the address* fields can disagree, on purpose. location is what Clutch prints on the card and follows your location filter to the matching branch office; the address* 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. Use location for "where this listing is", address* for "where the company is registered".
  • addressCountry is Clutch's code, not always ISO 3166. The UK's constituent countries come back as SQ (Scotland), WL (Wales) and ND (Northern Ireland) rather than GB. Normalise before joining on it.
  • website is 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.
  • rating is Clutch's aggregate on a 0–5 scale (ratingScale says so on every row) and moves as reviews land. minProjectSize and hourlyRate are 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. maxItems defaults 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.