Home/API & Data
REST API · v1

Construction intelligence,
API-first.

Programmatic access to the unified US municipal-permit dataset — permits, contractors, inspections, fees, and more — served through a clean REST API with Bearer-key auth and keyset pagination.

5
ENDPOINTS
6
ENTITY TYPES
REST + JSON
PROTOCOL
Bearer
AUTH
# Authenticate with your API key curl https://api.buildersmonitor.com/v1/permits/search -H "Authorization: Bearer bmk_live_…"
Authentication

Bearer key, every request.

All API endpoints require a valid API key passed as Authorization: Bearer <key>. Keys are scoped to your account's plan and entitled jurisdictions.

01

Create an account

Sign up at buildersmonitor.com. A free tier is available with limited monthly lookups.

Sign up free
02

Mint an API key

Navigate to /app/api-keys and generate a key. Keys are prefixed bmk_live_ for production and bmk_test_ for sandbox.

Manage keys
03

Send the Bearer header

Include the key on every request as Authorization: Bearer <key>. The key scopes the response to your entitled jurisdictions and field tiers.

Auth error reference

Status / CodeMeaning
401 missing_api_keyNo Authorization header supplied.
401 invalid_api_keyKey is unknown, revoked, or malformed.
403 surface_not_entitledYour plan does not include this endpoint surface (api / bulk).
403 category_not_entitledYour entitlement does not grant the requested data category.
429 rate_limitedExceeded per-minute rate limit. Retry after a short back-off.
429 monthly_quota_exceededMonthly lookup budget exhausted. Upgrade or wait for reset.
Code examples

Copy, paste, ship.

Real requests against real endpoints. Base URL is https://api.buildersmonitor.com — keys issued at /app/api-keys.

Bulk exports

Bring the dataset into your stack.

Enterprise customers can pull full snapshots or incremental deltas of the unified dataset as Parquet, CSV, or GeoJSON files — delivered via signed download URLs, scoped to your entitled jurisdictions.

Enterprise surface. Bulk exports require the bulk entitlement surface, available on enterprise plans. Warehouse-native delivery (Snowflake data share, BigQuery transfer) is a roadmap option — contact sales to discuss.

unified.* → async job → artifact → signed URL

01

POST /v1/exports

Submit a job: category (permits, contractors…), format, and optional since date for delta.

02

Job queued

Returns job_id immediately. The worker runs asynchronously — no blocking HTTP.

03

Poll status

GET /v1/exports/{job_id} returns pending → complete with manifest and row_count.

04

Download

Fetch the signed URL from the status response. Your API key is required on the download call too.

Primary

Parquet

Column-store with zstd compression. Loads directly into Snowflake, BigQuery, Redshift, DuckDB, and Spark.

Tabular

CSV

UTF-8, comma-delimited. Compatible with any spreadsheet, database import, or custom pipeline.

Spatial

GeoJSON

Each row with lat/lon is a GeoJSON Feature. Load into PostGIS, QGIS, or any geospatial tool.