Clutch Agency Lookup: agency directory & ratings API from $3/1k
Pricing
from $2.28 / 1,000 agency profile founds
Clutch Agency Lookup: agency directory & ratings API from $3/1k
Clutch.co agency profile lookup by URL or slug: rating, review count, min. project size, hourly rate, employee count, founding year, location, and service-line breakdown, straight from the agency's own Clutch profile. One row per agency. Never charged for a miss.
Pricing
from $2.28 / 1,000 agency profile founds
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
You give this actor a list of Clutch.co agency profile URLs (or bare slugs). For each one, it fetches the agency's own Clutch profile and returns rating, review count, minimum project size, hourly rate band, employee count, founding year, headquarters location, and the service-line breakdown Clutch itself shows on the page — one flat row per agency, straight from the profile, no third-party database in between.
Who it's for
You're building a vetted shortlist of agencies — a marketing lead pulling comparison data on ten SEO firms before a pitch, an agency ops team tracking how its own Clutch rating and review count move month to month, or a procurement analyst screening vendors by hourly rate and minimum project size before a call gets booked. Any of those is normally a copy-paste-by-hand job across a dozen open tabs; here it's a list in, a table out.
Why this one
- Reads the live profile, not a cached snapshot. Every run fetches the agency's current Clutch page — a rating that moved last week or a hourly-rate band the agency just updated shows up on the next run, not next quarter.
- The full stat block in one row. Rating, review count, minimum project size, hourly rate, employee count, founding year, headquarters, and service-line mix — the same numbers Clutch puts in its own profile-summary widget, parsed straight out of it.
- Never charged for a miss. A slug that doesn't resolve to a real profile, or a request that gets blocked, still returns a row explaining why — and costs nothing.
- Bare slug or full URL, your choice. Paste
thrive-internet-marketing-agencyorhttps://clutch.co/profile/thrive-internet-marketing-agency— both normalize to the same lookup.
What you get
| Field | Type | Description |
|---|---|---|
query | text | The URL or slug you submitted, echoed back |
found | boolean | true if a real agency profile was found |
status | text | OK on a match; NOT_FOUND or BLOCKED on a miss |
message | text | Plain-English reason for a miss — only present when found is false |
scrapedAt | ISO 8601 datetime | When the profile was fetched |
name | text | Agency name |
url | link | Agency's own website (as declared on its Clutch profile) |
rating | number | Overall Clutch rating (out of 5) |
reviewCount | number | Number of Clutch reviews behind that rating |
minProjectSize | text | Minimum project size Clutch lists for this agency, e.g. $1,000+ |
hourlyRate | text | Hourly rate band, e.g. $100 - $149 / hr |
employees | text | Employee count band, e.g. 10 - 49 |
founded | number | Founding year |
location | text | Headquarters city/country, as shown on the profile |
services | array | Service-line breakdown Clutch shows for this agency, e.g. ["Search Engine Optimization", "Pay Per Click"] |
clutchUrl | link | The canonical clutch.co profile URL that was fetched |
Deselect any field in the Input tab's column picker to drop it from every row — query, found,
status, message, and scrapedAt always stay.
Price
Pay-per-event. A flat per-run fee covers session/proxy warmup; you're billed
per item only when data is actually found and returned — see
.actor/pay_per_event.json for exact prices. A miss is never charged.
1,000 agency lookups: ~$3 if every profile resolves, less for any misses, less again on a paid Apify plan. A miss — a bad slug, a profile that no longer exists, a blocked request — is never billed.
How to use
- In the Apify Console. Open the actor page and click Start — the
profilesfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~clutch-agency-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"profiles":["thrive-internet-marketing-agency"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
- Open the Input tab and paste your list of Clutch profile URLs or slugs into "Clutch.co agency profile URLs or slugs" — one per line.
- Leave "Try it first" on for your first run — it caps the run at 5 agencies so you can check the output shape before spending on the full list.
- Optionally narrow "Which columns do you want?" to just the fields you need, or set "Only keep rows containing" / "Skip rows containing" to filter by keyword (e.g. a service name or city).
- Turn "Try it first" off and press Start to run the full list.
Input
{"profiles": ["thrive-internet-marketing-agency"]}
One agency per line — a full clutch.co profile URL, or just the slug from it (the part after /profile/). Accepted formats: https://clutch.co/profile/thrive-internet-marketing-agency, thrive-internet-marketing-agency.
Sample output
| query | found | status | name | url | rating | reviewCount | minProjectSize | hourlyRate | employees | founded | location | services | clutchUrl | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| thrive-internet-marketing-agency | true | OK | <min. project size> | <clutch.co profile url> | 1970-01-01T00:00:00.000Z |
A slug that doesn't resolve to a real profile gets a row with found: false and a status/
message explaining why, and is never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~clutch-agency-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"profiles":["thrive-internet-marketing-agency"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~clutch-agency-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"profiles":["thrive-internet-marketing-agency"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~clutch-agency-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"profiles":["{{agency}}"]}, mapping the row's agency into the profiles array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "Clutch Agency Lookup: Ratings API from $3/1k" — the agent will find and run this actor.
Tips
- Paste the bare slug (the part of the URL after
/profile/) if you already have it — it saves nothing on price, but it's one less thing to copy correctly. - If a well-known agency comes back
NOT_FOUND, double-check the slug against the agency's actual Clutch URL — Clutch slugs don't always match a company's common name (e.g. an agency doing business as "Foo Marketing" might be listed under a legal-entity-derived slug). - Run "Try it first" on a handful of agencies you already know the numbers for, to sanity-check the output against what you can see on the profile page yourself.
servicesreflects Clutch's own service-line percentages for that agency — useful for a quick "is this primarily an SEO shop or a web-design shop" read without opening the page.
vs. alternatives
| What it costs | What you get | Trade-off | |
|---|---|---|---|
This actor (clutch-agency-lookup) | $0.003 per found row (FREE tier, less on paid tiers), plus a $0.00005 actor start, nothing for a miss | One row per agency — rating, reviews, minimum project size, hourly rate, employees, founded year, location, and service-line mix, read live from the agency's own Clutch profile | Only what the agency's own profile page shows; no historical rating trend and no full review text |
| memo23/apify-clutch-cheerio | Not publicly priced per row (n/d) | The closest existing Clutch scraper on Apify Store, 191 users, 4.60 rating | Established incumbent — this actor is the same category of extraction, priced per row instead |
| Doing it yourself | Your time + working around Clutch's Cloudflare gate on every request | The same data | Rate limits, a Cloudflare wall on a bare fetch, and re-testing selectors as Clutch's markup shifts are the maintenance burden this actor absorbs |
Prices for third-party tools are their published list prices as of September 2026 and are not tracked here — check the vendor before relying on the comparison.
FAQ
Why is a row empty, or why does found say false?
Either the slug doesn't match a real Clutch profile (status: NOT_FOUND) or the request was
blocked (status: BLOCKED, usually a Cloudflare challenge). Check the message column for the
specific reason. Neither is billed.
Am I charged for a miss?
No. Actor.charge() only fires when a real agency profile is parsed. A bad slug or a blocked
request produces a row (unless you turn on "Hide rows with no result") and costs nothing.
Is this a live check or a stored database? Live. Every run fetches the agency's current Clutch profile — there's no cached snapshot behind it. A rating or review count that changed since your last run will show the new value.
Do I need to configure proxies? No. Clutch fronts its profile pages with Cloudflare, so this actor ships with the UNBLOCKER proxy group as its default — there's nothing to set up unless you want to override it.
Can an AI agent call this directly? Yes. It's registered on the Apify MCP server — an agent in Claude, Cursor, or another MCP client can find and run it by name ("Clutch Agency Lookup"), or you can call the REST endpoint shown above from any script or workflow tool.
Related actors
- Shopify Store Lookup — confirm whether a company runs Shopify and pull its storefront catalogue.
- LinkedIn Ads Presence Lookup — check whether a company or brand is currently running LinkedIn Ads.
- Tech Stack Lookup — detect a website's CMS, framework, analytics, and marketing stack from its own HTML and headers.