Clutch Agency Directory avatar

Clutch Agency Directory

Pricing

from $0.25 / 1,000 companies

Go to Apify Store
Clutch Agency Directory

Clutch Agency Directory

Scrape B2B agency and company listings from any Clutch.co directory: name, profile, website, rating, review count, minimum project size, hourly rate, employee count, location and service mix. Filterable, proxy-aware, no API key.

Pricing

from $0.25 / 1,000 companies

Rating

0.0

(0)

Developer

Eli J

Eli J

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

a day ago

Last modified

Share

Turn any Clutch.co directory into a clean spreadsheet of B2B agencies and software companies — name, website, rating, review count, budget, hourly rate, headcount, location and service mix. No API key, no browser, no scraping code.

Point it at a category (digital marketing, SEO, web design, software development, IT services, …), narrow it with the same filters Clutch itself offers, and export to JSON, CSV or Excel.

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)

Why this Actor

Clutch does not publish an API, and it does not answer ordinary HTTP clients — the connection completes and the server then returns 403 based on the client's TLS/HTTP2 fingerprint, so swapping in a browser User-Agent changes nothing. This Actor is built around that, and around the directory's quirks:

  • Browser-grade transport. Sessions are established the way a real browser establishes one, so pages come back instead of refusals.
  • Automatic identity rotation. Each proxy identity is retired before the site throttles it, and a refused page rotates onto a fresh Apify Proxy session and retries rather than ending the run.
  • De-duplicated results. Rows are keyed on the Clutch company id within each directory walk, so a repeated page can never become a repeated — or repeatedly billed — row. Across different directories you asked for, a company that is listed in both is returned for each, because that is what you requested.
  • Sponsored placements are labelled, not hidden. Paid listings sit at the top of most directories and do not always honour the filters you set. Every row carries isSponsored, so you can keep them, drop them, or count them.
  • Partial failures never kill the run. An unreadable page is reported in the run's ERRORS record; the rest of the walk still lands.
  • Failed requests are never written to your dataset, so an error can never appear on your bill as a result row.
  • An empty result is an answer. Filters that match nothing finish cleanly with guidance instead of a red run and a stack trace.

Input

Nothing is required. With empty input the Actor scrapes the digital marketing directory and stops at 100 companies.

{
"category": "agencies/digital-marketing",
"location": "United Kingdom",
"sortBy": "ReviewRating",
"minReviews": "10",
"maxItems": 100,
"proxyConfiguration": { "useApifyProxy": true }
}
FieldTypeDefaultDescription
categorystringagencies/digital-marketingThe Clutch directory path. Pick from the list or type another, e.g. seo-firms, web-designers, developers, it-services.
startUrlsarrayPaste Clutch directory URLs instead. Filters already in the URL are kept and ?page= sets where the walk starts. Overrides category.
locationstringCountry, state or city (United Kingdom, New York, Berlin). Resolved through Clutch's own location lookup; an unmatched name warns and continues unfiltered.
sortBystringSponsorshipSponsorship (Clutch's default), ClutchRank, ReviewRating, NumberOfReviews, Verification, CompanyName.
minReviewsstring0Keep companies with at least 1 / 3 / 5 / 10 / 15 / 20 reviews.
maxBudgetstring0Keep companies taking projects under $5k … $250k.
hourlyRatearrayallOne or more rate bands, from 0-25 to 300.
companySizearrayallOne or more headcount bands, Freelancer through 10,000+.
serviceLinesarrayallClutch service slugs, e.g. field_pp_sl_seo. Free-form — see below.
industriesarrayallClutch 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.
maxRetriesPerRequestinteger8How hard to retry a refused page.
rotateAfterRequestsinteger24Retire each proxy identity after N requests. 0 disables.
proxyConfigurationobjectApify Proxy onRecommended to leave enabled.

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

{
"name": "Ignite Visibility",
"profileUrl": "https://clutch.co/profile/ignite-visibility",
"website": "https://ignitevisibility.com/?utm_source=clutch.co&utm_medium=referral",
"rating": 4.8,
"ratingScale": "0_to_5",
"reviewCount": 173,
"minProjectSize": "$1,000+",
"minProjectSizeUsd": 1000,
"hourlyRate": "$100 - $149 / hr",
"hourlyRateMinUsd": 100,
"hourlyRateMaxUsd": 149,
"employees": "250 - 999",
"employeesMin": 250,
"employeesMax": 999,
"location": "San Diego, CA",
"addressCity": "San Diego",
"addressState": "CA",
"addressCountry": "US",
"addressPostalCode": "92037",
"addressStreet": "4250 Executive Square Suite #100",
"phone": "6197521955",
"services": [
{ "service": "Search Engine Optimization", "percent": 40 },
{ "service": "Advertising", "percent": 10 }
],
"listingType": "Sponsor",
"isSponsored": true,
"verificationBadge": "Premier Verified",
"summary": "Ignite Visibility is a digital marketing agency specializing in …",
"clutchId": "25800",
"listingPage": 1,
"sourceUrl": "https://clutch.co/agencies/digital-marketing",
"scrapedAt": "2026-07-26T19:48:12+00:00"
}

What you can build with it

  • Agency shortlists — pull every vetted agency in a category and budget band, ranked by rating, into a spreadsheet in one run.
  • Lead lists — company, website, phone and service mix for outbound.
  • Competitive and market research — rate bands, headcount and service mix across a category or a country.
  • Partner sourcing — filter by service line and industry focus, then sort by review volume.
  • Monitoring — schedule a run and watch ratings, review counts and rankings move over time.

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.
  • Directories are deep. A large category runs to tens of thousands of listings, which is why maxItems defaults to 100 and a run time budget is on by default. Raise both deliberately.
  • This Actor collects public business listing information only.

Pricing

Pay per result row, with Apify platform usage included — you are not billed twice. Tightening the filters or lowering maxItems reduces cost directly, and pages that fail are never billed as rows.

Integrations

Works with everything on the Apify platform: scheduled runs, webhooks, the REST API, the MCP server, Zapier, Make, n8n, Slack, Google Sheets, Airbyte, and LangChain / LlamaIndex.

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.