---
title: "Premium/policy-count time series for a state"
method: GET
path: "/v1/premium"
---

# Premium/policy-count time series for a state

`GET /v1/premium`

## Request

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

Optionally scoped to a coverage line, date range, and granularity. $0.10 per query.

## Query parameters

- `state` string, required
- `line` string
- `county` string
- `from` string
- `to` string
- `granularity` 'month' | 'quarter' | 'half' | 'year'
- `report_date` string

## Response `200`

Premium/policy-count series.

- object
  - `state` string, required
  - `line` string, required
  - `county` string, nullable, required: Echoes the county query param, uppercased; null when unset (statewide).
  - `granularity` 'month' | 'quarter' | 'half' | 'year', required
  - `data` object[], required
    - `period` string, required: e.g. "2025-09", "2025-Q3", "2025-H1", or "2025" depending on granularity
    - `premium` number, nullable, required: Exact premium in USD. null for months whose source report published exact policy counts only; back-filled when a later report restates the figure.
    - `policy_count` number, nullable, required: Count as the source publishes it: policies for FL/TX, filing transactions for CA (SLA-CAL submitted-date series) and NY (documents including endorsements), documents filed (policies + endorsements) for IL, registered items for WA. The `source` field names the publication.
    - `new_business_premium` number, nullable, required
    - `renewal_premium` number, nullable, required
    - `new_business_policy_pct` number, nullable, required: New-business share of policy count, 0-100. Only populated on all-lines rows FSLSO prints it for.
    - `renewal_policy_pct` number, nullable, required: Renewal share of policy count, 0-100. Only populated on all-lines rows FSLSO prints it for.
  - `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)
