Skip to main content
POST
Search US building permits for an address
Search building-permit index records for one US street address through the Shovels pay-per-record source (v2). Supply address={formatted:...} or address={line1,city,region or postal_code,country:\"US\"}; optional permit_from/permit_to bound the permit date window (default: ten years back to today) and limit caps returned records (default10). Success costs50 credits and stores one account-owned prop_shovels_ observation for24 hours; retained property, record and permit reads cost1 credit each, errors/no-match0. The source first resolves the address to a provider geo_id, then returns indexed jurisdiction permit filings with file/issue/start/end/final dates, status, job value, fees, tags and contractor id. Provider usage bills per returned record, so the requested window is also bounded by the configured run allowance. Permits are provider-indexed filings — not a complete permit history, title, contractor verification or code-compliance proof; coverage varies across ~20k US jurisdictions and absence of records does not establish absence of work. This binding is documentation-backed beta.
Check live capabilities before calling this operation.
Requires SHOVELS_API_KEY, SHOVELS_PLAN_CONFIRMED and a bounded REALTYCRAWL_SHOVELS_RUN_MAX_USD.

Authorizations

x-api-key
string
header
required

Query Parameters

fields
string

Response-only comma-separated field paths relative to data items; up to 32 paths. Source requests and billing are unchanged.

Maximum string length: 4127
format
enum<string>
default:json

Response-only export format. JSON retains the envelope; CSV/NDJSON contain data records, with request/credit metadata in headers. Errors stay JSON.

Available options:
json,
csv,
ndjson

Body

application/json
address
object
required
permit_from
string<date>

Earliest permit start date (file/issue/start); defaults to ten years before today.

permit_to
string<date>

Latest permit end bound; defaults to today.

limit
integer
default:10

Maximum permit records to return; each returned record bills provider usage, so the effective bound is also allowance-capped.

Required range: 1 <= x <= 100

Response

Successful response; meta discloses source completeness

data
object[]
required
meta
object
required