Add money Find jobsWatch videosDocsBuild with AIExamplesUse casesFor agentsDaily storm leadsML Storm ForecastDataCompareStorm mapAPI AccessStorm Mailers Legacy log in Get an API key

Docs

Make your first call in one minute.

One route. A free preview on every dataset. Every example below was run against the live API, and every response is real, trimmed for space.

New here? Start with the AI guide. Copy a prompt, paste it into ChatGPT or Claude, and get a plain answer about any address. No code needed. This page is the technical reference for developers. The glossary below explains the words.

Start here

Plain-English glossary.

Words you will see below, each in one sentence.

APIA way for one piece of software to ask another for information. You send a question about an address and get the answer back.
API keyYour personal password for paid calls. You send it along with each question so the system knows whose balance to use. Keep it private.
RequestOne question you send to the API, such as asking for the storm history of one address.
JSONThe format answers come back in: plain text with labels and values. Software and AI tools read it easily, and so can you.
EndpointA web address you send requests to. Ours is https://data.truefixr.com/v1/data.
DatasetOne kind of answer you can ask for, such as risk, history or weather. You pick it with dataset=NAME.
Storm History by AddressOne citable report of the storms reported or radar-detected near a property since 2003. Other tools call it a hail history report or a date of loss report. Here it is dataset=history.
AtlasCastAtlas United's forecasting model suite: a separate machine-learning model for each of ten perils, address-level, 24 hours to 10 days ahead. It is the engine behind ML Storm Forecast by Address. It could happen, it is not a promise.
x402A way to pay per call with no account: an AI agent pays a small amount in USDC on Base each time it asks.
MCPA standard plug that lets AI tools like Claude, ChatGPT and Cursor use outside services. Ours is at https://mcp.atlasunited.io/mcp.

Not a developer? Just ask your AI.

Copy this into Claude or ChatGPT, fill in the bracket, and let it walk you through.

Paste this into Claude or ChatGPT
I am not a programmer. Please explain TrueFixR's storm data API to me in plain words, then help me do this: [WRITE WHAT YOU WANT, for example "check 50 property addresses for storm history"].

Base URL: https://data.truefixr.com
Docs: https://truefixr.com/docs.html
Free menu of every dataset and price: https://data.truefixr.com/v1/data
My API key is YOUR_KEY. Paid calls need the header Authorization: Bearer YOUR_KEY. Free previews need no key.

Start with the free previews, tell me the exact price before any paid call, and never make a paid call without asking me. Give me short, step-by-step instructions for a non-programmer.

Five products

Address-level storm data. Pay per address.

Atlas United risk models for every U.S. address: address-level storm forecasts for the next 24 hours to 10 days, plus every reported storm near that address back to 2003. Pay per address, no contract.

AtlasCast, an Atlas United product

ML Storm Forecast by Address

Probabilistic, address-level storm forecasts, 24 hours to 10 days ahead, for 10 perils: tornado, hail, wind, flash flood, heavy rain, winter, ice, coastal surge, hurricane and wildfire. A separate machine-learning model runs for each peril. Models are trained and validated chronologically on held-out reported events, and use only information available at forecast issue time. Forecasts refresh 4 times a day.

You get
Per address: structure replacement value in USD (replacement cost, not market value) and the estimated people there, plus the full address, forecast time, storm type, risk label and past storm reports. Every paid response carries a reference_id receipt.
Price
$0.05 per address. limit= caps the rows; limit=10 is a 50 cent sample.
Free preview
Free. County, window, counts per storm type and the exact cost, with the county A to F grade shown as a teaser only.
What it is not
Forecasts describe what could happen, not what will happen. Not a prediction of damage to any structure. The county grade is a whole-county label, not a property score.
dataset=risk&addresses=true

Atlas United

Model-Based Weather by Address

Point weather for any U.S. address or coordinate: current conditions, active severe weather alerts and a short-term rain outlook.

You get
The free lean answer: temperature, dewpoint, humidity, wind speed, gust and direction, precipitation and type, pressure, visibility and alerts. With details=true, over 170 variables, including hail size, storm rotation, lightning, reflectivity, instability, cloud layers, winds by level, soil, snow and vegetation.
Price
Free lean response. $0.0002 per call with details=true, or $0.0002 per location in a batch of up to 500.
Free preview
The lean response is the free preview. No account.
What it is not
Weather conditions, not a hazard or damage assessment.
dataset=weather&details=true

Atlas United

Model-Based Hourly Forecast by Address

Hour-by-hour forecast weather for any U.S. address or coordinate, 0 to 48 hours ahead. The answer says which forecast hour it used.

You get
Temperature, dewpoint, humidity, wind, gust, precipitation, visibility, pressure, hail size, lightning rate and a tornado rotation score for the hour you ask about, about 40 core fields with details=true, plus forecast_hour_used and a forecast note.
Price
$0.0002 per call with details=true. The lean answer is free.
Free preview
The lean response is free, no account.
What it is not
Forecast hours carry fewer fields than current conditions. Weather, not a hazard or damage assessment.
dataset=weather&hours_ahead=0-48

TrueFixR

Storm History by Address: Reported and Radar-Detected Events Since 2003

One property, 11 reported-event categories (hail, wind, flood, lightning, tornado, hurricane, winter storm, extreme heat and cold, drought, wildfire and coastal), 2003 to today, as one citable report. Every matched event is one line with date, type, magnitude where measured, distance and county. Add a date of loss for a yes or no on whether an event was reported or radar-detected within your radius that day.

You get
A formatted report with a reference_id, one line per event, plus the summary view (hazard score, $0.50 per property): per category the event count, most recent date, years since the last event and, for hail, wind and winter, the most severe event.
Price
$0.05 per event line, $10 minimum per report. Hazard score summary: $0.50 per property, flat.
Free preview
Free. Line count, exact cost, counts for all 11 categories and the date-of-loss answer.
What it is not
A record of reported and radar-detected events, not a damage assessment. It does not support or deny any claim.
dataset=history

TrueFixR

Past Storm Leads by Address: Reported and Radar-Detected, Last 365 Days

Address-level records of storms reported or radar-detected at or near each address in the last 365 days, filtered by county, peril and severity. Sorted by severity, then recency.

You get
Per address: full address, coordinates, storm type, event time, severity with its unit (such as hail inches or wind mph), distance from the event and a hit count for repeat exposure. A reference_id comes with every paid pull.
Price
$0.05 per address.
Free preview
Free. County total, counts per storm type, severity ranges with their units, repeat addresses and the exact cost.
What it is not
A record of reported and radar-detected events, not a damage assessment. Severity describes the storm, not damage to a structure.
dataset=storms&addresses=true

Free previews on every product. Forecasts describe what could happen, not what will happen. Not affiliated with NOAA or the NWS.

1 Quickstart

Three steps.

Get a key

You do not need one for the first call. Free previews work with no account. When you want real address records, get an API key and add a prepaid balance.

Make a call

Ask about one point. This is a free preview, so there is no key and no charge.

curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=address \
  -d lat=32.78 \
  -d lon=-96.80

Read the answer

storm_event_count is how many storm events were reported or radar-detected near that point. storm_types splits them by type. current_forecast_risk is the county forecast label, A to F, context only.

Your appGET /v1/data?dataset=address&lat=32.78&lon=-96.80
TrueFixR APIfinds storm events near the point and the county forecast label
You get back
{
 "storm_event_count": 297,
 "storm_types": {
  "HEAVY_RAIN": 297
 },
 "current_forecast_risk": {
  "grade": "C",
  "grade_label": "Elevated risk"
 }
}

2 Authentication

A Bearer header. Or nothing.

  • Free previews need no key and no header.
  • Paid pulls need Authorization: Bearer YOUR_API_KEY. Billing comes out of your prepaid balance.
  • x402 is the no-account option. An agent pays per call in USDC on Base. See For agents.
curl
curl "https://data.truefixr.com/v1/data?dataset=risk&county=Dallas&state=TX&addresses=true" \
  -H "Authorization: Bearer YOUR_API_KEY"
Wrong or missing key on a paid pull? You get a 402 with the price, not a 401. See Errors and limits.

3 Base URL and the menu

One route. It describes itself.

Base URL: https://data.truefixr.com. Main route: GET /v1/data?dataset=NAME. Call it with no parameters and it returns a free menu of every dataset, its example call and its price.

curl
curl https://data.truefixr.com/v1/data
Response 200 (menu, trimmed)
{
  "what_is_this": "TrueFixR and AtlasCast real weather data, one endpoint. Call with no params (this response) to see everything available. Every dataset has a free preview (no account needed) and a paid full pull.",
  "quick_picks": {
    "did a storm hit this address before": {
      "call": "GET /v1/data?dataset=address&lat=32.78&lon=-96.80"
    }
  },
  "datasets": {
    "storms": {
      "summary": "Storms that already happened. Reported and radar-detected events near an address, up to 365 days back.",
      "example": "GET /v1/data?dataset=storms&county=Dallas&state=TX&peril=HAIL"
    },
    "risk": {
      "paid_gives": "The real address-level forecast records. Billed per real address, $0.05 each.",
      "example": "GET /v1/data?dataset=risk&county=Dallas&state=TX"
    }
  },
  "batch_endpoints": {
    "/v1/weather/batch": {
      "method": "POST",
      "max_locations": 500
    }
  }
}

Your code, or an AI agent, can read this menu to learn what is available without reading any docs.

4 Datasets

Eleven datasets, one route.

Every block shows the request, the real free preview, the paid pull with its exact price, and what to watch for. Switch the tabs for curl, Python or JavaScript.

datasetFree previewPaid pull
storms (Past Storm Leads by Address)Counts$0.05 per address
risk (ML Storm Forecast by Address)Counts and cost, county grade as teaser$0.05 per address
history (Storm History by Address)Line count and price$0.05 per line, $10.00 minimum
hazard_score (Storm History summary)Counts by peril$0.50 per property
address (one-property check)Counts and county label$0.05 per address
weather (Model-Based Weather by Address; with hours_ahead, Model-Based Hourly Forecast by Address)Lean response, free$0.0002 per call (details=true)
facilitiesCounts$0.05 per facility
wildfire (county-level)Count and summary$0.05 per county
at_riskTotals by window$0.05 per record
coverageFree always
dailyFree always

storms

Free preview

Past Storm Leads by Address: reported and radar-detected storm events near a place, up to 365 days back.

In plain EnglishPast Storm Leads by Address: storms reported or radar-detected near each address, up to a year back. The free preview tells you how many. Paying gets you the actual records.

What other tools call this: storm leads, storm tracking.

Request

GET /v1/data?dataset=storms
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=storms \
  -d county=Dallas \
  -d state=TX

What you get back

Response 200 (free preview, trimmed)
{
  "dataset": "storms",
  "county": "dallas",
  "state": "TX",
  "last_updated": "2026-10-02T09:45:56.867300+00:00",
  "total_leads": 1244040,
  "storm_types": {
    "HEAVY_RAIN": 1307242,
    "THUNDERSTORM_WIND": 88497,
    "FLASH_FLOOD": 10
  },
  "repeat_addresses": 117589,
  "estimated_cost_usd": 100.0
}

The paid pull

Add addresses=true and send your key. Price: $0.05 per real address. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=storms \
  -d county=Dallas \
  -d state=TX \
  -d addresses=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • Send county and state, or lat and lon.
  • Narrow with peril=HAIL, min_severity=, max_severity= or days=. Narrower filters mean fewer addresses and a lower price.
  • total_leads is the number of distinct addresses that match. A paid pull returns at most 2,000 addresses unless you raise limit (up to 5,000), so check estimated_cost_usd first. Here it shows $100.00 because the cap is 2,000 addresses.
  • When a storm type has severity in two units, severity_by_type shows mixed_units. Add severity_unit= or the filter returns a 400.
  • A storm event means a storm was reported or radar-detected there. It is not an inspection or a damage assessment.

risk

Free preview

ML Storm Forecast by Address: the coming days, what could happen, not what has happened.

In plain EnglishML Storm Forecast by Address: the addresses in the forecast for a county and window (24 hours to 10 days), each with its structure replacement value, estimated people, storm type and risk label. It says what could happen, not what will. The free preview adds the county grade as a teaser.

What other tools call this: storm forecast, addresses in the forecast. You send your own alerts from it.

Request

GET /v1/data?dataset=risk
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=risk \
  -d county=Dallas \
  -d state=TX

What you get back

Response 200 (free preview, trimmed)
{
  "dataset": "risk",
  "county": "Dallas",
  "state": "TX",
  "window": "24h",
  "grade": "C",
  "grade_label": "Elevated risk",
  "total_leads": 725,
  "storm_types": {
    "HEAVY_RAIN": 642,
    "FLASH_FLOOD": 239
  },
  "generated": "2026-10-03T03:29:41.583285Z",
  "estimated_cost_usd": 36.25
}

The paid pull

Add addresses=true and send your key. Price: $0.05 per real address record. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=risk \
  -d county=Dallas \
  -d state=TX \
  -d addresses=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • The forecast is probabilistic. It is refreshed 4 times a day. Check generated and data_age_hours.
  • grade runs A (no or low risk), B (moderate), C (elevated), D (severe), F (extreme).
  • Narrow with peril=FLASH_FLOOD. The ten forecast perils are TORNADO, HAIL, WIND, FLASH_FLOOD, HEAVY_RAIN, WINTER, ICE, COASTAL_SURGE, HURRICANE and WILDFIRE.

history

Free preview

One property, 11 reported-event categories, 2003 to present, in one report.

In plain EnglishThe storm history report for one property (a hail history report, with wind and nine more kinds of weather): every reported storm event near it since 2003, in one report. The same kind of report other tools sell as a date of loss report. The free preview shows how many lines it has and the exact price first.

What other tools call this: hail history report, storm history report, date of loss report.

Request

GET /v1/data?dataset=history
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=history \
  --data-urlencode "address=891 Lake Hollow Blvd SW, Marietta, GA 30064"

What you get back

Response 200 (free preview, trimmed)
{
  "dataset": "history",
  "geocoded_address": "891 Lake Hollow Blvd SW, Marietta, GA 30064, USA",
  "radius_mi": 5.0,
  "real_line_count": 362,
  "estimated_cost_usd": 18.1,
  "by_peril": {
    "hail": 65,
    "wind": 123,
    "flood": 10,
    "lightning": 7,
    "tornado": 2,
    "hurricane": 19,
    "winter": 67,
    "extreme_temp": 24,
    "drought": 40,
    "wildfire": 1,
    "coastal": 0
  }
}

The paid pull

Add addresses=true and send your key. Price: $0.05 per report line, $10.00 minimum per report. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=history \
  --data-urlencode "address=891 Lake Hollow Blvd SW, Marietta, GA 30064" \
  -d addresses=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • Pass a street address or lat and lon. The default radius_mi is 5. The smallest radius is 1 mile and the largest is 25.
  • Peril categories: hail, wind, flood, lightning, tornado, hurricane, winter, extreme_temp, drought, wildfire, coastal.
  • It is one full report. There is no hail-only or wind-only purchase.
  • The preview shows the line count and the exact price before you pay anything.

hazard_score

Free preview

Storm History summary: one property's record, summarized by category.

In plain EnglishThe short form of Storm History by Address: a storm summary of one property. For each kind of storm: how often it has hit nearby, the worst one, the latest one, and how many years since the last.

What other tools call this: storm history summary, hail and wind history summary.

Request

GET /v1/data?dataset=hazard_score
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=hazard_score \
  --data-urlencode "address=891 Lake Hollow Blvd SW, Marietta, GA 30064"

What you get back

Response 200 (free preview, trimmed)
{
  "dataset": "hazard_score",
  "geocoded_address": "891 Lake Hollow Blvd SW, Marietta, GA 30064, USA",
  "report_period": "2003-01-01 to present",
  "total_events": 362,
  "by_peril": {
    "hail": {
      "event_count": 65
    },
    "wind": {
      "event_count": 123
    },
    "flood": {
      "event_count": 10
    },
    "lightning": {
      "event_count": 7
    },
    "tornado": {
      "event_count": 2
    },
    "hurricane": {
      "event_count": 19
    },
    "winter": {
      "event_count": 67
    },
    "extreme_temp": {
      "event_count": 24
    },
    "drought": {
      "event_count": 40
    },
    "wildfire": {
      "event_count": 1
    },
    "coastal": {
      "event_count": 0
    }
  }
}

The paid pull

Add addresses=true and send your key. Price: $0.50 per property, flat. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=hazard_score \
  --data-urlencode "address=891 Lake Hollow Blvd SW, Marietta, GA 30064" \
  -d addresses=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • The free preview gives event counts per peril. The paid pull adds the most recent event date and years since the last event for every peril.
  • Most severe event size appears only for perils that have a size on file, such as hail and wind. Flood, lightning and tornado are count only.
  • The price is flat per property. It does not grow with the number of events.

address

Free preview

One property: its storm events over the past year, with the county forecast label as context, in one call.

In plain EnglishA check on one property: the storms reported or radar-detected right at it in the last year. The county forecast label is context only; for address-level forecasts use dataset=risk.

What other tools call this: property storm check, address storm history lookup.

Request

GET /v1/data?dataset=address
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=address \
  -d lat=32.78 \
  -d lon=-96.80

What you get back

Response 200 (free preview, trimmed)
{
  "dataset": "address",
  "county": "dallas",
  "state": "TX",
  "matched_by": "lat/lon (~150m radius)",
  "storm_event_count": 297,
  "storm_types": {
    "HEAVY_RAIN": 297
  },
  "current_forecast_risk": {
    "grade": "C",
    "grade_label": "Elevated risk"
  }
}

The paid pull

Add addresses=true and send your key. Price: $0.05 per address. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=address \
  -d lat=32.78 \
  -d lon=-96.80 \
  -d addresses=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • Matches storm events within about 150 meters of the point.
  • You are billed once per address, no matter how many events it has.
  • current_forecast_risk uses the same A to F grade as risk.

weather

Free

Model-Based Weather by Address (add hours_ahead=0-48 for Model-Based Hourly Forecast by Address), with a short-term rain outlook and severe alerts.

In plain EnglishModel-Based Weather by Address: the weather right now at any US address: temperature, wind, rain, plus any active severe weather alerts. The basic version is free. With hours_ahead you get Model-Based Hourly Forecast by Address.

What other tools call this: current conditions, wind speed. Includes any active severe alert.

Request

GET /v1/data?dataset=weather
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=weather \
  -d lat=32.78 \
  -d lon=-96.80

What you get back

Response 200 (free preview, trimmed)
{
  "location": {
    "lat": 32.784859,
    "lon": -96.802979
  },
  "generated_at": "2026-10-03T08:00:00+00:00",
  "valid_time": "2026-10-03T09:00:00+00:00",
  "valid_time_age_min": 28,
  "alerts": [],
  "nowcast": {
    "precip_rate_inhr": 0.0,
    "precip_rate_inhr_exact_cell": 0.0,
    "raining_now": false,
    "observed_at": "2026-10-03T09:27:26+00:00",
    "source": "precipitation nowcast"
  },
  "wind_gust_mph": 12.2008,
  "precip_in": 0.0,
  "dewpoint_f": 69.2183,
  "temperature_f": 71.075,
  "wind_speed_mph": 5.48,
  "wind_direction_deg": 7.2,
  "humidity_pct": 93.6,
  "precip_type": "none",
  "pressure_mb": 1000.1,
  "visibility_mi": 7.8914,
  "dataset": "weather",
  "billed": false
}

The paid pull

Add details=true and send your key. Price: $0.0002 per call. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=weather \
  -d lat=32.78 \
  -d lon=-96.80 \
  -d details=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • The lean response above is free and needs no key.
  • details=true returns the full detail set. It is billed per call, not per address.
  • Add hours_ahead=0-48 for a forecast. The response tells you which forecast hour it used.
  • alerts holds active severe alerts for the point. It is empty when none are active.

facilities

Free preview

Schools, hospitals and other facilities that are inside an active risk window right now.

In plain EnglishSchools, hospitals and similar places that are in an area with raised forecast storm risk right now.

What other tools call this: a storm watch list for schools, hospitals and other facilities (you send your own alerts).

Request

GET /v1/data?dataset=facilities
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=facilities \
  -d county=Duval \
  -d state=FL

What you get back

Response 200 (free preview, trimmed)
{
  "generated": "2026-10-03T03:48:10.045669+00:00Z",
  "data_age_hours": 5.7,
  "stale": false,
  "total_at_risk_nationwide": 387725,
  "total": 217,
  "returned": 217,
  "total_facilities": 217
}

The paid pull

Add addresses=true and send your key. Price: $0.05 per facility. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=facilities \
  -d county=Duval \
  -d state=FL \
  -d addresses=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • Send both county and state. A state alone returns a 400.
  • A facility shows up only while it is at risk. This is not a fixed list of buildings, so the free count changes through the day.
  • The paid pull returns name, category, city, state, coordinates and risk label.

wildfire

Free preview

Wildfire risk records for the coming days.

In plain EnglishWhere wildfire risk is expected in the coming days.

What other tools call this: wildfire risk forecast.

Request

GET /v1/data?dataset=wildfire
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=wildfire \
  -d state=CA

What you get back

Response 200 (free preview, trimmed)
{
  "generated": "2026-10-03T03:37:56.811280+00:00",
  "valid": "2026-10-03",
  "count": 0,
  "total_counties": 0
}

The paid pull

Add addresses=true and send your key. Price: $0.05 per record. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=wildfire \
  -d state=CA \
  -d addresses=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • Send state, or lat and lon.
  • count is 0 when no wildfire risk is forecast. That is a real answer, not an error. The example above was run today.
  • The preview gives the count and summary. The paid pull gives the records.

at_risk

Free preview

Schools and businesses at risk, counted by peril and time window.

In plain EnglishSchools and businesses in areas with forecast storm risk, split by type of storm and time window.

What other tools call this: sites in the forecast footprint, by peril.

Request

GET /v1/data?dataset=at_risk
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=at_risk \
  -d state=TN \
  -d kind=schools \
  -d peril=WIND

What you get back

Response 200 (free preview, trimmed)
{
  "generated": "2026-10-03T03:48:11.263123Z",
  "data_age_hours": 5.7,
  "stale": false,
  "schools": {
    "WIND": {
      "0-1d": {
        "total": 5
      },
      "1-3d": {
        "total": 0
      },
      "3-7d": {
        "total": 0
      },
      "7-10d": {
        "total": 0
      }
    }
  }
}

The paid pull

Add addresses=true and send your key. Price: $0.05 per record. Do not run this unless you want to pay.

curl (paid)
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=at_risk \
  -d state=TN \
  -d kind=schools \
  -d peril=WIND \
  -d addresses=true \
  -H "Authorization: Bearer YOUR_API_KEY"

Good to know

  • kind is schools or businesses. Leave it out to get both.
  • Windows run from 0-1d out to 7-10d (10 days). Each shows a total for that window.
  • The preview gives totals only. The paid pull gives the individual records.

coverage

Always free

Which states and counties have data on file. Free, always.

In plain EnglishA free list of the states and counties we have data for. Check it before you buy.

What other tools call this: coverage map.

Request

GET /v1/data?dataset=coverage
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=coverage \
  -d state=TX

What you get back

Response 200 (free preview, trimmed)
{
  "state": "TX",
  "storms_counties": [
    "Anderson",
    "Andrews",
    "Angelina",
    "Aransas",
    "Archer",
    "..."
  ],
  "risk_counties": [
    "Anderson",
    "Andrews",
    "Angelina",
    "..."
  ],
  "storms_county_count": 254,
  "risk_county_count": 508,
  "storms_extra_files": [
    "city_of_abilene",
    "city_of_alvin",
    "city_of_amarillo",
    "city_of_austin",
    "city_of_beaumont",
    "..."
  ],
  "storms_extra_files_note": "files on disk that didn't match a real canonical county name -- cities, duplicate aliases, or custom multi-county regions. Not counted in storms_county_count."
}

The paid pull

No paid pull. This dataset is free.

Good to know

  • Call it with no state to list the states that have data. Add state=TX to list that state's counties.
  • Check coverage here before you tell your users where the data applies.

daily

Always free

A ranked daily summary of counties by storm exposure. Counts and totals only, no address records.

In plain EnglishA free daily summary of storm activity.

What other tools call this: daily storm summary.

Request

GET /v1/data?dataset=daily
curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=daily \
  -d rank=exposure_value_usd \
  -d limit=2

What you get back

Response 200 (free preview, trimmed)
{
  "dataset": "daily",
  "generated": "2026-10-03T03:37:36.427667Z",
  "ranked_by": "exposure_value_usd",
  "returned": 2,
  "counties": [
    {
      "state": "TX",
      "county": "Harris",
      "unique_addresses": 1680254,
      "exposure_value_usd": 523921470966,
      "exposure_people": 3490900,
      "storms": [
        {
          "type": "HAIL",
          "count": 122244
        },
        {
          "type": "FLASH_FLOOD",
          "count": 199043
        },
        {
          "type": "HEAVY_RAIN",
          "count": 84257
        },
        {
          "type": "COASTAL_SURGE",
          "count": 1677027
        }
      ]
    },
    {
      "state": "FL",
      "county": "Duval",
      "unique_addresses": 1306759,
      "exposure_value_usd": 143723876789,
      "exposure_people": 1044085,
      "storms": [
        {
          "type": "HAIL",
          "count": 210568
        },
        {
          "type": "FLASH_FLOOD",
          "count": 330118
        },
        {
          "type": "HEAVY_RAIN",
          "count": 2251
        },
        {
          "type": "COASTAL_SURGE",
          "count": 1301914
        }
      ]
    }
  ]
}

The paid pull

No paid pull. This dataset is free.

Good to know

  • rank takes exposure_value_usd, exposure_people or unique_addresses. limit sets how many rows come back.
  • It is always free. There is no paid tier for this dataset.
  • Without rank you get the full nested response, which is large.

5 Batch routes

Up to 500 locations in one call.

Two POST routes for portfolios. Send your own location list each time. These routes have no free preview, so they need a key (or an x402 payment) from the first call.

POST

/v1/weather/batch

Current weather and active alerts for each location. $0.0002 per location. Max 500 locations.

POST

/v1/portfolio/risk

County forecast status for each location (county-level, not address-level). Optional "window":"24h". $0.05 per location. Max 500 locations.

Request body

JSON body
{
  "locations": [
    { "lat": 30.27, "lon": -97.74, "label": "optional, your own reference" }
  ],
  "window": "24h"
}
curl
curl -X POST https://data.truefixr.com/v1/portfolio/risk \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"locations":[{"lat":30.27,"lon":-97.74,"label":"Austin office"}],"window":"24h"}'

Same call for weather: POST /v1/weather/batch, same body without window.

curl (weather batch)
curl -X POST https://data.truefixr.com/v1/weather/batch \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"locations":[{"lat":30.27,"lon":-97.74,"label":"Austin office"},{"lat":32.78,"lon":-96.80,"label":"Dallas yard"}]}'

What you get back

The response shape below comes from the API's own x402 manifest. Paid calls were not run for these docs.

portfolio/risk, example shape
{
  "results": [
    { "lat": 30.27, "lon": -97.74, "county": "Travis", "state": "TX", "grade": "B" }
  ]
}
weather/batch, example shape
{
  "results": [
    { "lat": 30.27, "lon": -97.74, "current": { "temperature_f": 78.0 }, "alerts": [] }
  ]
}
Limit: 500 locations per call. Split larger lists into several calls.

6 Date of loss

Was a storm reported near that day?

Add date_of_loss=YYYY-MM-DD to a history call. You get a plain yes or no: is a severe-weather event on file near the property on that date? The free preview answers yes or no within the radius you set (default 5 miles; minimum 1 mile). The answer can change with the radius. The paid report adds the events just before and after that date, with a reference ID you can cite.

It says whether a storm was reported or radar-detected near the address on that date. It does not confirm a loss or damage. It is not an inspection and not a damage assessment.

curl
curl -G "https://data.truefixr.com/v1/data" \
  -d dataset=history \
  --data-urlencode "address=891 Lake Hollow Blvd SW, Marietta, GA 30064" \
  -d date_of_loss=2026-04-14

A date with no event on file

Response 200 (free preview, trimmed)
{
  "dataset": "history",
  "geocoded_address": "891 Lake Hollow Blvd SW, Marietta, GA 30064, USA",
  "radius_mi": 5.0,
  "real_line_count": 362,
  "estimated_cost_usd": 18.1,
  "date_of_loss": "2026-04-14",
  "date_of_loss_supported": false,
  "answer": "No severe-weather event is on file within 5.0 miles of this address on 2026-04-14."
}

A date with an event on file

Response 200 (free preview, trimmed)
{
  "dataset": "history",
  "geocoded_address": "891 Lake Hollow Blvd SW, Marietta, GA 30064, USA",
  "radius_mi": 5.0,
  "real_line_count": 362,
  "estimated_cost_usd": 18.1,
  "date_of_loss": "2017-09-11",
  "date_of_loss_supported": true,
  "answer": "A severe-weather event is on file within 5.0 miles of this address on 2017-09-11."
}

Price for the paid report: $0.05 per report line, $10.00 minimum per report. Add addresses=true and your key.

7 Errors and limits

What went wrong, and what to do.

CodeMeaningWhat to do
400A required parameter is missing or does not fit the dataset.Read the detail text. It names what is missing.
402Payment required. The call is a paid pull and has no valid key or payment.Add a Bearer key, or pay with x402. The body states the price.
422A parameter has the wrong type, such as text where a number belongs.Fix the value named in loc.
429Too many free previews. The limit is 60 requests per minute per IP address, for calls with no key.Wait a minute and retry. Space out calls, or use a key.

400: a missing parameter

curl
curl -i https://data.truefixr.com/v1/data?dataset=weather
Response 400
{
  "detail": "dataset=weather needs address, or lat+lon"
}

402: payment required

This is what a paid route returns when you send no key.

Response 402 (trimmed)
{
  "x402Version": 2,
  "error": "Payment required",
  "resource": { "url": "https://data.truefixr.com/v1/data?dataset=storms&...", "description": "...", ... },
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x8335...",
    "amount": "50000",
    "payTo": "0xFf23cfFf46535E076e88835CD0Bbad8D1033E255",
    "maxTimeoutSeconds": 300,
    "extra": { ... }
  }],
  "extensions": { ... }
}

The price is accepts[0].amount in atomic USDC (6 decimals): 50000 means $0.05 (price in USD = amount / 1,000,000). The same object is sent in the PAYMENT-REQUIRED response header as base64 JSON. If you are a human, or your agent does not support x402, create a prepaid API key at atlasunited.io/api and send it as Authorization: Bearer <key>.

422: a wrong type

Response 422 (trimmed)
{
  "detail": [
    {
      "type": "float_parsing",
      "loc": [
        "query",
        "lat"
      ],
      "msg": "Input should be a valid number, unable to parse string as a number",
      "input": "abc"
    }
  ]
}

8 MCP and OpenAPI

For tools and AI assistants.

MCP server

Connect Claude, ChatGPT, Cursor and other MCP clients.

https://mcp.atlasunited.io/mcpBuild with AI

OpenAPI

Generate a client or import the API into your tools.

https://data.truefixr.com/openapi.jsonOpen the file

Questions? Write to [email protected].

Start free in 2 minutes.

No contract. No monthly fee. Pay only for what you use, and see the price before every paid call.