NYC Building Permits Scraper avatar

NYC Building Permits Scraper

Pricing

from $3.00 / 1,000 results

Go to Apify Store
NYC Building Permits Scraper

NYC Building Permits Scraper

Collects NYC building permits from the Department of Buildings public feeds. Each row returns job number, address, owner, filing date, and work description, filtered by borough, ZIP code, job type, or date range.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

0

Monthly active users

11 days ago

Last modified

Share

ParseForge

NYC Building Permits Scraper

Scrape NYC building permits from the Department of Buildings, filtered by borough, ZIP code, job type, or date range. Each permit includes job number, address, owner, filing date, and work description. Export to CSV, JSON, Excel, or XML.

The NYC Department of Buildings public dataset holds millions of permits, but querying it manually means clicking through a web portal one page at a time. This Actor reads the DOB NOW and historical permit feeds directly, applies your filters as it goes, and returns every matching record in a flat, consistent schema. No API key, no browser automation, no manual downloads.

Who uses itWhat they scrape NYC Department of Buildings for
Contractors and subcontractorsFind new construction and alteration jobs filed in their service ZIP codes this week.
Real estate developersTrack demolition and new building filings across a borough to spot development hot spots.
Building material suppliersIdentify active job sites by permit type and filing date to target sales outreach.
Insurance underwritersAudit recent major alteration permits for a portfolio of addresses to assess risk.

What it does

This Actor collects NYC building permits from the DOB NOW and historical datasets and returns each permit as a flat row with job number, address, owner, filing date, and work description.

  • 🏗️ Borough and ZIP filters: narrow results to a single borough, a ZIP code, or both together.
  • 📋 Job type selection: isolate New Buildings (NB), Major Alterations (A1), Minor Alterations (A2/A3), or Demolitions (DM).
  • 📅 Date range control: pull only permits filed between two dates, so you get fresh leads or a historical snapshot.
  • 🗄️ Dual dataset support: query the active DOB NOW permits, the historical archive, or both in one run.

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

What you can do with NYC Department of Buildings data

📬 Build a contractor lead list.

A construction lead service runs the Actor weekly for all five boroughs, filters to NB and A1 job types filed in the last seven days, and delivers fresh permit leads to subscribers.

🏘️ Monitor a neighborhood for new development.

A community board pulls all New Building and Demolition permits in their ZIP codes each month to track changing land use before public hearings.

📊 Analyze alteration activity by borough.

A market analyst collects a full year of A1 permits across Brooklyn and Queens, groups them by ZIP code, and ranks neighborhoods by renovation investment.

🚚 Find active job sites for material delivery.

A lumber supplier filters for New Building permits filed in the last 90 days in Staten Island and uses the address list to plan delivery routes.

Why choose this scraper

What you get
No API key or registrationReads the public DOB feeds directly, no account needed.
Fixed flat schemaEvery permit lands as the same columns, ready for a spreadsheet or database.
Up to 1,000,000 permits per runOne click pulls a full borough year without pagination scripts.
CSV, JSON, Excel, XML exportDrop the dataset into your existing lead list or GIS tool.

How it compares

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

NYC Building Permits ScraperBuild it in-houseBy hand
SetupRun it now, zero configDays of engineeringNone, but hours per pull
When NYC Department of Buildings changesMaintained for youYou fix itYou re-learn the page
Proxies, retries, anti-botBuilt inYour problemBrowser only
OutputFixed JSON schema, CSV/Excel exportWhatever you buildCopy-paste
CostPay per resultEngineering timeAnalyst hours

Configure the run

Drive the Actor with borough, ZIP code, job type, and a date range, alone or in combination, and filters run as each permit 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.01 per result collected. You pay only for the results written to your dataset.

Results collectedApproximate cost
100 results$1.00
1,000 results$10.00
10,000 results$100.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 Building Permits 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 Buildings 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-building-permits-scraper"

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

Troubleshooting

Why am I getting no results?

Check that your date range and filters are not too narrow. Try widening the date range, removing the ZIP code filter, or setting the dataset to 'both'. Also confirm the borough name is spelled exactly as shown in the dropdown.

The run stopped before collecting all permits I expected.

Check the 'Maximum permits' setting. If it is set to a number lower than the total matching permits, the Actor stops early. Increase the maxItems value and rerun.

Some permits are missing from my results.

If you set the dataset to 'dob_now' only, older permits will not appear. Switch to 'historical' or 'both'. Also verify that your date range covers the filing dates of the permits you expect.

The date filter is not working as I expected.

Use the YYYY-MM-DD format exactly. The dateFrom and dateTo fields compare against the permit filing date. If a permit was filed on the boundary date, it is included.

Can I get the full plan or document for a permit?

This Actor returns the permit metadata only. Full plan documents and filings are not included in the public data feed and must be requested separately from the NYC Department of Buildings.

FAQ

QuestionAnswer
What data does each permit row contain?Each row includes the job number, filing date, work type, job description, owner name, address, borough, ZIP code, and the dataset source (DOB NOW or historical). The exact field list is shown in the sample output on the Actor's page.
Can I filter by a specific address?The input schema supports borough, ZIP code, job type, and date range filters. Address-level filtering is not a direct input, but you can filter the exported dataset by the address column after the run completes.
What is the difference between DOB NOW and historical datasets?DOB NOW contains active and recently filed permits. The historical dataset covers older records. Setting the dataset input to 'both' merges the two sources into one output.
How far back do the historical permits go?The NYC Department of Buildings historical dataset includes permits filed over many years. The exact start date varies by borough and job type, but records often reach back decades.
Does this Actor require a login or API key?No. It reads the public NYC Open Data feeds directly. You do not need a DOB account, an API key, or any registration.
Can I run this on a schedule?Yes. You can set the Actor to run daily or weekly on Apify. Each run will collect permits filed within your chosen date range, so a weekly run with a rolling seven-day window keeps your dataset fresh.
What export formats are supported?You can export the results as CSV, JSON, Excel, or XML from the Apify dataset tab.
Is there a limit on how many permits I can collect?You set the maximum permits per run, up to 1,000,000. The Actor stops when it reaches that count or when no more permits match your filters.
Which NYC boroughs are supported?All five: Manhattan, Brooklyn, Queens, Bronx, and Staten Island. You can select one borough or leave the field empty to search across all five.
What job types can I filter by?NB (New Building), A1 (Major Alteration), A2 and A3 (Minor Alterations), and DM (Demolition). Leave the field empty to include all job types.

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.