Skip to main content

GET /api/discover

Filter locations by score thresholds across all metros. Query parameters Example
Response

POST /api/cells/similar

Find the nearest look-alike cells to a given H3 cell by driver-profile or satellite-image signature. Unlike the same-metro “Comparable cells” section of the Explorer — which ranks by absolute composite-score distance within one metro — this endpoint ranks by shape similarity (cosine nearest-neighbor over a per-cell vector) and can look across every scored metro. Use it when you want to answer “where else does a place like this exist?” Two similarity bases are supported today, plus a blend of the two: Request body Example
Response (found)
Response (source has no satellite embedding, satellite/blend mode)
Availability. score mode is live: feature_vec is refreshed automatically as cells re-score. satellite and blend are gated on the AlphaEarth Earth Engine backfill — until embeddings exist, requests in those modes will return found: false with reason: "no_satellite_embedding". Score mode is the correct default for production use today.
Set sameMetroOnly: true if you want a within-metro comparison — for example, “find other cells in San Francisco that look like this one.” Leaving it false (the default) is what makes this different from the Explorer’s legacy same-metro comparables card.

GET /api/nearby

Everything we know near a location — permits, POIs, schools, clinical trials, FDA events, zoning. Query parameters Example
Response

GET /api/metro-tier-distribution

Count of scored cells in each safety tier bucket for a given signal across a metro. Powers the tier-mix bar on the Explorer Intelligence Rail so you can see at a glance whether a metro is mostly safe or mostly elevated, without leaving the page. Buckets follow the standard composite score breakpoints: Prime ≥80, Strong 60–79, Solid 40–59, Watch 20–39, Elevated <20. Cells with a null value for the requested signal are excluded. Query parameters Example
Response
The same endpoint backs distribution bars for any signal group — pass a different signal to render a development-pipeline mix, business-vitality mix, or composite mix without a separate route. Historical score trends for a metro or specific H3 cell. Pass metro for a metro-wide aggregate trend or h3_index for a per-cell time-series with all eight signal-group sub-scores. Exactly one of the two is required. The endpoint reads from the score_history table that the Railway scorer snapshots once per day, so a fresh row appears for every (h3_index, profile, snapshot_date) covered by that day’s scorer pass. Cells the scorer didn’t touch on a given day will be absent from the time-series for that date. Query parameters Metro aggregate example
Per-cell example

GET /api/top-movers

Discover the cells whose composite score has changed the most over a 7-, 30-, 90-, or 180-day window. Each row reports the latest composite, the prior-window composite, and the delta between them, so you can surface neighborhoods that are heating up (or cooling off) without manually diffing snapshots from /api/score-trends. Deltas are computed against the freshest snapshot in score_history at or before the lookback boundary, not a fixed calendar date. This means partial scorer coverage on any given day does not bias the leaderboard — cells without a baseline snapshot inside the window are simply excluded. The same RPC powers the metro-overview “movement” rail in the Explorer and the standalone /movers page in the dashboard. Query parameters Example
Response
Daily snapshots accumulate from the moment a cell is first scored, so newer metros may return an empty movers array on longer windows until enough history has built up. Use a shorter window (days=7) to surface activity earlier.

GET /api/schools

Nearby school quality ratings (1-10 scale). Query parameters Example
Response

GET /api/life-sciences

Clinical trials and FDA enforcement data by state or sponsor. Query parameters Example
Response

GET /api/zoning

Zoning district rules — allowed uses, height limits, FAR, setbacks. Query parameters Example
Response

GET /api/port-risk

Surface upstream port disruption affecting a Locus metro’s economic catchment. Twenty-two metros are mapped to their primary and secondary ports by trucking corridor (e.g. phoenix → Long Beach via I-10, atlanta → Savannah via I-16). When an inbound port shows elevated wait times in Overwatch, the row appears here with a risk_level of watch, elevated, or severe, derived from p90 wait, median wait, and trend direction. Returns an empty risks array when no upstream port is currently disrupted — the PortRiskBadge on cell-detail panels uses that signal to hide itself. Use this to flag CRE locations whose tenants depend on container imports (industrial, logistics, big-box retail) before a soft port closure shows up in occupancy or rent comps. Query parameters Example
Response

GET /api/export

Requires Bearer token.
Export scored location data as CSV or JSON. Requires Pro or Team plan (bulk_export entitlement). Query parameters Portfolio export (saved=true) Set saved=true to export only the cells the authenticated user has saved into their portfolio (their monitored_locations). This is the intended workflow for analysts who track a curated set of cells across metros and want a CSV/JSON snapshot of just those rows rather than a full-metro or platform-wide pull.
  • The filter is applied as an IN over the caller’s saved h3_index list, so the result respects ordering by composite (descending) and the limit cap.
  • It composes with metro — combining saved=true&metro=sf returns only saved cells inside SF.
  • If the user has no saved cells, the endpoint short-circuits to an empty payload (200 OK) without scanning cell_scores. CSV responses return an empty body; JSON responses return { "total": 0, "data": [] }.
  • The download filename is tagged saved (e.g. axiom-locus-saved-2026-04-29.csv) instead of the metro slug or all, so portfolio exports are easy to identify on disk.
Examples Export all SF cells as CSV:
Export the caller’s saved cells (portfolio) as CSV:
Export the caller’s saved cells inside one metro as JSON:
Response

GET /api/bids

Search federal and government procurement opportunities sourced from SAM.gov. Filter by state, keyword, or NAICS code to find relevant contracts. Query parameters Example
Response