Surplus lines market data API
Surplus lines market data, per query.
QueryLines turns the U.S. excess & surplus (E&S) lines market statistics that state stamping offices publish every month into a queryable API. Pull premium by state and coverage line, compare markets, or track year-over-year growth for cents per call instead of a $2,000 PDF report or a $15k subscription. Pay with USDC on Base via x402. No account, no subscription. Built for developers, and for the agents that work for them.
Three ways in: curl or code against the REST API, an agent paying per query with x402, or an assistant connected over MCP.
$ curl -s "https://api.querylines.com/v1/premium?state=FL"
{
"state": "FL",
"line": "all",
"granularity": "month",
"data": [
{ "period": "2025-04", "premium": 1961471936, "policy_count": 145044 },
{ "period": "2025-05", "premium": 1886556336, "policy_count": 151452 },
// … 2026-04, 2026-05 …
{ "period": "2026-06", "premium": 1877013891, "policy_count": 204624 }
],
"report_date": "2026-06-30",
"data_as_of": "2026-06",
"source": "FSLSO FL Monthly Premium Report, June 2026"
}
Try it
Query the live API
This fires a real request from your browser to
api.querylines.com. Pick an endpoint, set the params,
see the response, including the price you'd pay for it.
Live market data
Surplus lines premium, live
All coverage lines, statewide, latest 13 months. This section is
rendered in your browser from
/v1/premium/sample,
a free endpoint: the same JSON an agent gets, no key, no payment.
Loading live data from api.querylines.com…
| Month | Premium | Policies |
|---|
What's in the data
Two states, real history
Every fact row carries its source publication. Here's what's live today.
| State | Source | Monthly data | Annual data | Dimensions |
|---|---|---|---|---|
| FL | FL Monthly Premium Report + annual report | Jan 2025 – Jun 2026 | 2025 annual report | coverage lines, top insurers, counties, new vs renewal |
| TX | TX stamping office monthly + annual reports | Jan 2016 – Jun 2026 | 2009 – 2025 | coverage lines (annual), top insurers |
-
Is cyber liability growing in Florida?
$ curl "https://api.querylines.com/v1/premium?state=FL&line=CYBER%20LIABILITY&granularity=month" -
How big is the Texas E&S market this year?
$ curl "https://api.querylines.com/v1/premium/summary?state=TX&year=2025" -
Florida vs Texas growth, one call.
$ curl "https://api.querylines.com/v1/compare?states=FL,TX&from=2022-01" -
Who writes the most surplus lines premium in Florida?
$ curl "https://api.querylines.com/v1/insurers?state=FL&period=2026-06"
Pricing
Pay for what you query
No plans, no minimums. Discovery endpoints are free so you can see what exists before you spend anything.
Discovery
/v1/premium/sample: 13-month statewide series/v1/coverage: what data exists/v1/lines: coverage taxonomy
Single-state
/v1/premium: premium by month or quarter/v1/premium/summary: headline totals + YoY/v1/insurers: top insurers by premium
Cross-state
/v1/compare: compare markets side by side
Pay per query with x402 (USDC on Base). Questions: hello@querylines.com
Integrate
Curl, code, or an agent that pays for itself
Free endpoints work in any client, zero setup. Paid ones settle over x402 in USDC on Base: no account, no gas from you. Pick a language below, or go deep in the docs.
$ curl -s "https://api.querylines.com/v1/premium/sample"
Paid endpoints (/v1/premium, /v1/compare, …) return an x402
payment challenge instead of data until it's settled.
Full walkthrough →
// pay-per-query, no account: settle the 402 and retry import { wrapFetchWithPayment } from "@x402/fetch"; import { x402Client } from "@x402/core/client"; import { ExactEvmScheme } from "@x402/evm/exact/client"; import { privateKeyToAccount } from "viem/accounts"; const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY); const client = new x402Client(); client.register("eip155:*", new ExactEvmScheme(signer)); const fetchWithPayment = wrapFetchWithPayment(fetch, client); const res = await fetchWithPayment( "https://api.querylines.com/v1/premium?state=FL" ); console.log(await res.json());
# pip install "x402[httpx,evm]" from eth_account import Account from x402 import x402Client from x402.http.clients import x402HttpxClient from x402.mechanisms.evm import EthAccountSigner from x402.mechanisms.evm.exact.register import register_exact_evm_client client = x402Client() register_exact_evm_client(client, EthAccountSigner(Account.from_key(PRIVATE_KEY))) async with x402HttpxClient(client) as http: # inside your async main() response = await http.get("https://api.querylines.com/v1/premium?state=FL") await response.aread() print(response.text)
$ claude mcp add --transport http querylines https://api.querylines.com/mcp
{
"mcpServers": {
"querylines": { "type": "http", "url": "https://api.querylines.com/mcp" }
}
}
The 3 free tools work in any MCP client with zero setup. Paid tools need an x402-capable client with a funded wallet, plain clients get a payment challenge. Full walkthrough →
Also in the docs: Go, C#, Rust, Ruby, a pay-anything proxy, and how to set up a wallet.
Discovery surfaces
MCP tools
https://api.querylines.com/mcp · streamable HTTP
list_linesfreeget_coveragefreeget_premium_samplefreeget_premium$0.10get_summary$0.10get_top_insurers$0.10compare_states$0.50
Not writing code?
Every month we publish a plain-language market snapshot built from this same data: headline premium, policy counts, and the top coverage lines, for Florida and Texas. No API key, no curl.
Browse all snapshots · Latest FL snapshot · Latest TX snapshot