Building permit and contractor license data API
Permit history for a U.S. parcel, the contractors behind it, and the firms the state boards license in a city, over the same REST API and MCP server as the rest of PropRaven. Permits are collected from the cities and counties that publish them and matched to parcels; this page says where that coverage is deep and where it is thin.
Free: 1,000 lookups a month with an API key, no card. Create a key · API reference
What you can get
- Permit history for a parcel
- REST GET /api/v1/parcels/{id}/permits · MCP permits_history
- Building, construction and demolition permits matched to one parcel, newest first (up to 100 per call, with a count that says whether it is exact): permit number, type, status, description, work class, issued and completed dates, estimated cost, fee, contractor name and license as published, and site address — plus, for an account, the owner and applicant names and every phone and e-mail the jurisdiction published on the permit, with its role.
- Licensed firm search
- REST GET /api/v1/licensees/firms · MCP licensee_firm_search
- Firms licensed by the state boards in one city or ZIP code, by profession (real_estate, insurance, cpa, cam) and status, with each firm's licensed locations, license numbers, published status and as-of date, and the parcel where an address matched one.
- Contractors by permit activity
- REST GET /api/v1/deals/contractors · MCP deals_contractors
- Contractor profiles ranked by the permits filed under their name, filterable by state, name, minimum permit count and minimum permit value.
- New-permit webhook
- REST parcel.permit_filed · MCP —
- Fires once per permit when a new permit is matched to a parcel you watch, signed with HMAC so you can verify each delivery. Needs a paid plan.
Code sample
REST, with an API key from a free account:
# Permit history for one parcel (canonical id state:county:parcel)
curl -s "https://propraven.com/api/v1/parcels/37:119:11906402/permits?shape=envelope" \
-H "Authorization: Bearer $PROPRAVEN_API_KEY"
# -> { "data": [ { "permit_number", "permit_type", "issued_date", "estimated_cost", ... } ],
# "permit_count", "permit_count_basis", "truncated", "row_cap" }
# Insurance agencies in Tampa with at least 3 licensed locations
curl -s "https://propraven.com/api/v1/licensees/firms?state=FL&profession=insurance&city=Tampa&min_locations=3" \
-H "Authorization: Bearer $PROPRAVEN_API_KEY"The same permit history from an agent, over the hosted MCP server (Claude, Cursor and other MCP clients connect with OAuth instead; see the MCP docs):
curl -s -X POST https://propraven.com/mcp \
-H "Authorization: Bearer $PROPRAVEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"permits_history","arguments":{"parcel_id":"37:119:11906402"}}}'Permit coverage, state by state
Most U.S. jurisdictions do not publish building permits in a form anyone can collect. Measured on 2026-10-02, about 2.8% of served parcel records nationally had at least one matched building permit, and 123 of 3,278 county codes had one on 5% or more of their parcels. Within a state, permits usually come from its largest cities and counties, so check the county before you rely on it. An empty permit list means no permit was matched, not that no work was done.
States where 5% or more of parcel records have a building permit
| State | Parcel records with a building permit | Counties at 5% or more |
|---|---|---|
| DC | 56.0% | 1 of 1 |
| IL | 12.6% | 2 of 91 |
| DE | 12.1% | 3 of 25 |
| WA | 9.34% | 13 of 50 |
| KY | 8.55% | 1 of 127 |
| MD | 8.29% | 3 of 44 |
| CA | 7.98% | 10 of 103 |
| NY | 7.03% | 6 of 74 |
| LA | 6.91% | 2 of 55 |
| NC | 6.73% | 6 of 101 |
| HI | 6.28% | 1 of 5 |
1% to 5%
| State | Parcel records with a building permit | Counties at 5% or more |
|---|---|---|
| OH | 4.63% | 6 of 123 |
| NJ | 4.62% | 8 of 46 |
| FL | 4.49% | 8 of 69 |
| MO | 4.37% | 4 of 108 |
| AZ | 4.24% | 1 of 17 |
| CO | 3.18% | 22 of 70 |
| NV | 2.51% | 1 of 19 |
| PA | 2.38% | 1 of 68 |
| TX | 2.15% | 7 of 258 |
| ID | 2.04% | 2 of 44 |
| NM | 1.82% | 3 of 33 |
| VA | 1.65% | 3 of 134 |
| MI | 1.63% | 1 of 64 |
| AR | 1.57% | 1 of 75 |
| MN | 1.00% | 1 of 88 |
Under 1%
| State | Parcel records with a building permit | Counties at 5% or more |
|---|---|---|
| MA | 0.69% | 0 of 14 |
| AL | 0.63% | 1 of 67 |
| TN | 0.61% | 1 of 93 |
| GA | 0.60% | 1 of 159 |
| UT | 0.47% | 1 of 58 |
| RI | 0.38% | 0 of 8 |
| WV | 0.29% | 1 of 82 |
| VT | 0.22% | 0 of 19 |
| IN | 0.15% | 1 of 92 |
| ND | 0.11% | 0 of 53 |
| CT | 0.05% | 0 of 33 |
| SC | 0.05% | 0 of 47 |
| MT | 0.02% | 0 of 58 |
| AK | 0.01% | 0 of 30 |
| MS | 0.01% | 0 of 82 |
| OR | 0.01% | 0 of 29 |
Effectively none (under 0.01%): IA, KS, ME, NE, NH, OK, SD, WI, WY.
Share of served parcel records with at least one building permit matched to them, measured 2026-10-02 against the parcel build served then. A parcel record is one county-source row, so these are shares, not counts of permits.
Licensee coverage
The licensee search covers 10 states, from the free bulk files each state's issuing boards publish: 268,466 firm, branch and office licenses as of 2026-10-10. Other states either do not publish a bulk file with street addresses or sell it, and are not covered.
| State | Issuing boards | Firm licenses (active) |
|---|---|---|
| FL | FL DBPR (real estate, CPA, CAM) and DFS (insurance) insurance agencies, real estate, CPA firms, community-association management | 156,521 (146,681) |
| CA | CA DRE (real estate) and the Board of Accountancy real estate, CPA firms | 30,745 (29,299) |
| NY | NY DOS (real estate) real estate offices | 27,132 (27,132) |
| CT | CT DCP (real estate, CPA, CAM) real estate, CPA firms, community-association management | 11,848 (3,715) |
| VA | VA DPOR (real estate firms and offices, CIC managers) real estate firms and branches, common-interest-community managers | 11,152 (11,152) |
| AZ | AZ ADRE (real estate brokerages and branch offices) real estate brokerages and branch offices | 6,999 (6,529) |
| OH | OH Division of Real Estate (companies, branch offices, sole proprietors) real estate companies, branch offices, sole proprietors (every status) | 17,070 (5,088) |
| OR | OR Real Estate Agency (registered businesses, branch offices, escrow agents) registered real estate businesses, branch offices, escrow agents | 4,493 (4,493) |
| NJ | NJ Division of Consumer Affairs (CPA firms) CPA firms | 1,661 (1,661) |
| WV | WV Real Estate Commission (brokerages and their brokers) real estate brokerages and branch offices | 845 (845) |
Firm, branch and office licenses in the served licensee table, counted on 2026-10-10; the boards' files were collected between 2026-10-03 and 2026-10-10. Licensed individuals (people data, account required) are searchable in Nevada, Oregon and West Virginia through GET /api/v1/licensees/individuals.
Access and people data
- Permits need an API key. The Free plan includes one (1,000 lookups a month); Developer is $99/mo for 100k lookups a month.
- The licensee firm search requires an account: an API key, an MCP sign-in or a signed-in session. An anonymous request gets a 401 and no rows or counts.
- People data. A licensed firm named for a person (a sole proprietorship) is treated as people data: it is shown only to an account, counts against the lookup allowance, and every access is logged. Permit responses carry no owner or applicant names.
- Webhooks (
parcel.permit_filed) need a paid plan; see webhook docs and pricing.
Permit and licensee API questions
- Where does the building permit data come from?
- From the cities, counties and states that publish permits on their own open-data portals. PropRaven collects from the publishing authority directly, not from a reseller, and matches each permit to the parcel it was filed against. A permit that cannot be matched to a parcel is not attached to one.
- Does every parcel have permit history?
- No. Most U.S. jurisdictions do not publish building permits in a machine-readable form. Measured on 2026-10-02, about 2.8% of served parcel records nationally had at least one matched building permit, concentrated in 123 of 3,278 county codes. The per-state table on this page shows where it is deep and where it is thin. An empty permit list means no permit was matched, not that no work was done.
- Which states does the licensee search cover?
- Florida, California, New York, Connecticut, Virginia, Arizona, Ohio, Oregon, New Jersey and West Virginia, from each state's issuing boards: real-estate brokerages and offices, insurance agencies (Florida only), CPA firms and community-association management firms. It searches firm, branch and office licenses in one city or ZIP code. Licensed individuals in Nevada, Oregon and West Virginia are searchable by name, license number, city or ZIP for signed-in accounts (people data: metered and logged).
- Do I need an account?
- Yes. Permit history needs an API key, and the Free plan includes one: 1,000 lookups a month, no card. The licensee firm search requires an account (API key, MCP sign-in or a signed-in session); an anonymous request gets a 401 and no data. Webhooks need a paid plan.
- Are owner or applicant names in the permit data?
- Yes, to an account. Besides the permit number, type, status, description, work class, dates, estimated cost, fee, contractor name and license and site address, each permit carries the owner and applicant names the jurisdiction filed, every phone and e-mail it published with its role (owner, applicant, contractor, or unknown where the publisher states none), and the publisher's own owner, applicant and contact fields verbatim. People data is shown only to an account (API key, MCP sign-in or a signed-in session) and every served read is logged. A licensed firm named for a person (a sole proprietorship) is people data too: it is shown only to an account, counts against the lookup allowance and is logged.