Checkatrade Scraper - UK Tradesperson Data avatar

Checkatrade Scraper - UK Tradesperson Data

Pricing

from $7.00 / 1,000 tradespeople

Go to Apify Store
Checkatrade Scraper - UK Tradesperson Data

Checkatrade Scraper - UK Tradesperson Data

Scrape verified UK tradespeople from Checkatrade by trade + location or URL. One row per tradesperson: name, phone, location, rating, review counts, skills, badges, logo and profile URL. Optional full-profile enrichment. JSON/CSV out

Pricing

from $7.00 / 1,000 tradespeople

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

1

Bookmarked

21

Total users

19

Monthly active users

4 days ago

Last modified

Share

Checkatrade Scraper

Turn any Checkatrade search into clean, structured data. Search by trade + location (e.g. Builder in London) or paste search-listing URLs and trade-profile URLs — and get one flat row per tradesperson with name, phone, location, star rating, review counts, skills, badges, logo and profile URL. Flip on detail mode to add the full description, every skill, services offered and reviews.

Built for lead generation, local-market and competitor research, and building UK tradesperson datasets across every trade and town.

How it works

How the Checkatrade Scraper works

✨ Why use this scraper?

  • Rich rows out of the box — ~30 fields per tradesperson from the search results alone: company name, phone (formatted + E.164), locality/region, recent rating (out of 10), recent + total review counts, skills and sub-skills, quality/insurance badges, membership, logo and profile URL.
  • Two ways in — build a search from trade + location, or paste search-listing URLs and profile URLs. Mix them in one run.
  • Beats Checkatrade's block — Checkatrade fronts scrapers with a Cloudflare managed challenge; this actor routes every request through a real browser fingerprint over UK residential IPs, so you get the real page instead of "Just a moment…".
  • Full detail on demand — turn on Scrape profile pages (or paste a profile URL) to add the full description, all skill labels, services offered, accreditation and reviews.
  • No brittle DOM scraping — reads Checkatrade's embedded Next.js data stream, so the output stays stable when the page layout changes.
  • JSON, CSV, Excel or API — pipe straight into your sheet, CRM, BI tool or pipeline. Billed per tradesperson.

🎯 Use cases

You are a…Use it to…
Lead-gen / sales teamBuild a list of local tradespeople by trade + town, with phone, rating and skills
Market researcherMeasure rating and review distribution and trade density across UK regions
Trades business ownerBenchmark competitors in your area — ratings, review volume, skills and badges
Agency / directory builderSeed a UK tradesperson dataset with structured company + contact rows
RecruiterFind verified tradespeople by skill and location

📥 Supported inputs

InputExampleWhat it does
Trade + locationtrade: Builder, locations: ["London"]Builds the search and paginates the results
Search-listing URLhttps://www.checkatrade.com/Search/Builder/in/LondonPaginates that trade/location's results
Profile URLhttps://www.checkatrade.com/trades/{slug}Scrapes that single tradesperson in full detail

Not supported: buyer messages, quote/booking flows, private/account-only data, and anything behind a Checkatrade login. The actor reads only public search-listing and trade-profile pages.

⚙️ How it works

  1. Classify every input — a trade + location becomes a /Search/{Trade}/in/{Location} URL; pasted URLs are sorted into search vs profile.
  2. Unlock each page with a browser TLS fingerprint over a UK residential IP, so the real page is returned instead of the Cloudflare challenge.
  3. Parse the page's embedded Next.js app-router data stream — a search page yields 12 tradespeople; the ?page=2, ?page=3 … sequence is followed automatically up to your limit.
  4. Enrich each tradesperson from their profile page (when Scrape profile pages is on): full description, all skills, services offered and reviews.
  5. Emit one flat, deduplicated row per tradesperson to the dataset.

⚙️ Input parameters

FieldTypeDefaultDescription
tradestringTrade/category to search, e.g. Builder, Electrician, Plumber.
locationsarrayLocations to search, e.g. ["London", "Manchester"]. Combined with trade.
startUrlsarraySearch-listing URLs and/or profile URLs. Auto-classified.
scrapeDetailsbooleanfalseAlso fetch each profile page for description, all skills, services and reviews (~2× requests). Pasted profile URLs are always fully detailed.
maxItemsinteger1000Max rows for the whole run.
maxItemsPerSearchinteger1000Max tradespeople per search.
maxConcurrencyinteger6Parallel requests. Keep moderate — Checkatrade is Cloudflare-protected.
maxRequestRetriesinteger15Retry budget per request on Cloudflare challenges (403), 429 and network errors.
proxyobjectApify Residential (GB)Applies to free-tier runs; paid runs use a built-in UK residential pool.

📊 Output overview

Each dataset record is one tradesperson (company). Rows carry the search-card fields (name, phone, locality/region, rating, reviews, skills, badges, logo, profile URL) and — when Scrape profile pages is on, or for pasted profile URLs — the detail fields (full description, all skill labels, services offered, reviews). Ratings are out of 10.

📦 Output sample

{
"rowType": "tradesperson",
"companyId": "1183241",
"name": "HS Construction Services Ltd",
"slug": "hs-construction-services-ltd",
"profileUrl": "https://www.checkatrade.com/trades/hs-construction-services-ltd",
"summary": "Builders and general construction across London.",
"logoUrl": "https://images.checkatrade.com/…/logo.png",
"locality": "London",
"region": "Greater London",
"rating": 9.82,
"recentReviewsCount": 40,
"totalReviews": 77,
"phone": "07401 291473",
"phoneRaw": "+447401291473",
"skills": [
{ "id": 12, "label": "Builder", "subSkills": ["Extensions", "Loft conversions"] },
{ "id": 34, "label": "Carpenter", "subSkills": ["Doors", "Flooring"] }
],
"skillLabels": ["Builder", "Carpenter"],
"qualityBadges": ["Verified"],
"trackingBadges": ["insurance_verified"],
"isSponsored": false,
"memberSince": "2018",
"images": ["https://images.checkatrade.com/…/project1.jpg"],
"searchTrade": "Builder",
"searchLocation": "London",
"sourceUrl": "https://www.checkatrade.com/Search/Builder/in/London",
"sourceMode": "search",
"scrapedAt": "2026-07-06T05:00:00.000Z"
}

🗂 Key output fields

FieldTypeNotes
name / profileUrlstringCompany name + canonical profile URL
phone / phoneRawstringFormatted number + E.164 form
locality / regionstringCompany location
ratingnumberRecent mean review score, out of 10
recentReviewsCount / totalReviewsnumberRecent + all-time review counts
skillsarrayEach skill group: id, label, sub-skills
skillLabelsstring[]Flattened skill labels for easy filtering
qualityBadges / trackingBadgesstring[]Quality + insurance-verification badges
isSponsored / memberSinceboolean / stringSponsored flag + membership year
logoUrl / imagesstring / string[]Company logo + gallery images
fullDescription / allSkillLabels / servicesOffered / reviewsPresent with scrapeDetails / on profile URLs

❓ FAQ

Can I get the tradesperson's phone number? Yes — the public phone number is returned for most listings, in both the formatted (07401 291473) and E.164 (+447401291473) forms.

How many tradespeople can I get per search? Checkatrade returns 12 per page and paginates deep (the stream carries totalResults / totalPages). Use a specific trade + location and maxItemsPerSearch to cap.

What does Scrape profile pages add? The search row is already rich (~30 fields). Turning it on visits each profile to add the full description, all skill labels, services offered, accreditation and reviews — at roughly double the requests. Profile URLs you paste are always fully detailed.

Do I need to configure proxies? No. UK residential routing is built in (Checkatrade blocks datacenter IPs with a Cloudflare challenge). Just give it a trade + location or URLs.

Which locations work? Any town, city or area Checkatrade supports, e.g. London, Manchester, Birmingham, Leeds. Multi-word areas are Title-Cased and dash-joined automatically.

💬 Support

Found a bug or need an extra field? Open an issue on the actor's Issues tab and it'll be looked at quickly.

🛠 Additional services

Need a custom field, another UK trades directory (Rated People, MyBuilder, TrustATrader), or a scheduled tradesperson feed into your CRM or warehouse? Custom scraping and pipeline work is available on request.

🔎 Explore more scrapers

Looking for more directory, local-business or review data sources? Check out the other directory, lead-gen and review scrapers in the same publisher's collection on the Apify Store.


⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Checkatrade or any of its subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available Checkatrade search-listing and trade-profile pages — no authenticated endpoints, no login-only or private data. Users are responsible for ensuring their use complies with Checkatrade's Terms of Service, applicable data-protection law (including UK GDPR where relevant) and any contractual obligations of their own organisation. Use scraped personal data (such as tradesperson names and phone numbers) lawfully and honour opt-out / do-not-contact requirements.


SEO Keywords

checkatrade scraper, scrape checkatrade, checkatrade data extraction, checkatrade api, tradesperson scraper, uk trades directory scraper, checkatrade leads, checkatrade phone number scraper, builder scraper uk, electrician scraper, plumber scraper, checkatrade reviews scraper, local trades data, uk tradesmen data, checkatrade listings scraper, trades lead generation, checkatrade profiles, checkatrade search scraper, apify checkatrade, uk contractor data