Atlas · API
Storm forecasts and storm history for U.S. addresses,
one JSON call away.
Call GET /v1/data for the free dataset menu. Call a dataset unpaid to get a free HTTP 402 price quote with the exact record count and cost, then pay per call by Stripe card, x402 USDC on Base, or a prepaid API key (top up from $1).
1 ENDPOINT · FREE PRICE QUOTES · BEARER TOKEN FOR PAID PULLS · JSON OR CSV · FORECASTS REFRESH 4×/DAY
I · Quickstart
The price quote is free. Then addresses=true.
A price quote needs no key at all. Sign up, add a balance, get a key, and pass it only when you're ready for the paid pull.
# Recent storms near addresses: free price quote, no key needed (answers HTTP 402) curl "https://data.truefixr.com/v1/data?dataset=storms&state=TX&county=Travis" # Response (trimmed): 6,752 addresses on file, 2,000 quoted by default, the exact price and a card link { "dataset": "storms", "county": "travis", "total_leads": 6752, "quoted_addresses": 2000, "estimated_cost_usd": 100.0, "pay_with_card": {"checkout_url": "https://data.truefixr.com/v1/pay/ord_..."} } # Same URL, add addresses=true, for the paid pull curl "https://data.truefixr.com/v1/data?dataset=storms&state=TX&county=Travis&addresses=true" \ -H "Authorization: Bearer YOUR_API_KEY" # Only want one storm type? Filter with peril= -- the quote and the pull then cover that type only curl "https://data.truefixr.com/v1/data?dataset=storms&state=TX&county=Travis&peril=HAIL" # Real severity too, not just type -- e.g. hail 2.5in and up curl "https://data.truefixr.com/v1/data?dataset=storms&state=TX&county=Travis&peril=HAIL&min_severity=2.5" # One address: its storms in the last 365 days + its county's forecast grade, one call curl "https://data.truefixr.com/v1/data?dataset=address&lat=30.2747&lon=-97.7404" # AtlasCast forecast list (dataset=risk): the addresses in a forecast path, free price quote curl "https://data.truefixr.com/v1/data?dataset=risk&state=TX&county=Travis&peril=HAIL"
1 endpointFree price quotes5 cents per addressYour API key for pullsNo SDK requiredPrepaid balance
II · Five products
Match storm forecasts to addresses. Look back at what was reported.
Same endpoint, same shape. dataset= switches between products. Every product answers an unpaid call with a free price quote: the count and the exact price first.
AtlasCast address forecast
A ranked list of the addresses in a storm’s forecast path for a county, 24 hours to 10 days ahead, refreshed 4 times a day. Each address record carries a storm type, a forecast time and a risk label. County lists are capped. Ten perils: TORNADO, HAIL, WIND, FLASH_FLOOD, HEAVY_RAIN, WINTER, ICE, COASTAL_SURGE, HURRICANE, WILDFIRE (wildfire by county).
You get: full_address, city, state, zip, county, lat, lon, storm_type, forecast_time, risk_label, storm_hits.
Price: $0.05 per address. The price quote comes first, free.
Forecasts describe what could happen, not what will happen. Not a prediction of damage to any structure. The free price quote shows the count and the exact cost; the county grade is a whole-county label, not a property score.
Point weather, continental U.S.
Point weather anywhere in the continental U.S.: current conditions, active severe weather alerts and a short-term rain outlook. Add details=true for the full pull, with the upper-air, cloud and radiation detail.
You get: location, valid_time, alerts, temperature_f, dewpoint_f, humidity_pct, wind_speed_mph, wind_gust_mph, wind_direction_deg, precip_in, precip_type, pressure_mb, visibility_mi. With details=true, the full variable set.
Price: $0.0002 per call, lean or with details=true. Batch: $0.0002 per location, up to 500 per call.
Conditions, not a hazard or damage assessment. Forecast snapshots carry fewer fields than current conditions.
Forecast hours at a point (0 to 48)
Forecast hours from 0 to 48 ahead anywhere in the continental U.S. The response snaps to the nearest available hour and reports forecast_hour_used. With details=true it returns about 40 core fields plus tornado_rotation_score.
You get: forecast_hour_used, forecast_note, valid_time, alerts, temperature_f, dewpoint_f, humidity_pct, wind_speed_mph, wind_gust_mph, precip_in, visibility_mi, pressure_mb, tornado_rotation_score.
Price: $0.0002 per call.
Forecast hours carry fewer fields than current conditions. Forecasts describe what could happen, not what will happen.
Storm history near an address (2003 to today)
One address, 11 reported-event categories (hail, wind, flood, lightning, tornado, hurricane, winter storm, extreme heat and cold, drought, wildfire, coastal) from 2003 to today, as one citable report. Hurricane coverage is partial. Optional date_of_loss=YYYY-MM-DD answers whether an event was reported or radar-detected near the address on that date, and lists events before and after it. A summary cut, hazard_score, is $0.50 per property.
You get: One line per event: date, type, magnitude with units where measured, distance in miles and county. Significant thresholds: hail 0.75 in, wind 50 mph, winter storm 6 in.
Price: $0.05 per report line, no minimum (a zero-line lookup is $0.05; card payments have a $0.50 processor minimum). The unpaid HTTP 402 price quote is free and shows the exact line count and cost first.
A record of reported and radar-detected events, not a damage assessment. It does not confirm a claim or a loss.
Recent storms near addresses: reported and radar-detected, last 365 days
Storms that already happened, by address. Address-level records of events reported (tornado rows are warnings) or radar-estimated near each address over the last 365 days, filterable by county, peril and measured severity.
You get: full_address, city, state, zip, county, lat, lon, storm_type, event_time, severity, severity_unit, distance_mi, storm_hits.
Price: $0.05 per address. The free price quote shows the count and the exact cost.
A record of reported and radar-detected events, not a damage assessment, inspection or repair estimate. Severity describes the storm, not damage to a structure.
III · Storm history near an address · dataset=history
2003 to present. One report, 11 event categories.
The free price quote shows the real line count and total price before anyone pays. A record of reported and radar-detected events, not a damage assessment.
history.sh
# Free price quote -- real line count and total price, no key needed (answers HTTP 402) curl "https://data.truefixr.com/v1/data?dataset=history&address=1100+Congress+Ave,+Austin,+TX+78701" # Response { "dataset": "history", "real_line_count": 836, "estimated_cost_usd": 41.8, "cost_note": "Report with these filters returns 836 report lines at $0.05 per line ($41.80, no minimum)." } # Paid pull -- $0.05 per line, no minimum per report curl "https://data.truefixr.com/v1/data?dataset=history&address=1100+Congress+Ave,+Austin,+TX+78701&addresses=true" \ -H "Authorization: Bearer YOUR_API_KEY" # Date-of-loss lookup -- a yes/no on whether a storm was reported or radar-detected near the address on that date curl "https://data.truefixr.com/v1/data?dataset=history&address=1100+Congress+Ave,+Austin,+TX+78701&date_of_loss=2026-06-14"
IV · Point weather and forecast hours · dataset=weather
Any continental U.S. point. Right now.
Current conditions, or forecast hours 0 to 48 ahead with hours_ahead=. $0.0002 per call: lean by default, or details=true for the full set. Billed per call, not per address. Batch endpoint covers up to 500 locations in one call.
weather.sh
# Point weather: $0.0002 per call, lean response. With no key this URL answers with the free price quote. curl "https://data.truefixr.com/v1/data?dataset=weather&lat=31.07&lon=-97.65" # Response, once paid { "temperature_f": 74.2, "wind_speed_mph": 13.5, "wind_gust_mph": 20.4, "precip_type": "none", "humidity_pct": 29.4 } # Full pull -- $0.0002 per call, not per address curl "https://data.truefixr.com/v1/data?dataset=weather&lat=31.07&lon=-97.65&details=true" \ -H "Authorization: Bearer YOUR_API_KEY" # Forecast hours at a point: forecast hour 12, $0.0002 per call curl "https://data.truefixr.com/v1/data?dataset=weather&lat=31.07&lon=-97.65&details=true&hours_ahead=12" \ -H "Authorization: Bearer YOUR_API_KEY" # Batch -- up to 500 locations in one call, conditions + active severe-alert status for each curl -X POST "https://data.truefixr.com/v1/weather/batch" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"locations": [{"lat": 31.07, "lon": -97.65}, {"lat": 38.90, "lon": -77.04}]}'
V · Reference
One path. Every combination.
POST /v1/portfolio/risk checks up to 500 locations in one call. Pick a data set, pick a mode, and the request and response update below.
# Free price quote -- no key needed (answers HTTP 402) curl "https://data.truefixr.com/v1/data?dataset=storms&county=Travis&state=TX" # Response { "dataset": "storms", "county": "travis", "state": "TX", "total_leads": 6752, "quoted_addresses": 2000, "estimated_cost_usd": 100.0, "pay_with_card": { "checkout_url": "https://data.truefixr.com/v1/pay/ord_...", "amount_usd": 100.0 } }
# Recent storms near addresses. Billed: $0.05 per address returned curl "https://data.truefixr.com/v1/data?dataset=storms&county=Dallas&state=TX&peril=HEAVY_RAIN&addresses=true&limit=1" \ -H "Authorization: Bearer YOUR_API_KEY" # Response { "county": "dallas", "state": "TX", "total_leads": 1229944, "returned": 1, "peril_filter_applied": "HEAVY_RAIN", "leads": [ { "full_address": "[street address withheld], TX 75154", "lat": 32.55, "lon": -96.85, "storm_type": "HEAVY_RAIN", "event_time": "2026-10-01 16:12:00", "severity": 2.28, "severity_unit": "in", "distance_mi": 1.93, "storm_hits": 1 } ], "reference_id": "TFX-202610-0116AECD" }
# Free price quote -- no key needed (answers HTTP 402) curl "https://data.truefixr.com/v1/data?dataset=risk&county=Lexington&state=SC" # Response { "dataset": "risk", "county": "Lexington", "state": "SC", "total_leads": 535, "quoted_addresses": 535, "estimated_cost_usd": 26.75, "pay_with_card": { "checkout_url": "https://data.truefixr.com/v1/pay/ord_...", "amount_usd": 26.75 } }
# Billed: $0.05 per address returned curl "https://data.truefixr.com/v1/data?dataset=risk&county=Dallas&state=TX&window=24h&addresses=true&limit=1" \ -H "Authorization: Bearer YOUR_API_KEY" # Response { "county": "Dallas", "state": "TX", "window": "24h", "total_leads": 809, "returned": 1, "leads": [ { "full_address": "1500 Marilla St, Dallas, TX 75201", "storm_type": "HEAVY_RAIN", "forecast_time": "2026-10-04T12:27:00Z", "risk_label": "Extreme", "storm_hits": 2 } ], "reference_id": "TFX-202610-6A3B8262" }
Calling the endpoint with no params at all returns the same menu, as JSON: what dataset values exist, what they mean, and this pricing.
| Parameter | Used with | What it does |
|---|---|---|
| dataset | all | Switches the product: risk, weather, history, storms, address, hazard_score, coverage. |
| state, county | storms, risk, coverage | County price quote, free, no key. state alone with dataset=coverage lists every real county name. |
| summary=true | risk | The county A-to-F grade summary on its own, $0.02 per county. |
| window | risk | Forecast window: 24h, 48h, 3d, 5d, 7d or 10d. |
| addresses=true | storms, risk, history | The paid pull of address-level records. Send your key in the Authorization: Bearer header. |
| peril | storms, risk | Filter to one storm type, e.g. HAIL. The quote and the pull then cover that type only. |
| min_severity | storms | Real severity, not just type, e.g. hail 2.5in and up. |
| lat, lon | address, weather, history | One point. dataset=address returns its own storm history plus that county's current forecast risk, one call. |
| address | history | A plain address string; geocoding happens server-side. |
| date_of_loss | history | YYYY-MM-DD. A real yes/no on whether a storm was reported or radar-detected near the address on that date, plus the real events immediately before and after it. |
| hours_ahead | weather | 0 to 48. Returns forecast hours instead of current conditions and reports forecast_hour_used. |
| details=true | weather | The full variable set. Weather is $0.0002 per call, lean or full, not per address. |
| POST /v1/weather/batch | weather | Up to 500 locations in one call, JSON body with a locations array of lat/lon pairs. |
This table is a summary of the samples on this page. Responses are JSON or CSV.
Don't know a county name? Check coverage first
# $0.0002 per call. Every state we cover curl "https://data.truefixr.com/v1/data?dataset=coverage" # $0.0002 per call. Every real county name in that state curl "https://data.truefixr.com/v1/data?dataset=coverage&state=TX" # Response, once paid { "state": "TX", "storms_county_count": 301, "risk_county_count": 254, "storms_counties": ["anderson", "andrews", "angelina", "..."] }
VI · How it works
Look first. Pay for what you take.
Get the price quote
Call the endpoint with a county and state. The answer is the record count and the exact price. Zero cost, no key.
?dataset=storms&county=TravisGet a key, add a balance
Sign up, fund your balance, get your key. No procurement call, no integration meeting.
Authorization: Bearer YOUR_API_KEYPull the addresses
Add addresses=true. You get the address-level records and your balance drops by exactly what came back.
&addresses=trueVII · Account and keys
Developer API. Get an API key.
The price quote is free. $0.05 per address on the paid pull. No plans, no seats.
- New accountEmail, name and company (optional) get you a key. Add a balance any time from Manage account to make paid pulls. Sign up on the get started page.
- PricingForecast addresses and storm-history report lines: $0.05 each, no minimum. County A-to-F grade summary (summary=true): $0.02. County grade for up to 500 locations in one call: $0.05 per location. Storm history summary for one address: $0.50. Continental U.S. weather (0 to 48 hours): $0.0002. The HTTP 402 price quote is free. Prepaid keys top up from $1 (up to $2,000 at a time); a card payment for a single call has a $0.50 processor minimum. Auto-reload is off unless you opt in.
- Your API keyKey issued: save it somewhere real, this is the only time it's shown in full. Also emailed to you. Keys look like
tfx_live_... - Manage accountPaste your key to see your balance, usage, and add funds. Shows current balance, this month's addresses, spent, and plan (Pay-as-you-go).
- Add fundsAny amount from $1 to $2,000: $25, $50, $100 or Other. Charged and added, receipt emailed to you. Powered by Stripe: card never touches our servers. By providing your card information, you allow TrueFixR to charge your card for future payments in accordance with their terms.
- Rotate keyThink this key leaked? Rotate it: the old one stops working immediately. The new key is also emailed.
- Recover keyWe'll email it to the address on file, whether or not it exists. If that address has a key, it's on its way. Nothing shown either way, on purpose.
VIII · Get started
Build on real storm data.
Five products, one endpoint. Free price quotes, pay per address, prepaid balance.
Questions about volume, billing or formats? Use the Contact us button above.
Private briefing