> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canary.effectiveai.app/llms.txt
> Use this file to discover all available pages before exploring further.

# List a carrier’s Schedule P loss development rows

> Requires the organization’s NAIC dataset grant after acceptance of the NAIC terms. The grant is checked before carrier lookup on every request. Each nonempty successful request costs $0.02 plus $0.05 per returned row; one row is one printed accident-year, prior, totals or earned-premium row of one page. Empty results and failed requests are not charged; repeated successful reads are charged again. Read stored Schedule P development triangles for one lettered line (required), such as R for products liability. Each row is one printed row: its development cells by evaluation year and the supplemental columns reported beside them. Keeps Schedule P’s structure: lettered line, part, section, page variant and printed row. Parts 2 to 4 are net of reinsurance; Part 5 claim counts are direct and assumed; Part 6 sections 1, 1A and 1B are direct and assumed premiums earned; sections 2, 2A and 2B are ceded. Money is whole US dollars scaled from reported thousands; counts are not scaled. Negative values are preserved. Blank and zero cells are not loaded, so absent cells are not evidence of zero. No development factors, ultimates, ratios or sums are calculated. Part 1, Part 7 loss-sensitive contracts and numbered statement lines are not included. Rows remain separate for each source NAIC company. Ordered by source NAIC code, part, page variant and row number (text ordering). Live keyset paging is not a snapshot; reimports can change values. Repeat the original filters and limit with nextCursor; an omitted statementYear stays pinned. Cursors expire after 24 hours and are bound to the caller, carrier identifiers and query. Read an item at GET /insurance/carriers/{carrierId}/loss-development/{id} using lossDevelopmentRows[].id. Read-only; private, no-store.



## OpenAPI

````yaml /openapi.json get /insurance/carriers/{carrierId}/loss-development
openapi: 3.0.3
info:
  title: Effective API
  version: 2.0.0
  description: The public Effective REST API. Authenticate using an Effective API key.
servers:
  - url: https://api.canary.effectiveai.app/api/v2
    description: Canary
security:
  - bearerAuth: []
paths:
  /insurance/carriers/{carrierId}/loss-development:
    get:
      tags:
        - NAIC statutory data
      summary: List a carrier’s Schedule P loss development rows
      description: >-
        Requires the organization’s NAIC dataset grant after acceptance of the
        NAIC terms. The grant is checked before carrier lookup on every request.
        Each nonempty successful request costs $0.02 plus $0.05 per returned
        row; one row is one printed accident-year, prior, totals or
        earned-premium row of one page. Empty results and failed requests are
        not charged; repeated successful reads are charged again. Read stored
        Schedule P development triangles for one lettered line (required), such
        as R for products liability. Each row is one printed row: its
        development cells by evaluation year and the supplemental columns
        reported beside them. Keeps Schedule P’s structure: lettered line, part,
        section, page variant and printed row. Parts 2 to 4 are net of
        reinsurance; Part 5 claim counts are direct and assumed; Part 6 sections
        1, 1A and 1B are direct and assumed premiums earned; sections 2, 2A and
        2B are ceded. Money is whole US dollars scaled from reported thousands;
        counts are not scaled. Negative values are preserved. Blank and zero
        cells are not loaded, so absent cells are not evidence of zero. No
        development factors, ultimates, ratios or sums are calculated. Part 1,
        Part 7 loss-sensitive contracts and numbered statement lines are not
        included. Rows remain separate for each source NAIC company. Ordered by
        source NAIC code, part, page variant and row number (text ordering).
        Live keyset paging is not a snapshot; reimports can change values.
        Repeat the original filters and limit with nextCursor; an omitted
        statementYear stays pinned. Cursors expire after 24 hours and are bound
        to the caller, carrier identifiers and query. Read an item at GET
        /insurance/carriers/{carrierId}/loss-development/{id} using
        lossDevelopmentRows[].id. Read-only; private, no-store.
      operationId: listCarrierLossDevelopmentRows
      parameters:
        - schema:
            type: string
            minLength: 1
            maxLength: 100
            description: >-
              Managed carrier_ ID or bare checked code. Legacy five-digit NAIC
              codes and naic: codes are also accepted.
          required: true
          description: >-
            Managed carrier_ ID or bare checked code. Legacy five-digit NAIC
            codes and naic: codes are also accepted.
          name: carrierId
          in: path
        - schema:
            type: string
            enum:
              - A
              - B
              - C
              - D
              - E
              - F
              - G
              - H
              - I
              - J
              - K
              - L
              - M
              - 'N'
              - O
              - P
              - R
              - S
              - T
              - U
              - SUMMARY
            description: >-
              Lettered Schedule P line, a separate scheme from numbered
              statement lines: A Homeowners/Farmowners; B Private Passenger Auto
              Liability; C Commercial Auto/Truck Liability/Medical; D Workers'
              Compensation; E Commercial Multiple Peril; F Medical Professional
              Liability; G Special Liability (Ocean Marine, Aircraft, Boiler &
              Machinery); H Other Liability; I Special Property (Fire, Allied
              Lines, Inland Marine, Earthquake); J Auto Physical Damage; K
              Fidelity & Surety; L Other (Including Credit, Accident & Health);
              M International; N Reinsurance - Nonproportional Assumed Property;
              O Reinsurance - Nonproportional Assumed Liability; P Reinsurance -
              Nonproportional Assumed Financial Lines; R Products Liability; S
              Financial Guaranty/Mortgage Guaranty; T Warranty; U Pet Insurance
              Plans; SUMMARY All Lines Combined. SUMMARY is the reported
              all-lines page; never add it to lettered lines.
          required: true
          description: >-
            Lettered Schedule P line, a separate scheme from numbered statement
            lines: A Homeowners/Farmowners; B Private Passenger Auto Liability;
            C Commercial Auto/Truck Liability/Medical; D Workers' Compensation;
            E Commercial Multiple Peril; F Medical Professional Liability; G
            Special Liability (Ocean Marine, Aircraft, Boiler & Machinery); H
            Other Liability; I Special Property (Fire, Allied Lines, Inland
            Marine, Earthquake); J Auto Physical Damage; K Fidelity & Surety; L
            Other (Including Credit, Accident & Health); M International; N
            Reinsurance - Nonproportional Assumed Property; O Reinsurance -
            Nonproportional Assumed Liability; P Reinsurance - Nonproportional
            Assumed Financial Lines; R Products Liability; S Financial
            Guaranty/Mortgage Guaranty; T Warranty; U Pet Insurance Plans;
            SUMMARY All Lines Combined. SUMMARY is the reported all-lines page;
            never add it to lettered lines.
          name: line
          in: query
        - schema:
            type: string
            enum:
              - '2'
              - '3'
              - '4'
              - '5'
              - '6'
            description: Read one Schedule P part. Omit for parts 2 to 6.
          required: false
          description: Read one Schedule P part. Omit for parts 2 to 6.
          name: part
          in: query
        - schema:
            type: string
            pattern: ^\d{4}$
            description: >-
              Annual statement year. Omit for the latest year with any loaded
              Schedule P triangle for this carrier, chosen before line and part
              filters. A continuation pins it.
          required: false
          description: >-
            Annual statement year. Omit for the latest year with any loaded
            Schedule P triangle for this carrier, chosen before line and part
            filters. A continuation pins it.
          name: statementYear
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 50
            description: Maximum number of items to return (1-200).
          required: false
          description: Maximum number of items to return (1-200).
          name: limit
          in: query
        - schema:
            type: string
            description: '`nextCursor` from the previous page.'
          required: false
          description: '`nextCursor` from the previous page.'
          name: cursor
          in: query
      responses:
        '200':
          description: One page of Schedule P rows.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CarrierLossDevelopmentRows'
        '400':
          description: >-
            invalid_request for invalid, missing, unknown or repeated scalar
            inputs; invalid_id for a malformed carrier; invalid_cursor requires
            restarting traversal.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '403':
          description: >-
            dataset_not_enabled: NAIC terms and organization entitlement are
            required. No charge. Other credential restrictions use forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '404':
          description: >-
            not_found for an unknown carrier or missing/wrong-parent item;
            statutory_data_not_found when the carrier has no loaded Schedule P
            data for the selected year. This does not prove it did not file.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '500':
          description: Unexpected source or server failure; no charge.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '503':
          description: A dependency is unavailable; respect Retry-After.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
      security:
        - bearerAuth: []
components:
  schemas:
    V2CarrierLossDevelopmentRows:
      type: object
      properties:
        statementYear:
          type: integer
          minimum: 1900
          maximum: 9999
          description: Resolved statement year, fixed for this traversal.
        lossDevelopmentRows:
          type: array
          items:
            $ref: '#/components/schemas/V2CarrierLossDevelopmentRow'
        nextCursor:
          type: string
          nullable: true
          description: Cursor for the next page, or null on the last page.
        sources:
          type: array
          items:
            $ref: '#/components/schemas/V2NaicSource'
          description: The Schedule P parts this request selected and their statement year.
      required:
        - statementYear
        - lossDevelopmentRows
        - nextCursor
        - sources
    V2CodedError:
      allOf:
        - $ref: '#/components/schemas/V2Error'
        - type: object
          properties:
            code:
              type: string
              minLength: 1
              description: Stable error code. Clients must tolerate unknown future codes.
            details:
              type: array
              items:
                type: object
                properties:
                  location:
                    type: string
                    enum:
                      - path
                      - query
                      - header
                      - body
                  path:
                    type: array
                    items:
                      type: string
                      maxLength: 64
                    maxItems: 12
                  code:
                    type: string
                    enum:
                      - required
                      - invalid_type
                      - invalid_value
                      - unknown_field
                  message:
                    type: string
                    minLength: 1
                    maxLength: 200
                required:
                  - location
                  - path
                  - code
                  - message
              minItems: 1
              maxItems: 20
              description: Bounded safe validation issues; may omit some invalid fields.
            requestId:
              type: string
              minLength: 1
              maxLength: 128
              description: >-
                Existing server correlation for this HTTP attempt, when
                available.
            dataset:
              type: string
              enum:
                - naic
              description: Dataset needed for dataset_not_enabled.
          required:
            - code
    V2CarrierLossDevelopmentRow:
      type: object
      properties:
        id:
          type: string
          description: >-
            Opaque row ID. Pass unchanged to the item GET under the same
            carrier. Identifies the source row, not an immutable value.
        carrier:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
          required:
            - id
            - name
        naicCompanyCode:
          type: string
          description: >-
            Five-digit source NAIC company code, separate from the managed
            carrier ID.
        statementYear:
          type: integer
          minimum: 1900
          maximum: 9999
          description: Annual statement year that reported this row.
        line:
          type: object
          properties:
            code:
              type: string
              enum:
                - A
                - B
                - C
                - D
                - E
                - F
                - G
                - H
                - I
                - J
                - K
                - L
                - M
                - 'N'
                - O
                - P
                - R
                - S
                - T
                - U
                - SUMMARY
              description: >-
                Lettered Schedule P line, a separate scheme from numbered
                statement lines: A Homeowners/Farmowners; B Private Passenger
                Auto Liability; C Commercial Auto/Truck Liability/Medical; D
                Workers' Compensation; E Commercial Multiple Peril; F Medical
                Professional Liability; G Special Liability (Ocean Marine,
                Aircraft, Boiler & Machinery); H Other Liability; I Special
                Property (Fire, Allied Lines, Inland Marine, Earthquake); J Auto
                Physical Damage; K Fidelity & Surety; L Other (Including Credit,
                Accident & Health); M International; N Reinsurance -
                Nonproportional Assumed Property; O Reinsurance -
                Nonproportional Assumed Liability; P Reinsurance -
                Nonproportional Assumed Financial Lines; R Products Liability; S
                Financial Guaranty/Mortgage Guaranty; T Warranty; U Pet
                Insurance Plans; SUMMARY All Lines Combined. SUMMARY is the
                reported all-lines page; never add it to lettered lines.
            name:
              type: string
              description: >-
                Loaded line label. For F, H and R it names the occurrence or
                claims-made page.
            scheme:
              type: string
              enum:
                - schedule-p
          required:
            - code
            - name
            - scheme
        part:
          type: string
          enum:
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
          description: >-
            Schedule P part: 2 incurred and 3 paid net losses and defense and
            cost containment (DCC) expenses, 4 bulk and IBNR net reserves, 5
            claim counts, 6 premiums earned.
        section:
          type: string
          nullable: true
          description: >-
            Reported page section, such as 1, 2 or 1A; null when the page has no
            sections. Part 6 sections 1, 1A and 1B are direct and assumed; 2, 2A
            and 2B are ceded.
        variant:
          type: string
          description: Reported page variant, such as R - SECTION 1.
        sourceRow:
          type: string
          description: >-
            Two-digit printed row number on the page. 01 is prior years, 02 to
            11 are accident years, 12 is totals and 13 is the Part 6
            earned-premium row.
        rowType:
          type: string
          enum:
            - prior
            - accident_year
            - totals
            - earned_premiums
        accidentYear:
          type: integer
          nullable: true
          minimum: 1900
          maximum: 9999
          description: >-
            Accident year (Part 6: year premiums were earned) for accident-year
            rows; null otherwise.
        development:
          type: object
          nullable: true
          properties:
            measure:
              type: string
              enum:
                - incurred_net_losses_and_dcc
                - one_year_development
                - two_year_development
                - paid_net_losses_and_dcc
                - claims_closed_with_loss_payment
                - claims_closed_without_loss_payment
                - bulk_and_ibnr_net_reserves
                - claims_outstanding
                - claims_reported
                - direct_and_assumed_premiums_earned
                - ceded_premiums_earned
                - schedule_p_part_1_premiums_earned
                - current_year_premiums_earned
            unit:
              type: string
              enum:
                - usd
                - count
              description: >-
                usd: whole US dollars, scaled from reported thousands. count:
                number of claims.
            values:
              type: array
              items:
                type: object
                properties:
                  evaluationYear:
                    type: integer
                    minimum: 1900
                    maximum: 9999
                  developmentMonths:
                    type: integer
                    nullable: true
                    description: >-
                      Months from the start of the accident year; null for other
                      rows.
                  value:
                    type: integer
                    description: >-
                      Reported value in the stated unit. Negative values are
                      preserved.
                required:
                  - evaluationYear
                  - developmentMonths
                  - value
              maxItems: 10
              description: >-
                Reported cells in ascending evaluation year. The source load
                drops blank and zero cells, so an absent year is blank or zero,
                not evidence of either.
          required:
            - measure
            - unit
            - values
          description: >-
            The development triangle cells for this row. Parts 2 to 4 are net of
            reinsurance. Part 5 counts are direct and assumed. Null when the row
            reports only supplemental columns.
        supplemental:
          type: array
          items:
            type: object
            properties:
              measure:
                type: string
                enum:
                  - incurred_net_losses_and_dcc
                  - one_year_development
                  - two_year_development
                  - paid_net_losses_and_dcc
                  - claims_closed_with_loss_payment
                  - claims_closed_without_loss_payment
                  - bulk_and_ibnr_net_reserves
                  - claims_outstanding
                  - claims_reported
                  - direct_and_assumed_premiums_earned
                  - ceded_premiums_earned
                  - schedule_p_part_1_premiums_earned
                  - current_year_premiums_earned
              unit:
                type: string
                enum:
                  - usd
                  - count
                description: >-
                  usd: whole US dollars, scaled from reported thousands. count:
                  number of claims.
              value:
                type: integer
                description: >-
                  Reported value in the stated unit. Negative values are
                  preserved.
            required:
              - measure
              - unit
              - value
          description: >-
            Reported columns beside the triangle: Part 2 one- and two-year
            development, Part 3 closed claim counts and Part 6 current-year
            premiums earned. Blank and zero columns are absent.
        sources:
          type: array
          items:
            $ref: '#/components/schemas/V2NaicSource'
      required:
        - id
        - carrier
        - naicCompanyCode
        - statementYear
        - line
        - part
        - section
        - variant
        - sourceRow
        - rowType
        - accidentYear
        - development
        - supplemental
        - sources
    V2NaicSource:
      type: object
      properties:
        exhibit:
          type: string
        statementYear:
          type: integer
          minimum: 1900
          maximum: 9999
      required:
        - exhibit
        - statementYear
    V2Error:
      type: object
      properties:
        error:
          type: string
          minLength: 1
          description: Human-readable explanation of the failure.
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Effective API key. Send Authorization: Bearer sk-eai-...'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.