{"openapi":"3.1.0","info":{"title":"AtlasUnited Storm and Hazard Data API","description":"Atlas United address-level storm data, pay per address. Products: ML Storm Forecast by Address; Model-Based Weather by Address; Model-Based Hourly Forecast by Address; Storm History by Address: Reported and Radar-Detected Events Since 2003; Past Storm Leads by Address: Reported and Radar-Detected, Last 365 Days. Free preview on every dataset. Pay as you go with a prepaid API key at atlasunited.io/api, or per request with x402 (USDC on Base). Not affiliated with NOAA or the NWS.","contact":{"name":"AtlasUnited","url":"https://atlasunited.io/contact","email":"admin@truefixr.com"},"version":"1.0.0"},"paths":{"/aws/register":{"post":{"summary":"Register","operationId":"register_aws_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/aws/sns":{"post":{"summary":"Sns","operationId":"sns_aws_sns_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Plain-text guide for AI agents","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/x402.json":{"get":{"summary":"x402 payment manifest","description":"Machine-readable x402 manifest: every priced resource, amount, asset and pay-to address.","operationId":"x402_manifest_x402_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/x402.json":{"get":{"summary":"x402 payment manifest","description":"Machine-readable x402 manifest: every priced resource, amount, asset and pay-to address.","operationId":"x402_manifest__well_known_x402_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/x402":{"get":{"summary":"x402 payment manifest","description":"Machine-readable x402 manifest: every priced resource, amount, asset and pay-to address.","operationId":"x402_manifest__well_known_x402_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/data":{"get":{"summary":"Atlas United data menu and datasets (free preview, paid pull with addresses=true)","operationId":"data_endpoint_v1_data_get","parameters":[{"name":"dataset","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset"},"description":"Which dataset. risk = ML Storm Forecast by Address; weather = Model-Based Weather by Address (add hours_ahead=0-48 for Model-Based Hourly Forecast by Address, or daily=true for a free 10-day daily outlook); history = Storm History by Address; hazard_score = Storm History Summary by Address; storms = Past Storm Leads by Address; address, facilities, wildfire (county-level), at_risk, daily (free), coverage (free)."},{"name":"county","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"description":"County name without the word County, e.g. Dallas."},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"description":"2-letter U.S. state code."},{"name":"lat","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lat"},"description":"Latitude in decimal degrees."},{"name":"lon","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lon"},"description":"Longitude in decimal degrees."},{"name":"addresses","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Addresses"},"description":"false (default) = free preview. true = the paid pull (details=true for dataset=weather)."},{"name":"peril","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Peril"},"description":"Storm type filter for dataset=storms and dataset=risk; use the exact names returned under storm_types in a free preview. For dataset=storms with no peril, heavy rain is not included; add peril=HEAVY_RAIN to list rain addresses."},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days"}},{"name":"months","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Months"}},{"name":"window","in":"query","required":false,"schema":{"type":"string","default":"24h","title":"Window"},"description":"dataset=risk only. Forecast window: 24h, 48h, 3d, 5d, 7d or 10d. Default 24h."},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":2000,"title":"Limit"},"description":"Caps records returned and billed on a paid pull."},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"min_severity","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Severity"}},{"name":"max_severity","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Severity"}},{"name":"severity_unit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity Unit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}},{"name":"address","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"description":"Street address (history, hazard_score, weather, address datasets)."},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"}},{"name":"counties","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counties"}},{"name":"subtype","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtype"},"description":"dataset=storms only. Filter by storm subtype: report, warning, probsevere, or any part of a subtype name (case-insensitive), e.g. peril=THUNDERSTORM_WIND&subtype=warning."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"description":"One door for every dataset. GET with no parameters returns the free machine-readable menu. Add dataset= for a free preview (counts, ranges and the exact price, no account needed); add addresses=true (details=true for weather) for the paid pull. Products: ML Storm Forecast by Address (dataset=risk, $0.05 per address); Model-Based Weather by Address (dataset=weather, lean response free, details=true $0.0002 per call); Model-Based Hourly Forecast by Address (dataset=weather with hours_ahead=0-48, $0.0002 per call with details=true); Storm History by Address: Reported and Radar-Detected Events Since 2003 (dataset=history, $0.05 per line, $10 minimum; summary in dataset=hazard_score, $0.50 per property); Past Storm Leads by Address: Reported and Radar-Detected, Last 365 Days (dataset=storms, $0.05 per address). Also: address, facilities, wildfire (county-level), at_risk, daily (free), coverage (free). Forecasts describe what could happen, not what will happen. Storm history and past storm leads are records of reported and radar-detected events, not damage assessments. POST /v1/data accepts the same parameters as a JSON body to keep addresses out of URLs and logs.","security":[{},{"bearerAuth":[]}]},"post":{"summary":"Same as GET /v1/data, parameters in a JSON body","description":"Send address and date of loss in a POST body to keep them out of URLs and logs. Same parameters, same authentication (Bearer key or PAYMENT-SIGNATURE), same prices, same free preview and same responses as GET /v1/data. Body values override query values.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"dataset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dataset"},"county":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"County"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"lat":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lat"},"lon":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Lon"},"addresses":{"type":"boolean","default":false,"title":"Addresses"},"peril":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Peril"},"days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Days"},"months":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Months"},"window":{"type":"string","default":"24h","title":"Window"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"limit":{"type":"integer","default":2000,"title":"Limit"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"min_severity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Severity"},"max_severity":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Max Severity"},"severity_unit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity Unit"},"offset":{"type":"integer","default":0,"title":"Offset"},"address":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Address"},"format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format"},"counties":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Counties"},"subtype":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subtype"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"402":{"description":"Payment required (x402 v2, PAYMENT-REQUIRED header equals the body)"}}}},"/v1/weather/batch":{"post":{"summary":"Model-Based Weather for Locations (batch)","description":"Model-Based Weather for Locations (batch): current conditions and active severe weather alerts for up to 500 locations in one call. Your location list is never stored. $0.0002 per location.","operationId":"weather_batch_proxy_v1_weather_batch_post","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/WeatherBatchBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"bearerAuth":[]}]}},"/v1/portfolio/risk":{"post":{"summary":"County Forecast Status for Locations (batch)","description":"County Forecast Status for Locations (batch): send up to 500 locations (never stored). Returns, per location, the county, the forecast window, the county forecast status (grade, grade_label) and a timestamp, with a reference_id receipt. County-level status, not address-level records; for address-level forecast records use ML Storm Forecast by Address (dataset=risk). $0.05 per location.","operationId":"portfolio_risk_batch_v1_portfolio_risk_post","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/PortfolioRiskBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{},{"bearerAuth":[]}]}},"/v1/billing/free-signup":{"post":{"summary":"Billing Free Signup","operationId":"billing_free_signup_v1_billing_free_signup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FreeSignupBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/create-intent":{"post":{"summary":"Billing Create Intent","operationId":"billing_create_intent_v1_billing_create_intent_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIntentBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/confirm":{"post":{"summary":"Billing Confirm","operationId":"billing_confirm_v1_billing_confirm_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfirmBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/account":{"get":{"summary":"Billing Account","operationId":"billing_account_v1_billing_account_get","parameters":[{"name":"api_key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"deprecated":true,"description":"DEPRECATED. Use the Authorization: Bearer header instead; query-string keys are logged by intermediaries."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"bearerAuth":[]}]}},"/v1/billing/rotate-key":{"post":{"summary":"Billing Rotate Key","operationId":"billing_rotate_key_v1_billing_rotate_key_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/recover":{"post":{"summary":"Billing Recover","operationId":"billing_recover_v1_billing_recover_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoverBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/stripe/webhook":{"post":{"summary":"Stripe Webhook","operationId":"stripe_webhook_v1_stripe_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"BatchLocationBody":{"properties":{"lat":{"type":"number","title":"Lat"},"lon":{"type":"number","title":"Lon"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["lat","lon"],"title":"BatchLocationBody"},"ConfirmBody":{"properties":{"payment_intent_id":{"type":"string","title":"Payment Intent Id"}},"type":"object","required":["payment_intent_id"],"title":"ConfirmBody"},"CreateIntentBody":{"properties":{"amount_usd":{"type":"number","title":"Amount Usd"},"flow":{"type":"string","title":"Flow"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Api Key"},"auto_reload":{"type":"boolean","title":"Auto Reload","default":false}},"type":"object","required":["amount_usd","flow"],"title":"CreateIntentBody"},"FreeSignupBody":{"properties":{"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name","default":""},"company":{"type":"string","title":"Company","default":""}},"type":"object","required":["email"],"title":"FreeSignupBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PortfolioLocationBody":{"properties":{"lat":{"type":"number","title":"Lat"},"lon":{"type":"number","title":"Lon"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["lat","lon"],"title":"PortfolioLocationBody"},"PortfolioRiskBody":{"properties":{"locations":{"items":{"$ref":"#/components/schemas/PortfolioLocationBody"},"type":"array","title":"Locations","default":[]},"window":{"type":"string","title":"Window","default":"24h"}},"type":"object","title":"PortfolioRiskBody"},"RecoverBody":{"properties":{"email":{"type":"string","title":"Email"}},"type":"object","required":["email"],"title":"RecoverBody"},"RotateBody":{"properties":{"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["api_key"],"title":"RotateBody"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WeatherBatchBody":{"properties":{"locations":{"items":{"$ref":"#/components/schemas/BatchLocationBody"},"type":"array","title":"Locations","default":[]}},"type":"object","title":"WeatherBatchBody"}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Send your API key as Authorization: Bearer <key>. Keys in URLs are logged by proxies and browsers; the api_key query parameter is deprecated and will be removed."}}}}