API access
Your AI client reaches OpenFEMA Property Risk through one ParcelOps MCP endpoint, so there is no separate key to hold for it and no per-source client to write. Reaching it takes no credentials of your own.
Where it came from
Freshness and coverage
What this source cannot tell you
- ⚠ Anything outside United States. A request past that edge comes back empty rather than approximated.
- ⚠ Which years it spans, because the covered period is not declared.
- ⚠ How current a field is, because the refresh schedule is not declared.
- ⚠ Anything FEMA OpenFEMA API does not publish. ParcelOps returns this source as it stands and never fills a blank field from a different one.
Methods (3)
A method is one call your agent can make against this source.
searchDisasterDeclarations
readSearch federal disaster declarations by place, incident, year, date, or declaration type.
Records returneddisaster-declarationHow to get more resultsoffset (offsetField: offset, limitField: limit)FreshnessNear real-time · every 20 minutesInput schema
{ "type": "object", "properties": { "state": { "type": "string", "pattern": "^[A-Za-z]{2}$" }, "county": { "type": "string", "maxLength": 160 }, "incidentType": { "type": "string", "maxLength": 80 }, "declarationType": { "type": "string", "enum": [ "DR", "EM", "FM" ] }, "year": { "type": "integer", "minimum": 1953, "maximum": 2200 }, "beginDate": { "type": "string", "description": "ISO date YYYY-MM-DD." }, "endDate": { "type": "string", "description": "ISO date YYYY-MM-DD." }, "distinctBy": { "type": "string", "enum": [ "disasterNumber" ] }, "limit": { "type": "integer", "minimum": 1, "maximum": 1000 }, "offset": { "type": "integer", "minimum": 0 } }, "required": [], "additionalProperties": false }Output schema
{ "type": "object", "properties": { "count": { "type": "integer", "minimum": 0 }, "total": { "type": [ "integer", "null" ], "minimum": 0 }, "offset": { "type": "integer", "minimum": 0 }, "limit": { "type": "integer", "minimum": 1 }, "declarations": { "type": "array", "items": { "type": "object", "additionalProperties": true } }, "note": { "type": "string" } }, "required": [ "count", "total", "offset", "limit", "declarations", "note" ], "additionalProperties": true }- ⚠ Disaster Declarations Summaries county-level data are incomplete before 1964.
- ⚠ Historic Fire Management Assistance data are partial.
Use distinctBy=disasterNumber for unique disasters instead of designated areas.
searchNfipClaims
readSearch public NFIP flood claims by state, county, year, date of loss, zone, or occupancy.
Records returnednfip-claimHow to get more resultsoffset (offsetField: offset, limitField: limit)Input schema
{ "type": "object", "properties": { "state": { "type": "string", "pattern": "^[A-Za-z]{2}$", "description": "2-letter state or territory postal code." }, "county": { "type": "string", "maxLength": 120, "description": "County, parish, or borough name (\"Orleans\" or \"Orleans Parish\"). The dataset stores no county name, so this is resolved against the Census county-equivalent catalog and the query filters on the resulting 5-digit FIPS. Pass state too unless the name is nationally unique. A name that matches nothing, or matches more than one county, is an error — it never widens to the whole state." }, "countyCode": { "type": "string", "pattern": "^\\d{5}$", "description": "5-digit county FIPS (state + county), e.g. \"22071\" for Orleans Parish, LA. Use instead of county when the code is already known." }, "year": { "type": "integer", "minimum": 1973, "maximum": 2200, "description": "Year of loss, e.g. 2017 for Hurricane Harvey." }, "dateOfLossBegin": { "type": "string", "description": "ISO date YYYY-MM-DD, inclusive lower bound on date of loss." }, "dateOfLossEnd": { "type": "string", "description": "ISO date YYYY-MM-DD, inclusive upper bound on date of loss." }, "ratedFloodZone": { "type": "string", "maxLength": 4, "description": "NFIP rated flood zone: A, AE, AH, AO, B, C, D, V, VE, X, plus numbered A01-A30 and V01-V15. The literal \"null\" is a real upstream value for pre-FIRM properties with no recorded zone. Full list: getServiceInfo enumValues." }, "occupancyType": { "type": "integer", "enum": [ 1, 2, 3, 4, 6 ], "description": "1 single family, 2 two-to-four family, 3 other residential, 4 non-residential, 6 condominium." }, "limit": { "type": "integer", "minimum": 1, "maximum": 1000 }, "offset": { "type": "integer", "minimum": 0 } }, "required": [], "additionalProperties": false }Output schema
{ "type": "object", "properties": { "count": { "type": "integer", "minimum": 0 }, "total": { "type": [ "integer", "null" ], "minimum": 0 }, "offset": { "type": "integer", "minimum": 0 }, "limit": { "type": "integer", "minimum": 1 }, "claims": { "type": "array", "items": { "type": "object", "additionalProperties": true } }, "note": { "type": "string" } }, "required": [ "count", "total", "offset", "limit", "claims", "note" ], "additionalProperties": true }County name resolves to a 5-digit FIPS; an unmatched name errors, never widens.
getServiceInfo
readReturn dataset versions, cadence, and caveats.
Input schema
{ "type": "object", "properties": {}, "required": [], "additionalProperties": false }
Where this source is used
- Land research
Parcel records, ground conditions, and what reaches the property line, for raw and rural land.
- Data center siting
Power, water, transport, airspace, and hazard screening for a site before anyone signs anything.
- Commercial real estate
Parcel and assessment records, building programs, and the entity on the other side of the deal.
- Residential real estate
The parcel record, the housing programs that touch an address, and the conditions a buyer asks about.
- Real estate law
Federal rule text, rulemaking dockets, party records, and the property facts a filing has to state.
- Realtors and brokerages
The facts behind a listing, the programs a buyer may qualify for, and your own files in the same place.
- Is this property in a flood zone?
- What disasters have been declared in this county?
