---
title: "Per-county FEMA declaration detail for one hurricane event"
method: GET
path: "/v1/cat/counties"
---

# Per-county FEMA declaration detail for one hurricane event

`GET /v1/cat/counties`

## Request

- Base URL: `https://api.querylines.com`
- URL: `https://api.querylines.com/v1/cat/counties`
- Auth: none declared

`event` is an event_key from /v1/cat/events (e.g. 'hurricane-ian-2022'). Returns one row per declared county with the FEMA declaration type/number, incident window, and IA/PA/IH/HM program flags. `state` narrows to one state/territory. `county` is normalized to the surplus-lines premium spelling where a crosswalk exists (null otherwise). Unknown event -> 404. $0.10 per query.

## Query parameters

- `event` string, required
- `state` string

## Response `200`

Per-county declaration rows for the event.

- object
  - `event` string, required
  - `event_name` string, required
  - `peril` string, required
  - `year` number, required
  - `max_category` number, nullable, required
  - `landfall_date` string, nullable, required
  - `state` string, nullable, required
  - `count` number, required
  - `declarations` object[], required
    - `state` string, required
    - `disaster_number` number, required
    - `fema_declaration_string` string, required: e.g. DR-4673-FL
    - `declaration_type` string, required: DR | EM | FM
    - `declaration_title` string, required
    - `declaration_date` string, nullable, required
    - `incident_begin_date` string, nullable, required
    - `incident_end_date` string, nullable, required
    - `fips_state_code` string, required
    - `fips_county_code` string, required
    - `designated_area` string, required: Raw FEMA label, e.g. 'Lee (County)'.
    - `county` string, nullable, required: Normalized to premium spelling; null if uncrosswalked.
    - `programs` object, required
      - `ia` boolean, required: Individual Assistance
      - `pa` boolean, required: Public Assistance
      - `ih` boolean, required: Individuals & Households
      - `hm` boolean, required: Hazard Mitigation
  - `report_date` string, nullable, required
  - `data_as_of` string, nullable, required
  - `source` string, required
  - `coverage_note` string, required

## Other responses

- `400`: Invalid query parameters.
- `402`: Payment required (x402). Returned when the x402 payment gate is enabled (PAY_TO_ADDRESS configured) and the request carries no valid payment. The full payment challenge (price/network/payTo/asset) is carried in the base64-encoded PAYMENT-REQUIRED response header (see the x402 spec), not the JSON body -- the body is `{}` for API clients. Price for this route: $0.10. Retry with a signed payment per x402 (USDC on Base mainnet); on success the response carries a PAYMENT-RESPONSE header with settlement info. When PAY_TO_ADDRESS is unset (kill switch off), this route is free and never returns 402.
- `404`: Unknown state or coverage line.
- `500`: Internal error.

---

[API](https://skmtc.dev/querylines/apis/querylines-api.md) · [All operations](https://skmtc.dev/querylines/apis/querylines-api/llms.txt) · [OpenAPI document](https://skmtc.dev/querylines/apis/querylines-api/revisions/4afb6c3e2b1f?raw)
