Chicago Building Permits API – Contractor & Construction Leads avatar

Chicago Building Permits API – Contractor & Construction Leads

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Chicago Building Permits API – Contractor & Construction Leads

Chicago Building Permits API – Contractor & Construction Leads

Chicago building permits API: construction leads with every contractor by role, valuation, coordinates and trade tags (HVAC, electrical, plumbing, roofing). Permit data CSV/JSON. No homeowner names.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Blake Runckel

Blake Runckel

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

City of Chicago issued building permits from the official Chicago Data Portal (dataset ydr8-5enu): address, coordinates, valuation, every contractor by role (general, electrical, plumbing, ventilation/refrigeration, mason…), and sub-trade tags with provenance. HVAC, electrical and plumbing tags also come from the listed contractor roles. Owner records are excluded, and permits where the owner acts as their own contractor ("OWNER AS GENERAL CONTRACTOR", "OWNER ACTING AS OWN PLUMBER") are skipped entirely by default (excludeOwnerBuilders), because they are homeowner jobs, not contractor leads.

Use it for: contractor leads and construction leads (new jobs by trade), a building permits API for your CRM, or a permit data CSV/Excel export for market research. Runs on a schedule; export CSV, Excel, JSON or call the API.

Sample rows (table)

issueDateaddressworkTypecontractorNamevaluationtrades
2026-10-185901 W BERENICE AVE, CHICAGO, ILRenovation/AlterationHAZI ENTERPRISE LLC$200,000HVAC, electrical, masonry/facade, plumbi
2026-10-183402 S LOWE AVE, CHICAGO, ILDetached Frame GarageKUO CONSTRUCTION, INC.$10,000electrical, framing, roofing
2026-10-16732 S KENNETH AVE, CHICAGO, ILRenovation/AlterationROSS HAITH$10,000HVAC, electrical, plumbing, concrete, wi
2026-10-161737 N SAWYER AVE, CHICAGO, ILRenovation/AlterationDOLGIN CONSTRUCTION, INC.$150,000HVAC, electrical, plumbing, demolition,
2026-10-162309 S LOOMIS ST, CHICAGO, ILRenovation/AlterationSACHSE CONSTRUCTION AND DEVELOPMENT COMP$2,490,632HVAC, electrical, masonry/facade, plumbi

Quick start

Example input (also prefilled in the input form):

{
"days": 7,
"trades": [
"HVAC",
"roofing"
],
"excludeRenewals": true,
"maxItems": 100,
"explicitTradesOnly": true
}

Input

FieldDescription
daysHow many days back from today to include, by permit issue date (1-366).
tradesOnly return permits tagged with at least one of these trades. Leave empty for all trades.
explicitTradesOnlyWhen filtering by trade, match only trades stated by the permit type, a listed contractor role or the description, and ignore 'implied' tags (e.g. roofing implied by a new house). On by default for lead generation; turn off to include implied new-build trades.
excludeRenewalsSkip permit renewals/reinstatements (often old jobs re-issued). Recommended for lead generation.
excludeOwnerBuildersSkip permits where the owner acts as their own contractor ("OWNER AS GENERAL CONTRACTOR", "OWNER ACTING AS OWN PLUMBER"). Default on.
dateFromEarliest issue date, YYYY-MM-DD. When set, overrides 'Days back'.
dateToLatest issue date, YYYY-MM-DD. Defaults to today.
minValuationOnly permits with a declared valuation at or above this amount. Rows with no or zero valuation are dropped when this is set.
excludeNonBuildingSkip administrative and non-building records (administrative changes, reinstatement-only and similar no-work records).
maxItemsMaximum number of records to return (1-50,000).

Fields

Every Ledger permit Actor (Deschutes/Bend, Chicago, NYC) outputs the same fields:

FieldMeaning
recordIdUnique row key. One job can produce several rows (NYC: one per work type; Bend: one per sub-permit such as building, electrical, plumbing, mechanical). Dedupe on permitID if you want one row per permit.
permitIDThe agency's permit/application number.
jurisdictionCity or county that issued the permit.
addressSite address as published.
parcelTax lot / PIN / BBL (see completeness).
latitude, longitudeWGS84 coordinates where the source publishes them (Chicago, NYC); null for Deschutes/Bend.
workTypeThe agency's work/permit-type label (e.g. Plumbing, Electrical, New - Single Family Dwelling).
permitType, permitSubtypeThe agency's broader permit category and subtype (see "Source mapping").
filingReason, isRenewalWhy it was filed; true for renewals/reinstatements (usually old jobs).
descriptionFree-text scope of work.
statusPermit status as published. A value ending in "(inferred: …)" means the source left it blank and we derived it.
contractorNameThe agency's main contractor field (general contractor where known). Never a record the agency labels as owner.
contractorsAll contractor roles listed on the permit, [{role, name}].
contractorLicense{type, number} where published (NYC).
valuationDeclared job value in USD (null if not published).
squareFeetSquare footage where published.
applicationDate, approvedDate, issueDate, expirationDate, finalDateISO dates (YYYY-MM-DD); null when the source doesn't publish that date.
tradesAll sub-trades the job likely needs, including implied ones.
explicitTradesOnly trades stated by the permit type, a listed contractor role, or the description.
tradeDetails[{trade, source, confidence}]: source permitType/contractorRole (high), keyword (medium), implied (low, e.g. a new house implies roofing).
sourceUrlLink to the record (or the official export containing it) at the source.
sourcePublisher and dataset name.

Source mapping

Source fieldLedger field
work_type (falls back to permit_type when blank, which is most non-express permits)workType
permit_type / review_type / permit_milestonepermitType / permitSubtype / filingReason
permit_status; when blank (about 8% of records) we output ISSUED (inferred: source status blank, issue date present)status
contact_N_type/name where the role is a CONTRACTOR and not OWNERcontractors, contractorName (GC first)
reported_cost, pin_list, latitude, longitude, application_start_date, issue_datevaluation, parcel, latitude, longitude, applicationDate, issueDate
Reinstated permits (PERMIT - REINSTATE REVOKED PMT) are flagged isRenewal and excluded by default. minValuation and the date range are applied at the source.

Completeness

Measured on all 2,694 records issued 2026-09-20 to 2026-10-18 (default filters):

Contractor nameValuation > 0Parcel (PIN)Lat/lonStatus inferred
98%87%80%98%8%

Sample output

(Generated 2026-10-19 by the current version.)

{
"recordId": "3453472",
"permitID": "101085337",
"jurisdiction": "Chicago",
"address": "5901 W BERENICE AVE, CHICAGO, IL",
"latitude": 41.95023073559158,
"longitude": -87.77435488410342,
"workType": "Renovation/Alteration",
"permitType": "PERMIT - RENOVATION/ALTERATION",
"isRenewal": false,
"description": "SPR 2019 CBCERECT REAR 2 STORY FRAME ADDITION, INTERIOR REHABILITATION AND NEW REAR OPEN WOOD DECK AT EXISTING 2 STORY WITH BASEMENT SFR AS PER PLAN.",
"status": "ACTIVE",
"contractorName": "HAZI ENTERPRISE LLC",
"contractors": [
{
"role": "CONTRACTOR-ELECTRICAL",
"name": "SWITCH ELECTRIC, INC"
},
{
"role": "CONTRACTOR-GENERAL CONTRACTOR",
"name": "HAZI ENTERPRISE LLC"
},
{
"role": "MASONRY CONTRACTOR",
"name": "BUCOVINA INC."
},
{
"role": "CONTRACTOR-PLUMBER/PLUMBING",
"name": "JAM PLUMBING SERVICES,INC."
},
{
"role": "CONTRACTOR-REFRIGERATION",
"name": "GOLD COAST HVAC"
},
{
"role": "CONTRACTOR-VENTILATION",
"name": "GOLD COAST HVAC"
}
],
"valuation": 200000.0,
"issueDate": "2026-10-18",
"trades": [
"HVAC",
"electrical",
"masonry/facade",
"plumbing",
"framing",
"general contracting",
"decks/porches"
],
"explicitTrades": [
"HVAC",
"electrical",
"masonry/facade",
"plumbing",
"framing",
"general contracting",
"decks/porches"
],
"tradeDetails": [
{
"trade": "HVAC",
"source": "contractorRole",
"confidence": "high"
},
{
"trade": "electrical",
"source": "contractorRole",
"confidence": "high"
},
{
"trade": "masonry/facade",
"source": "contractorRole",
"confidence": "high"
},
{
"trade": "plumbing",
"source": "contractorRole",
"confidence": "high"
},
{
"trade": "framing",
"source": "keyword",
"confidence": "medium"
},
{
"trade": "general contracting",
"source": "keyword",
"confidence": "medium"
},
{
"trade": "decks/porches",
"source": "keyword",
"confidence": "medium"
}
],
"sourceUrl": "https://data.cityofchicago.org/resource/ydr8-5enu.json?permit_=101085337"
}

Pricing

Pay per result: $2.50 per 1,000 permit records ($0.0025 per result), plus a $0.00005 Apify start fee per run. You pay only for rows written to your dataset; Apify platform usage (compute) is included in that price, not billed separately. Set a maximum cost per run in Apify Console or the API and the run stops at that limit. Users on the Apify free plan can try it within their free monthly credit.

Privacy

Owner and homeowner records are not included: no field or contact role that the agency labels as owner is exported. Personal phone numbers and emails are not exported either. Contractor names are the agency's contractor field as published. Most are businesses, but some are sole proprietors or individual licensees (e.g. a licensed individual general or alarm contractor). Treat contractor contact as B2B. Follow the TCPA, CAN-SPAM, do-not-call rules and the source's terms; contact at a permit address should be by mail only unless you have consent.

Reliability

Each run reads the official feed live. Requests retry up to 3 times with backoff (2 s, 4 s, 8 s) on rate limits, server errors and timeouts. If a run finds 0 matching records it pushes nothing and sets a status message saying so. A change in the source's columns stops the run with a clear error.

Limitations

  • Trade tags are rules applied to permit types, contractor roles and descriptions, so they are not guaranteed. With a trade filter set, only explicit (stated) trades match by default; set explicitTradesOnly to false to include implied new-build trades.
  • The City's terms let it "require a user of this data to terminate any and all display, distribution or other use" at any time; if that happens this Actor will stop serving the data.
  • Not affiliated with or endorsed by the data publisher.

Attribution and terms

Source: City of Chicago Data Portal, Building Permits (ydr8-5enu).

Required City of Chicago disclaimer

This site provides applications using data that has been modified for use from its original source, www.cityofchicago.org, the official website of the City of Chicago. The City of Chicago makes no claims as to the content, accuracy, timeliness, or completeness of any of the data provided at this site. The data provided at this site is subject to change at any time. It is understood that the data provided at this site is being used at one's own risk.