One normalized JSON schema for US building permits. Base URL https://api.vardhol.dev.
Authenticate with an X-API-Key header. ← back to overview
A shared, read-only sample key is baked in. First call in under a minute:
curl -H "X-API-Key: pk_sample_readonly_permits" \ "https://api.vardhol.dev/permits?jurisdiction=us-il-chicago&type=roofing&limit=5"
curl -X POST "https://api.vardhol.dev/signup?email=you@company.com"
Returns a pk_… key on the free tier (250 records/month). Send it as the
X-API-Key header on every /permits call.
Normalized, metered permit records. Query parameters:
| Param | Type | Meaning |
|---|---|---|
| jurisdiction | string | slug, e.g. us-il-chicago — see coverage |
| type | string | normalized permit_type: roofing · solar_pv · electrical · new_construction · … |
| status | string | normalized status |
| since | date | issued_date >= YYYY-MM-DD |
| limit | int | 1–1000 (default 100) |
| cursor | int | keyset pagination — pass the previous response's next_cursor |
Response: { "data": [...], "count", "next_cursor", "quota" }. Metered by
records returned, with a hard quota stop (HTTP 402) — no overage, no surprise bills.
| Method | Path | Auth | What |
|---|---|---|---|
| GET | /permits | key | normalized permit records (metered) |
| GET | /coverage | public | jurisdictions + freshness + requested counties |
| POST | /signup | public | instant free key |
| POST | /request-county | public | vote for a jurisdiction we don't cover yet |
| GET | /openapi-ui | public | interactive OpenAPI (Swagger) reference |
curl -X POST "https://api.vardhol.dev/request-county?county=Maricopa%20AZ&email=you@company.com"
Demand is how we prioritize what to add next.
The same API is on RapidAPI, which handles keys, metering and billing for you. Subscribe
there and call the endpoints with RapidAPI's headers — no X-API-Key needed. Plans map 1:1
to our tiers: Basic 250 · Pro $49 · Ultra $149 · Mega $399.