Clutch Company Scraper — Reviews, Services & Public Phones
Pricing
from $3.00 / 1,000 company-scrapeds
Clutch Company Scraper — Reviews, Services & Public Phones
Collect Clutch company profiles with available ratings, services, rates and published contacts. Bulk export: JSON, CSV, Excel and API. PPE: $3/1K companies; start fee, usage extra.
Pricing
from $3.00 / 1,000 company-scrapeds
Rating
0.0
(0)
Developer
Apivault Labs
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Clutch Company Scraper — Ratings, Rates & Contacts
Paste Clutch company profile URLs and export available agency information as JSON, CSV or Excel. Compare ratings, review counts, hourly rates, project budgets, team sizes and services with numeric fields and optional qualification filters. No Clutch account or external API key is required. Apify REST/MCP calls require your Apify token.
First run
In Company profile links, paste https://clutch.co/profile/toptal, set Maximum useful companies to 1, and click Start. Open Companies for the row and Summary for coverage. The default result cap is 5 in Console, REST and MCP. Each useful company costs $0.003, plus a $0.00005 start event at 256 MB and Apify resource usage.
This actor enriches known profile links. To discover companies by service or location first, use Clutch Company Search, then map its profileUrl values into companyUrls. Search/directory URLs are not accepted here. This actor returns aggregate review counts, not individual review texts or review pagination.
Copyable examples
One company
{"companyUrls": ["https://clutch.co/profile/toptal"],"maxResults": 1}
Compare two vendors
{"companyUrls": ["https://clutch.co/profile/toptal","https://clutch.co/profile/intellectsoft"],"maxResults": 2,"maxConcurrency": 2}
Select only comparison fields
{"companyUrls": ["https://clutch.co/profile/toptal"],"maxResults": 1,"extractName": true,"extractRating": true,"extractReviews": true,"extractTagline": false,"extractLocation": false,"extractEmployees": false,"extractHourlyRate": true,"extractMinProject": true,"extractServices": false,"extractIndustries": false,"extractWebsite": false,"extractPhone": false,"extractImage": false}
Qualify a vendor and merge duplicate links
{"companyUrls": ["https://clutch.co/profile/toptal","https://clutch.co/profile/toptal?utm_source=example"],"maxResults": 1,"minRating": 4,"minReviews": 10,"maxHourlyRate": 200}
Collect a small first batch
{"companyUrls": ["https://clutch.co/profile/toptal","https://clutch.co/profile/intellectsoft"],"maxResults": 1,"maxConcurrency": 1}
Inputs
| Input | Default | Meaning |
|---|---|---|
companyUrls | Required | 1–1000 HTTP(S) profile URLs on clutch.co or www.clutch.co. Query/fragment stripped; duplicate profile slugs collected once. |
maxResults | 5 | 1–1000 useful matching rows; this is a ceiling, not a promise of matches. |
minRating | No filter | 0–5. Minimum parsed rating. Unknown ratings fail an active filter. |
minReviews | No filter | Minimum parsed integer review count. Unknown counts fail an active filter. |
maxHourlyRate | No filter | Maximum upper end of the published hourly range in USD. Unknown/open-ended upper ranges fail. |
maxConcurrency | 3 | 1–10 in-flight requests. Output follows completion; join by companySlug. |
timeout | 120 | 30–300 seconds per company for submission/polling, with bounded network deadlines. |
extract… | true | Switches below; at least one must be enabled. Disabled fields and numeric companions are omitted. |
| Switch | Output |
|---|---|
extractName | companyName |
extractRating | rating |
extractReviews | reviewsCount |
extractTagline | tagline |
extractLocation | location |
extractEmployees | employees |
extractHourlyRate | hourlyRate |
extractMinProject | minProjectSize |
extractServices | services |
extractIndustries | industries |
extractWebsite | website |
extractPhone | phone |
extractImage | logo |
Result and data quality
Each paid row has a validated company name consistent with the requested slug or its external website, at least one further nonempty profile fact, and at least one requested field available. This consistency check reduces wrong-company results; it is not independent verification of all source data. No empty placeholder or error rows enter the paid Dataset. Filters use internal numeric facts even when their output switches are off.
Selected raw fields are strings or null. Numeric companions are ratingValue, reviewsCountValue, hourlyRateMin, hourlyRateMax, minProjectSizeValue, employeesMin and employeesMax. Unparseable or ambiguous values are null. Unknown is not zero; explicitly unreviewed profiles can have a zero review count. $100 - $149 / hr becomes 100–149. $50,000+ gives a minimum project size of 50000; an open-ended upper bound stays null. Amounts are displayed USD ranges, not a quote or actual project cost. Non-USD/unsupported price formats remain unparsed.
website is included only when a safe external company URL is supplied. A Clutch profile or unresolved Clutch redirect is not exported as the official website. Missing website, phone, logo, industries and other facts remain null; the actor does not infer domains or search for emails. Services and industries retain source text rather than inventing percentage splits.
availableFields, missingFields and dataCompletenessPct describe the selected raw fields only. They do not certify accuracy. collectedAt records when this actor received and validated the data; it is not the profile update date. sourceUpdatedAt is null and freshnessVerified is false because source caching/update latency cannot be independently established. sourceMode is company_profile_extraction.
Summary, errors and continuation
The Dataset contains only useful matching companies. KVS SUMMARY reports delivered, attempted, filteredOut, duplicatesSkipped, invalidSkipped, remainingCount, chargeLimitReached and nextInput. KVS ERRORS reports safe codes. FAILED_COMPANIES mirrors ERRORS for older integrations.
Copy SUMMARY.nextInput into a new run to collect unprocessed valid links. It excludes already delivered, filtered and failed links; it keeps your field switches and filters. It does not retain history or retry recorded failures. Rerunning the original input collects and charges useful rows again. A capped successful batch may still have remaining links.
SUCCEEDED: useful data collected; check remainingCount for a cap.PARTIAL: useful data alongside invalid/source failures or a budget stop; Apify may still show a green run.EMPTY: valid companies were collected but all failed active filters; no result events.FAILED/INVALID_INPUT: no useful rows because source or input failed; Apify run is FAILED.BUDGET_LIMIT: no additional useful row fits the event budget. Start/resource fees can still apply.
Error codes include INVALID_COMPANY_URL, SOURCE_ACCESS_DENIED, SOURCE_RATE_LIMITED, SOURCE_TIMEOUT, SOURCE_EMPTY, SOURCE_EXTRACTION_FAILED, SOURCE_RESPONSE_INVALID, COMPANY_MISMATCH, INSUFFICIENT_COMPANY_DATA and REQUESTED_FIELDS_UNAVAILABLE. Invalid links are reported by input index without echoing credentials or arbitrary hostnames. A missing profile cannot always be distinguished from blocked/empty extraction. Confirmed terminal extraction failures or completed empty extractions may be retried once inside the same timeout; ambiguous submissions/timeouts are not automatically resubmitted.
REST API
Send an example input to POST https://api.apify.com/v2/acts/apivault_labs~clutch-company-scraper/runs?build=latest&memory=256&timeout=600&maxTotalChargeUsd=0.05 with Authorization: Bearer YOUR_APIFY_TOKEN and Content-Type: application/json. Keep authentication in your client configuration.
Save the returned run id, defaultDatasetId and defaultKeyValueStoreId. Poll GET /v2/actor-runs/{id} until terminal. Read /v2/datasets/{defaultDatasetId}/items?clean=true and /v2/key-value-stores/{defaultKeyValueStoreId}/records/SUMMARY plus ERRORS. CSV export uses /items?format=csv&clean=true. Keep polling the same run ID; do not start a duplicate because a call is still running.
MCP and AI agents
Use https://mcp.apify.com/?actors=apivault_labs/clutch-company-scraper with your Apify token in a Bearer header. Discover with tools/list; the actor tool is apivault_labs--clutch-company-scraper. Its input contract matches Console. waitSecs is an MCP argument, not an actor input field.
{"name":"apivault_labs--clutch-company-scraper","arguments":{"companyUrls":["https://clutch.co/profile/toptal"],"maxResults":1,"waitSecs":45}}
Save the returned runId. For a running response, use get-actor-run on that same ID. After completion use get-dataset-items with the returned Dataset ID; read SUMMARY and ERRORS with get-key-value-store-record and the returned KVS ID. Treat PARTIAL, missingFields and remainingCount as meaningful coverage information. A green Apify status alone does not establish complete data.
Pricing and practical limits
The current result fee is $3 per 1,000 useful company rows. At 256 MB, the start event is $0.00005 per run. Apify platform/resource usage is charged to the user separately. For 100 useful profiles the result fee is $0.30; total cost adds starts and actual usage. Filtered, invalid, empty and failed profiles have no company-result fee, but their processing can still use resources. Set maxResults and maxTotalChargeUsd for bounded runs.
Public page availability and extraction quality vary. Ratings, contacts and rates can be missing or delayed. No freshness guarantee, full review export, automatic catalogue search, monitoring, accumulated history or notifications is included.
Company-profile research for procurement and agency comparisons
Use this Clutch profile scraper when you already know the agencies you want to inspect. The output helps compare available ratings, review counts, services and commercial bands in a structured file. A source profile remains a starting point for due diligence, not an independent endorsement of a vendor's capability or suitability.
| Workflow | Useful fields | Interpretation boundary |
|---|---|---|
| Shortlist a known vendor | companyName, profile identity and services | Source claims are not independently verified |
| Compare published commercial terms | hourlyRate and minProjectSize with numeric companions | Ranges are not negotiated project quotes |
| Review reputation context | rating and reviewsCount | Aggregate counts, not full review texts |
| Build a basic company record | website, location and published phone | Missing contacts are not inferred |
| Continue an unfinished batch | SUMMARY.nextInput | Unprocessed links, not an automatic retry of failures |
Inspect one agency profile with a small cap
Start with a known canonical profile URL. Different spellings, removed profiles or source refusals can reduce coverage. A requested profile link does not guarantee that a useful row can be collected.
{"companyUrls": ["https://clutch.co/profile/toptal"],"maxResults": 1,"maxConcurrency": 1}
Compare two known profiles without creating a directory search
The Actor accepts profile links. Discovery remains a separate step; do not pass category/search pages in companyUrls. Join results by the canonical companySlug because completion order can differ from input.
{"companyUrls": ["https://clutch.co/profile/toptal","https://clutch.co/profile/intellectsoft"],"maxResults": 2,"maxConcurrency": 2}
Keep reputation-qualified records for manual review
Unknown or unparsed values fail positive filters. A rejected company does not create a company-result event. It can still consume processing resources and appear in the diagnostic counts.
{"companyUrls": ["https://clutch.co/profile/toptal"],"maxResults": 1,"minRating": 4,"minReviews": 10}
Keep a published hourly-rate ceiling explicit
The ceiling applies to the parsed upper end of a USD range. An open-ended range cannot establish a known upper price and can fail this filter. Verify a current quote directly with the vendor when procurement depends on price.
{"companyUrls": ["https://clutch.co/profile/toptal","https://clutch.co/profile/intellectsoft"],"maxResults": 2,"maxHourlyRate": 200,"extractHourlyRate": true,"extractMinProject": true}
Raw values, numeric fields and missing evidence
Keep the displayed source text when you copy parsed numeric values into a comparison. A team-size interval, minimum budget or hourly range has a different meaning from an exact measured number. Unknown bounds remain null rather than zero. The actor does not convert unsupported currency formats into invented USD facts.
availableFields, missingFields and dataCompletenessPct describe selected field availability. A high completeness percentage does not certify truth, freshness or vendor quality. collectedAt is your collection time, not the last time the company edited its profile.
The external website field must be an observed safe company URL. A profile page or unresolved redirect is not substituted as the official website. Published phone and location fields can be missing. This Actor does not infer emails, privately identify owners, or extract every review behind the aggregate review count.
Build a reproducible vendor-review file
Keep canonical profile identity, collection time, selected fields and the filters with the result. JSON preserves the available values and numeric companions; CSV/Excel are useful for a compact comparison. Add your own procurement notes in separate columns so source claims and your assessment do not become indistinguishable.
After a download failure, read the completed dataset again. Starting the original input creates a fresh collection job and can bill the same useful companies again. SUMMARY.nextInput contains unprocessed valid links; it does not reintroduce previously failed profiles or automatically launch another run.
Calculate the cost of profile enrichment
Active rates checked on 20 October 2026 are $0.003 per useful delivered company, $0.00005 per start memory unit with a minimum of one, plus separate user-paid platform usage. Five useful companies at standard memory have $0.01505 in event fees. This arithmetic is separate from the measured resources of any particular run.
Field switches do not create a separate charge per field. They select which available data is returned, while source collection still takes work. A narrow selection can remain sparse or unavailable. Empty, invalid, filtered and failed profiles have no company-result event, but a start charge and resources may still apply.
More questions about Clutch company data
Can I download all reviews for each agency?
No. Review counts and available rating values are aggregate profile facts. Individual review texts and review pagination are outside this product's supported scope.
Can I use completeness as a vendor-quality score?
No. It describes which requested fields were available. Evaluate vendors using evidence relevant to your own selection criteria.
Why does a successful batch show PARTIAL in diagnostics?
Useful profiles can be retained while another input fails or a budget stops further work. Read remainingCount, ERRORS and the continuation before treating the batch as fully processed.
Is a missing company definitely removed from Clutch?
Not necessarily. A source failure, refusal or empty extraction can prevent collection. Keep that uncertainty separate from a confirmed profile-removal claim.
n8n and developer integrations
Use this Actor in your automation or application with the existing community integrations below. An Apify account and API token are required; Actor and platform charges follow the current pricing.
- n8n community node: n8n-nodes-apivault-clutch. Install package name
n8n-nodes-apivault-clutchin a self-hosted n8n instance that permits community packages. - Python client and examples: GitHub.
- n8n source and usage: GitHub.
These are community packages. Publication on npm does not establish n8n verification or availability in n8n Cloud. Review the linked package README for supported inputs and setup.