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

# List a carrier’s state license observations

> 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 observation. Empty results and failed requests are not charged; repeated successful reads are charged again. Read stored year-end carrier licensing statuses from Schedule T. This is a dated carrier observation, not current license verification or a product admission decision. No product or directory fields are changed. Rows remain separate for each source NAIC company code, year and US state or territory. Foreign aggregates and totals are excluded. Unreported codes are null; unknown codes remain visible with a null label. Schedule T Part 2 and premium/loss amounts are not included. Ordered by source NAIC code, jurisdiction (lexically). Live keyset paging is not a snapshot; reimports can change values. Repeat the original filters and limit with nextCursor; omitted year remains pinned. Cursors expire after 24 hours and are bound to the caller, carrier identifiers and query. Read an item at GET /insurance/carriers/{carrierId}/state-licenses/{id} using stateLicenses[].id. Read-only; private, no-store.



## OpenAPI

````yaml /openapi.json get /insurance/carriers/{carrierId}/state-licenses
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.effectiveai.app/api/v2
    description: Production
security:
  - bearerAuth: []
paths:
  /insurance/carriers/{carrierId}/state-licenses:
    get:
      tags:
        - NAIC statutory data
      summary: List a carrier’s state license observations
      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
        observation. Empty results and failed requests are not charged; repeated
        successful reads are charged again. Read stored year-end carrier
        licensing statuses from Schedule T. This is a dated carrier observation,
        not current license verification or a product admission decision. No
        product or directory fields are changed. Rows remain separate for each
        source NAIC company code, year and US state or territory. Foreign
        aggregates and totals are excluded. Unreported codes are null; unknown
        codes remain visible with a null label. Schedule T Part 2 and
        premium/loss amounts are not included. Ordered by source NAIC code,
        jurisdiction (lexically). Live keyset paging is not a snapshot;
        reimports can change values. Repeat the original filters and limit with
        nextCursor; omitted year remains pinned. Cursors expire after 24 hours
        and are bound to the caller, carrier identifiers and query. Read an item
        at GET /insurance/carriers/{carrierId}/state-licenses/{id} using
        stateLicenses[].id. Read-only; private, no-store.
      operationId: listCarrierStateLicenses
      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
            pattern: ^\d{4}$
            description: >-
              Statement year. Omit for the carrier’s latest loaded Schedule T
              jurisdiction observations; continuation pins that year.
          required: false
          description: >-
            Statement year. Omit for the carrier’s latest loaded Schedule T
            jurisdiction observations; continuation pins that year.
          name: year
          in: query
        - schema:
            type: string
            pattern: ^[A-Za-z]{2}$
            description: >-
              Two-letter state or territory code. Omit for all reported US
              jurisdictions. A valid filter without matching observations
              returns an empty page.
          required: false
          description: >-
            Two-letter state or territory code. Omit for all reported US
            jurisdictions. A valid filter without matching observations returns
            an empty page.
          name: state
          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 state observations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CarrierStateLicenses'
        '400':
          description: >-
            invalid_request for invalid, conflicting, 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 T
            jurisdictions for the selected year. This does not prove it did not
            file.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '500':
          description: Unexpected server failure.
          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:
    V2CarrierStateLicenses:
      type: object
      properties:
        year:
          type: integer
          minimum: 1900
          maximum: 9999
          description: Resolved statement year, fixed for this traversal.
        stateLicenses:
          type: array
          items:
            $ref: '#/components/schemas/V2CarrierStateLicense'
        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'
      required:
        - year
        - stateLicenses
        - 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
    V2CarrierStateLicense:
      type: object
      properties:
        id:
          type: string
          description: >-
            Opaque observation ID. Use unchanged under the same carrier at the
            item GET. Not an immutable revision.
        carrier:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
          required:
            - id
            - name
        naicCompanyCode:
          type: string
          description: >-
            Five-digit source company code, separate from managed carrier
            identity.
        year:
          type: integer
          minimum: 1900
          maximum: 9999
          description: >-
            Statement year; this is a historical year-end observation, not
            current license verification.
        state:
          type: string
        stateName:
          type: string
        status:
          type: object
          properties:
            code:
              type: string
              nullable: true
              description: >-
                Reported Schedule T active-status code. L licensed/chartered, R
                registered RRG, E surplus-lines eligible, Q qualified/accredited
                reinsurer, D domestic surplus lines, N none of those statuses, S
                suspended, O other. New codes are preserved. Null is unreported,
                not N.
            label:
              type: string
              nullable: true
              description: >-
                Explanation for a recognized code; null for an unknown or
                unreported code. Does not determine product admission.
          required:
            - code
            - label
        sources:
          type: array
          items:
            $ref: '#/components/schemas/V2NaicSource'
      required:
        - id
        - carrier
        - naicCompanyCode
        - year
        - state
        - stateName
        - status
        - 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.