Skip to main content

GET /api/pois

Nearby points of interest with ratings and photos. Query parameters
NameTypeRequiredDefaultDescription
latfloatLatitude.
lngfloatLongitude.
radiusfloat0.5Radius in km (max 10).
limitint50Max results to return (max 200).
Example
curl "https://axiomlocus.io/api/pois?lat=37.7749&lng=-122.4194&radius=0.5"
Response
{
  "pois": [
    {
      "id": "abc123",
      "name": "Blue Bottle Coffee",
      "primary_type": "cafe",
      "rating": 4.5,
      "review_count": 342,
      "photo_reference": "Aap_uE...",
      "distance_m": 120
    }
  ]
}
FieldTypeDescription
poisarrayArray of nearby point-of-interest objects.
pois[].idstringUnique POI identifier.
pois[].namestringBusiness name.
pois[].primary_typestringBusiness type category.
pois[].ratingfloatAverage rating (0-5).
pois[].review_countintTotal number of reviews.
pois[].photo_referencestringPhoto reference for use with /api/places-photo.
pois[].distance_mfloatDistance from query point in meters.

GET /api/permits

Building permits near a location with value aggregation. Query parameters
NameTypeRequiredDefaultDescription
latfloatLatitude.
lngfloatLongitude.
radiusfloat1.0Radius in km (max 10).
Example
curl "https://axiomlocus.io/api/permits?lat=37.7749&lng=-122.4194"
Response
{
  "total_permits": 47,
  "total_value": 12500000,
  "by_type": {
    "new_construction": 12,
    "renovation": 28,
    "demolition": 7
  },
  "permits": [
    {
      "id": "P-2025-1234",
      "permit_type": "new_construction",
      "status": "issued",
      "address": "123 Market St",
      "estimated_cost": 2500000,
      "issue_date": "2025-11-15"
    }
  ]
}
FieldTypeDescription
total_permitsintTotal number of permits in the radius.
total_valuefloatSum of estimated_cost across all permits.
by_typeobjectPermit count grouped by type.
permitsarrayUp to 10 most recent permit records.

GET /api/traffic

Real-time traffic flow data. Query parameters
NameTypeRequiredDefaultDescription
latfloatLatitude.
lngfloatLongitude.
Example
curl "https://axiomlocus.io/api/traffic?lat=37.7749&lng=-122.4194"
Response
{
  "current_speed": 28,
  "free_flow_speed": 45,
  "congestion_ratio": 0.62,
  "congestion_level": "moderate",
  "road_category": "arterial"
}
FieldTypeDescription
current_speedintCurrent speed in mph.
free_flow_speedintFree-flow speed in mph (no traffic).
congestion_ratiofloatRatio of current to free-flow speed (0-1).
congestion_levelstringHuman-readable congestion level.
road_categorystringRoad type classification.

GET /api/jobs

Local job market data. Query parameters
NameTypeRequiredDefaultDescription
latfloatLatitude.
lngfloatLongitude.
Example
curl "https://axiomlocus.io/api/jobs?lat=37.7749&lng=-122.4194"
Response
{
  "total_postings": 1243,
  "avg_salary": 95000,
  "top_categories": [
    { "name": "IT Jobs", "count": 412 },
    { "name": "Engineering", "count": 198 }
  ],
  "top_companies": [
    { "name": "Salesforce", "count": 87 },
    { "name": "Google", "count": 64 }
  ]
}
FieldTypeDescription
total_postingsintTotal active job postings near this location.
avg_salaryfloatAverage listed salary in USD.
top_categoriesarrayTop job categories by count.
top_companiesarrayTop hiring companies by posting count.

GET /api/cells

H3 heatmap cells for a metro area. Query parameters
NameTypeRequiredDefaultDescription
metrostringsfMetro slug (e.g. sf, nyc, la, chi, mia, atx).
Example
curl "https://axiomlocus.io/api/cells?metro=sf"
Response
{
  "cells": [
    {
      "h3_index": "882a100d63fffff",
      "priority": 0.85,
      "center_lat": 37.7749,
      "center_lng": -122.4194
    }
  ]
}
FieldTypeDescription
cellsarrayArray of H3 hexagonal cells.
cells[].h3_indexstringH3 hex index at resolution 8.
cells[].priorityfloatPriority score for heatmap rendering (0-1).
cells[].center_latfloatLatitude of the hex center.
cells[].center_lngfloatLongitude of the hex center.

GET /api/neighborhood-score

Aggregated scores for an H3 neighborhood (resolution-7 parent cell). Returns the average of all resolution-8 child cells within the neighborhood. Fast, cached response. Query parameters
NameTypeRequiredDefaultDescription
h3IndexstringResolution-8 H3 cell index. The endpoint automatically resolves the parent neighborhood.
profilestringgeneralScoring profile.
Example
curl "https://axiomlocus.io/api/neighborhood-score?h3Index=882a100d63fffff&profile=general"
Response
{
  "composite": 68.4,
  "confidence": 0.89,
  "scoreLow": 62.1,
  "scoreHigh": 74.7,
  "coverageLevel": "high",
  "groups": {
    "businessVitality": { "score": 72, "confidence": 0.91 },
    "populationMomentum": { "score": 65, "confidence": 0.87 },
    "demographics": { "score": 71, "confidence": 0.93 },
    "economicStrength": { "score": 67, "confidence": 0.88 },
    "developmentPipeline": { "score": 60, "confidence": 0.82 },
    "accessibility": { "score": 78, "confidence": 0.95 },
    "safetyEnvironment": { "score": 55, "confidence": 0.84 },
    "amenityDemand": { "score": 73, "confidence": 0.90 }
  },
  "cellCount": 7,
  "neighborhoodH3": "872a100d6ffffff",
  "profile": "general"
}
FieldTypeDescription
compositefloatAverage composite score across the neighborhood.
scoreLow / scoreHighfloatConfidence interval bounds.
coverageLevelstringData coverage: high, medium, or low.
cellCountintNumber of resolution-8 cells averaged.
neighborhoodH3stringResolution-7 parent H3 index.

GET /api/neighborhoods/score

Score a named neighborhood by running the full scoring engine across cells within its boundary. More detailed than /api/neighborhood-score — includes tier classification, summary text, and the neighborhood boundary geometry. Query parameters
NameTypeRequiredDefaultDescription
metro_slugstringMetro slug (e.g. sf, nyc).
namestringNeighborhood name (e.g. Hayes Valley, SoMa).
profilestringgeneralScoring profile.
Example
curl "https://axiomlocus.io/api/neighborhoods/score?metro_slug=sf&name=Hayes+Valley"
Response
{
  "neighborhood": {
    "name": "Hayes Valley",
    "metro_slug": "sf",
    "cell_count": 14,
    "sampled_cells": 10,
    "population": 8200,
    "source": "census_places"
  },
  "score": {
    "composite": 74,
    "tier": "A",
    "tierDescription": "Strong fundamentals with active development signals",
    "summary": "Hayes Valley scores well for business vitality and accessibility, driven by dense retail corridors and strong transit access.",
    "confidence": 0.91,
    "scoreLow": 68,
    "scoreHigh": 80,
    "coverageLevel": "high",
    "sourcesUsed": 18,
    "sourcesTotal": 22,
    "profile": "general",
    "groups": {
      "businessVitality": { "score": 82, "tier": "A", "confidence": 0.93 },
      "accessibility": { "score": 88, "tier": "A+", "confidence": 0.96 }
    }
  }
}
FieldTypeDescription
neighborhood.cell_countintTotal H3 cells in the boundary.
neighborhood.sampled_cellsintNumber of cells actually scored (up to 10).
score.tierstringLetter grade: A+, A, B+, B, C, D, F.
score.summarystringAI-generated narrative summary of the neighborhood’s strengths and weaknesses.
score.groupsobjectPer-group scores with tier and confidence.