---
title: "Top insurers by premium for a state and period"
method: GET
path: "/v1/insurers"
---

# Top insurers by premium for a state and period

`GET /v1/insurers`

## Request

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

Ranked by premium, for a month, half-year (YYYY-H1), or year. $0.10 per query.

## Query parameters

- `state` string, required
- `period` string, required

## Response `200`

Ranked insurers for the period.

- object
  - `state` string, required
  - `period` string, required
  - `insurers` object[], required
    - `rank` number, required
    - `name` string, required
    - `premium` number, required
    - `policy_count` number, nullable, required
    - `market_share` number, nullable, required: This row's premium as a percent (0-100) of the SAME period's statewide all-lines premium total (GET /v1/premium's rollup). null if that total isn't available.
    - `yoy_premium_pct` number, nullable, required: This insurer's premium percent change vs. the same period one year earlier. null when no prior-year row exists for this insurer.
    - `financials` object, nullable: The carrier's latest-fiscal-year financial-strength figures (from GET /v1/financials), joined by NAIC code so you get premium AND loss ratios in one call. null when the carrier has no matched financial filing. Ratios are served exactly as printed, never recomputed.
      - `fiscal_year` number, required
      - `combined_ratio` number, nullable, required: Combined ratio, as printed.
      - `losses_incurred_ratio` number, nullable, required: Losses-incurred ratio, as printed.
      - `source` string, nullable, required: Attribution for the financial figures (distinct from the premium source).
  - `report_date` string, nullable, required
  - `data_as_of` string, nullable, required
  - `source` string, nullable, 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)
