Checkatrade Scraper
Pricing
from $8.00 / 1,000 tradesperson records
Checkatrade Scraper
Search and extract public Checkatrade tradesperson profiles with contact, service, rating, and review data.
Pricing
from $8.00 / 1,000 tradesperson records
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Checkatrade Scraper is an Apify Actor for finding and extracting public Checkatrade tradesperson profiles by trade and UK location, or by copied Checkatrade search and profile URLs. It accepts a trade and location, search URLs, or direct profile URLs, and returns one validated business record per public profile. Each record can include business name, profile URL, public phone number, website, rating, review count, description, service labels, service areas, location fields, optional recent reviews, and an extraction timestamp.
Best fit and connected workflows
Use this Actor when your workflow starts with public Checkatrade discovery and needs structured records for outreach preparation, local market research, CRM enrichment, or AI-assisted shortlist building.
Typical routing patterns:
- Trade + location search: find profiles for a UK trade in a town, city, postcode, or postcode area.
- Copied search URL: reuse a Checkatrade search page from a browser session.
- Direct profile URLs: refresh or re-extract known Checkatrade profile pages.
- Filtered runs: narrow results by phone availability, minimum rating, or minimum review count.
- Detailed enrichment: enable profile scraping and recent review extraction for deeper records.
focused workflow
Checkatrade Scraper is designed as a focused workflow.
Practical scenario
A local marketing analyst wants a list of electricians in Manchester with public contact details and strong public ratings. They start with trade = "Electrician" and location = "Manchester", then set requirePhone = true, minRating = 9, and minReviews = 10. The run returns fields such as businessName, phone, rating, reviewCount, services, locality, and profileUrl. The analyst can review the returned profiles, open the linked Checkatrade pages, and use the dataset to build a call list or a verified research shortlist.
Input fields
| Field | Type | Purpose |
|---|---|---|
trade | string | Trade or service to search, such as Plumber or Electrician. |
location | string | UK town, city, postcode, or postcode area for the search. |
searchUrls | array | Copied Checkatrade search-result URLs to crawl and paginate. |
directUrls | array | Individual Checkatrade profile URLs to scrape directly. |
maxResults | integer | Maximum validated profiles to return in the run. |
scrapeDetails | boolean | Enrich discovered profiles with contact, service, rating, and review fields. |
extractReviews | boolean | Include up to ten visible recent review objects per profile. |
requirePhone | boolean | Return only profiles with a public phone number. |
minRating | number | Minimum public Checkatrade rating from 0 to 10. |
minReviews | integer | Minimum public review count required for a returned profile. |
proxyConfiguration | object | Optional Apify proxy configuration for public Checkatrade requests. |
Focused JSON example
{"trade": "Electrician","location": "Manchester","maxResults": 25,"scrapeDetails": true,"extractReviews": false,"requirePhone": true,"minRating": 9,"minReviews": 10}
Output fields
| Field | Type | Meaning |
|---|---|---|
businessName | string | Public Checkatrade business or tradesperson name. |
profileUrl | string | Canonical public Checkatrade profile URL. |
phone | string or null | Public profile phone number, when shown. |
website | string or null | Public external website, when shown. |
email | string or null | Always null in this Actor. |
rating | number or null | Public Checkatrade rating, typically on a 0-10 scale. |
reviewCount | integer or null | Public profile review count. |
description | string or null | Public business description. |
services | array | Public service labels. |
address | string or null | Public street address, when supplied. |
locality | string or null | Public town or city. |
region | string or null | Public county or region. |
postalCode | string or null | Public postcode, when supplied. |
areasServed | array | Public service-area labels. |
imageUrl | string or null | Public profile image URL. |
reviews | array | Up to ten recent visible public reviews when enabled. |
searchTrade | string or null | Trade supplied for the run, if any. |
searchLocation | string or null | Location supplied for the run, if any. |
scrapedAt | string | ISO 8601 extraction timestamp. |
source | string | Constant source label: checkatrade. |
Illustrative output record
{"businessName": "Example Electrical Services","profileUrl": "https://www.checkatrade.com/trades/exampleelectricalservices","phone": "+44 20 1234 5678","website": "https://exampleelectricalservices.co.uk","email": null,"rating": 9.4,"reviewCount": 128,"description": "Public Checkatrade business description","services": ["Electrician", "Rewiring", "Lighting"],"address": null,"locality": "Manchester","region": "Greater Manchester","postalCode": null,"areasServed": ["Manchester", "Salford"],"imageUrl": null,"reviews": [],"searchTrade": "Electrician","searchLocation": "Manchester","scrapedAt": "2026-07-19T12:34:56.000Z","source": "checkatrade"}
How it works
This Actor searches public Checkatrade results by trade and UK location, or it processes copied Checkatrade search URLs and direct profile URLs. Search-result URLs are crawled and paginated. Direct profile URLs are scraped directly. For search discovery, scrapeDetails enriches each discovered profile with public profile fields. extractReviews adds up to ten visible recent review objects per returned profile. Results are saved as validated records in the default dataset, and the run also writes terminal output records to the default key-value store.
Pricing
Checkatrade Scraper uses Pay per event plus Apify platform usage. The charged events are:
- Actor start
- Tradesperson record
The Tradesperson record event is charged once for each validated Checkatrade tradesperson record written to the dataset. The current pricing details are shown in the live Pricing tab in Apify. As an example, a run that saves one hundred profiles produces one hundred Tradesperson record events plus one Actor start event, along with Apify platform usage charges.
Use with AI agents (MCP)
This Actor is available as an Apify Actor usable through Apify MCP. The precise Actor identity is khadinakbar/checkatrade-scraper.
Tool description: use it to discover and extract public Checkatrade tradesperson profiles, then read the dataset items for structured records and the key-value store for run outcome and summary metadata.
Find up to 20 public electricians in London with public phone numbers and rating of at least 9. Return the dataset rows and summarize the most relevant fields for outreach review.
Output interpretation: dataset items contain one record per validated profile. The results output points to the default dataset items endpoint. output contains the terminal run outcome, and runSummary contains a compact execution summary. Provenance is preserved through the public profileUrl, source, and scrapedAt fields. Scope is limited to public Checkatrade data. Pagination is handled through search URLs and search discovery. Costs scale with the number of validated persisted records, so maxResults is the main control for run size.
Apify API example
import { ApifyClient } from "apify-client";const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const actorId = "khadinakbar/checkatrade-scraper";const input = {trade: "Electrician",location: "Manchester",maxResults: 10,scrapeDetails: true,extractReviews: false,};const run = await client.actor(actorId).call(input);const datasetItems = await client.dataset(run.defaultDatasetId).listItems();console.log("Run ID:", run.id);console.log("Dataset items:", datasetItems.items);
Best results and outcome guidance
Use a narrow trade and location pair when you want a focused public directory slice. Use searchUrls when you already have a browser-copied Checkatrade result page. Use directUrls when you already have profile URLs and want direct extraction. Set requirePhone, minRating, and minReviews to shape the returned list before downstream review. Enable extractReviews when you need a compact sample of visible review content alongside the profile fields. Keep maxResults aligned with the number of records you actually need.
Continue the workflow
- Then use Fragrantica Scraper — Perfume Profiles & Notes to extend Checkatrade Scraper with a neighboring review and reputation research source when the brief calls for Fragrantica data.
- Then use Capterra Reviews Scraper — Ratings, Pros & Cons to extend Checkatrade Scraper with a neighboring review and reputation research source when the brief calls for Capterra data.
Design note
I found that the dataset contract includes email with a fixed null meaning, which is a clear signal that this Actor returns public profile data without email enrichment.
FAQ
Can I use this Actor for a trade and UK location search?
Yes. Provide trade and location to discover Checkatrade profiles for that market.
Can I scrape a copied Checkatrade search page?
Yes. Put the browser-copied search URL in searchUrls.
Can I scrape known Checkatrade profile links directly?
Yes. Put individual profile URLs in directUrls.
How do I narrow the output to profiles with phones and stronger public ratings?
Use requirePhone = true, set minRating, and optionally set minReviews.
Can I get recent review samples?
Yes. Set extractReviews = true to include up to ten visible recent review objects per profile.
Does this Actor return one record per profile?
Yes. The contract defines one validated business record per profile, and the primary billable event is one Tradesperson record per persisted dataset row.
Responsible use
Use public Checkatrade data in ways that respect applicable privacy, marketing, and data protection requirements, including UK GDPR and PECR where relevant. Verify profile details before contacting a business. Use the data for lawful research, operational workflows, or other legitimate purposes that fit the public nature of the source.