ParseForge Scrapers

NYC Business Licenses Scraper

parseforge/nyc-business-licenses-scraper

Lead generationOther

Collects NYC DCWP business license records by category and status, returning each one as a flat row with official fields including business name, address, license type, and expiration date.

Run this scraper See the API call
Total users
2
Monthly active
1
Total runs
97
Bookmarked
0
Rating
Not rated yet
Last modified
9 days ago

Overview

ParseForge

NYC Business Licenses Scraper

Scrape NYC business licenses from the DCWP public dataset, up to a million per run. Every record includes the business name, address, license type, status, and expiration date. No API key or registration required. Export to CSV, JSON, Excel, or XML.

The NYC Department of Consumer and Worker Protection (DCWP) publishes a searchable directory of licensed businesses, but browsing it page by page is slow and manual downloads are limited. This Actor reads the public license feed directly, filters by category or status as it goes, and returns every matching record in one flat table. You get a clean dataset of active pawnbrokers, sidewalk cafes, home improvement contractors, and dozens of other license types across the five boroughs.

Who uses it What they scrape NYC Department of Consumer and Worker Protection for
Compliance officers Verify that a vendor or contractor holds a current NYC license.
Market researchers Map the density of licensed businesses by borough and category.
Journalists Investigate licensing patterns, expirations, or enforcement gaps.
Real estate professionals Identify active sidewalk cafes or retail licenses near a property.

What it does

This Actor collects NYC DCWP business license records by category and status, and returns each one as a flat row with the official fields.

  • 🏷️ Category filter: narrow results to a single DCWP category like Pawnbroker, Sidewalk Cafe, or Home Improvement Contractor.
  • πŸ“‹ Status filter: collect only Active, Inactive, or Ready for Renewal licenses.
  • πŸ“Š Flat row output: every license returns as one row with the same columns, ready for pivot tables or joins.
  • ⚑ High volume: set maxItems up to 1,000,000 to pull the full dataset in one run.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with NYC Department of Consumer and Worker Protection data

πŸ“‹ Audit vendor compliance.

A compliance team runs the Actor weekly for Active Home Improvement Contractor licenses and cross-references the list against their vendor database to flag expired or missing credentials.

πŸ—ΊοΈ Map business density by neighborhood.

A market researcher pulls all Active Sidewalk Cafe licenses, geocodes the addresses, and builds a heatmap of outdoor dining concentration across Manhattan and Brooklyn.

πŸ“° Investigate licensing gaps.

A journalist collects all Inactive and Ready for Renewal licenses in a specific category, then compares the list to businesses still operating to identify potential enforcement issues.

🏒 Prospect for commercial tenants.

A real estate broker scrapes Active retail-related licenses in a target zip code, filters by expiration date, and reaches out to businesses whose licenses are nearing renewal as potential movers.

Why choose this scraper

What you get
Official source Data comes directly from the NYC DCWP public license directory.
No coding Set a category and status in the input fields and run, no API integration needed.
Full exports Download as CSV, JSON, Excel, or XML for any downstream tool.
Scheduled runs Set an Apify schedule to monitor new licenses or status changes automatically.

How it compares

No other Store actor targets NYC Department of Consumer and Worker Protection the same way, so the honest comparison is with the alternatives teams actually weigh.

NYC Business Licenses Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When NYC Department of Consumer and Worker Protection changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor with an optional business category and license status, and filters run as each record is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "maxItems": 10
}

A larger pull:

{
 "maxItems": 200
}

Pricing

Pay-per-result: $0.021 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $2.10
1,000 results $21.00
10,000 results $210.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the NYC Business Licenses Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to NYC Department of Consumer and Worker Protection through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/nyc-business-licenses-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check your category and status filters. If you set a very specific category that has no licenses matching the selected status, the run will return zero records. Try running with no filters first to confirm data is available.

The run stopped before reaching my maxItems.

The Actor stops when it has read all available records matching your filters. If the DCWP directory has fewer licenses than your maxItems, the run ends early with the complete dataset.

Some fields are empty in my export.

Not every license record includes every field. The DCWP feed may omit optional data like a secondary address or contact phone. Empty cells are expected and reflect the source.

The run timed out.

Large maxItems values can take time. Increase the run timeout in the Apify actor settings, or reduce maxItems and run multiple smaller batches.

FAQ

Question Answer
What NYC agencies does this cover? It covers the Department of Consumer and Worker Protection (DCWP), which licenses over 50 types of businesses including pawnbrokers, sidewalk cafes, home improvement contractors, and electronics stores.
Can I filter by borough or zip code? The input schema does not include a direct borough or zip code filter, but every record includes the full address. You can filter by location after export in your spreadsheet or database.
How many licenses can I get in one run? You set the maximum with the maxItems field, up to 1,000,000 per run. The DCWP directory contains tens of thousands of records, so a single run can capture the full dataset.
Does this include license expiration dates? Yes, each record includes the license expiration date along with the issue date, status, and other official fields from the DCWP feed.
Is this an official NYC API? No, this Actor reads the same public data that appears on the DCWP website. It does not use an official API and does not require a key or registration.
Can I run this on a schedule? Yes, you can set a recurring schedule in Apify to run daily or weekly and receive only new or changed licenses by comparing runs.
What export formats are supported? You can export the dataset as CSV, JSON, Excel, or XML from the Apify run console.
Does it handle pagination automatically? Yes, the Actor follows the DCWP directory pages until it reaches your maxItems limit or exhausts the available records.

Related actors

Browse the full ParseForge collection for more scrapers.

πŸ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by City of New York. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
maxItems integer How many licenses to collect per run. 10
category string Filter by DCWP category (e.g. Pawnbroker, Sidewalk Cafe). not set
licenseStatus string (4 options) Filter by license status. not set

Pricing

from $19.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.019 to $0.021

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST Β· run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~nyc-business-licenses-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run NYC Business Licenses Scraper on Apify All scrapers