{"openapi": "3.1.0", "info": {"title": "FloodPulse", "version": "1.0", "description": "FloodPulse delivers real-time and historical flood risk intelligence for any address or coordinate pair. Returns FEMA flood zone classification, historical flood event counts, drainage basin metrics, proximity to 100-year and 500-year floodplain boundaries, and a composite flood risk score. Built for insurance underwriting agents, real estate due-diligence workflows, and climate risk platforms that require authoritative flood data in a single API call.\n"}, "servers": [{"url": "https://floodpulse.waltsoft.net/v1", "description": "FloodPulse production API"}], "security": [{"ApiKeyAuth": []}], "paths": {"/risk": {"post": {"operationId": "getFloodRisk", "summary": "Get flood risk assessment for a location", "description": "Returns FEMA flood zone, historical flood event frequency, proximity to floodplain boundaries, upstream drainage area, impervious surface percentage, and a composite flood risk score (0-100). Billed at $18.00 per call reflecting the data acquisition and enrichment cost for authoritative flood intelligence.\n", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["address"], "properties": {"address": {"type": "string", "description": "Street address or \"lat,lng\" coordinate pair.", "example": "1600 Pennsylvania Ave NW, Washington DC 20500"}, "include_history": {"type": "boolean", "default": true, "description": "Include historical flood event counts from NOAA records."}, "include_fema_detail": {"type": "boolean", "default": true, "description": "Include FEMA FIRM panel data and flood zone classification."}}}}}}, "responses": {"200": {"description": "Flood risk assessment", "content": {"application/json": {"schema": {"type": "object", "properties": {"location": {"type": "object", "properties": {"address_normalized": {"type": "string"}, "lat": {"type": "number"}, "lng": {"type": "number"}, "county": {"type": "string"}, "state": {"type": "string"}}}, "flood_zone": {"type": "object", "properties": {"fema_zone": {"type": "string", "description": "FEMA flood zone designation (e.g. AE, X, VE)."}, "zone_description": {"type": "string"}, "in_special_flood_hazard_area": {"type": "boolean"}, "panel_number": {"type": "string"}, "effective_date": {"type": "string", "format": "date"}}}, "risk_score": {"type": "integer", "minimum": 0, "maximum": 100, "description": "Composite flood risk score; 0=minimal, 100=extreme."}, "risk_tier": {"type": "string", "enum": ["minimal", "low", "moderate", "high", "severe", "extreme"]}, "floodplain_proximity": {"type": "object", "properties": {"meters_to_100yr": {"type": "number"}, "meters_to_500yr": {"type": "number"}, "inside_100yr": {"type": "boolean"}, "inside_500yr": {"type": "boolean"}}}, "historical": {"type": "object", "properties": {"flood_events_30yr": {"type": "integer"}, "last_event_year": {"type": "integer"}, "data_source": {"type": "string"}}}, "drainage": {"type": "object", "properties": {"basin_area_sqkm": {"type": "number"}, "impervious_pct": {"type": "number"}, "nearest_waterway_m": {"type": "number"}}}, "usage": {"type": "object", "properties": {"billed_units": {"type": "integer"}, "price_usd": {"type": "string"}}}}}}}}, "402": {"description": "Payment required -- x402 challenge"}, "400": {"description": "Invalid address or parameter"}, "401": {"description": "Invalid or missing API key"}}}}, "/zone-lookup": {"post": {"operationId": "getFloodZoneBatch", "summary": "Batch flood zone lookup for multiple addresses", "description": "Look up FEMA flood zone classifications for up to 10 addresses in a single call. Returns zone, SFHA status, and panel number per address. Billed at $18.00 per call.\n", "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "required": ["addresses"], "properties": {"addresses": {"type": "array", "items": {"type": "string"}, "maxItems": 10, "description": "List of street addresses or lat,lng pairs."}}}}}}, "responses": {"200": {"description": "Batch flood zone results", "content": {"application/json": {"schema": {"type": "object", "properties": {"results": {"type": "array", "items": {"type": "object", "properties": {"address": {"type": "string"}, "fema_zone": {"type": "string"}, "in_special_flood_hazard_area": {"type": "boolean"}, "risk_tier": {"type": "string"}}}}}}}}}, "402": {"description": "Payment required -- x402 challenge"}, "401": {"description": "Invalid or missing API key"}}}}}, "components": {"securitySchemes": {"ApiKeyAuth": {"type": "apiKey", "in": "header", "name": "X-API-Key"}}}}
