API Reference
All endpoints require an API key via the X-API-Key header. Responses use a { data, meta } envelope. Click any endpoint for full request/response details.
Response Format
{
"data": "...",
"meta": {
"requestId": "abc-123",
"timestamp": "2026-02-21T12:00:00Z",
"pagination": {
"page": 1,
"limit": 20,
"total": 150,
"totalPages": 8
}
}
}Content Negotiation
Request format via query parameter (?format=xml) or Accept header. Priority: query param > Accept header > default (JSON).
Data Availability by Area Type
Not all data domains are available at every geographic level. This table shows which data types each area type supports.
| Area Type | Demographics | Fair Market Rent | Migration | Mortgage | Employment |
|---|---|---|---|---|---|
| ZIP Code | ✓ | ✓ | — | — | — |
| County | ✓ | ✓ | ✓ | ✓ | ✓ |
| State | ✓ | — | ✓ | ✓ | ✓ |
| Census Tract | ✓ | — | — | ✓ | ✓ |
| Metro Area (CBSA) | ✓ | — | — | — | — |
| Place | ✓ | — | — | — | ✓ |
| Block Group | ✓ | — | — | — | ✓ |
ZIP Codes
Search, lookup, and spatial queries for US ZIP codes
| Method | Endpoint | Tier |
|---|---|---|
| GET | /zip-codes | free |
| GET | /zip-codes/:zip | free |
| GET | /zip-codes/by-city | free |
| GET | /zip-codes/by-coordinates | free |
| GET | /zip-codes/distance | starter |
| GET | /zip-codes/:zip/radius | starter |
| POST | /zip-codes/batch | enterprise |
| POST | /zip-codes/distance/matrix | enterprise |
Demographics
Population, income, housing, education, and employment data by ZIP code
| Method | Endpoint | Tier |
|---|---|---|
| GET | /demographics/:zip | starter |
| GET | /demographics/:zip/population | starter |
| GET | /demographics/:zip/income | starter |
| GET | /demographics/:zip/housing | starter |
| GET | /demographics/compare | starter |
| POST | /demographics/aggregate | enterprise |
| GET | /demographics/area/:areaType/:geoid | starter |
| GET | /demographics/:zip/trend | starter |
| GET | /demographics/area/:areaType/:geoid/trend | starter |
| GET | /demographics/:zip/changes | starter |
| GET | /demographics/area/:areaType/:geoid/changes | starter |
Boundaries
GeoJSON boundary polygons for ZIP codes, counties, and states with spatial operations
| Method | Endpoint | Tier |
|---|---|---|
| GET | /boundaries/zip/:zip | starter |
| GET | /boundaries/county/:fips | starter |
| GET | /boundaries/state/:abbr | starter |
| GET | /boundaries/containing | starter |
| POST | /boundaries/intersecting | enterprise |
| POST | /boundaries/point-in-polygon | enterprise |
| GET | /boundaries/viewport | starter |
| GET | /search/areas | starter |
Market Data / FMR
Fair Market Rent data by ZIP code, county, metro area, and state — sourced from HUD
| Method | Endpoint | Tier |
|---|---|---|
| GET | /market/fmr/zip/:zip | starter |
| GET | /market/fmr/county/:fips | starter |
| GET | /market/fmr/metro/:code | starter |
| GET | /market/fmr/state/:state | starter |
| GET | /market/fmr/:areaType/:areaCode/trend | starter |
Geocoding
Forward and reverse geocoding with address validation and autocomplete
| Method | Endpoint | Tier |
|---|---|---|
| GET | /geocode | starter |
| GET | /geocode/reverse | starter |
| GET | /geocode/autocomplete | starter |
| POST | /geocode/validate | starter |
| POST | /geocode/batch | enterprise |
Locations
Store, search, and query custom locations with spatial lookups
| Method | Endpoint | Tier |
|---|---|---|
| GET | /locations | starter |
| GET | /locations/:id | starter |
| GET | /locations/nearby | starter |
| GET | /locations/search | starter |
| POST | /locations | starter |
| PUT | /locations/:id | starter |
| DELETE | /locations/:id | starter |
| POST | /locations/bulk | enterprise |
| DELETE | /locations/bulk | enterprise |
Mortgage Lending
HMDA mortgage lending metrics aggregated at tract, county, and state levels (2018–2024)
| Method | Endpoint | Tier |
|---|---|---|
| GET | /mortgage/area/:areaType/:geoid | business |
| GET | /mortgage/area/:areaType/:geoid/trend | business |
| GET | /mortgage/years | business |
Employment
LODES/LEHD employment profiles, commute flows, and workforce trends by area (2017–2022)
| Method | Endpoint | Tier |
|---|---|---|
| GET | /employment/area/:areaType/:geoid | business |
| GET | /employment/area/:areaType/:geoid/trend | business |
| GET | /employment/area/:areaType/:geoid/flows/:direction | business |
| GET | /employment/years | business |
Migration
IRS SOI county-to-county and state-to-state migration flows with income data
| Method | Endpoint | Tier |
|---|---|---|
| GET | /migration/:level/:fips/summary | business |
| GET | /migration/:level/:fips/:direction | business |
| GET | /migration/:level/:fips/trends | business |
| GET | /migration/years | business |
Environmental (EJScreen)
EPA EJScreen environmental justice indicators at block group level — air quality, cancer risk, and proximity to hazardous sites
| Method | Endpoint | Tier |
|---|---|---|
| GET | /environmental/area/:areaType/:geoid | business |
| GET | /environmental/years | business |
Industry Employment (QCEW)
BLS Quarterly Census of Employment and Wages — county and state level industry employment, wages, and establishment counts
| Method | Endpoint | Tier |
|---|---|---|
| GET | /industry/area/:areaType/:geoid | business |
| GET | /industry/years | business |
Unemployment (LAUS)
BLS Local Area Unemployment Statistics — monthly county-level unemployment rates, labor force, and employment levels
| Method | Endpoint | Tier |
|---|---|---|
| GET | /unemployment/area/:areaType/:geoid | business |
| GET | /unemployment/latest/:areaType/:geoid | business |
| GET | /unemployment/years | business |
Air Quality (PM2.5)
CDC tract-level annual PM2.5 concentration estimates from satellite-derived models
| Method | Endpoint | Tier |
|---|---|---|
| GET | /air-quality/area/:areaType/:geoid | business |
| GET | /air-quality/trend/:areaType/:geoid | business |
| GET | /air-quality/years | business |