GovData Labs — US Building Permits Feed
Pricing
Pay per event
GovData Labs — US Building Permits Feed
GovData Labs normalizes building permits from official US city, county, and state open-data APIs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
GovData Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
A normalized building-permit feed from official US open-data APIs. Version 1 ships 26 verified sources (cities, two counties, and New Jersey's statewide construction file). Each source is a config object: endpoint, date field, and a mapper into one schema. Adding a city is a new config, not a new Actor.
For contractors, suppliers, and lead products that want solar, roofing, HVAC, electrical, and other trade signals without learning 26 column layouts.
What you get
city,state,permit_numberissued_on,applied_on,status,permit_typework_descriptiontrade_tagsfrom a keyword classifier: solar, roofing, hvac, electrical, plumbing, new construction, demolition, pool, windows, siding, fence, addition, ev charger, fire protectionvaluationaddress,latitude,longitudewhen the source publishes themcontractor_nameandcontractor_licensewhen the source publishes themowner_nameandapplicant_namewhen those fields are publicsource_id,source_url,fetched_at
Rows with no published valuation are kept unless you set minValuation. A keyword filter matches the type, the description, and the tags, so solar catches both the word and the tag.
Who it is for
- Trade contractors who want last week's permits in a few cities
- A nightly "new since last run" job that only pays for new or changed permits
- Anyone who needs Chicago, Seattle, Dallas, Los Angeles, and the other sources below in one schema
How a run works
Pick city ids, a date range, optional permit-type substrings, trade keywords, and a minimum valuation. If you omit dates, the run uses the last 7 days through today. If you omit cities, it uses Chicago, Seattle, Dallas, Austin, and Cincinnati. all includes every source, including the large New Jersey file.
Each source is queried with the date pushed into SoQL, CKAN SQL, or Carto SQL. Pages stop at 1,000 rows. A source stops after 20 pages so a wide query cannot scan an entire historical file. maxResults (default 100) stops the run across cities.
"Only changes since last run" keeps one snapshot per city. The first run stores a baseline. Later runs re-read from the day before the watermark and emit only new or changed permits.
Pricing
Pay per event. You pay only for what a run returns:
| Event | Price | When |
|---|---|---|
actor-start | $0.010 | Once per valid run |
permit-result | $0.005 | Each output row |
change-detected | $0.005 | Each new or changed row after that city's baseline |
One hundred permits, the default cap, cost about $0.51. One thousand permits are about $5.01. A typical thousand-row pull is a few minutes at 512 MB, well under $0.02 of Apify platform compute, billed separately.
Example input
{"cities": ["chicago", "seattle", "austin"],"dateFrom": "2026-10-01","dateTo": "2026-10-31","tradeKeywords": ["solar", "roofing"],"minValuation": 5000,"maxResults": 100}
Example output
Chicago row retrieved live on 31 October 2026. Descriptions and costs change every day.
{"city": "Chicago","state": "IL","permit_number": "B200517587","issued_on": "2026-10-29","permit_type": "PERMIT – EXPRESS PERMIT PROGRAM","work_description": "LINE VOLTAGE ELECTRICAL WORK. NEW PERMANENT 200 AMP SERVICE...","trade_tags": ["electrical"],"valuation": 10511,"address": "2500 W FARWELL AVE, Chicago, IL","latitude": 42.00599,"longitude": -87.69265,"contractor_name": null,"source_id": "chicago","source_url": "https://data.cityofchicago.org/d/ydr8-5enu","fetched_at": "2026-10-31T00:00:00.000Z"}
Chicago's building-permits dataset does not include a contractor name. Seattle, Austin, Dallas, Cincinnati, and several other sources do.
Verified sources
Checked live on 31 October 2026. A source is listed only if a sample row came back with usable columns.
| Id | Place | API | Dataset |
|---|---|---|---|
chicago | Chicago, IL | Socrata | ydr8-5enu |
seattle | Seattle, WA | Socrata | 76t5-zqzr (also on cos-data.seattle.gov) |
dallas | Dallas, TX | Socrata | e7gq-4sah |
los-angeles | Los Angeles, CA | Socrata | pi9x-tg5x |
cincinnati | Cincinnati, OH | Socrata | uhjb-xac9 |
austin | Austin, TX | Socrata | 3syk-w9eu |
san-francisco | San Francisco, CA | Socrata | i98e-djp9 |
new-york | New York, NY | Socrata | DOB permit issuance ipu4-2q9a |
new-york-dob-now | New York, NY | Socrata | DOB NOW approved permits rbx6-tga4 |
new-orleans | New Orleans, LA | Socrata | 72f9-bi28 |
mesa | Mesa, AZ | Socrata | dzpk-hxfb |
marin-county | Marin County, CA | Socrata | mkbn-caye |
baton-rouge | Baton Rouge, LA | Socrata | 7fq7-8j7r |
boston | Boston, MA | CKAN SQL | Approved Building Permits resource 6ddcd912-32a0-43df-9908-63574f8c7e77 |
philadelphia | Philadelphia, PA | Carto SQL | permits on phl.carto.com |
montgomery-residential | Montgomery County, MD | Socrata | m88u-pqki |
montgomery-commercial | Montgomery County, MD | Socrata | i26v-w6bd |
cambridge | Cambridge, MA | Socrata | alterations qu2z-8suj |
cambridge-new | Cambridge, MA | Socrata | new construction 9qm7-wbdc |
kansas-city | Kansas City, MO | Socrata | ntw8-aacc |
corona | Corona, CA | Socrata | 2agx-camz |
gainesville | Gainesville, FL | Socrata | p798-x3nx |
honolulu | Honolulu, HI | Socrata | 4vab-c87q static through 2025-06-30 |
new-jersey | New Jersey municipalities | Socrata | w9se-dmra |
collin-county | Collin County, TX | Socrata | 82ee-gbj5 |
somerville | Somerville, MA | Socrata | nneb-s3f7 filtered to Permitting |
Dropped after a live check
- Los Angeles
yv23-pmwfreturned HTTP 403.pi9x-tg5x(2020 onward) is used instead. - Boston Socrata id
msk6-43c6is gone (HTTP 404). The CKAN resource above replaces it. - Dallas on the host without
www404s.www.dallasopendata.comworks. - Seattle
mags-97de404s.76t5-zqzris the live building-permits set. - New York
xfyi-uyt5returned HTTP 403. DOB issuance and DOB NOW are both included. - Denver Building Permits FeatureServer responded but every layer query returned zero features on 31 October 2026, so it is not enabled.
queryArcGis()is in the source for the day that layer has rows again. - Nashville
3h5w-q8b7and several other guessed portal ids (Hartford, Raleigh, Louisville, Sacramento, Fort Worth) returned portal HTML rather than SODA JSON. They are not included. - A handful of hosts failed DNS (Las Vegas, Salt Lake City, Santa Monica, Glendale, Madison). They are not included.
Mesa filters on opened_date because that portal does not publish an issue date; the value is stored as applied_on. Philadelphia's permits table includes zoning permits as well as building permits. Honolulu will return nothing for "last 7 days" because the file stops at 30 June 2025.
Each row's source_url points at the portal dataset or, when the city publishes one, the permit deep link. Data is published as public open data by the named city, county, or state. Confirm that portal's terms before you redistribute an extract.
Limits
- Default 100 results, hard cap 20,000.
- 20 pages of 1,000 rows scanned per source per run.
- 200 ms between SODA calls to the same host, with retry and backoff.
- Optional Socrata app token. It does not apply to Boston (CKAN) or Philadelphia (Carto).
- Per-city snapshots keep at most 2,000 hashes.
Disclaimer
Data comes from official public sources and may lag the permitting office. It is not a permit, a permission to build, or a statement by the city. Confirm the job with the building department before you treat a row as a lead you can rely on.