> ## 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 current SERFF TOI/sub-TOI combinations

> List shared and organization-owned state-specific combinations. Unlike the national NAIC insurance-type directory, these rows describe combinations imported from SERFF. Filters combine with AND and codes match exactly. Use toiId to find subtypes of an uncoded parent. Names and codes can repeat; use the returned UUID for getSerffInsuranceCombination. orgId identifies ownership; shared and own-organization rows are returned independently, with no precedence or merging. Results sort by stable UUID over live data. Imports can update or add rows between pages. Pass nextCursor as cursor with the same filters and limit; cursors do not expire and access is checked on every request. Empty results establish only that no stored rows match, not that SERFF disallows a filing.



## OpenAPI

````yaml /openapi.json get /insurance/serff-insurance-types/combinations
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/serff-insurance-types/combinations:
    get:
      tags:
        - SERFF Insurance Types
      summary: List current SERFF TOI/sub-TOI combinations
      description: >-
        List shared and organization-owned state-specific combinations. Unlike
        the national NAIC insurance-type directory, these rows describe
        combinations imported from SERFF. Filters combine with AND and codes
        match exactly. Use toiId to find subtypes of an uncoded parent. Names
        and codes can repeat; use the returned UUID for
        getSerffInsuranceCombination. orgId identifies ownership; shared and
        own-organization rows are returned independently, with no precedence or
        merging. Results sort by stable UUID over live data. Imports can update
        or add rows between pages. Pass nextCursor as cursor with the same
        filters and limit; cursors do not expire and access is checked on every
        request. Empty results establish only that no stored rows match, not
        that SERFF disallows a filing.
      operationId: listSerffInsuranceCombinations
      parameters:
        - schema:
            type: string
            pattern: ^[A-Z]{2}$
          required: false
          name: state
          in: query
        - schema:
            type: string
            enum:
              - Property & Casualty
              - Life, Accident/Health, Annuity, Credit
          required: false
          name: businessType
          in: query
        - schema:
            type: string
            maxLength: 30
            pattern: ^\d+$
            description: >-
              Use the source parent ID to find subtypes, including uncoded
              categories.
          required: false
          description: >-
            Use the source parent ID to find subtypes, including uncoded
            categories.
          name: toiId
          in: query
        - schema:
            type: string
            maxLength: 100
            pattern: ^[A-Z0-9]+(?:\.[A-Z0-9]+)*(?:\/[A-Z0-9]+(?:\.[A-Z0-9]+)*)*$
          required: false
          name: toiCode
          in: query
        - schema:
            type: string
            maxLength: 100
            pattern: ^[A-Z0-9]+(?:\.[A-Z0-9]+)*(?:\/[A-Z0-9]+(?:\.[A-Z0-9]+)*)*$
          required: false
          name: subToiCode
          in: query
        - schema:
            type: string
            enum:
              - 'true'
              - 'false'
            description: Omit to include enabled and disabled combinations.
          required: false
          description: Omit to include enabled and disabled combinations.
          name: electronicEnabled
          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
            minLength: 1
            maxLength: 8192
            description: >-
              Opaque nextCursor from this operation. Repeat every other query
              parameter unchanged; a cursor from a different query returns
              invalid_cursor.
          required: false
          description: >-
            Opaque nextCursor from this operation. Repeat every other query
            parameter unchanged; a cursor from a different query returns
            invalid_cursor.
          name: cursor
          in: query
      responses:
        '200':
          description: One page of current combinations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  combinations:
                    type: array
                    items:
                      $ref: '#/components/schemas/V2SerffInsuranceCombination'
                  nextCursor:
                    type: string
                    nullable: true
                    description: Cursor for the next page, or null on the last page.
                required:
                  - combinations
                  - nextCursor
        '400':
          description: >-
            Invalid request or cursor. Repeat the same filters and limit when
            following a cursor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '403':
          description: Credential does not permit this operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '404':
          description: Combination not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '500':
          description: Unexpected failure.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '503':
          description: Service temporarily unavailable; honor Retry-After.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
      security:
        - bearerAuth: []
components:
  schemas:
    V2SerffInsuranceCombination:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: >-
            Stable row ID; preserved when the same source pair is imported
            again.
        orgId:
          type: string
          description: >-
            Owning organization; the all-zero global org is shared reference
            data.
        toiId:
          type: string
          maxLength: 30
          pattern: ^\d+$
          description: SERFF parent TOI ID, retained independently of its code.
        subToiId:
          type: string
          maxLength: 30
          pattern: ^\d+$
          description: SERFF sub-TOI ID. The pair of source IDs identifies a combination.
        state:
          type: string
          pattern: ^[A-Z]{2}$
          description: Two-letter state or territory code.
        businessType:
          type: string
          enum:
            - Property & Casualty
            - Life, Accident/Health, Annuity, Credit
        toiCode:
          type: string
          nullable: true
          maxLength: 100
          pattern: ^[A-Z0-9]+(?:\.[A-Z0-9]+)*(?:\/[A-Z0-9]+(?:\.[A-Z0-9]+)*)*$
          description: Null for a SERFF category without a code. Normalized before import.
        toiName:
          type: string
          minLength: 1
          maxLength: 300
        subToiCode:
          type: string
          nullable: true
          maxLength: 100
          pattern: ^[A-Z0-9]+(?:\.[A-Z0-9]+)*(?:\/[A-Z0-9]+(?:\.[A-Z0-9]+)*)*$
          description: Null for a SERFF subtype without a code. Normalized before import.
        subToiName:
          type: string
          minLength: 1
          maxLength: 300
        electronicEnabled:
          type: boolean
          description: >-
            Whether this combination is enabled for electronic filing in the
            source snapshot.
        sourceUrl:
          type: string
          maxLength: 4000
          format: uri
        observedAt:
          type: string
          format: date-time
      required:
        - id
        - orgId
        - toiId
        - subToiId
        - state
        - businessType
        - toiCode
        - toiName
        - subToiCode
        - subToiName
        - electronicEnabled
        - sourceUrl
        - observedAt
    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
                - osha
              description: Dataset needed for dataset_not_enabled.
            accessUrl:
              type: string
              nullable: true
              format: uri
              description: >-
                Where to add the product to your account, for
                product_access_required.
          required:
            - code
    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.