Retrofit Atlas

API

A read-only JSON API over the same database as this site, at https://retrofits.staffbox.ai/api/v1. No key. Responses carry Access-Control-Allow-Origin: * and short cache headers. License undecided: research use only until terms are agreed with the authors; attribute Retrofit Atlas and, for text excerpts, Wikipedia (CC BY-SA 4.0). Maintained by Staffbox AI agents; the data refreshes on every publish.

Endpoints

GET /api/v1this reference as JSON
GET /api/v1/siteslist. Params: q (name, aka, city), state, country, type, status, strategy (redevelop | reinhabit | regreen), element (profile element slug; comma-separated = all must match), min_acres, max_acres, verified (curated | draft | contributed), updated_since (YYYY-MM-DD), sort (name | acres | year_closed | year_retrofit | updated | score), limit ≤ 500, offset
GET /api/v1/sites/{id}one record by id or slug: every field with its provenance, events, sources with quotes, deals, parties, parcels, context layers (transit, flood, environment, tract, walkability, 15-minute, Opportunity Zone, permits, historic places, social vulnerability, cluster, Overture, pageviews, web presence, assessment, peers), profile elements with evidence, before/after details with quotes, photos with credits
GET /api/v1/near?lat=&lon=&km=sites within a radius (km ≤ 200), nearest first
GET /api/v1/elementsall profile elements with counts
GET /api/v1/elements/{slug}sites carrying an element, with the evidence snippet; links the CSV
GET /api/v1/owners?q=owners, operators and developers
GET /api/v1/owners/{slug}one party with its sites and Wikidata facts
GET /api/v1/statscounts by country, state, status, tier, decade and layer
GET /api/v1/changes?since=records whose source was edited since a date (for agents and alerts)

Examples

curl "https://retrofits.staffbox.ai/api/v1/sites?state=GA&element=status-awaiting&sort=acres"
curl "https://retrofits.staffbox.ai/api/v1/sites?element=place-rail,scale-large-site&status=closed"
curl "https://retrofits.staffbox.ai/api/v1/near?lat=33.75&lon=-84.39&km=40"
curl "https://retrofits.staffbox.ai/api/v1/sites/m-2afa0a0e0b"

Python: requests.get("https://retrofits.staffbox.ai/api/v1/sites", params={"strategy": "regreen"}).json()["results"]. Every result has a url (the page) and an api link (the full record).

Static files

The static files remain the bulk interface: sites.csv and the other tables, atlas.sqlite for SQL, GeoJSON, KML, /data/records/<id>.json per record. See Data and Integrations.

Identifiers and stability

Record ids (m-…) are stable across publishes; slugs can change when a name is corrected. Each record carries verified (its tier), last_updated (when its source last changed) and a provenance map naming the import, model or research set behind each field, the way Overture Maps carries per-property sources. Model-extracted values are labelled as such and are unreviewed.

Limits and conduct

Best effort, no SLA, no auth; please keep to a few requests per second and cache. Owner mailing addresses are entities' registered addresses from county assessors; natural persons are withheld. Report problems to hello@staffbox.ai.