One endpoint. Fifty-three perils.

POST an address. Get back a graded peril profile with full provenance. Streaming, batch, and webhook variants for production scale.

GET/v1/risks/fast

Score a single address

Returns 54 peril grades + dominant peril analysis + 16-day GFS forecast + sub-hour HRRR forecast for any U.S. address. Cold p50 ~10 ms, p95 ~50 ms.

# Request
GET /v1/risks/fast?lat=25.79&lng=-80.13
Authorization: Bearer $KEY

# Response · 200 OK
{
  "address_id": 8392104,
  "address": "1242 Ocean Dr, Miami Beach, FL 33139",
  "peril_grades": {
    "hurricane": "F", "storm_surge": "E",
    "flood":     "V", "wind":       "D",
    "hail":      "B", "tornado":    "C",
    "wildfire":  "A", "earthquake": "A"
  },
  "dominant_peril": "hurricane",
  "forecast": {
    "hrrr_sub_hour": { "active_threat": false },
    "gfs_16_day":    { "max_severity": "moderate" }
  },
  "model": { "version": "AEPM v2024.3", "layers": ["atmos", "surface", "convective", "seismic"] }
}
POST/v1/risks/batch_fast

Score up to 500 addresses per call

Single-call bulk endpoint backed by a single SQL LATERAL JOIN. ~6 ms per address server-side. Chain calls for any book size.

# Request
POST /v1/risks/batch_fast
Authorization: Bearer $KEY
Content-Type: application/json

{
  "addresses": [
    { "lat": 25.79, "lng": -80.13 },
    { "lat": 37.78, "lng": -122.41 }
  ]
}

# Response
{ "results": [ /* per-address peril grades */ ] }
GET/v1/risks/expanded

Full 1437-field rich response

Every peril, every sub-extractor, every property indicator, every forecast layer. Heavier and slower than /risks/fast; use for deep audit and one-off enrichment workflows. Redis-backed response cache (1 h TTL).

GET/v1/receipt/:request_id

Retrieve a verification receipt

Cryptographic receipt for any prior response: content SHA-256, Merkle root over the model layers used, Ed25519 signature, signing pubkey. Verifiable offline. Audit-grade.

GET/v1/health

Service health and model versions

Returns service uptime, model version, and the calibration vintage in use for each peril layer.

Auth

API keys via Authorization: Bearer header. OAuth 2.0 client credentials and mTLS available on enterprise contracts.

SDKs

The API is plain REST + JSON, usable with any HTTP client (curl, requests, fetch). Official Python and JavaScript SDKs are on the roadmap.

Rate limits

Per-key default rate limit set per contract. Tiered per-call pricing from $0.25 down to $0.03 by volume. No seat fees.

Get the docs

Full reference, OpenAPI 3 schema, and examples.

REST + JSON over HTTPS. SDKs (Python, JavaScript, Go) are on the roadmap; while we publish them, the API is fully usable with any HTTP client. Sign up for a key when you're ready to score.

Request access Request OpenAPI spec
# score one address — curl

$ curl -H "Authorization: Bearer $KEY" \
  "https://api.atlasunited.io/v1/risks/fast?lat=25.79&lng=-80.13"

# returns 54 peril grades + forecast +
# model manifest + signed receipt