Google Maps Contractor License Check avatar

Google Maps Contractor License Check

Pricing

from $5.00 / 1,000 license found in the state registers

Go to Apify Store
Google Maps Contractor License Check

Google Maps Contractor License Check

Check contractors scraped from Google Maps against official state license registers (CA, AZ, WA, FL, TX and more). Each business gets license number, type, status, expiry and the register phone, matched by phone or name. Pay only for licenses found.

Pricing

from $5.00 / 1,000 license found in the state registers

Rating

0.0

(0)

Developer

Carlos Escanez

Carlos Escanez

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Bring the contractors you scraped from Google Maps. Get back, for each one, the license the state board has on file: number, type, status, expiry date, and the name and phone in the register.

Google Maps tells you a roofer exists. It does not tell you whether that roofer holds a contractor license. This Actor takes your Google Maps results (the dataset of any Google Maps scraper run, or a pasted list) and checks every business against the official state contractor license register, by phone number first and then by business name.

You pay only for businesses where a license is found. Businesses with no license found, and businesses that cannot be checked (wrong state, not a licensed trade), come back with the reason and are not charged.

Who uses it

  • Lead-gen and marketing agencies that sell to contractors: keep the licensed ones, drop the lead-gen fronts that rank on Maps with an 800 number.
  • Insurers, bonding companies and lenders: confirm license number, type and expiry before quoting.
  • Suppliers and distributors opening trade accounts: check the license on file in seconds, in bulk.
  • Marketplaces and home-service platforms vetting pros before listing them.

Measured on real Google Maps data

Roofers taken from Google Maps searches in six metros, checked on 17 October 2026. "Checkable" means a roofing business in a state where this Actor reads the roofing list.

MetroRoofers checkableLicense foundHow
Phoenix, AZ1611by name (the Arizona ROC does not publish phone numbers)
San Diego, CA1375 by phone, 2 by name
Miami, FL64by name (the DBPR does not publish phone numbers)
Seattle, WA63by phone and name
Los Angeles, CA162by phone
Dallas, TX0not checkableTexas has no state roofing license list in this Actor

Across the four states: 27 licenses found for 57 roofers (47 %). Los Angeles is the outlier: 14 of its 16 Google "roofers" match no license under their name or phone (3 of those 14 list a toll-free or out-of-state number).

How a business is matched

  1. State from the business address, trade from the Google category (Roofing contractor, Electrician, Plumber, HVAC contractor, General contractor...), or one trade you pick for the whole list.
  2. The register lists for that state and trade are downloaded once per run. A roofer is also checked against the general building lists, because many roofers work under a general contractor license (in California, class B instead of C-39).
  3. Phone match (same 10 digits) is the strongest evidence. Then name match: identical names, or one name contained in the other ("Smith Roofing - Roof Repair San Diego" against "SMITH ROOFING INC"). A partial name match only counts when the city or ZIP code is the same.
  4. Names that only share trade words or a place name never match: "ABC Roofing" is not "XYZ Roofing", and "The Seattle Roofing Company" is not "Seattle Roofing Solutions".

Every found row says how it matched (matchedBy: phone+name, phone or name) and how sure it is (matchConfidence: high or medium), so you can filter.

Coverage by state

StateBoardTrades checkedPhone in register
ArizonaRegistrar of Contractors (ROC)roofing, general, electrical, plumbing, HVAC, pool, painting, concrete, landscapingno
ArkansasContractors Licensing Boardroofing, general, electrical, plumbing, HVAC, pool, painting, concrete, landscapingyes (99 %)
WashingtonLabor & Industriesall construction trades (one register)yes
OregonConstruction Contractors Boardall construction trades (one register)yes
CaliforniaCSLBroofing, general, electrical, plumbing, HVAC, poolyes
FloridaDBPRroofing, general, electrical, plumbing, HVAC, poolno
NevadaState Contractors Boardroofing, general, electrical, plumbing, HVAC, poolyes
AlabamaLicensing Board for General Contractorsroofing, general, electrical, plumbing, HVAC, poolyes
LouisianaState Licensing Board for Contractorsroofing, general, electrical, plumbing, HVAC, poolyes
TennesseeBoard for Licensing Contractorsroofing, general, electrical, plumbing, HVAC, poolno
North CarolinaLicensing Board for General Contractors and trade boardsroofing, general, electrical, plumbing, HVAC, pool92 %
MichiganLARAroofing, general, electrical, plumbing, HVAC, poolno
ConnecticutDepartment of Consumer Protectionroofing, general, electrical, plumbing, HVAC, poolno
DelawareDivision of Revenue and Professional Regulationroofing, general, electrical, plumbing, HVAC, poolno
VirginiaDPOR Board for Contractorsroofing, general, electrical, plumbing, HVAC, poolno
MinnesotaDepartment of Labor and Industryroofing, general, electrical, plumbing, pool84 %
TexasTDLR and TSBPEelectrical, plumbing, HVACpartly
OhioOCILBelectrical, plumbing, HVAC70 %
OklahomaConstruction Industries Boardroofingyes

Match rates were measured in Arizona, California, Florida and Washington. The other states use the same registers as the US Contractor License Lookup Actor and the same matching, but have not been measured with Google Maps data yet. Where the register has no phone, matching is by name only and fewer businesses are found.

Not covered: states not in the table (Georgia, Illinois, Colorado, New York State trade licenses and others) and New York City licenses. Businesses there come back as not checkable, with the reason.

Input

Pick one of:

  • Google Maps dataset: the dataset of a Google Maps scraper run, chosen with the dataset picker. The Actor only gets read access to that dataset. Field names from the common scrapers are recognized: title, phone / phoneUnformatted, address, city, state, postalCode, categoryName, categories, website, url, placeId.
  • Pasted list: JSON rows with at least a name and a phone or address.
{
"businesses": [
{ "title": "Pioneer Roofing Company", "phone": "+1 619-432-7663", "address": "3111 Camino Del Rio N #400, San Diego, CA 92108", "categoryName": "Roofing contractor" },
{ "name": "Trademark Roofing", "phone": "602-361-7618", "city": "Phoenix", "state": "AZ", "zip": "85016", "category": "Roofing contractor" }
],
"trade": "auto",
"maxBusinesses": 1000,
"onlyLicensed": false
}
FieldWhat it does
mapsDatasetDataset of a Google Maps scraper run.
businessesPasted list. The example list in the form is ignored when you pick a dataset and leave it untouched.
tradeauto reads each Google category. Pick a trade to check every business as that trade (for lists without categories).
maxBusinessesUpper limit of businesses read. Default 1,000.
onlyLicensedReturn only businesses with a license found.

Output

One row per business. A found license:

{
"businessName": "Pioneer Roofing Company",
"phone": "+1619-432-7663",
"city": "San Diego",
"state": "CA",
"category": "Roofing contractor",
"trade": "Roofing",
"checked": true,
"licenseFound": true,
"matchedBy": "phone+name",
"matchConfidence": "high",
"licenseNumber": "1060507",
"licenseState": "CA",
"licenseType": "Contractor (C39)",
"licenseList": "Roofing",
"licenseStatus": "ACTIVE",
"licenseExpirationDate": "2027-11-30",
"registerBusinessName": "Pioneer Roofing Company LLC",
"registerPhone": "+16194327663",
"registerCity": "San Diego",
"licenseBoard": "Contractors State License Board (CSLB)",
"charged": true
}

No license found (not charged):

{
"businessName": "RSI Roofing",
"state": "CA",
"trade": "Roofing",
"checked": true,
"licenseFound": false,
"listsChecked": "Roofing; General Building / Residential Remodeling",
"note": "No license under this phone or name in the Contractors State License Board (CSLB) lists checked. It may hold one under another name or phone.",
"charged": false
}

Not checkable (not charged): checked: false, licenseFound: null and notCheckedReason, for example "This Actor has no roofing license list for Texas."

Other columns: address, zip, website, googleMapsUrl, placeId, rating, reviewsCount, inputIndex (position in your input), licenseActive, licenseDaysToExpiry, licenseIssuedDate, registerName, registerAddress, registerZip, registerCounty, licenseSourceUrl, otherLicenses (other license numbers that also matched), checkedAt.

The run summary (key-value store, RUN_SUMMARY) lists per state: businesses, licenses loaded from the register, lists read or failed, found and not found.

Pricing

Pay per event: one license found event per business matched to a license. Businesses with no license found and businesses that cannot be checked are delivered without charge. A run over 1,000 roofers in a state where half are found charges about 500 events.

Said plainly

  • "No license found" does not mean unlicensed. The business may hold a license under a different legal name or phone, or with a qualifier in another county. It means: no license under this phone or name in the lists checked, which the row names.
  • Name matches are medium confidence unless the city or ZIP code also agrees. Filter on matchConfidence if you need only phone or same-city matches.
  • What "found" means depends on the register. California's and Arizona's lists hold active licenses only, so a match there is an active license. Washington's register also keeps expired, suspended and out-of-business registrations (81,000 of its 149,000 construction rows on 17 October 2026), so a match there can be a license that is no longer active. licenseStatus and licenseActive always say which.
  • Florida is slow. The DBPR register lists licenses by county and type, page by page: the Miami-Dade roofing and general contractor lists together (15,239 licenses) took 4.8 minutes to read in our test run. So in Florida, as in Louisiana, North Carolina and Michigan, only the trade's own list is read (the roofing list for a roofer); in Miami the general contractor list added no match. Each state has a 12-minute budget per run; a list that does not finish is reported in the row (listsChecked), and businesses that depended only on it come back as not checkable.
  • California general contractors (class B) are downloaded by county, chosen from the businesses' ZIP codes. A California business without a ZIP code is checked against the trade list only.
  • Memory. Each state's register is read on its own and released before the next one, so the default 1 GB is enough: the largest register, Washington's 149,000 rows, peaked at 448 MB. If a row ever says a register did not fit in the run's memory, run again with 2048 MB.
  • Businesses with no address on Google (service-area businesses) have no state to check. Add state in a pasted list to check them.
  • Texas roofers and general contractors are not checkable: Texas has no state license for either, and this Actor reads no Texas list for them. Texas electricians, plumbers and HVAC contractors are checked.