metrosignals

API Reference

US development intelligence — every output consumable programmatically.

Authentication

Authorization: Bearer <key>

Generate tokens in Account → PAT Manager

Endpoints

GET/api/heatmapAggregated heatmap data

bbox(string)Bounding box (minLng,minLat,maxLng,maxLat)

state(string)Two-letter state code (e.g. TX)

metro(string)Metro area name

from(string)Start date (YYYY-MM-DD)

to(string)End date (YYYY-MM-DD)

GET/api/signalsList development signals

lat(float)Latitude center point

lng(float)Longitude center point

radius(float)Radius in miles

from(string)Start date

to(string)End date

type(string)Signal type filter

GET/api/signals/fipsSignals by FIPS code

fips(string)5-digit FIPS code

GET/api/searchSearch intelligence layers

q(string)Query

type(string)Layer type

GET/api/pricingPricing tiers
GET/api/docsOpenAPI 3.0 spec (JSON)
GET/api/healthHealth check

Example

curl "https://metrosignals.com/api/heatmap?state=TX&from=2024-01-01&to=2024-12-31" \
  -H "Authorization: Bearer YOUR_API_KEY"

Response Status Codes

200 Success

400 Bad request — check parameters

401 Unauthorized — missing or invalid API key

429 Rate limited — 120 req/min per IP

500 Internal error

Rate Limiting

120 requests per minute per IP. Exceeded requests return a 429 response:

{ "error": "rate_limited", "message": "Too many requests. Try again in a moment." }