PermitIQ — Building Permit API avatar

PermitIQ — Building Permit API

Pricing

from $10.00 / 1,000 permit records

Go to Apify Store
PermitIQ — Building Permit API

PermitIQ — Building Permit API

ZIP-level market trends + urgency-scored contractor leads from Chicago, Austin, NYC, LA & SF. The only permit actor with hotspot scoring and month-over-month analysis. Official Socrata APIs — no scraping. MCP-ready for AI agents.

Pricing

from $10.00 / 1,000 permit records

Rating

0.0

(0)

Developer

Jim Giganti

Jim Giganti

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

8 days ago

Last modified

Share

PermitIQ — US Building Permit Intelligence API

PermitIQ is the only building permit actor with ZIP-level market trend analysis and month-over-month hotspot scoring. Query official government APIs across Chicago, Austin, NYC, Los Angeles, and San Francisco — get urgency-scored contractor leads, market trend data by ZIP code, or raw permit records for AI pipelines. No scraping, no browser automation, no proxies. Direct Socrata API access. MCP-ready for Claude, Cursor, and any AI agent.


What it does

PermitIQ returns structured building permit data in three output modes tuned for different buyers:

ModeUse caseOutput
leadsContractor outreach, sales prospectingUrgency-scored permits sorted by opportunity value
trendsMarket research, territory planningZIP-level hotspot scores + month-over-month volume delta
rawData pipelines, AI agents, custom analysisNormalized records with explicit nulls, MCP-ready

Quick start

Input

ParameterRequiredDescription
citieschicago, austin, nyc, los_angeles, san_francisco
outputModeleads (default), trends, or raw
permitTypeall (default), roofing, hvac, plumbing, electrical, new_construction, remodel, solar, adu
daysBackDays of history to retrieve (default: 30, max: 365)
maxResultsRecord cap (default: 100)
minEstimatedCostFilter by minimum project value in USD
zipCodeRestrict to a single ZIP code
budgetUsdSpend cap based on $0.01/record PPE pricing

Example: roofing leads in Chicago, last 7 days

{
"cities": ["chicago"],
"outputMode": "leads",
"permitType": "roofing",
"daysBack": 7,
"maxResults": 50
}

Example: ADU permits in Los Angeles and San Francisco

{
"cities": ["los_angeles", "san_francisco"],
"outputMode": "leads",
"permitType": "adu",
"daysBack": 30
}

Example: market trend analysis across California cities

{
"cities": ["los_angeles", "san_francisco"],
"outputMode": "trends",
"daysBack": 90
}

Example: all 5 cities, raw mode for AI pipeline

{
"cities": ["chicago", "austin", "nyc", "los_angeles", "san_francisco"],
"outputMode": "raw",
"daysBack": 7,
"maxResults": 500
}

Output fields

Leads mode

  • permitId, cityId, issueDate, address, zip, lat, lng
  • normalizedType — normalized category (roofing, hvac, solar, adu, etc.)
  • description — original permit work description
  • permitStatus — issued | pending | approved | expired | void
  • estimatedCost — project value in USD (see costType)
  • contractor, contractorConfidence
  • urgencyScore (1–100) — recency + value + type demand
  • urgencyLabel — hot | warm | cool | low
  • zipCode, city, permitCount, totalEstimatedValue
  • hotspotScore (0–100) — volume + value + growth composite
  • momDelta — month-over-month % change in permit volume

Raw mode

All fields above plus rawPermitType, applicationDate, expirationDate, costType, propertyType. Explicit null on missing fields (no undefined).


ADU opportunity — California 2026

Los Angeles and San Francisco are the highest-volume ADU markets in the US. New 2026 California laws (SB 79, AB 462, SB 543) mandate faster ADU approvals statewide. San Francisco's dataset includes a native adu boolean field — the most reliable ADU signal available anywhere.

Target buyers: ADU contractors and builders, solar installers, permit expediting firms, real estate investors tracking density.


Pricing

Pay-per-result: $0.01 per record. Set budgetUsd to cap spend. No monthly subscription.


Use with AI agents (MCP)

PermitIQ is available as a tool through the Apify MCP server at https://mcp.apify.com. Any MCP-compatible AI agent (Claude, Cursor, VS Code Copilot, custom LangGraph agents) can call PermitIQ directly without writing API code.

https://mcp.apify.com?tools=actors,Midwest_United/permitiq

Connect from Claude Desktop

Add to your claude_desktop_config.json:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Then ask Claude:

"Use PermitIQ to find hot roofing leads in Chicago from the last 7 days"

"Show me ZIP-level permit trends in Los Angeles for the last 90 days"

"Find ADU permits in San Francisco and Los Angeles from the last 30 days"

"Get raw permit records for NYC electrical permits this month"

Connect from Cursor or VS Code

Add to .cursor/mcp.json or your VS Code MCP settings:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Call via Apify API

const response = await fetch(
'https://api.apify.com/v2/acts/Midwest_United~permitiq/run-sync-get-dataset-items',
{
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_APIFY_TOKEN'
},
body: JSON.stringify({
cities: ['los_angeles', 'san_francisco'],
outputMode: 'leads',
permitType: 'adu',
daysBack: 30
})
}
);
const leads = await response.json();

Use in an AI pipeline

The raw output mode is designed for AI pipeline ingestion:

  • All fields present with explicit null — no undefined surprises
  • Consistent schema across all five cities
  • normalizedType is always a normalized enum, never free text
  • issueDate is always ISO 8601 or null — no date parsing needed

Technical notes

Data sources. All data comes from official city Socrata open data portals:

  • Chicago: data.cityofchicago.org (dataset ydr8-5enu) — daily
  • Austin: data.austintexas.gov (dataset 3syk-w9eu) — daily
  • NYC: data.cityofnewyork.us — merged from DOB NOW + historical datasets, daily
  • Los Angeles: data.lacity.org (dataset pi9x-tg5x) — daily
  • San Francisco: data.sfgov.org (dataset i98e-djp9) — weekly

NYC dataset merge. NYC building permits are split across two Socrata datasets. PermitIQ fetches both and merges by permit number so you get complete records.

SF update frequency. San Francisco's DBI uploads permit data weekly. Use daysBack: 30 or greater for SF to ensure records are returned.

SF native ADU field. San Francisco's dataset includes a dedicated adu boolean field. PermitIQ uses this as a high-confidence override — SF ADU permits are the most reliably identified of any city.

Date validation. All dates are validated with UTC round-trip checking. Invalid dates are rejected rather than silently rolled forward.

SoQL query building. Query strings are built manually (no URLSearchParams) to preserve Socrata's $ prefixed operators ($where, $limit, etc.).

Budget cap. If budgetUsd is set, the actor estimates spend before pushing records and exits cleanly if the cap would be exceeded.


Supported cities

CityDatasetUpdate frequencyCoordinatesContractor
Chicago, ILSocrata ydr8-5enuDailyVia contact scan
Austin, TXSocrata 3syk-w9euDailyDirect field
New York City, NYSocrata (2 datasets merged)DailyPartialLow confidence
Los Angeles, CASocrata pi9x-tg5xDaily❌ Not in dataset
San Francisco, CASocrata i98e-djp9Weekly❌ Separate dataset

Want your city added? Open an issue — any city publishing permits on a Socrata open data portal can be added.