New York Contractor License Lookup & Leads Scraper avatar

New York Contractor License Lookup & Leads Scraper

Pricing

$0.004 / contractor licence

Go to Apify Store
New York Contractor License Lookup & Leads Scraper

New York Contractor License Lookup & Leads Scraper

New York home improvement contractor licences from NYC, Westchester, Nassau and Buffalo in one dataset: status, expiry, phone and address, by city or licence number.

Pricing

$0.004 / contractor licence

Rating

0.0

(0)

Developer

ScrapeBench

ScrapeBench

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

4 hours ago

Last modified

Categories

Share

Pain points

  • New York State has no statewide contractor licence. Home improvement contractors are licensed by cities and counties, so a New York list means four agencies, four websites and four formats.
  • Westchester County publishes its licensed contractors only through a map searched one ZIP code or city at a time; its roster covers 778 ZIP codes.
  • Nassau County's Consumer Affairs report shows 15 vendors a page across 12 licence types, so isolating its 7,415 home improvement licences takes filtering of its own.

What we solve

  • Joins four local rosters into one dataset with the same columns: 36,391 licences read on 2026-10-27, 30,514 of them active.
  • Filters by status, city and locality (nyc, westchester, nassau, buffalo); 29,561 of the active licences (96.9%) carry a phone.
  • Checks one licence number, or a batch of them, and returns its status and expiry: NYC DCWP numbers (e.g. 0760935-DCA) and Nassau numbers (e.g. H3811010000).

Summary

Home improvement contractor licences for New York, stitched from the four local rosters that publish one: New York City (DCWP), Westchester County, Nassau County and the City of Buffalo. Each row has the company, licence number where the agency issues one, status, expiry date, phone, street address and, for NYC and Westchester, map coordinates. On 2026-10-27 the dataset holds 36,391 licences, 30,514 of them active; 96.9% of the active ones carry a phone and 97.2% a street address. Every row says which locality it came from and when it was read. Data is served from a stored copy, so a run returns in seconds. Pay only per licence returned.

Who it's for

  • Building-supply, insurance and software sales teams prospecting New York contractors
  • Homeowners, property managers and lenders checking a contractor's licence before signing
  • Compliance and procurement teams verifying vendor licences in bulk
  • Marketing agencies building local contractor lists for the New York metro area

How to use

This actor does two jobs. Run it, then collect results from the run's dataset (export to JSON/CSV/Excel, or pull via the Apify API).

Get a list (export): no names, just filters; returns the whole matching list.

{
"status": "Active",
"city": "Brooklyn",
"maxResults": 500
}

Check specific firms (lookup): put company names or licence numbers in queries; Inputs below says how each is matched.

{
"queries": [
"ALL TYPE SIDING & ROOFING",
"0760935-DCA"
],
"maxResults": 5
}

See Inputs below for every available field.

What you get

One row per record:

FieldDescription
listing_idLicence number: NYC DCWP (e.g. 0760935-DCA) or Nassau (e.g. H3811010000); empty for Westchester and Buffalo, which issue none publicly
nameCompany name
extras.localityWhich roster the row came from: nyc, westchester, nassau or buffalo
extras.statusActive, Expired, Surrendered, Suspended, ...
extras.expiresLicence expiry date (NYC, Westchester, Buffalo)
phonePhone as the agency printed it
phone_e164The same number in +1 format
streetStreet address (NYC, Westchester, Nassau)
cityCity
postal_codeZIP code
latLatitude (NYC; Westchester where the county geocoded the address)
lngLongitude
extras.dbaTrade name, where on file
extras.principalPrincipal or applicant name (Westchester, Buffalo)
extras.tradesWork the contractor is insured for (Nassau)
categoryLicence type: home improvement contractor; Buffalo's own types (general, light commercial, handyman)
source_urlThe record at its agency

Sample:

{
"listing_id": "0760935-DCA",
"name": "ALL TYPE SIDING & ROOFING INC.",
"phone": "7187456718",
"phone_e164": "+17187456718",
"street": "814 64TH ST",
"city": "BROOKLYN",
"region": "NY",
"postal_code": "11220",
"country": "US",
"category": "home improvement contractor",
"categories": [
"home improvement contractor"
],
"lat": 40.63289693131491,
"lng": -74.01136331221319,
"source": "snapshot",
"source_url": "https://data.cityofnewyork.us/resource/w7w3-xahh.json?license_nbr=0760935-DCA",
"extras": {
"locality": "nyc",
"status": "Active",
"expires": "2027-02-28",
"dba": "ROCCO'S ALL TYPE ROOFING",
"borough": "Brooklyn",
"licensed_since": "2003-02-04"
}
}

Inputs

FieldRequiredTypeDefaultDescription
modenostring"auto"export: no names, just filters; returns the whole matching list. lookup / verify: put company names (matched if contained in the company name) or licence numbers (exact) in 'queries'. auto picks the mode for you.
querynostring—A business name (or listing number) to look up in the stored copy of the directory. Kept alongside 'queries' for saved tasks.
queriesnoarray[]A business name (or listing number) to look up in the stored copy of the directory. Several values in one run; combined with 'query'.
statusnostring—Only listings in this status. Kept alongside 'statuses' for saved tasks.
statusesnoarray[]Only listings in this status. Several values in one run; combined with 'status'.
citynostring—Only listings in this city. Kept alongside 'cities' for saved tasks.
citiesnoarray[]Only listings in this city. Several values in one run; combined with 'city'.
categoriesnoarray[]Only rows from this locality (one or more). Available: buffalo, nassau, nyc, westchester.
maxResultsnointeger500Per query in lookup mode; per run in export mode.
proxyConfigurationnoobject{"useApifyProxy": false}Used only for live lookups; exports read the stored snapshot.

Pricing (Pay Per Event)

You pay per result (dataset-item) — no charge for empty runs. Example: 1000 contractor licences at $0.004/result ≈ $4.00.

Notices (unknown category, no match, stale data) are free. Apify platform usage is billed separately per your plan.

Use cases

  • Lead lists: every active home improvement contractor in Brooklyn with phone and street address.
  • Vendor checks: verify a batch of NYC or Nassau licence numbers and flag expired ones before a job starts.
  • Territory planning: active contractors per city across NYC, Westchester and Nassau, with map coordinates for NYC.
  • Renewal outreach: licences expiring in the next 60 days, by locality and city.

Why this actor

  • Four local rosters in one dataset with the same columns, not four websites.
  • Westchester's map roster, read for all 778 of its ZIP codes.
  • Nassau's report filtered to its home improvement licences, with the trades each contractor is insured for.
  • Every filter takes a list; one licence number or a batch verifies in one run.
  • Pay per licence; notices are free.

Limitations & updates

Covers home improvement contractor licences from New York City, Westchester County, Nassau County and Buffalo only; New York has no statewide contractor licence, and Suffolk, Rockland and other counties publish no roster this actor reads. No email for any locality. Buffalo rows have no street address; Nassau rows have no expiry date. Lookups and verification answer from the stored copy, never a live search.

FAQ

Does this cover all of New York State?

No. New York has no statewide contractor licence; home improvement contractors are licensed locally. This dataset covers the four localities that publish a roster: New York City, Westchester County, Nassau County and Buffalo. Suffolk, Rockland, Putnam and other counties are not included.

Where does the data come from?

NYC Department of Consumer and Worker Protection licences (NYC Open Data), Westchester County's Licensed Contractors map, Nassau County Consumer Affairs' licensed vendor report, and the City of Buffalo's contractor licences (Buffalo Open Data).

How do I get only one area?

Set categories to one or more of nyc, westchester, nassau and buffalo, and city to the cities you want. Cities match the address on the licence, so a Brooklyn firm licensed by Nassau County is included in a Brooklyn search.

How do I get only active contractors?

Set status to Active. Westchester and Buffalo publish only an expiry date; a licence whose date has passed is returned as Expired with a status_note saying the status came from the date.

Can I verify a licence number?

Yes, for NYC (e.g. 0760935-DCA) and Nassau (e.g. H3811010000) numbers. Put one or more in queries. Westchester and Buffalo issue no public licence number; search those by company name.

How current is it?

The rosters were read on 2026-10-27. NYC's own dataset was last updated by the city on 2026-08-20. The stored copy is refreshed when it is older than a month and the actor is in use. The run log states the date of the copy, and a run served from a copy older than 45 days returns one free notice saying so.

How am I charged?

One event per licence returned. Notices are free.

Guides & use cases

Written up on scrapebench.dev — the bench that runs and verifies this actor against the live source every night:

More actors, coverage and nightly verification results: scrapebench.dev

Works with AI assistants (MCP)

Callable as an MCP tool, so Claude, Cursor, VS Code Copilot and other MCP clients can run it directly. Grab the config from the MCP tab on this page — Apify hosts the server and keeps that snippet current, and OAuth signs you in on first connect, so no API token goes in your config file.

Then just ask:

"List active home improvement contractors in Brooklyn, New York, with their phone numbers and licence expiry dates."

That is status 'Active', city 'Brooklyn': 3,020 licences on the 2026-10-27 data. Keep maxResults small on a first call. Runs started this way bill exactly like any other run.

Data & lawful use

This actor collects publicly available information that the NYC Department of Consumer and Worker Protection, Westchester County, Nassau County or the City of Buffalo publishes for public lookup — licence records, business listings and the contact details professionals list there. Some of it identifies individuals (sole proprietors, licence holders, agents), so treat any names, phone numbers and emails in your results as personal data.

When you run this actor, you decide what is collected and what it is used for, so you are the controller of that data and we act only as your processor (Apify Standard Actor Contract). You need a lawful basis for your use, must honour opt-out and deletion requests, and must follow the marketing rules that apply to you (CAN-SPAM, TCPA, GDPR, CCPA and similar). Don't use the output for unsolicited bulk messaging, for screening covered by the FCRA, or for anything the source's own terms forbid.

Your results are stored in your own Apify account. We don't keep a copy of your results and don't sell or share them.

Disclaimer

This is an independent tool. It is not affiliated with, endorsed by or sponsored by the NYC Department of Consumer and Worker Protection, Westchester County, Nassau County or the City of Buffalo. Names and marks are used only to describe the data source. Records are provided as published by the source and may be out of date or incomplete. For anything consequential (hiring, a permit, a legal decision), confirm the record with the issuing agency. You are responsible for making sure your use complies with applicable law and the source's terms.

Need help?

Open an issue on this actor's Issues tab and we'll respond there. Bug reports, missing fields and feature requests are all welcome. Guides and examples: scrapebench.dev.

If you are a person named in this data and want your record removed from our copy, email apify-help@scrapebench.dev; the source agency remains the official record.

Your run may be used to improve our services. If something looks off, or you want this actor to fit your use better, please share your run data with us: Apify Console → Settings → Security → Share run data with developers. It lets us see exactly what went wrong and keep improving the actor.