{"openapi":"3.0.3","info":{"title":"Firewatch Edge API","version":"2.0.0","description":"Worker-native Firewatch endpoints running on Cloudflare Pages/Workers."},"servers":[{"url":"https://firewatch-e0t.pages.dev"}],"paths":{"/edge/v1/health":{"get":{"summary":"Health check","responses":{"200":{"description":"Healthy edge worker"}}}},"/edge/v1/health/diagnostics":{"get":{"summary":"Structured dependency diagnostics for D1, EONET, FIRMS, and AQI","responses":{"200":{"description":"Diagnostics returned"}}}},"/edge/v1/locations/resolve":{"post":{"summary":"Resolve an address to coordinates","responses":{"200":{"description":"Address resolved"},"400":{"description":"Address missing"},"422":{"description":"Address not resolvable"}}}},"/edge/v1/locations":{"get":{"summary":"List active watched locations","responses":{"200":{"description":"Locations returned"}}},"post":{"summary":"Create or update a watched location","responses":{"200":{"description":"Location saved"},"400":{"description":"Invalid payload"}}}},"/edge/v1/locations/{location_id}":{"get":{"summary":"Get a watched location","responses":{"200":{"description":"Location found"},"404":{"description":"Location not found"}}},"delete":{"summary":"Delete (deactivate) a watched location","responses":{"200":{"description":"Location deleted"},"404":{"description":"Location not found"}}}},"/edge/v1/alerts/assessment/{location_id}":{"get":{"summary":"Get threat assessment for a watched location","responses":{"200":{"description":"Assessment returned"},"404":{"description":"Location not found"}}}},"/edge/v1/predictions/threat/{location_id}":{"get":{"summary":"Get spread and threat prediction for a watched location","responses":{"200":{"description":"Threat prediction returned"},"404":{"description":"Location not found"}}}},"/edge/v1/predictions/forecast/{location_id}":{"get":{"summary":"Get horizon forecast for spread and risk trend","responses":{"200":{"description":"Forecast returned"},"404":{"description":"Location not found"}}}},"/edge/v1/predictions/evacuation/{location_id}":{"get":{"summary":"Get evacuation guidance for a watched location","responses":{"200":{"description":"Evacuation guidance returned"},"404":{"description":"Location not found"}}}},"/edge/v1/predictions/weather-impact/{location_id}":{"get":{"summary":"Get weather and air-quality impact on fire spread","responses":{"200":{"description":"Weather impact returned"},"404":{"description":"Location not found"}}}},"/edge/v1/predictions/anomalies/{location_id}":{"get":{"summary":"Detect unusual spread behavior for a watched location","responses":{"200":{"description":"Anomaly analysis returned"},"404":{"description":"Location not found"}}}},"/edge/v1/intelligence/{location_id}":{"get":{"summary":"Get external intelligence from weather, smoke, incidents, closures, and utilities","responses":{"200":{"description":"External intelligence returned"},"404":{"description":"Location not found"}}}},"/edge/v1/audit/provenance/{location_id}":{"get":{"summary":"One-call audit for edge and backend model provenance plus feed reliability","responses":{"200":{"description":"Provenance audit returned"},"404":{"description":"Location not found"}}}}}}