Skip to main content
Use these endpoints to read Schedule P as the carrier filed it: paid and incurred loss triangles by accident year, and the interrogatory answers about reserving. They require your organization’s NAIC dataset access. Contact support to enable it after accepting the NAIC terms; the API does not enable access itself.

Choose the carrier, line and year

Start with a carrier ID from GET /insurance/carriers. A five-digit NAIC company code is also accepted; the response returns the canonical managed carrier ID. Schedule P uses lettered lines, such as R for products liability and D for workers’ compensation. They are a separate scheme from the numbered statement lines in state and line results. line is required. SUMMARY is the reported all-lines page; do not add it to the lettered lines. Set EFFECTIVE_API_KEY to your user API key, then request Part 2 (incurred) for products liability in a specific statement year:
The response includes the statement year, a lossDevelopmentRows array and nextCursor. Omit part to read parts 2 to 6. Omit statementYear to select the carrier’s latest loaded Schedule P year. Each row is one printed row of one page:
  • id: pass unchanged to the item endpoint under the same carrier.
  • naicCompanyCode: the source company, separate from the managed carrier ID.
  • line, part, section and variant: the Schedule P page. For lines F, H and R, section 1 is occurrence and section 2 is claims-made.
  • sourceRow, rowType and accidentYear: row 01 is prior years, rows 02 to 11 are accident years and row 12 is totals.
  • development: the triangle cells by evaluation year, with their measure and unit.
  • supplemental: other columns on the same row, such as one-year development.
  • sources: the Schedule P page and statement year.
Copy lossDevelopmentRows[].id into the item URL. For the 2024 accident year on the occurrence page, the request is:
Expected response:
The item has the same shape as its list entry. A carrier that resolves to several source companies returns separate rows for each company. They are not combined.

Interpret the values

Schedule P reports money in thousands. The API returns whole US dollars, so a reported 52271 becomes 52271000. Claim counts are not scaled. Negative values are preserved. The source load does not keep blank or zero cells, so a missing evaluation year means blank or zero; it is not evidence of either. The API returns what the schedule reports. It does not calculate development factors, ultimates, loss ratios or sums. Part 1, Part 7 loss-sensitive contracts and a mapping to numbered statement lines are not available.

Read the interrogatories

The interrogatories answer questions about the schedule, such as whether reserves are discounted (question 4) and whether claim counts are per claim or per claimant (question 6):
Expected response (abbreviated to four answers):
Omit year for the latest loaded year. Each source company has its own section. topic is a short label, not the filed question text. Monetary answers are whole US dollars; questions 5.1 and 5.2 are reported in thousands and scaled. Blank text is null. The 2018 and 2019 loads store blank numbers as 0, so a zero in those years does not prove a reported zero.

Continue and recover

Lists default to 50 rows; limit accepts 1–200. Follow nextCursor with the same filters and limit. An omitted statement year stays pinned during traversal. Cursors expire after 24 hours; restart without the cursor after invalid_cursor. Imported values can change between calls; this is not a frozen snapshot.
  • dataset_not_enabled (403): request NAIC access from support.
  • statutory_data_not_found (404): no loaded Schedule P data for that carrier and year. This does not prove the carrier failed to file.
  • Empty lossDevelopmentRows: the year is loaded, but the line or part has no rows.
  • Item not_found (404): the row was removed, is unavailable, or belongs to another carrier. Return to the collection to discover current rows.
A nonempty list costs 0.02plus0.02 plus 0.05 per returned row. One row or one interrogatory document costs 0.07.A50−rowpagecosts0.07. A 50-row page costs 2.52. Errors and empty results are free. Repeating a successful read incurs another charge. API and MCP use the same prices.