HomeStars Scraper | Canadian Contractor Phones avatar

HomeStars Scraper | Canadian Contractor Phones

Pricing

from $2.20 / 1,000 results

Go to Apify Store
HomeStars Scraper | Canadian Contractor Phones

HomeStars Scraper | Canadian Contractor Phones

Scrape HomeStars.com city and trade directories plus public contractor profiles. Export company names, guest-visible phones, websites, ratings, and city. Guest pages only — no Get in touch. CSV, Excel, or JSON.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Categories

Share

HomeStars scraper for public HomeStars.com Canadian pages. Extract HVAC contractors, plumbers, electricians, roofers, and renovation companies from city directories, trade lists, and public pro profiles. Export company names, public phones, websites, ratings, and city to CSV, Excel, or JSON. Guest HTML / __NEXT_DATA__ only.

This Actor is built for no-code operators first: pick a city slug (for example edmonton or calgary-alberta), set maxResults, click Start, and download the Dataset. Developers can call the same Actor from the Apify API, Make, n8n, Zapier, LangChain, or a schedule.

Thin Apify Actor + managed worker. The worker owns Canadian residential egress. You do not send cookies, Get in touch POSTs, or proxyUrl. This Actor does not hit /search (that path is 404). Product host is www.homestars.comhomestars.ca has no DNS.


What is HomeStars Scraper?

HomeStars Scraper is a HomeStars.com data extraction tool for Canadian home-service leads. It collects guest-visible listings and contact fields that a logged-out visitor can already see on Canada's largest home-services review platform.

Give it a city slug, a trade (electrician, HVAC / air-conditioning repair), or a live /profile/ URL. The Actor:

  1. Validates the input (searchType, city, optional cluster / trade)
  2. Calls a managed worker that fetches HomeStars __NEXT_DATA__ / _next/data JSON
  3. Parses opened surfaces into Dataset rows (name, phones, emails, address, person/org)
  4. Enriches list cards by opening /profile/ (merchant phones are already in the page JSON)
  5. Dedupes by slug and caps output with maxResults / maxPages
  6. Writes INPUT_ECHO, RUN_SUMMARY, and (on failure) ERROR_SUMMARY to the key-value store

Typical users:

  • B2B sales selling to Canadian trades (SaaS, insurance, fleet, financing, marketing)
  • Lead-gen building HVAC / electrician / plumber lists by metro
  • Recruiting for skilled trades
  • Market research on ratings and review density by city

What can this HomeStars scraper do?

Mode (searchType)What you scrapeRequired input
city-list/find-professionals/{city}city (calgary-alberta, edmonton, montreal). Pagination is ?page=
trade-city/{cluster}/{trade}-pros/{city}cluster + trade + city
national-trade/{cluster}/{trade}-proscluster + trade (e.g. electricity / electrician, air-conditioning / air-conditioning-repair)
profile/profile/{numeric}-{slug}detailUrls or profileSlug
all-citiesMerge /all-cities + hub + homenone (hub omits some QC slugs like montreal — those still work as city-list)
all-tradesHarvest live /{cluster}/{trade}-pros pairsnone
privacyHomeStars Inc. street + privacy officer emailnone
about / homeAbout has no merchant leads; home has platform support telnone

enrichDetails defaults on. City/trade list cards have no merchant phone — the worker must open the public profile.

Honest limits (read this before you buy)

  • No keyword /search. https://www.homestars.com/search is 404. The homepage box is a job funnel, not a SERP.
  • No Get in touch / /send-request-to. That path is a write/lead form, not a public read.
  • Merchant email and street are usually absent on guest profiles. Rows still include leadAbsences. Platform service@homestars.com / 877-549-0757 are not shop contacts.
  • Person names only when Ask-a-pro / a reply shows a full name. Review firstName is not a merchant contact.
  • /all-cities is incomplete. montreal / gatineau still work as city-list.
  • City slugs are not always the short name. Bare calgary is a hub with 0 cards; the live list is calgary-alberta.
  • Slug prefix ≠ ServicePro.id. Dedup by the full /profile/ slug.
  • Do not guess trade URLs. Invented paths such as /heating/heating-pros redirect to the hub. Use all-trades or a live pair.

What HomeStars data can I extract?

FieldWhat you get
name / org.nameCompany name on the card / profile
kindlist, profile, privacy
urlLive https://www.homestars.com/profile/…
phones{ value, type, e164 } from serviceProPublicProfile.phone
emailsUsually empty + leadAbsences on merchants; privacy officer on privacy
addressCity / locality on profiles; street only on the HomeStars Inc. privacy page
web.websiteMerchant site from links[WEBSITE]
rating / reviewCountPublic ratings when present
listingTierpremium vs organic on lists
workArea.localitiesService area cities on profiles
leadSource / leadReveal / leadAbsencesHow the contact was (or was not) obtained

You do not get: quote-request inboxes, logged-in-only phones, invented emails, or sitemap-wide national dumps in one click (cap with maxResults).

Export scraped HomeStars data as JSON, CSV, Excel, or JSONL. Schedule runs, monitor them, or pull results through the Apify Dataset API.


How does this compare to other HomeStars scrapers?

Other Store Actors also scrape HomeStars. This one is a dedicated www.homestars.com guest parser with pay-per-event pricing and platform usage included.

NeedThis ActorTypical other HomeStars Actor
Product hostwww.homestars.com (homestars.ca has no DNS)Often marketed as HomeStars.ca
Keyword searchNot available (/search is 404)Some crawl sitemaps instead
Public profile phoneYes (in NEXT_DATA; E.164)Yes
Merchant emailUsually not on the page (leadAbsences)Usually not (behind Get in touch)
Merchant streetUsually not on the pageSometimes in a long bio
Social / badges / full review textNot the primary outputSome extract badges / social
Pricing$3.00 / 1,000 results (FREE/BRONZE), start $0.005Often extra per-profile events + you pay proxies
Platform usageIncluded (User pays platform usage costs = No)Often billed separately
ProxiesWorker-owned CA residential — do not send proxyUrlYou typically configure Apify Proxy

If you need US Angi / Angie's List contractors, use Angi Scraper. If you need Google Maps places, use Google Maps Scraper. For a generic protected URL, use Stealth Web Scraper only when no dedicated Actor exists.


More Actors like this

Need US Angi contractors, Care.com caregivers, Google Maps local businesses, or a generic protected-page scrape? Use a dedicated Actor below for structured fields. Use this Actor for HomeStars.com Canadian HVAC, electrician, plumber, and renovation directories plus public profile phones.

Similar home-service & local-lead scrapers

Prefer a dedicated site scraper?

If your target has a specialized Actor below, use that first — usually cheaper and more structured than a generic URL scrape.

Local services & lead gen

Real Estate

Jobs & Freelance

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

General tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.

Need a custom site (listing + detail, your field list)? Submit a custom scraper request.


How to scrape HomeStars.com (no code required)

  1. Create a free Apify account
  2. Open HomeStars Scraper
  3. Choose searchType: city-list, trade-city, national-trade, profile, all-cities, all-trades, or privacy
  4. For a city directory, enter a live city slug (edmonton, calgary-alberta, montreal, ottawa, winnipeg)
  5. For a trade, set cluster + trade (electrician = electricity / electrician; HVAC repair = air-conditioning / air-conditioning-repair)
  6. Click Start and download the Dataset as JSON, CSV, Excel, or JSONL

Start with maxResults: 3–5 to verify the city and trade, then scale up. Empty {} lists Calgary (calgary-alberta) so the platform auto-test succeeds — for real jobs, pass a fresh city or trade.

Scrape HomeStars contractors by city

In plain English: pick city-list + a city slug → get a table of HomeStars pros in that metro, then enrich public profile phones.

You give: searchType=city-list, city=edmonton, maxResults=20, enrichDetails=true.

Scrape electricians or HVAC nationally

In plain English: pick national-trade + a live cluster/trade pair. Do not invent /heating/heating-pros.

You give: searchType=national-trade, cluster=electricity, trade=electrician.

Scrape a trade in one city

In plain English: trade-city walks /{cluster}/{trade}-pros/{city} with ?page= pagination.

You give: searchType=trade-city, cluster=air-conditioning, trade=air-conditioning-repair, city=ottawa.

Pull one public profile or HomeStars Inc. contact

In plain English: paste a live https://www.homestars.com/profile/{id}-{slug} URL into detailUrls. Use privacy for the company street + privacy-officer email (not a merchant inbox).

Feed AI agents and automations

In plain English: start the Actor from Make, n8n, Zapier, LangChain, or the Apify API → Dataset rows are structured JSON (name, url, phones, address, leadAbsences).


How much does it cost to scrape HomeStars?

This Actor uses pay-per-event pricing. You are charged for:

EventPrice
Actor Start (apify-actor-start)$0.005 per start
Result (apify-default-dataset-item)$3.00 / 1,000 results ($0.003 each on FREE/BRONZE)

Platform usage costs are included — you do not pay separate Apify compute/proxy usage for this Actor on top of the event prices above (User pays platform usage costs = No).

Volume discount tiers (per result)

Tier$/1,000per result
FREE*$3.00$0.003
BRONZE$3.00$0.003
SILVER$2.60$0.0026
GOLD$2.20$0.0022
PLATINUM$2.00$0.002
DIAMOND$1.60$0.0016

*FREE matches BRONZE for this Actor.

Example cost estimates (FREE/BRONZE)

Results collectedApprox. event cost*
100~$0.31
1,000~$3.01
10,000~$30.01

*Assumes one Actor start at default memory billing for start events, plus $0.003 per Dataset item. Exact start billing can scale with allocated memory (one start event per GB, minimum one). Default memory is 1024 MB.

Empty / failed runs that write zero default-dataset rows are not billed as results (you still pay Actor Start).

Free plan limits

On a free Apify plan, this Actor enforces developer limits of 10 runs and 200 results per run. Upgrade to a paid Apify plan for unlimited runs (event prices still apply).

Is scraping HomeStars free?

You can try the Actor on Apify's free plan subject to the run/result caps above. After that you pay per start and per Dataset row — not per compute unit.


Input examples

City directory (Edmonton)

{
"searchType": "city-list",
"city": "edmonton",
"maxResults": 20,
"enrichDetails": true
}

National electricians

{
"searchType": "national-trade",
"cluster": "electricity",
"trade": "electrician",
"maxResults": 15,
"maxPages": 1,
"enrichDetails": true
}

HVAC repair in Ottawa

{
"searchType": "trade-city",
"cluster": "air-conditioning",
"trade": "air-conditioning-repair",
"city": "ottawa",
"maxResults": 10,
"enrichDetails": true
}

Montreal city list (Quebec)

{
"searchType": "city-list",
"city": "montreal",
"maxResults": 10,
"enrichDetails": true
}

HomeStars Inc. privacy / company contact

{
"searchType": "privacy"
}

Output

Each Dataset row is a lead-shaped object: name, kind, url, phones[], emails[], address (street, locality, region, postalCode, country, full), person, org, web.website, leadSource, leadReveal, leadAbsences.

List rows without enrichDetails have empty merchant phones plus leadAbsences — that is expected, not a parse bug. Turn enrich on to open /profile/ and collect serviceProPublicProfile.phone. Merchant email and street are usually still absent; do not treat platform support numbers as shop contacts.

Key-value store: INPUT_ECHO, RUN_SUMMARY, ERROR_SUMMARY.


FAQ

Do I need a HomeStars account or API key?

No. This Actor reads guest www.homestars.com pages. You do not log in, and you do not pass a HomeStars developer key.

Can I get every contractor's email and street address?

Usually no. HomeStars hides merchant email behind Get in touch. Guest profiles typically expose phone + website + city, not a shop inbox or civic street. This Actor records that as leadAbsences instead of inventing fields. Use privacy only for HomeStars Inc. itself.

Why isn't there a search box / keyword mode?

/search and /s return 404. The homepage "what do you need done?" box is a quote funnel, not a directory SERP. Use city lists, trade directories, or a live profile URL.

Which cities and trades are supported?

Any live directory slug on www.homestars.com. Examples that work: edmonton, calgary-alberta, montreal, ottawa, winnipeg, hamilton. Trade examples: electricity / electrician, air-conditioning / air-conditioning-repair. Run all-trades / all-cities to harvest live pairs (caps still apply). Bare calgary is a hub with 0 cards.

Can I scrape HomeStars.ca or the UK site?

No. homestars.ca has no DNS. m.homestars.com/ is 404. homestars.co.uk fails TLS. There is no French language switch. The product is www.homestars.com.

Why not Get in touch?

Submitting Get in touch is a write to HomeStars, not a public read. This Actor never POSTs /send-request-to.

This Actor collects publicly reachable guest pages. You are responsible for how you use the data (including Canadian privacy rules). This is an unofficial third-party tool. Follow HomeStars' terms and your own compliance review.

Is this affiliated with HomeStars?

No.

Do I need to bring proxies?

No. Do not send proxyUrl. The worker provides Canadian residential egress.

What if a run returns 0 rows or a challenge page?

Retry with another opened city / trade, or use searchType=privacy to confirm the worker is healthy. Check ERROR_SUMMARY in the key-value store. Space large harvests — rapid sequential crawls can hit a challenge page. If a city returns the hub with 0 cards, try the province suffix (calgary-alberta).

Can I use it from Make, n8n, Zapier, or LangChain?

Yes. Actor ID lentic_clockss/homestars-scraper. See Connect to your tools.


Input reference

ParameterTypeDescription
searchTypestringcity-list, trade-city, national-trade, profile, all-cities, all-trades, privacy, about, home. search / map / quote / login are out of scope
citystringLive city slug (edmonton, calgary-alberta, montreal). Not always the short name
clusterstringURL first segment (electricity, air-conditioning)
tradestringTrade without -pros (electrician, air-conditioning-repair)
profileSlugstringLive /profile/{numeric}-{name} slug
detailUrlsarrayLive https://www.homestars.com/profile/… URLs
marketstringca (only opened market)
enrichDetailsbooleanFollow /profile/ for phones (default on)
maxResultsintegerCap Dataset rows (free plan ≤ 200; worker hard cap 200)
maxPagesinteger?page=N pages (worker hard cap 50)
workerBaseUrlstringOptional HTTPS override. Production source of truth is Actor env

Do not send proxyUrl, cookies, Get in touch payloads, or guessed /search URLs.

Full output schema is on the Dataset tab. Key-value store: INPUT_ECHO, RUN_SUMMARY, ERROR_SUMMARY.


Connect to your tools

PlatformHow to connect
Make.comSearch "Apify" → "Run Actor" → Actor ID lentic_clockss/homestars-scraper
n8nAdd Apify node → "Run Actor" → same Actor ID
ZapierApify integration → "Run Actor"
LangChainApifyActorsTool("lentic_clockss/homestars-scraper")
Python / Node.jsApify SDK or direct HTTPS call

API call example

curl "https://api.apify.com/v2/acts/lentic_clockss~homestars-scraper/runs" \
-X POST \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchType":"city-list","city":"edmonton","maxResults":10,"enrichDetails":true}'

Results come back in JSON via the Apify Dataset API:

GET https://api.apify.com/v2/datasets/{datasetId}/items?format=json

All public Actors from lentic_clockss. Click a name to open the Store detail page.

Local services & lead gen

Developer / Open source / AI

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

→ Browse the full profile: apify.com/lentic_clockss


Changelog

  • 0.1.3 — Store README / SEO rewrite; pay-per-event pricing (Actor Start $0.005, result $3.00/1,000 with volume tiers); platform usage included.
  • 0.1.2all-trades harvest; skip /all-cities on every city-list; listingTier / workArea fields.
  • 0.1.1 — Thin Actor + Cloud Run worker for www.homestars.com city, trade, and public profile phones.