USA Plumbers Scraper — Plumber Leads with Phones avatar

USA Plumbers Scraper — Plumber Leads with Phones

Pricing

from $4.19 / 1,000 results

Go to Apify Store
USA Plumbers Scraper — Plumber Leads with Phones

USA Plumbers Scraper — Plumber Leads with Phones

Find plumber leads in any US city from Google Maps: business name, phone, website, street address, rating and review count. About USD 5.23 per 1,000.

Pricing

from $4.19 / 1,000 results

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

1

Monthly active users

6 days ago

Last modified

Security

Limited permissions

Share

USA Plumbers Scraper builds plumber leads from Google Maps for any US city: business name, phone, full address with city, state and ZIP, website, star rating, review count, weekly opening hours, Maps category, coordinates and place ID. It is built for teams that sell to plumbing companies, such as field-service software, parts suppliers, marketing agencies and insurers, and it costs about USD 5.23 per 1,000 plumbers on the FREE tier (USD 0.005234 each; USD 4.19 per 1,000 on GOLD).

What data does the USA Plumbers Scraper return?

Each dataset row is one plumbing business from a Google Maps results list, completed from its Maps place page. Sponsored listings are skipped, and a business found by two searches is saved once.

FieldWhat it contains
businessNameBusiness name as shown on Google Maps
phonePhone number, for example (713) 868-9907
addressFull address from the place page, for example 3780 Yale St, Houston, TX 77018
websiteBusiness website when listed (may include tracking parameters)
rating, reviewCountGoogle Maps star rating and number of reviews
categoriesThe Maps category shown in the list, usually Plumber
googleMapsUrl, placeIdPlace link and identifier
gpsCoordinateslatitude and longitude of the place
source_url, scraped_atThe Maps search that produced the record and collection time
city, state, zipCodeParsed from the full address; null for service-area businesses that hide their address
hoursWeekly opening hours by day, for example { "monday": "8 AM–6 PM", "sunday": "Closed" }, or null when Maps lists none
isSponsoredAlways false, because sponsored listings are removed

How do I get a list of plumbers in a US city?

Give city names or full search phrases and a result limit. The Actor runs one Google Maps search per query, scrolls the results list until it has enough places, opens each place page for the full address and hours, and saves them.

InputExampleNotes
searchQueries["emergency plumber Miami FL"]Free-text Google Maps searches, used as typed
cities["Chicago IL", "Dallas TX"]Expanded to plumbers in <city>; ignored when searchQueries is set
startUrlshttps://www.google.com/maps/search/plumbers+in+Denver+COGoogle Maps search URLs; when set, queries and cities are ignored
maxResults200Total records across all queries, 1 to 10,000 (default 20)
maxResultsPerQuery100Records per search, 1 to 500 (default 20); a Maps search lists about 120 places at most
languageenBrowser language header; searches always request English (US) results

With no queries, cities or URLs, the Actor searches the five largest US cities: New York, Los Angeles, Chicago, Houston and Phoenix.

Plumbers in three cities, up to 50 each:

{
"cities": ["Chicago IL", "Dallas TX", "Miami FL"],
"maxResults": 150,
"maxResultsPerQuery": 50
}

Specific searches:

{
"searchQueries": ["plumbers in Houston TX", "water heater repair Phoenix AZ"],
"maxResults": 40,
"maxResultsPerQuery": 20
}

maxResults is a total: with the default of 20, the first query can use the whole budget, so raise it when you list several cities.

Does it include emails, opening hours or ZIP codes?

Opening hours and ZIP codes, yes; emails, no. Each place page gives the full address and weekly hours: in a 2026-10-27 cloud run of 20 Houston plumbers, hours were filled for 20 and city, state and ZIP for 18 (the other two are service-area businesses with no public address). Google Maps does not show emails. For emails, use Contractor Leads Scraper.

When should I use it, and when not?

Use it when you need a fast, low-cost list of plumbing companies with phone, website, rating and review count for one or many US cities, for cold calling, territory planning or market sizing.

Use another Actor when:

How do I run it from code?

JavaScript with apify-client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/usa-plumbers-scraper').call({
cities: ['Atlanta GA', 'Denver CO'],
maxResults: 100,
maxResultsPerQuery: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const plumber of items) console.log(plumber.businessName, plumber.phone, plumber.website);

Python with apify-client:

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("muhammadafzal/usa-plumbers-scraper").call(run_input={
"searchQueries": ["plumbers in Seattle WA"],
"maxResults": 20,
})
for plumber in client.dataset(run.default_dataset_id).iterate_items():
print(plumber["businessName"], plumber["phone"], plumber["rating"], plumber["reviewCount"])

Use it from an AI assistant

USA Plumbers Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add the single-tool URL https://mcp.apify.com/?tools=muhammadafzal/usa-plumbers-scraper to your client and ask, for example: "Get 50 plumbers in Phoenix, AZ with phone numbers, websites and Google ratings." Each record is charged at the prices below, so include a result limit in your request.

What does the output look like?

One record from a cloud run on 2026-10-27 (Google Maps URL shortened):

{
"businessName": "Nick's Plumbing & Air Conditioning",
"phone": "(713) 868-9907",
"address": "3780 Yale St, Houston, TX 77018",
"website": "https://www.nicksplumbing.com/",
"rating": 4.7,
"reviewCount": 4412,
"categories": ["Plumber"],
"hours": {
"tuesday": "8 AM–6 PM",
"wednesday": "8 AM–6 PM",
"thursday": "8 AM–6 PM",
"friday": "8 AM–6 PM",
"saturday": "8 AM–5 PM",
"sunday": "Closed",
"monday": "8 AM–6 PM"
},
"googleMapsUrl": "https://www.google.com/maps/place/Nick%27s+Plumbing+%26+Air+Conditioning/data=...",
"gpsCoordinates": { "latitude": 29.8200218, "longitude": -95.3989549 },
"placeId": "0x8640c76a4c3f8f73:0x7ae991add0786989",
"source_url": "https://www.google.com/maps/search/plumbers%20in%20Houston%20TX?hl=en&gl=us",
"scraped_at": "2026-10-27T13:48:21.891Z",
"isSponsored": false,
"city": "Houston",
"state": "TX",
"zipCode": "77018"
}

How much do plumber leads cost?

The Actor uses pay-per-event pricing, and platform usage is included in the event prices. Each record saved to the default dataset is charged automatically, so there is no double charging.

EventFREEBRONZESILVERGOLD / PLATINUM / DIAMOND
Result (one dataset row)USD 0.005234USD 0.005103USD 0.004972USD 0.004187
Actor start (per started GB of allocated memory)USD 0.006251USD 0.006094USD 0.005938USD 0.005

The default memory follows your input: 1 GB for one query of up to 20 results, 2 GB for several queries or 21 to 50 per query, and 4 GB above 50 per query. Worked totals on the FREE tier at 2 GB (two start events, USD 0.012502):

  • 20 plumbers (Console prefill): 20 × USD 0.005234 + USD 0.012502 = USD 0.1172
  • 100 plumbers (five cities, 20 each): 100 × USD 0.005234 + USD 0.012502 = USD 0.5359

Limits and reliability

  • Speed: 20 Houston plumbers, each with its place page, took about 2 minutes in a cloud run on 2026-10-27; queries run one at a time. Near the run timeout the Actor stops opening place pages, saves what it has and says so in OUTPUT.
  • Scale: up to 10,000 records per run in total, about 120 per search; add more cities or narrower searches for larger lists.
  • Field coverage in that run: phone, website, rating, review count and hours 20 of 20; full address with city, state and ZIP 18 of 20.
  • Access: pages load in a real browser through a US network route, without login or an API key. The run summary is saved as OUTPUT: status (DATA, EMPTY, BLOCKED or FAILED), records delivered, records with full address or hours, charged result events, stop reason and warnings. A blocked or failed run ends as failed with 0 records and charges only the start events.

FAQ

Is there a free plumber leads tool?

You can run USA Plumbers Scraper on Apify's free plan with no subscription. Each record is charged at the FREE-tier price above.

Does it give me plumbing jobs or customers?

No. It returns plumbing businesses for B2B outreach. If you are a plumber looking for customer leads, this is the wrong tool.

Can I get every plumber in a state?

List the state's cities in cities and set maxResults high enough, for example 30 cities × 100 per query. Each search shows about 120 places at most.

Why are some websites full of utm_ parameters?

Google Maps lists the URL the business entered, including tracking parameters. Strip the query string if you only need the domain.

Yes, a Google Maps search URL. Put it in startUrls; queries and cities are then ignored. Single place pages are not a supported input because the Actor reads results lists.

Does it work outside the USA?

It is built and tested for US searches; searches always request English (US) results.

The Actor reads public Google Maps listings without logging in and does not bypass access controls. Business contacts can include personal data: use them lawfully and follow CAN-SPAM, TCPA, Do Not Call and anti-spam rules for outreach. This tool is not affiliated with Google, and this is not legal advice.

Last verified: 2026-10-27