Skip to main content
Use state results to read a carrier’s reported direct premiums, losses and expenses by jurisdiction and statement line. Your organization must first accept the NAIC data terms and have the NAIC dataset enabled. A denied request returns 403 dataset_not_enabled with instructions to request access.

Find the carrier and reporting year

Find a carrier through GET /api/v2/insurance/carriers?name=Markel and copy its id. Then request:
The response includes year, stateResults, and nextCursor. An omitted year selects the latest loaded state exhibit for this carrier. Rows include line codes and names; use the returned codes when refining a query.

Compare a state and line

Pin the reporting year so both requests describe the same period:
17.1 is other liability occurrence. Amounts are whole US dollars. Negative values remain negative, a reported zero is 0, and unavailable amounts are null. A missing row is not a reported zero. sources identifies the statement exhibit and reporting year; it does not provide a publication or ingestion date. For a continuous family across line-code changes, use lineFamily instead of line. The response lists the exact resolvedLines and returns each line’s observations separately.

Continue or revisit an observation

Repeat the original filters and limit, adding cursor=<nextCursor>, until nextCursor is null. If the original request omitted year, keep omitting it: the continuation holds the selected year fixed. Expired or mismatched cursors return invalid_cursor; restart without the cursor. New requests recheck access. To read one observation again, copy its id:
The ID identifies an observation, not an immutable revision. Reloaded statements can change its values. An observation belonging to another carrier returns 404.

Interpret coverage and cost

  • An empty filtered list means no matching observations. statutory_data_not_found means no state exhibit is loaded for that carrier/year; neither proves non-filing.
  • Line 35 is a total; line 34 is aggregate write-ins. Do not sum totals with their components. Individual write-ins and footnotes are not included in these reads.
  • These are carrier/line figures, not product, class or MGA revenue. Multiple source company codes attached to a merged carrier remain separate rows.
  • Each successful call costs 0.02plus0.02 plus 0.01 per returned observation. A 50-row page costs 0.52,adetailread0.52, a detail read 0.03, and an empty successful page $0.02. Failed calls are not charged. Repeating a successful read incurs another charge.