By the geoamcan data team · Reviewed 2026-10-26
Design a bounded retrieval tool
Keep bearer credentials on your server. Allowlist endpoints and supported parameters, constrain geography and result size, and handle rate limits. The agent should choose from validated geographic identifiers instead of inventing them.
Return evidence with the answer
Pass the source organization, release, period, units, geography and available uncertainty to the model with retrieved values. Require answers to identify the underlying public source and explain when data is unavailable.
Avoid unsupported conclusions
FEMA expected annual loss is a published risk indicator, not a property-specific prediction. Keep estimates distinct from observations and refuse to infer live conditions from historical datasets. Hosted AI analysis and AI credits remain planned features; this guide uses your own agent.
Start with a verified dataset request
Install the Python requests package in your application environment, then set GEOAMCAN_API_KEY on the server. This bounded example demonstrates retrieval; the sections above describe how to extend the workflow.
import os
import requests
response = requests.get(
'https://api.geoamcan.com/v1/environment',
params={'limit': 1, 'dataset': 'fema', 'geo_type': 'county', 'geoid': '01001', 'metrics': 'EAL_VALA,EAL_VALB,EAL_VALP,EAL_VALT,AVLN_EALB,AVLN_EALP'},
headers={"Authorization": "Bearer " + os.environ["GEOAMCAN_API_KEY"]},
timeout=30,
)
response.raise_for_status()
result = response.json()
print(result)curl --fail --get "https://api.geoamcan.com/v1/environment?limit=1&dataset=fema&geo_type=county&geoid=01001&metrics=EAL_VALA%2CEAL_VALB%2CEAL_VALP%2CEAL_VALT%2CAVLN_EALB%2CAVLN_EALP" \
-H "Authorization: Bearer $GEOAMCAN_API_KEY"Saved response excerpt
{
"source_attribution": {
"fema": "This product uses the Federal Emergency Management Agency's National Risk Index downloadable datasets but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's websites. Source CSV files: https://resilience-fema.hub.arcgis.com/datasets/39485e8035d446a5bff03259508ae355_0.csv, https://resilience-fema.hub.arcgis.com/datasets/9da4eeb936544335a6db0cd7a8448a51_0.csv; retrieved 2026-10-10 UTC."
},
"requested_area": {
"geographic_resolution": "county",
"geoid": "01001"
},
"data": [
{
"dataset": "fema",
"source": "FEMA",
"release": "December 2025 v1.20.0",
"geographic_resolution": "county",
"geoid": "01001",
"geography_vintage": "2021",
"period": "December 2025 v1.20.0",
"naics": "",
"component": "",
"metrics": {
"EAL_VALA": 247418.656865321,
"EAL_VALB": 13853499.6183118,
"EAL_VALP": 0.412821297151556,
"EAL_VALT": 19756570.0508508,
"AVLN_EALB": null,
"AVLN_EALP": null
},
"margins_of_error": {},
"flags": {
"AVLN_EALB": "missing",
"AVLN_EALP": "missing",
"AVLN_EALS": "missing",
"AVLN_EALT": "missing",
"AVLN_EXPB": "missing",
"AVLN_EXPP": "missing",
"CFLD_EALB": "missing",
"CFLD_EALP": "missing",
"CFLD_EALS": "missing",
"CFLD_EALT": "missing",
"CFLD_EXPB": "missing",
"CFLD_EXPP": "missing"
}
}
],
"availability": {
"fema": "available"
},
"next_offset": null,
"returned_count": 1,
"complete": true,
"snapshot": {
"fema": {
"release_id": 14,
"release": "December 2025 v1.20.0",
"fingerprint": "98173121b0168b909852c0aeb5569377"
}
},
"metric_definitions": {
"fema": {
"EAL_VALT": {
"label": "Expected Annual Loss - Total - Composite",
"unit": "USD/year, December 2024 dollars (modeled expected loss)",
"universe": null,
"source_definition": {
"field": {
"name": "EAL_VALT",
"type": "esriFieldTypeDouble",
"alias": "Expected Annual Loss - Total - Composite",
"domain": null,
"sqlType": "sqlTypeOther",
"editable": true,
"nullable": true,
"defaultValue": null,
"isViewOverride": true
},
"release": "December 2025 v1.20.0",
"attribution": "This product uses the Federal Emergency Management Agency's National Risk Index downloadable datasets but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's websites."
}
},
"EAL_VALB": {
"label": "Expected Annual Loss - Building Value - Composite",
"unit": "USD/year, December 2024 dollars (modeled expected loss)",
"universe": null,
"source_definition": {
"field": {
"name": "EAL_VALB",
"type": "esriFieldTypeDouble",
"alias": "Expected Annual Loss - Building Value - Composite",
"domain": null,
"sqlType": "sqlTypeOther",
"editable": true,
"nullable": true,
"defaultValue": null,
"isViewOverride": true
},
"release": "December 2025 v1.20.0",
"attribution": "This product uses the Federal Emergency Management Agency's National Risk Index downloadable datasets but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's websites."
}
},
"EAL_VALP": {
"label": "Expected Annual Loss - Population - Composite",
"unit": "population loss equivalents/year",
"universe": null,
"source_definition": {
"field": {
"name": "EAL_VALP",
"type": "esriFieldTypeDouble",
"alias": "Expected Annual Loss - Population - Composite",
"domain": null,
"sqlType": "sqlTypeOther",
"editable": true,
"nullable": true,
"defaultValue": null,
"isViewOverride": true
},
"release": "December 2025 v1.20.0",
"attribution": "This product uses the Federal Emergency Management Agency's National Risk Index downloadable datasets but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's websites."
}
},
"EAL_VALA": {
"label": "Expected Annual Loss - Agriculture Value - Composite",
"unit": "USD/year, December 2024 dollars (modeled expected loss)",
"universe": null,
"source_definition": {
"field": {
"name": "EAL_VALA",
"type": "esriFieldTypeDouble",
"alias": "Expected Annual Loss - Agriculture Value - Composite",
"domain": null,
"sqlType": "sqlTypeOther",
"editable": true,
"nullable": true,
"defaultValue": null,
"isViewOverride": true
},
"release": "December 2025 v1.20.0",
"attribution": "This product uses the Federal Emergency Management Agency's National Risk Index downloadable datasets but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's websites."
}
},
"AVLN_EALB": {
"label": "Avalanche - Expected Annual Loss - Building Value",
"unit": "USD/year, December 2024 dollars (modeled expected loss)",
"universe": null,
"source_definition": {
"field": {
"name": "AVLN_EALB",
"type": "esriFieldTypeDouble",
"alias": "Avalanche - Expected Annual Loss - Building Value",
"domain": null,
"sqlType": "sqlTypeOther",
"editable": true,
"nullable": true,
"defaultValue": null,
"isViewOverride": true
},
"release": "December 2025 v1.20.0",
"attribution": "This product uses the Federal Emergency Management Agency's National Risk Index downloadable datasets but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's websites."
}
},
"AVLN_EALP": {
"label": "Avalanche - Expected Annual Loss - Population",
"unit": "population loss equivalents/year",
"universe": null,
"source_definition": {
"field": {
"name": "AVLN_EALP",
"type": "esriFieldTypeDouble",
"alias": "Avalanche - Expected Annual Loss - Population",
"domain": null,
"sqlType": "sqlTypeOther",
"editable": true,
"nullable": true,
"defaultValue": null,
"isViewOverride": true
},
"release": "December 2025 v1.20.0",
"attribution": "This product uses the Federal Emergency Management Agency's National Risk Index downloadable datasets but is not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's websites."
}
}
}
},
"coverage_limitations": {
"fema": []
},
"native_area_contexts": {},
"commuting_flows": []
}Captured 2026-10-26. Excerpt omits pagination credentials and may shorten nested records. Download verified source responses.
Production checklist
- Keep the bearer key out of browser code and logs.
- Preserve source, release, period, geographic vintage and units.
- Handle 401, 422, 429 and temporary server failures explicitly; respect Retry-After.
- Validate coverage and empty results before generating conclusions.
- Use documented pagination and checkpoint contracts for larger workloads.