Skip to main content
Use line results for reported Part 1B premium and IEE Part 3 underwriting amounts. Your organization needs the NAIC dataset enabled after accepting its terms. Use financials for an annual totals document, or state results for jurisdiction-level observations.

Select a carrier and years

Find the carrier with GET /api/v2/insurance/carriers?name=Markel and copy its id. Omit year bounds to discover the latest loaded year, then pin a comparison:
Supply both from and to, covering at most eight inclusive years. Equal bounds select one year. lineFamily=cmp selects commercial multiple peril using the appropriate physical codes for each exhibit/year. An exact line=17.1 selects only that code; it never expands an obsolete parent. Do not combine line and lineFamily. Add exhibit=part-1b or exhibit=iee-part-3 to read one exhibit.

Interpret the observations

The response contains from, to, coverage, lineSelections, lineResults and nextCursor. Every item has its own id, source naicCompanyCode, year, exhibit, line and sources. All money is whole US dollars, including IEE values converted from thousands. Negative values are retained. Null is unavailable, not zero. Exhibits and source companies remain separate observations; they are not consolidated or summed. Line 35 is a total and line 34 aggregate write-ins: do not add them to components. Individual write-ins, footnotes and calculated ratios are not included. Check lineSelections for family splits and line.note for known changes in meaning. For example, CMP in 2020 uses 05 in Part 1B and 05.1/05.2 in IEE. A matching code or label alone does not prove comparability across years. coverage[].available says whether any rows exist for that exhibit/year before line filtering. True does not promise every company, line or field is present. No coverage in the entire range returns 404 statutory_data_not_found; this does not prove the carrier did not file. A valid filter with no matches returns an empty list. Missing observations are not reported zeros.

Continue or reread an observation

Repeat the original query and limit with cursor={nextCursor} until the cursor is null. Default page size is 50, maximum 200. When bounds were omitted, keep omitting them: the continuation pins the selected year. Cursors expire after 24 hours and must be restarted if the carrier’s source identifiers change. Copy a returned observation ID to:
The item GET returns the same representation. IDs address current loaded values; reimports can change or remove them. Pagination is a live view, not a snapshot. Successful calls cost 0.02plus0.02 plus 0.01 per returned observation. Two exhibits for the same company/year/line count as two observations. An item GET costs 0.03;anemptysuccessfulpagecosts0.03; an empty successful page costs 0.02. Failures are not charged; repeating a successful read is charged again.