curl "https://api.areahub.com/v1/bundle/standard?lat=40.71&lng=-74.00" \
-H "X-API-Key: YOUR_API_KEY"
import requests
r = requests.get(
"https://api.areahub.com/v1/bundle/standard",
params={"lat": 40.71, "lng": -74.00},
headers={"X-API-Key": YOUR_API_KEY},
)
topics = r.json()["data"]["topics"]
for slug, topic in topics.items():
if topic.get("error"):
print(f"{slug}: unavailable")
continue
print(f"{slug}: {topic['value']['rating']}")
const res = await fetch(
"https://api.areahub.com/v1/bundle/standard?lat=40.71&lng=-74.00",
{ headers: { "X-API-Key": process.env.YOUR_API_KEY } },
);
const { data } = await res.json();
for (const [slug, topic] of Object.entries(data.topics)) {
if (topic.error) continue;
console.log(slug, topic.value.rating);
}
{
"data": {
"location": { "lat": 40.71, "lng": -74.0 },
"topics": {
"coastalFlood": {
"value": {
"title": "Coastal Floods",
"rating": "Relatively High",
"score": 71.2,
"frequency": 0.44
},
"details": null
},
"earthquake": {
"value": {
"title": "Earthquakes",
"rating": "Relatively Low",
"score": 18.9,
"frequency": 0.02
},
"details": {}
},
"wildfire": {
"value": {
"title": "Wildfires",
"rating": "No Rating",
"score": 0,
"frequency": 0
},
"details": {}
},
...
}
},
"meta": {
"request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"timestamp": "2026-07-14T16:31:55.009Z",
"credit_cost": 15
}
}
API Reference
Standard Bundle
All 18 natural topics for one location. Costs 15 credits.
GET
/
v1
/
bundle
/
standard
curl "https://api.areahub.com/v1/bundle/standard?lat=40.71&lng=-74.00" \
-H "X-API-Key: YOUR_API_KEY"
import requests
r = requests.get(
"https://api.areahub.com/v1/bundle/standard",
params={"lat": 40.71, "lng": -74.00},
headers={"X-API-Key": YOUR_API_KEY},
)
topics = r.json()["data"]["topics"]
for slug, topic in topics.items():
if topic.get("error"):
print(f"{slug}: unavailable")
continue
print(f"{slug}: {topic['value']['rating']}")
const res = await fetch(
"https://api.areahub.com/v1/bundle/standard?lat=40.71&lng=-74.00",
{ headers: { "X-API-Key": process.env.YOUR_API_KEY } },
);
const { data } = await res.json();
for (const [slug, topic] of Object.entries(data.topics)) {
if (topic.error) continue;
console.log(slug, topic.value.rating);
}
{
"data": {
"location": { "lat": 40.71, "lng": -74.0 },
"topics": {
"coastalFlood": {
"value": {
"title": "Coastal Floods",
"rating": "Relatively High",
"score": 71.2,
"frequency": 0.44
},
"details": null
},
"earthquake": {
"value": {
"title": "Earthquakes",
"rating": "Relatively Low",
"score": 18.9,
"frequency": 0.02
},
"details": {}
},
"wildfire": {
"value": {
"title": "Wildfires",
"rating": "No Rating",
"score": 0,
"frequency": 0
},
"details": {}
},
...
}
},
"meta": {
"request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"timestamp": "2026-07-14T16:31:55.009Z",
"credit_cost": 15
}
}
Returns every natural topic for a location in a single call — coastal flood, riverine flood, cold wave, drought, earthquake, hail, heat wave, hurricane, ice storm, landslide, lightning, strong wind, tornado, tsunami, volcanic activity, winter weather, and wildfire.
Requires the
bundle scope.
number
required
Latitude in decimal degrees. US locations only.
number
required
Longitude in decimal degrees. US locations only.
Response
object
Map of topic slug to that topic’s result. Each entry has
value, details, and optionally error.All 17 topics in this bundle are NRI-backed, so value is consistently an object with title, rating, score, and frequency.number
Always
15 on success, 0 on failure.Check for per-topic errors. A topic can fail individually while the
request as a whole succeeds. Look for an
error field on each topic before
reading value. The request is still charged in full.curl "https://api.areahub.com/v1/bundle/standard?lat=40.71&lng=-74.00" \
-H "X-API-Key: YOUR_API_KEY"
import requests
r = requests.get(
"https://api.areahub.com/v1/bundle/standard",
params={"lat": 40.71, "lng": -74.00},
headers={"X-API-Key": YOUR_API_KEY},
)
topics = r.json()["data"]["topics"]
for slug, topic in topics.items():
if topic.get("error"):
print(f"{slug}: unavailable")
continue
print(f"{slug}: {topic['value']['rating']}")
const res = await fetch(
"https://api.areahub.com/v1/bundle/standard?lat=40.71&lng=-74.00",
{ headers: { "X-API-Key": process.env.YOUR_API_KEY } },
);
const { data } = await res.json();
for (const [slug, topic] of Object.entries(data.topics)) {
if (topic.error) continue;
console.log(slug, topic.value.rating);
}
{
"data": {
"location": { "lat": 40.71, "lng": -74.0 },
"topics": {
"coastalFlood": {
"value": {
"title": "Coastal Floods",
"rating": "Relatively High",
"score": 71.2,
"frequency": 0.44
},
"details": null
},
"earthquake": {
"value": {
"title": "Earthquakes",
"rating": "Relatively Low",
"score": 18.9,
"frequency": 0.02
},
"details": {}
},
"wildfire": {
"value": {
"title": "Wildfires",
"rating": "No Rating",
"score": 0,
"frequency": 0
},
"details": {}
},
...
}
},
"meta": {
"request_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"timestamp": "2026-07-14T16:31:55.009Z",
"credit_cost": 15
}
}