Contractor Leads — Plumbers, Electricians, HVAC & Roofers avatar

Contractor Leads — Plumbers, Electricians, HVAC & Roofers

Pricing

from $3.00 / 1,000 area queries

Go to Apify Store
Contractor Leads — Plumbers, Electricians, HVAC & Roofers

Contractor Leads — Plumbers, Electricians, HVAC & Roofers

Plumbers, electricians, HVAC companies, roofers, painters, landscapers, cleaners and other home-service businesses in any city worldwide, with phone, website, email where published, address and a normalised trade field. Open data. $0.003 per city + $1 per 1,000 businesses.

Pricing

from $3.00 / 1,000 area queries

Rating

0.0

(0)

Developer

ActorForge

ActorForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Security

Limited permissions

Share

Plumbers, electricians, HVAC companies, roofers, painters, landscapers, cleaners and other home-service businesses in any city worldwide, with phone, website, email where published, address and a normalised trade field. Open data. $0.003 per city + $1 per 1,000 businesses.

Find plumbers, electricians, HVAC companies, roofers and other trades in any city, with their business phone numbers. Type a city or draw a radius, pick trades, and get one row per business with phone (E.164), website, business email where published, full address and coordinates, plus a normalised trade field (Plumbing, Electrical, HVAC, Roofing & exteriors, General contractor & remodeling, Painting, Landscaping & garden, Cleaning, Pest control, Locksmith & security, Solar and more) worked out from the business's own categories, so mixed lists sort cleanly.

Made for companies that sell to the trades: field-service and scheduling software, lead-gen and marketing agencies, suppliers and distributors, insurers and franchise developers. Unlike directory scrapers limited to the US, it works in any country Overture covers.

The data is the open Overture Maps places dataset (Meta, Microsoft, Foursquare and other sources). Nothing is scraped from Google, Yelp, Angi, Houzz or the BBB, so there are no reviews, ratings or licence numbers.

$0.003 per city query + $1 per 1,000 businesses. A query with no matching businesses is free.

What data does it return?

Every run outputs clean, schema-validated rows like these:

nametradecategoryphoneswebsitesfullAddress
Public Service PlumbersPlumbingplumbing+12148311959https://www.publicserviceplumbers.com5610 Dyer St, Dallas, TX 75206-5004, US
Kpost Roofing & WaterproofingRoofing & exteriorsroofing+14698988099https://www.kpostcompany.com1841 W Northwest Hwy, Dallas, TX 75220-7017, US
Excell ElectricElectricalelectrician+12143910040www.excellelectric.com11510 Data Dr, Dallas, TX 75218-1419, US
M. B. Kiser Heating & Air Conditioning Co. Inc.HVAChvac_service+12148239958https://mbkiser.com1221 Round Table Dr, Dallas, TX 75247-3503, US
Kpost Roofing & WaterproofingRoofing & exteriorsroofing+14698988099https://www.kpostcompany.com1841 W Northwest Hwy, Dallas, TX 75220-7017, US

How much does it cost?

Transparent pay-per-event pricing — you only pay for what you get, and the actor always respects your run budget: set a maximum total charge and it stops cleanly at the cap instead of overrunning.

EventPriceChargedWorked example
area-query$0.003once per run, when the area query returns at least one placeAny city, bbox or radius = $0.003; a query with no matching places is free
place-result$0.001per place row delivered (contacts, address, coordinates, sources and attribution included)200 dentists in Austin = $0.003 + $0.20 = $0.203; 1,000 restaurants in Berlin = $1.003
apify-actor-start$0.00005per run per GB of memory (platform start fee)One run at 1 GB = $0.00005

Input options

FieldTypeRequiredDefaultDescription
locationstringno—A city, optionally with region or country: "Austin, TX", "Berlin", "London, Ontario", "Paris France". You can also type "dentists in Austin TX" (the part before "in" becomes the category when Categories is empty), coordinates "30.2672,-97.7431,3km", or a bbox "west,south,east,north". 32,000+ cities with 15,000+ people are built in; smaller towns are looked up in Overture's own divisions data and need a region or country. Ignored when bbox or lat/lon are set.
categoriesarrayno["plumbing","electrician","hvac_service","roofing","contractor","painting","landscaping","home_cleaning","pest_control_service","handyman"]Home-service trades (Overture ids or plain words): plumbing, electrician, hvac_service, roofing, contractor, painting, landscaping, home_cleaning, pest_control_service, handyman, key_and_locksmith, flooring_contractor, solar_installation, tree_service, mover … Use home_service for every trade at once.
maxPlacesintegerno1000Stop after this many places. Highest-confidence places come first (nearest first for a radius search). Places beyond the cap are never charged.
keywordstringno""Optional. Only places whose name (or brand name) contains this text, case-insensitive, e.g. "Starbucks" or "dental".
radiusKmnumberno—Radius for lat/lon (default 5 km). With a city name it searches this radius around the city centre instead of the whole city. Results get distanceKm and come nearest first.
countryCodestringno""Optional two-letter ISO code (US, DE, GB...). Picks the right city when a name exists in several countries and keeps only places whose address is in that country.
requirePhonebooleannofalseSkip places without a phone number.
requireWebsitebooleannofalseSkip places without a website. Skipped places are never charged.
requireEmailbooleannofalseSkip places without a business email (after the personal-email filter).
includePhonesbooleannotrueBusiness phone numbers as published for the place, normalised to E.164 (+15125550100) where possible.
includeEmailsbooleannotrueBusiness emails from the source data. Addresses on the business's own website domain and role mailboxes (info@, office@, bookings@...) are kept; free-mail addresses (gmail, outlook...) are kept only when they contain the business name. Others are dropped as possibly personal and counted in droppedPersonalEmails.
matchAlternateCategoriesbooleannotrueAlso return businesses whose secondary categories match (many contractors list several trades). On by default here.
minConfidencenumberno0.5Overture's 0-1 confidence that the place exists as described. 0.5 drops most stale or duplicate records; 0.9 keeps only well-corroborated places; 0 returns everything.
bboxarrayno—Optional [west, south, east, north] in degrees (longitude, latitude, longitude, latitude), e.g. [-9.20, 38.69, -9.10, 38.76]. Up to 1.5 x 1.5 degrees (about one metro area). Takes priority over location.
latnumberno—Optional centre latitude for a radius search (with lon and radiusKm). Takes priority over location.
lonnumberno—Optional centre longitude for a radius search.
includeFieldsarrayno[]Optional. Keep only these fields in each row (id is always kept). Any of: id, name, category, basicCategory, categoryHierarchy, alternateCategories, confidence, operatingStatus, address, fullAddress, lat, lon, distanceKm, phones, websites, emails, socials, brand, sources, licence, licenceUrls, attribution, googleMapsUrl, overtureRelease, droppedPersonalEmails. Keep attribution if you republish the data.
releasestringno""Optional, advanced: pin an Overture release such as 2026-09-23.1. Empty = the newest release (Overture publishes monthly).

Limits & honest notes

  • No reviews, ratings, licence or insurance numbers (open data). trade is derived from Overture categories; "Other home service" covers the rarer ones.
  • Works worldwide: any city, a radius around a point, or a bounding box (one metro area per run).
  • Open data, not Google: no reviews, ratings, review counts, opening hours, photos, popular times or price levels. The Google Maps link in each row is a plain search URL built from the name and address; nothing is fetched from Google.
  • Freshness follows Overture's monthly releases. The newest release is found automatically (or pin one with release). operatingStatus is often empty, so a closed business can still appear until a source drops it; minConfidence (default 0.5) filters most stale records.
  • One query per run, up to 1.5 x 1.5 degrees (about one metro area). For a region or country, run once per city. A city query typically reads 15-45 MB of public GeoParquet in 5-15 seconds at 1 GB memory.
  • City names resolve offline from a built-in list of 32,000+ cities (Overture divisions, OpenStreetMap-based); smaller towns are looked up in Overture's divisions data and need a region or country ("Dripping Springs, TX"). No external geocoder is called.
  • The run's spend limit is respected: the area query is reserved first, places are charged before delivery, and the run stops cleanly at the limit.

Data licence and attribution

Places come from the Overture Maps Foundation places theme. Each row's sources lists the contributing datasets with their record ids, licence and licenceUrls give the licences, and attribution holds the required credit lines. If you republish the data, keep the attribution field (or show the lines below).

  • © Overture Maps Foundation, overturemaps.org
  • Meta, Microsoft, PinMeTo, Krick, RenderSEO, DAC, BrightQuery: "Data from . Available under CDLA Permissive 2.0." (CDLA-Permissive-2.0)
  • Foursquare: "Copyright 2024 Foursquare Labs, Inc. All rights reserved. Available under Apache 2.0. Foursquare data was transformed to the Overture schema. Changed: 2026-03-18." (Apache-2.0)
  • AllThePlaces: "Data from AllThePlaces. Available under CC0 1.0."

None of these licences is share-alike, so the rows may be used commercially, stored, merged with your own data and redistributed, provided the attribution and licence texts travel with them.

City boundaries used to turn a city name into a search area come from the Overture divisions theme: © OpenStreetMap contributors, Overture Maps Foundation, available under the Open Database License (ODbL) 1.0. They are used only for the search area and are not part of the output rows. The built-in city list is a derivative database offered under the ODbL; it is rebuilt from the public Overture release by a documented query.

Changes made by this actor: rows are selected by area, category, name and confidence; fields are flattened and renamed; phone numbers are normalised to E.164; possibly personal emails are removed.

Foursquare OS Places NOTICE (preserved in full, as Apache-2.0 requires; also included in the run's OUTPUT record whenever Foursquare rows are delivered):

© 2026 Foursquare Labs, Inc. All rights reserved.

The Foursquare OS Places dataset (the "Data") is licensed under the Apache License, Version 2.0 (the "License"). You may not use, modify, or distribute the Data except in compliance with the License.

As set forth more fully in the License, if you use, modify, or distribute the Data, you must: provide recipients with a copy of the License; if applicable, include prominent notices to the extent you've changed the Data; preserve attribution to Foursquare, including preserving the full content of this NOTICE.txt file.

To ensure appropriate attribution to Foursquare, we recommend the following: if using/distributing the Data in flat file form as-is or after making changes/modifications: include this NOTICE.txt file, which may be modified to include an additional notice of your changes/modifications, if any; if using/distributing the Data in API form as-is or after making changes/modifications: include a copy of the content from this NOTICE.txt file prominently in your developer documentation for such API, which may be modified to include an additional notice of your changes/modifications, if any.

You may obtain a copy of the License at: http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, the Data distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

This actor is not affiliated with, endorsed by or sponsored by Google, the Overture Maps Foundation or any data contributor. "Google Maps" is a trademark of Google LLC and is used only to describe what this actor is an alternative to.

Changelog

  • 2026-10-23 — Initial release: home-services preset of Business Places Data with a normalised trade field, $0.003 per city + $1 per 1,000 businesses.

Built and maintained by ActorForge. Reliability first: every actor in the portfolio is monitored by an automated nightly self-test, and breakages are typically fixed the same day.