API Reference
Access location intelligence programmatically. 43 data sources. 8 signal groups. Enrichment, predictions, webhooks, and ML exports in one platform.
https://axiomlocus.io/apiAuthentication
The API supports three authentication methods. Most endpoints work without authentication (rate-limited by IP, 5 requests/day). Authenticated users get higher limits and access to protected endpoints.
1. API Key (recommended for programmatic access)
Generate an API key from Settings. Keys are prefixed with al_ and can be passed via either header:
# Option A: Authorization header
curl "https://axiomlocus.io/api/score?lat=37.77&lng=-122.41" \
-H "Authorization: Bearer al_your_key_here"
# Option B: X-API-Key header
curl "https://axiomlocus.io/api/score?lat=37.77&lng=-122.41" \
-H "X-API-Key: al_your_key_here"2. Session Cookie (browser use)
When signed in via the browser, your session cookie is sent automatically. No additional headers needed.
3. Anonymous
No credentials required. Rate-limited to 5 requests/day by IP address. Some endpoints return truncated data for anonymous users.
Rate Limits
Requests are rate-limited per day based on your plan. The remaining quota is returned in the X-RateLimit-Remaining response header.
When rate-limited, the API returns 429 Too Many Requests. See Pricing for full plan details.
/api/scoreScore a location across all 8 signal groups.
Parameters
Example Request
curl "https://axiomlocus.io/api/score?lat=37.7749&lng=-122.4194"Example Response
{
"composite": 78.4,
"confidence": 0.92,
"sourcesUsed": 36,
"sourcesTotal": 43,
"metro": "sf",
"profile": "general",
"groups": {
"businessVitality": {
"score": 82.1,
"confidence": 1.0,
"sourcesActive": 5,
"sourcesTotal": 6,
"subScores": [
{ "name": "Net Business Openings", "score": 71 },
{ "name": "Category Diversity", "score": 88 },
{ "name": "Rating Trajectory", "score": 79 }
]
}
}
}Response Fields
/api/bulk-scoreAuth RequiredScore up to 50 locations in a single request.
Request Body
{
"locations": [
{ "lat": 37.7749, "lng": -122.4194 },
{ "lat": 34.0522, "lng": -118.2437 }
],
"radius": 1.0,
"profile": "qsr"
}Example Request
curl -X POST "https://axiomlocus.io/api/bulk-score" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"locations":[{"lat":37.77,"lng":-122.41},{"lat":34.05,"lng":-118.24}]}'Example Response
{
"results": [
{
"lat": 37.77,
"lng": -122.41,
"composite": 78.4,
"confidence": 0.92,
"groups": { "..." : "..." }
},
{
"lat": 34.05,
"lng": -118.24,
"composite": 71.2,
"confidence": 0.88,
"groups": { "..." : "..." }
}
]
}Response Fields
/api/v1/enrichAuth RequiredEnrich any US address with scores, nearby POIs, permits, demographics, and risk data in a single call.
Parameters
Example Request
curl "https://axiomlocus.io/api/v1/enrich?address=123+Market+St+San+Francisco+CA" \
-H "Authorization: Bearer al_your_key_here"Example Response
{
"address": "123 Market St, San Francisco, CA 94105",
"lat": 37.7935,
"lng": -122.3958,
"metro": "sf",
"scores": {
"composite": 76.2,
"confidence": 0.94,
"groups": {
"businessVitality": { "score": 82 },
"populationMomentum": { "score": 71 },
"demographics": { "score": 80 }
}
},
"permits": {
"total": 34,
"total_value": 8200000,
"recent": [
{ "id": "P-2025-5678", "type": "renovation", "value": 450000 }
]
},
"demographics": {
"median_income": 112000,
"population_density": 18200,
"daytime_population_ratio": 3.4
},
"risk": {
"flood_zone": false,
"crime_index": 42,
"air_quality_aqi": 38
}
}Response Fields
/api/lead-lagAuth RequiredSurvival curve analysis showing how one signal leads or lags another. Useful for predicting which neighborhoods will gentrify, decline, or see permit surges.
Parameters
Example Request
curl "https://axiomlocus.io/api/lead-lag?cause=businessVitality&effect=developmentPipeline&metro=sf" \
-H "Authorization: Bearer al_your_key_here"Example Response
{
"cause": "businessVitality",
"effect": "developmentPipeline",
"metro": "sf",
"peak_lag_months": 6,
"peak_correlation": 0.72,
"survival_curve": [
{ "month": 0, "correlation": 0.12 },
{ "month": 3, "correlation": 0.45 },
{ "month": 6, "correlation": 0.72 },
{ "month": 9, "correlation": 0.58 },
{ "month": 12, "correlation": 0.31 }
],
"interpretation": "Business vitality changes lead development pipeline activity by ~6 months in SF."
}Response Fields
/api/permits/predictAuth RequiredSequence prediction for building permit activity at the H3 cell level. Uses historical permit patterns to forecast future issuance.
Parameters
Example Request
curl "https://axiomlocus.io/api/permits/predict?h3_index=882a100d63fffff&horizon=6" \
-H "Authorization: Bearer al_your_key_here"Example Response
{
"h3_index": "882a100d63fffff",
"historical_avg_monthly": 4.2,
"forecast": [
{ "month": "2026-04", "predicted_permits": 5, "confidence": 0.85 },
{ "month": "2026-05", "predicted_permits": 6, "confidence": 0.78 },
{ "month": "2026-06", "predicted_permits": 4, "confidence": 0.71 },
{ "month": "2026-07", "predicted_permits": 7, "confidence": 0.65 },
{ "month": "2026-08", "predicted_permits": 5, "confidence": 0.59 },
{ "month": "2026-09", "predicted_permits": 4, "confidence": 0.52 }
],
"trend": "increasing",
"model": "arima_h3_v2"
}Response Fields
/api/permits/hotspotsH3-aggregated building permit hotspots for a metro, ranked by permit density and total estimated cost.
Parameters
Example Request
curl "https://axiomlocus.io/api/permits/hotspots?metro_slug=sf&days=90&limit=10"Example Response
{
"metro": "sf",
"days": 90,
"hotspots": [
{
"h3_index": "882a100d63fffff",
"center_lat": 37.7749,
"center_lng": -122.4194,
"permit_count": 47,
"total_value": 12500000,
"avg_value": 265957,
"top_type": "new_construction"
},
{
"h3_index": "882a100d65fffff",
"center_lat": 37.7851,
"center_lng": -122.4094,
"permit_count": 32,
"total_value": 8700000,
"avg_value": 271875,
"top_type": "renovation"
}
]
}Response Fields
/api/crime/hotspotsCrime incident hotspots aggregated by H3 cell for a metro area.
Parameters
Example Request
curl "https://axiomlocus.io/api/crime/hotspots?metro_slug=sf&days=30&category=property"Example Response
{
"metro": "sf",
"days": 30,
"total_incidents": 1243,
"hotspots": [
{
"h3_index": "882a100d63fffff",
"incident_count": 89,
"top_category": "property",
"per_capita_rate": 12.4,
"trend": "declining"
}
]
}Response Fields
/api/commuter-flowsLEHD Origin-Destination commuter flow data for a Census tract. Shows where workers live and where residents work.
Parameters
Example Request
curl "https://axiomlocus.io/api/commuter-flows?tract=06075010800&direction=inbound&limit=10"Example Response
{
"tract": "06075010800",
"inbound": {
"total_workers": 14200,
"flows": [
{ "origin_tract": "06081611100", "workers": 890, "pct": 6.3, "origin_name": "Daly City" },
{ "origin_tract": "06001402100", "workers": 720, "pct": 5.1, "origin_name": "Oakland" }
]
},
"outbound": {
"total_residents_working": 3400,
"flows": [
{ "dest_tract": "06075017902", "workers": 210, "pct": 6.2, "dest_name": "SoMa" }
]
}
}Response Fields
/api/poisNearby points of interest with ratings and photos.
Parameters
Example Request
curl "https://axiomlocus.io/api/pois?lat=37.7749&lng=-122.4194&radius=0.5"Example Response
{
"pois": [
{
"id": "abc123",
"name": "Blue Bottle Coffee",
"primary_type": "cafe",
"rating": 4.5,
"review_count": 342,
"photo_reference": "Aap_uE...",
"distance_m": 120
}
]
}Response Fields
/api/permitsBuilding permits near a location with value aggregation.
Parameters
Example Request
curl "https://axiomlocus.io/api/permits?lat=37.7749&lng=-122.4194"Example 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"
}
]
}Response Fields
/api/trafficReal-time traffic flow data.
Parameters
Example Request
curl "https://axiomlocus.io/api/traffic?lat=37.7749&lng=-122.4194"Example Response
{
"current_speed": 28,
"free_flow_speed": 45,
"congestion_ratio": 0.62,
"congestion_level": "moderate",
"road_category": "arterial"
}Response Fields
/api/jobsLocal job market data.
Parameters
Example Request
curl "https://axiomlocus.io/api/jobs?lat=37.7749&lng=-122.4194"Example 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 }
]
}Response Fields
/api/cellsH3 heatmap cells for a metro area.
Parameters
Example Request
curl "https://axiomlocus.io/api/cells?metro=sf"Example Response
{
"cells": [
{
"h3_index": "882a100d63fffff",
"priority": 0.85,
"center_lat": 37.7749,
"center_lng": -122.4194
}
]
}Response Fields
/api/portsContainer and cargo volume data for US ports. Includes TEU throughput, year-over-year trends, and vessel calls.
Parameters
Example Request
curl "https://axiomlocus.io/api/ports?port_slug=la-lb&months=6"Example Response
{
"port_slug": "la-lb",
"port_name": "Port of Los Angeles / Long Beach",
"latest_teu": 892000,
"yoy_change_pct": 8.4,
"monthly": [
{ "month": "2026-03", "teu": 892000, "vessel_calls": 142 },
{ "month": "2026-02", "teu": 845000, "vessel_calls": 138 },
{ "month": "2026-01", "teu": 801000, "vessel_calls": 131 }
]
}Response Fields
/api/constructionSatellite-detected construction activity in a metro. Uses change detection on Sentinel-2 imagery to identify active sites.
Parameters
Example Request
curl "https://axiomlocus.io/api/construction?metro_slug=austin&days=60"Example Response
{
"metro": "austin",
"days": 60,
"total_detections": 34,
"detections": [
{
"h3_index": "882a107a0bfffff",
"center_lat": 30.2672,
"center_lng": -97.7431,
"estimated_area_sqft": 45000,
"confidence": 0.91,
"first_detected": "2026-02-15",
"last_detected": "2026-03-28",
"nearest_permit_id": "P-2025-9876"
}
]
}Response Fields
/api/discoverFilter locations by score thresholds across all metros.
Parameters
Example Request
curl "https://axiomlocus.io/api/discover?metro=sf&compositeMin=60&safetyMin=50"Response
Returns ranked locations matching all filter criteria.
{ "total": 12, "results": [{ "h3_index": "...", "metro_slug": "sf", "location_name": "Mission District", "composite": 74 }] }Response Fields
/api/nearbyEverything we know near a location — permits, POIs, schools, clinical trials, FDA events, zoning.
Parameters
Example Request
curl "https://axiomlocus.io/api/nearby?lat=37.7749&lng=-122.4194"Response
Cross-source facility intelligence query.
{ "summary": { "permits": 45, "pois": 120, "schools": 3, "clinical_trials": 8 }, "recent": { ... } }Response Fields
/api/score-trendsHistorical score trends for a metro or specific location.
Parameters
Example Request
curl "https://axiomlocus.io/api/score-trends?metro=sf&days=30"Response
Requires score_history to be populated by nightly cron.
{ "metro": "sf", "days": 30, "trend": [{ "date": "2026-03-30", "avg_composite": 42, "cells": 20 }] }Response Fields
/api/schoolsNearby school quality ratings (1-10 scale).
Parameters
Example Request
curl "https://axiomlocus.io/api/schools?lat=37.7749&lng=-122.4194&radius=1"Response
Uses SchoolDigger when API key is set, falls back to NCES-derived scores.
{ "total": 5, "schools": [{ "name": "Lincoln Elementary", "rating": 8, "enrollment": 450 }] }Response Fields
/api/life-sciencesClinical trials and FDA enforcement data by state or sponsor.
Parameters
Example Request
curl "https://axiomlocus.io/api/life-sciences?state=Massachusetts&type=trials&limit=10"Response
Part of the life sciences vertical overlay.
{ "trials": { "total": 10, "data": [{ "nct_id": "NCT05754281", "sponsor": "Joslin Diabetes Center" }] } }Response Fields
/api/zoningZoning district rules — allowed uses, height limits, FAR, setbacks.
Parameters
Example Request
curl "https://axiomlocus.io/api/zoning?metro=denver&category=commercial"Response
Requires zoning data to be loaded via the zoning AI parser.
{ "metro": "denver", "total": 8, "districts": [{ "district_code": "C-MX-5", "max_height_ft": 65, "max_far": 3.0 }] }Response Fields
/api/exportAuth RequiredExport scored location data as CSV or JSON. Requires Pro or Team plan.
Parameters
Example Request
curl "https://axiomlocus.io/api/export?metro=sf&format=csv" -H "X-API-Key: al_xxx"Response
Returns a downloadable CSV file. Requires authenticated Pro/Team user.
h3_index,metro_slug,location_name,composite,...
88283082e7fffff,sf,Mission District,74,.../api/exports/croissantAuth RequiredML-ready dataset metadata in Croissant (schema.org/Dataset) format for use with TensorFlow Datasets, Hugging Face, and other ML frameworks.
Parameters
Example Request
curl "https://axiomlocus.io/api/exports/croissant?dataset=scores&metro=sf" \
-H "Authorization: Bearer al_your_key_here"Example Response
{
"@context": "https://schema.org",
"@type": "Dataset",
"name": "axiom-locus-scores-sf",
"description": "Location intelligence scores for San Francisco metro area",
"license": "https://axiomlocus.io/terms",
"distribution": [
{
"@type": "DataDownload",
"encodingFormat": "application/jsonl",
"contentUrl": "https://axiomlocus.io/api/exports/training-data?dataset=scores&metro=sf&format=jsonl"
}
],
"variableMeasured": [
{ "name": "composite", "description": "Overall score 0-100" },
{ "name": "businessVitality", "description": "Business vitality signal 0-100" }
]
}Response Fields
/api/exports/training-dataAuth RequiredDownload training data in JSONL or CSV format for ML pipelines. Each row is one H3 cell with all features.
Parameters
Example Request
curl "https://axiomlocus.io/api/exports/training-data?dataset=scores&format=jsonl&metro=sf&limit=1000" \
-H "Authorization: Bearer al_your_key_here" -o training.jsonlResponse
Returns newline-delimited JSON (JSONL). Each line is one complete JSON object. Use -o to save to file.
{"h3_index": "882a100d63fffff","metro": "sf","composite": 76.2,"businessVitality": 82,"populationMomentum": 71,"demographics": 80,"economicStrength": 74,"developmentPipeline": 78,"accessibility": 69,"safety": 65,"amenity": 72}
{"h3_index": "882a100d65fffff","metro": "sf","composite": 71.8,"businessVitality": 75,"populationMomentum": 68,"demographics": 77,"economicStrength": 70,"developmentPipeline": 72,"accessibility": 65,"safety": 62,"amenity": 69}Response Fields
/api/monitorsAuth RequiredList your monitored locations.
Example Request
curl "https://axiomlocus.io/api/monitors" \
-H "Authorization: Bearer YOUR_TOKEN"Example Response
{
"monitors": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Mission District HQ",
"lat": 37.7599,
"lng": -122.4148,
"created_at": "2025-12-01T08: 00: 00Z"
}
]
}Response Fields
/api/monitorsAuth RequiredAdd a new monitored location.
Request Body
{
"name": "Mission District HQ",
"lat": 37.7599,
"lng": -122.4148
}Example Request
curl -X POST "https://axiomlocus.io/api/monitors" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"name":"Mission District HQ","lat":37.7599,"lng":-122.4148}'Example Response
{
"monitor": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Mission District HQ",
"lat": 37.7599,
"lng": -122.4148,
"user_id": "...",
"created_at": "2025-12-01T08: 00: 00Z"
}
}Response Fields
/api/monitorsAuth RequiredRemove a monitored location.
Parameters
Example Request
curl -X DELETE "https://axiomlocus.io/api/monitors?id=550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_TOKEN"Example Response
{
"success": true
}Response Fields
/api/alerts/historyAuth RequiredView alert history for your monitored locations.
Example Request
curl "https://axiomlocus.io/api/alerts/history" \
-H "Authorization: Bearer YOUR_TOKEN"Example Response
{
"alerts": [
{
"id": "a1b2c3d4",
"monitor_id": "550e8400-...",
"type": "score_change",
"message": "Composite score dropped from 78 to 65",
"created_at": "2025-12-15T14: 30: 00Z"
}
]
}Response Fields
/api/v1/webhooksAuth RequiredRegister a webhook to receive real-time notifications when scores change, new permits are filed, or monitored locations trigger alerts.
Request Body
{
"url": "https://your-app.com/hooks/axiom",
"events": ["score.changed", "permit.filed", "alert.triggered"],
"secret": "whsec_your_signing_secret"
}Example Request
curl -X POST "https://axiomlocus.io/api/v1/webhooks" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer al_your_key_here" \
-d '{"url":"https://your-app.com/hooks/axiom","events":["score.changed","permit.filed"]}'Example Response
{
"webhook": {
"id": "wh_abc123def456",
"url": "https://your-app.com/hooks/axiom",
"events": ["score.changed", "permit.filed"],
"active": true,
"created_at": "2026-03-31T12: 00: 00Z"
}
}Response Fields
/api/v1/webhooksAuth RequiredList all registered webhooks for your account.
Example Request
curl "https://axiomlocus.io/api/v1/webhooks" \
-H "Authorization: Bearer al_your_key_here"Example Response
{
"webhooks": [
{
"id": "wh_abc123def456",
"url": "https://your-app.com/hooks/axiom",
"events": ["score.changed", "permit.filed"],
"active": true,
"created_at": "2026-03-31T12: 00: 00Z",
"last_delivery": "2026-03-31T14: 22: 00Z",
"delivery_success_rate": 0.98
}
]
}Response Fields
/api/v1/webhooksAuth RequiredDelete a webhook registration.
Parameters
Example Request
curl -X DELETE "https://axiomlocus.io/api/v1/webhooks?id=wh_abc123def456" \
-H "Authorization: Bearer al_your_key_here"Example Response
{ "success": true }Response Fields
/api/v1/integrations/salesforceAuth RequiredPush enriched location data to Salesforce CRM. Creates or updates custom objects with scores, permits, and demographics.
Request Body
{
"action": "sync",
"object_type": "Location__c",
"records": [
{
"address": "123 Market St, San Francisco, CA",
"lat": 37.7935,
"lng": -122.3958
}
]
}Example Request
curl -X POST "https://axiomlocus.io/api/v1/integrations/salesforce" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer al_your_key_here" \
-d '{"action":"test_connection"}'Response
Requires Salesforce OAuth connection configured in Settings.
{
"connected": true,
"org_id": "00D5f000000XXXX",
"user": "sam@axiomlocus.io",
"available_objects": ["Location__c", "Account", "Lead"]
}Response Fields
/api/v1/keysAuth RequiredCreate and manage API keys programmatically. Keys are prefixed with al_ and can be scoped to specific endpoints.
Request Body
{
"action": "create",
"name": "Production Key",
"scopes": ["score", "enrich", "permits"]
}Example Request
curl -X POST "https://axiomlocus.io/api/v1/keys" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer al_your_key_here" \
-d '{"action":"create","name":"Production Key","scopes":["score","enrich"]}'Response
The full token is only returned on creation. Store it securely.
{
"key": {
"id": "key_abc123",
"name": "Production Key",
"token": "al_live_abc123def456ghi789",
"scopes": ["score", "enrich"],
"created_at": "2026-03-31T12: 00: 00Z"
}
}Response Fields
/api/reportAuth RequiredGenerate a branded PDF location report.
Parameters
Example Request
curl "https://axiomlocus.io/api/report?lat=37.7749&lng=-122.4194&name=Mission+District" \
-H "Authorization: Bearer YOUR_TOKEN" \
-o report.pdfResponse
Returns a PDF binary. Use -o to save to a file.
# Binary PDF response
Content-Type: application/pdf
Content-Disposition: attachment; filename="axiom-locus-report-mission-district.pdf"/api/places-photoProxy for business photos.
Parameters
Example Request
curl "https://axiomlocus.io/api/places-photo?ref=Aap_uE...&w=200" -o photo.jpgResponse
Returns a JPEG image binary.
# Binary JPEG response
Content-Type: image/jpegTry It
Enter coordinates to see a live response from the scoring API. Rate limits apply.