API Reference
Base URL https://api.markettimeline.com · All responses are JSON. Get a free key from the signup page.
Authentication
Send your key as a Bearer token (or the X-API-Key header):
curl -H "Authorization: Bearer mt_live_xxx" \
"https://api.markettimeline.com/v1/avm/12345"
Health check (no auth): GET /health
Errors, rate limits & pagination
Success: { "status":"ok", "data":…, "meta":{…} }. Error: { "status":"error", "error":{ "code","message" } }.
| Status | Meaning |
|---|---|
| 401 | Missing / invalid API key |
| 403 | Plan does not include this endpoint (upgrade) |
| 404 | Unknown endpoint or resource |
| 429 | Per-minute rate or monthly quota exceeded (see Retry-After) |
Every response carries X-RateLimit-Limit/Remaining/Reset and X-Quota-Limit/Remaining.
Paginated endpoints accept ?page= and ?limit= (capped by your plan).
OpenAPI / Postman
Machine-readable spec: /docs/openapi.json — import it into Postman or Insomnia.
Geo — states
GET /v1/geo/states — all states with ids.
Counties, cities, zips
GET /v1/geo/counties?state_id=
GET /v1/geo/cities?state_id=&county_id=&q=
GET /v1/geo/zips?city_id=&state_id=&q=
Autocomplete
GET /v1/geo/search?q=austin&type=city|zip|county — resolve names to ids.
Property
GET /v1/property/{id} — characteristics, geo names, and current AVM.
Search
GET /v1/property/search?city_id=|zip_id=&beds_min=&baths_min=&sqft_min=&sqft_max=&year_min=&property_type= — requires city_id or zip_id.
Sale history
GET /v1/property/{id}/history
Tax history
GET /v1/property/{id}/tax-history
Valuation (AVM) Starter+
GET /v1/avm/{property_id} — estimated value, basis, and confidence.
Bulk Growth+
POST /v1/avm/bulk — body {"property_ids":[123,456]}.
Comparable sales Growth+
GET /v1/avm/comps?property_id=|zip_id=&sqft=
Market — stats
GET /v1/market/{geo_type}/{geo_id}/stats?granularity=year|month — geo_type ∈ state, county, city, neighborhood, zip. Annual median is the sales-weighted mean of monthly medians.
Appreciation
GET /v1/market/{geo_type}/{geo_id}/appreciation — 1/3/5/10-year rates.
DOM, rental, inventory, best-month, flood, permits
GET /v1/market/state/{id}/dom · /v1/market/state/{id}/best-month (state only)
GET /v1/market/zip/{id}/inventory (zip only)
GET /v1/market/{geo_type}/{geo_id}/rental · /flood · /permits
Investor — flips Starter+
GET /v1/flips?state_id=|city_id=|zip_id=&min_gain_pct=
GET /v1/flips/stats/{geo_type}/{geo_id} — geo_type ∈ state, city, zip, neighborhood.
Distressed Starter+
GET /v1/distressed?state_id=|city_id=|zip_id=&min_discount_pct=
Tax — appeal check
GET /v1/tax/{property_id}/appeal — is the property over-assessed vs its last sale?
Candidates Starter+
GET /v1/tax/appeal-candidates?state_id=|city_id=|zip_id=&min_overassessment_pct=
Burden
GET /v1/tax/burden/{geo_type}/{geo_id} — effective tax rate.
Agents & brokerages Starter+
GET /v1/agents?state_id=&city_id=&year= — leaderboard by volume.
GET /v1/agent/{id}/stats
GET /v1/brokerages?state_id=&city_id=&year=
GET /v1/brokerage/{id}/stats
Data is derived from public records and MarketTimeline's own aggregated analytics. No live MLS listings are exposed. © MarketTimeline.