Clutch Agency List — Every Agency & Directory URL
Pricing
from $0.04 / 1,000 index rows
Clutch Agency List — Every Agency & Directory URL
The full map of Clutch before a single agency is scraped: every agency profile URL with its key, or every ranked directory path, straight from the index Clutch publishes. Either list resumes where a run stopped, and both feed the Clutch Scraper directly.
Pricing
from $0.04 / 1,000 index rows
Rating
0.0
(0)
Developer
The Netaji
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 hours ago
Last modified
Categories
Share
This Actor returns the map of Clutch: every agency profile URL the site publishes, each with the key that identifies it, or every ranked directory path, each ready to be pasted into Clutch Scraper. It is a list of addresses rather than a dataset of ratings, and it is where a whole-market study starts instead of a keyword guess.
Two questions it answers before anything expensive is run. How large is the market on Clutch, in agencies rather than in impressions. And which directories exist at all — including the ones nobody thinks to search for, because a directory is only discoverable from Clutch's navigation if somebody clicks toward it.
Accepted input
listing chooses which of the two lists to walk and defaults to agencies.
| Value | What comes back |
|---|---|
agencies | Agency profile URLs, each row carrying the agency's slug. |
directories | Ranked directory pages, each row carrying the directory path. |
maxItems caps how many rows the run saves and defaults to 1000; 0 walks to the end of the list.
startList defaults to 1 and is a resume point rather than a filter: Clutch publishes its index as
numbered lists, a run moves into the next one by itself, and the log prints the list to continue from when
the run stops.
{"listing": "agencies","maxItems": 1000,"startList": 1}
Response fields
An agency row and a directory row, both real:
{"listing": "agencies","list_index": 1,"position": 3,"clutch_url": "https://clutch.co/profile/eyemagine","slug": "eyemagine","directory": null}
{"listing": "directories","list_index": 1,"position": 4,"clutch_url": "https://clutch.co/se/it-services/msp/stockholm","slug": null,"directory": "se/it-services/msp/stockholm"}
| Field | What it says |
|---|---|
listing | Which of the two lists the row came from. |
clutch_url | The URL as Clutch publishes it. |
slug | The agency's key, on agency rows. Empty on directory rows. |
directory | The directory path with no leading slash, on directory rows. Empty on agency rows. |
list_index | Which numbered list the URL was published in. |
position | Where the URL sits inside that list, counting from 1. |
Both key columns exist on every row so that a mixed export stays readable: an agency row carries a slug and
an empty directory, a directory row the reverse. list_index and position together are a stable address
in a list of hundreds of thousands, and they are what a later run resumes from.
Questions
How many rows are there in each list?
Enough that maxItems: 0 is a scheduling decision rather than a checkbox — the agency list runs to six
figures. The exact totals are read from Clutch as the run goes rather than quoted from a fixed number here,
because a published count measured on one day is not a promise about the next. The log prints how many rows
each numbered list held as it is walked.
How does a run know where the index ends? By walking past it. The run asks for the list after the last one, gets nothing back, and stops, logging that the index is finished. That is the only claim about the size of this index that cannot go stale, which is why no hard-coded total is used in its place.
Can the directory paths be fed straight into the Clutch Scraper?
Some of them. Most of what Clutch publishes is a deeper, country- or city-scoped variant of a directory —
de/it-services/msp/berlin — while Clutch Scraper
walks one- and two-segment paths such as it-services or agencies/digital-marketing. A directory-mode run
prints how many of its rows are the shallow, walkable shape, so the split is visible before anything is fed
anywhere. Deeper paths passed to the Scraper anyway are skipped by name rather than failing that run.
A run stopped at maxItems — how is the next one continued?
The log ends with the list to continue from. Passing that as startList on the next run restarts at the
beginning of that list, so a small overlap is re-read rather than a gap being left. Rows carry list_index
and position, which is enough to drop the overlap after the fact.
Why is this so much cheaper per row than the other Clutch Actor? Because a row here is a URL read from an index Clutch publishes about itself, thousands to a request, while a row from the Scraper is an agency read off a ranked listing page roughly fifty at a time. The work behind the two rows is not comparable, and the pricing follows the work.
Does a row carry the agency's rating or services? No. This Actor returns addresses only — the URL, the key, and where it sits in the index. Ratings, rates, project minimums, headcount and the service mix come from Clutch Scraper.
Related
- Clutch Scraper — Agency Rates, Size & Services — the ranked agencies in a directory, with rates, project minimums, headcount and the percentage service mix.
