> ## 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.

# Get a product's timeline

> Get the timeline of a product: its changes grouped from state filings, with rate changes, per-state forms and components, objections, news and every filing found, in a change or excluded with the reason. Links in the document open filing artifacts in the Effective app. Documents can be several megabytes.

Merged product IDs resolve to the surviving product. 404 when the product does not exist or has no timeline; most products have none. A timeline is kept on the latest product of a succession and covers the products it replaced.

Access: needs access to every configured state of the product, since a timeline covers them all; otherwise 403 product_access_required. Read state-by-state filings, forms and events for the states you can access.



## OpenAPI

````yaml /openapi.json get /insurance/products/{productId}/timeline
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/products/{productId}/timeline:
    get:
      tags:
        - Product timelines
      summary: Get a product's timeline
      description: >-
        Get the timeline of a product: its changes grouped from state filings,
        with rate changes, per-state forms and components, objections, news and
        every filing found, in a change or excluded with the reason. Links in
        the document open filing artifacts in the Effective app. Documents can
        be several megabytes.


        Merged product IDs resolve to the surviving product. 404 when the
        product does not exist or has no timeline; most products have none. A
        timeline is kept on the latest product of a succession and covers the
        products it replaced.


        Access: needs access to every configured state of the product, since a
        timeline covers them all; otherwise 403 product_access_required. Read
        state-by-state filings, forms and events for the states you can access.
      operationId: getProductTimelineForProduct
      parameters:
        - schema:
            type: string
            description: >-
              Managed product_ ID or bare checked code; case-insensitive with
              Crockford aliases.
          required: true
          description: >-
            Managed product_ ID or bare checked code; case-insensitive with
            Crockford aliases.
          name: productId
          in: path
      responses:
        '200':
          description: The product's timeline.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2PublishedProductTimeline'
        '400':
          description: Invalid request, including invalid_id for a malformed product ID.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '401':
          description: Missing or invalid credentials, or credential scope denied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '403':
          description: >-
            product_access_required: your organization doesn't have access to
            every configured state of the product.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '404':
          description: Product not found, or it has no timeline.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '500':
          description: Unexpected server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '503':
          description: Dependency unavailable. Honor Retry-After (seconds).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
      security:
        - bearerAuth: []
components:
  schemas:
    V2PublishedProductTimeline:
      allOf:
        - $ref: '#/components/schemas/V2ProductTimelineSummary'
        - type: object
          properties:
            document:
              $ref: '#/components/schemas/V2ProductTimelineDocument'
          required:
            - document
          additionalProperties: false
    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.
            businessCode:
              type: string
              description: The rater’s own refusal code, for business_rejection.
            violations:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                    description: Authored or built-in constraint code
                  message:
                    type: string
                    description: Authored message for the failed constraint
                  path:
                    type: string
                    description: Input path of the offending value; empty for the request
                  value:
                    nullable: true
                    description: Offending input value, size-bounded by the runtime
                  constraint:
                    type: string
                    description: The constraint the value failed, as text
                  cite:
                    type: string
                    nullable: true
                    description: >-
                      Filing citation of the constraint, when the source cites
                      one
                required:
                  - code
                  - message
                  - path
                  - value
                  - constraint
                  - cite
                additionalProperties: false
              maxItems: 256
              description: >-
                Each input constraint the submission failed, for invalid_inputs
                and business_rejection.
            violationsTruncated:
              type: boolean
              description: >-
                True when the rater reported more violations than violations
                holds.
            executionId:
              type: string
              description: >-
                The recorded execution of a failed rating, for rater rating
                failures.
            accessUrl:
              type: string
              nullable: true
              format: uri
              description: >-
                Where to add the product to your account, for
                product_access_required.
          required:
            - code
    V2ProductTimelineSummary:
      type: object
      properties:
        id:
          type: string
          description: Timeline slug. Use exactly as returned.
        title:
          type: string
          minLength: 1
          maxLength: 200
          description: Product name as shown on the timeline.
        carrier:
          type: string
          minLength: 1
          maxLength: 200
          description: Carrier or group that files the product.
        lineLabel:
          type: string
          minLength: 1
          maxLength: 200
          description: Line of business in plain words.
        windowStart:
          type: string
          format: date
          description: First filing date the timeline covers.
        dataAsOf:
          type: string
          format: date
          description: Date the source filings were read.
        pageUrl:
          type: string
          nullable: true
          maxLength: 2048
          format: uri
          description: Published timeline page, when one exists; may require sign-in.
        productId:
          type: string
          nullable: true
          description: >-
            Directory product (product_…) this timeline describes, or null until
            it is linked. Read the timeline from the product with
            getProductTimelineForProduct.
          example: product_0M9XMB9
        updatedAt:
          type: string
          format: date-time
          description: When the timeline was last published.
      required:
        - id
        - title
        - carrier
        - lineLabel
        - windowStart
        - dataAsOf
        - pageUrl
        - productId
        - updatedAt
      additionalProperties: false
    V2ProductTimelineDocument:
      type: object
      properties:
        schemaVersion:
          type: number
          enum:
            - 3
        product:
          type: object
          properties:
            name:
              type: string
              minLength: 1
              maxLength: 200
            carrier:
              type: string
              minLength: 1
              maxLength: 200
            lineLabel:
              type: string
              minLength: 1
              maxLength: 200
          required:
            - name
            - carrier
            - lineLabel
          additionalProperties: false
          description: >-
            The product as the timeline names it. The directory product is the
            timeline’s `productId`.
        period:
          type: object
          properties:
            since:
              type: string
              format: date
              description: The earliest filing date searched.
            dataAsOf:
              type: string
              format: date
              description: The day the filings were read.
          required:
            - since
            - dataAsOf
          additionalProperties: false
          description: The span of filings the timeline covers.
        generatedAt:
          type: string
          format: date-time
        totals:
          type: object
          properties:
            changes:
              type: integer
              minimum: 0
            filings:
              type: integer
              minimum: 0
            states:
              type: integer
              minimum: 0
          required:
            - changes
            - filings
            - states
          additionalProperties: false
        naic:
          type: object
          properties:
            line:
              type: string
              minLength: 1
              maxLength: 200
              description: The NAIC annual statement line the figures come from.
            note:
              type: string
              nullable: true
              minLength: 1
              maxLength: 1000
            totals:
              type: array
              items:
                type: object
                properties:
                  year:
                    type: integer
                    minimum: 1990
                    maximum: 2100
                  writtenPremium:
                    type: number
                    description: Direct written premium.
                  lossRatio:
                    type: number
                    nullable: true
                    description: >-
                      A ratio, where 0.65 is 65%. Negative when losses or
                      premium are, as in a year of reserve releases.
                  marketLossRatio:
                    type: number
                    nullable: true
                    description: The whole market’s loss ratio for the line.
                required:
                  - year
                  - writtenPremium
                  - lossRatio
                  - marketLossRatio
                additionalProperties: false
              maxItems: 20
              description: Oldest year first.
          required:
            - line
            - note
            - totals
          additionalProperties: false
          description: >-
            Statutory results for the writing companies, from NAIC annual
            statements.
        changes:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                description: The change's judgment ID, stable across rebuilds.
              title:
                type: string
                minLength: 1
                maxLength: 200
              filedAs:
                type: string
                nullable: true
                minLength: 1
                maxLength: 200
                description: >-
                  The product name the filings use, when it differs from the
                  title.
              category:
                type: string
                enum:
                  - product
                  - regulatory
                  - other
                description: >-
                  product: the carrier's own change to coverage, price,
                  eligibility or writing company. regulatory: made to comply
                  with a statute, regulation or regulator request, or to follow
                  an advisory organization's revision made for that reason.
                  other: housekeeping, such as corrections, notices, billing,
                  forms lists and one-policyholder manuscripts.
              origin:
                type: string
                nullable: true
                enum:
                  - statute_or_regulator
                  - advisory_org
                  - null
                description: >-
                  Who required a regulatory change. statute_or_regulator: a
                  statute, regulation or regulator request. advisory_org: an
                  advisory organization’s revision, such as ISO’s. Null for
                  product and other changes.
              lanes:
                type: array
                items:
                  type: string
                  enum:
                    - launch
                    - rate
                    - eligibility_underwriting
                    - coverage_added
                    - coverage_removed
                    - rating
                    - other
                  description: >-
                    launch: a new writing company or program. rate: an overall
                    rate level change. eligibility_underwriting: who is
                    eligible, including classes, appetite and underwriting
                    rules. coverage_added: coverage added. coverage_removed:
                    coverage removed or limited. rating: pricing rules, such as
                    factors, deductible options and discounts. other: anything
                    else.
                minItems: 1
                maxItems: 7
                description: >-
                  What the change does, one or more; a timeline groups it under
                  the first.
              ratePlan:
                type: boolean
                description: Whether the change is a rate plan revision.
              ruleSections:
                type: array
                items:
                  type: string
                  enum:
                    - general_rules
                    - state_exceptions
                    - rating_factors
                    - coverage_rules
                    - class_eligibility
                maxItems: 5
              quotes:
                type: array
                items:
                  oneOf:
                    - type: object
                      properties:
                        source:
                          type: string
                          enum:
                            - description
                          description: The filing's own description in SERFF.
                        text:
                          type: string
                          minLength: 1
                          maxLength: 1000
                        trackingNumber:
                          type: string
                          pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                          description: SERFF tracking number, such as HART-133839761.
                      required:
                        - source
                        - text
                        - trackingNumber
                      additionalProperties: false
                    - type: object
                      properties:
                        source:
                          type: string
                          enum:
                            - page
                          description: A page of a filed document.
                        text:
                          type: string
                          minLength: 1
                          maxLength: 1000
                        trackingNumber:
                          type: string
                          pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                          description: SERFF tracking number, such as HART-133839761.
                        document:
                          type: object
                          properties:
                            name:
                              type: string
                              minLength: 1
                              maxLength: 300
                            page:
                              type: integer
                              nullable: true
                              minimum: 0
                              exclusiveMinimum: true
                            fileId:
                              type: string
                              nullable: true
                              minLength: 1
                              maxLength: 64
                              description: >-
                                Effective file ID of the filing document,
                                readable through the files API.
                          required:
                            - name
                            - page
                            - fileId
                          additionalProperties: false
                      required:
                        - source
                        - text
                        - trackingNumber
                        - document
                      additionalProperties: false
                  description: >-
                    Words quoted from a filing, ending on a word boundary, as
                    evidence for a change.
                maxItems: 3
              counts:
                type: object
                properties:
                  filings:
                    type: integer
                    minimum: 0
                  states:
                    type: integer
                    minimum: 0
                  inForce:
                    type: integer
                    minimum: 0
                    description: States where the change is in force.
                  pending:
                    type: integer
                    minimum: 0
                    description: States where it is filed but not yet in force.
                  withdrawn:
                    type: integer
                    minimum: 0
                    description: States where it was withdrawn or disapproved.
                required:
                  - filings
                  - states
                  - inForce
                  - pending
                  - withdrawn
                additionalProperties: false
              effective:
                type: object
                properties:
                  first:
                    type: string
                    nullable: true
                    format: date
                  last:
                    type: string
                    nullable: true
                    format: date
                  median:
                    type: string
                    nullable: true
                    format: date
                required:
                  - first
                  - last
                  - median
                additionalProperties: false
              rolloutDays:
                type: integer
                nullable: true
                minimum: 0
                description: Days from the first state in force to the last.
              leadStates:
                type: array
                items:
                  type: string
                  enum:
                    - AL
                    - AK
                    - AZ
                    - AR
                    - CA
                    - CO
                    - CT
                    - DE
                    - DC
                    - FL
                    - GA
                    - HI
                    - ID
                    - IL
                    - IN
                    - IA
                    - KS
                    - KY
                    - LA
                    - ME
                    - MD
                    - MA
                    - MI
                    - MN
                    - MS
                    - MO
                    - MT
                    - NE
                    - NV
                    - NH
                    - NJ
                    - NM
                    - NY
                    - NC
                    - ND
                    - OH
                    - OK
                    - OR
                    - PA
                    - RI
                    - SC
                    - SD
                    - TN
                    - TX
                    - UT
                    - VT
                    - VA
                    - WA
                    - WV
                    - WI
                    - WY
                  description: USPS state code.
                maxItems: 10
                description: States where it took effect first.
              firstSubmitted:
                type: string
                nullable: true
                format: date
              states:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    status:
                      type: string
                      enum:
                        - in_force
                        - pending
                        - withdrawn
                        - disapproved
                      description: >-
                        From SERFF's normalized outcome. in_force: approved,
                        filed, acknowledged or informational. pending: not yet
                        decided, or no outcome recorded. withdrawn: withdrawn by
                        the carrier. disapproved: rejected by the regulator.
                    effective:
                      type: string
                      nullable: true
                      format: date
                  required:
                    - status
                    - effective
                  additionalProperties: false
                description: >-
                  Where it was filed, with its status there; states without a
                  filing are absent.
              newForms:
                type: array
                items:
                  type: object
                  properties:
                    formNumber:
                      type: string
                      nullable: true
                      minLength: 1
                      maxLength: 60
                      description: >-
                        The form number without a "Form" prefix or edition; null
                        when not filed with one.
                    edition:
                      type: string
                      nullable: true
                      pattern: ^\d{4}-\d{2}$
                      description: Edition as YYYY-MM.
                    title:
                      type: string
                      minLength: 1
                      maxLength: 300
                    group:
                      type: string
                      enum:
                        - coverage
                        - exclusion
                        - state_amendatory
                        - core
                        - notice
                      description: >-
                        coverage: grants coverage. exclusion: excludes or limits
                        coverage. state_amendatory: amends a form for one state.
                        core: a core policy form. notice: a notice or
                        administrative form.
                    filings:
                      type: array
                      items:
                        type: object
                        properties:
                          trackingNumber:
                            type: string
                            pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                            description: SERFF tracking number, such as HART-133839761.
                          state:
                            type: string
                            enum:
                              - AL
                              - AK
                              - AZ
                              - AR
                              - CA
                              - CO
                              - CT
                              - DE
                              - DC
                              - FL
                              - GA
                              - HI
                              - ID
                              - IL
                              - IN
                              - IA
                              - KS
                              - KY
                              - LA
                              - ME
                              - MD
                              - MA
                              - MI
                              - MN
                              - MS
                              - MO
                              - MT
                              - NE
                              - NV
                              - NH
                              - NJ
                              - NM
                              - NY
                              - NC
                              - ND
                              - OH
                              - OK
                              - OR
                              - PA
                              - RI
                              - SC
                              - SD
                              - TN
                              - TX
                              - UT
                              - VT
                              - VA
                              - WA
                              - WV
                              - WI
                              - WY
                            description: USPS state code.
                          fileId:
                            type: string
                            nullable: true
                            minLength: 1
                            maxLength: 64
                            description: >-
                              Effective file ID of the filing document, readable
                              through the files API.
                        required:
                          - trackingNumber
                          - state
                          - fileId
                        additionalProperties: false
                      minItems: 1
                      maxItems: 100
                      description: >-
                        Every filing in the change that adds this form, one per
                        state.
                  required:
                    - formNumber
                    - edition
                    - title
                    - group
                    - filings
                  additionalProperties: false
                  description: >-
                    A form the change adds, listed once however many states file
                    it.
                maxItems: 500
              writingCompanies:
                type: array
                items:
                  type: string
                  minLength: 1
                  maxLength: 200
                maxItems: 50
            required:
              - id
              - title
              - filedAs
              - category
              - origin
              - lanes
              - ratePlan
              - ruleSections
              - quotes
              - counts
              - effective
              - rolloutDays
              - leadStates
              - firstSubmitted
              - states
              - newForms
              - writingCompanies
            additionalProperties: false
            description: >-
              One change to the product, made through filings in one or more
              states.
          maxItems: 500
        appetite:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                description: >-
                  Derived from the subject until the judgments give appetite
                  rows their own ID, so rewording the subject changes it. Refer
                  to an appetite change through its changeIds for a stable link.
              subject:
                type: string
                minLength: 1
                maxLength: 200
                description: Who or what the appetite change is about.
              direction:
                type: string
                enum:
                  - widens
                  - narrows
              companies:
                type: array
                items:
                  type: string
                  minLength: 1
                  maxLength: 200
                maxItems: 20
                description: Writing companies it applies to; empty when all of them.
              quote:
                oneOf:
                  - type: object
                    properties:
                      source:
                        type: string
                        enum:
                          - description
                        description: The filing's own description in SERFF.
                      text:
                        type: string
                        minLength: 1
                        maxLength: 1000
                      trackingNumber:
                        type: string
                        pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                        description: SERFF tracking number, such as HART-133839761.
                    required:
                      - source
                      - text
                      - trackingNumber
                    additionalProperties: false
                  - type: object
                    properties:
                      source:
                        type: string
                        enum:
                          - page
                        description: A page of a filed document.
                      text:
                        type: string
                        minLength: 1
                        maxLength: 1000
                      trackingNumber:
                        type: string
                        pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                        description: SERFF tracking number, such as HART-133839761.
                      document:
                        type: object
                        properties:
                          name:
                            type: string
                            minLength: 1
                            maxLength: 300
                          page:
                            type: integer
                            nullable: true
                            minimum: 0
                            exclusiveMinimum: true
                          fileId:
                            type: string
                            nullable: true
                            minLength: 1
                            maxLength: 64
                            description: >-
                              Effective file ID of the filing document, readable
                              through the files API.
                        required:
                          - name
                          - page
                          - fileId
                        additionalProperties: false
                    required:
                      - source
                      - text
                      - trackingNumber
                      - document
                    additionalProperties: false
                description: >-
                  Words quoted from a filing, ending on a word boundary, as
                  evidence for a change.
              changeIds:
                type: array
                items:
                  type: string
                  pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                  description: Lowercase words joined by hyphens; stable across rebuilds.
                minItems: 1
                maxItems: 10
                description: The changes that carry it.
              states:
                type: object
                additionalProperties:
                  type: object
                  properties:
                    status:
                      type: string
                      enum:
                        - in_force
                        - pending
                        - withdrawn
                        - disapproved
                      description: >-
                        From SERFF's normalized outcome. in_force: approved,
                        filed, acknowledged or informational. pending: not yet
                        decided, or no outcome recorded. withdrawn: withdrawn by
                        the carrier. disapproved: rejected by the regulator.
                    effective:
                      type: string
                      nullable: true
                      format: date
                    trackingNumber:
                      type: string
                      pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                      description: SERFF tracking number, such as HART-133839761.
                  required:
                    - status
                    - effective
                    - trackingNumber
                  additionalProperties: false
              counts:
                type: object
                properties:
                  inForce:
                    type: integer
                    minimum: 0
                  pending:
                    type: integer
                    minimum: 0
                required:
                  - inForce
                  - pending
                additionalProperties: false
              effective:
                type: object
                properties:
                  first:
                    type: string
                    nullable: true
                    format: date
                  last:
                    type: string
                    nullable: true
                    format: date
                required:
                  - first
                  - last
                additionalProperties: false
              announced:
                type: string
                nullable: true
                format: date
                description: When the filings first describe it.
            required:
              - id
              - subject
              - direction
              - companies
              - quote
              - changeIds
              - states
              - counts
              - effective
              - announced
            additionalProperties: false
            description: >-
              A change to who the product will write, found in underwriting
              rules.
          maxItems: 200
        rateChanges:
          type: array
          items:
            type: object
            properties:
              trackingNumber:
                type: string
                pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                description: SERFF tracking number, such as HART-133839761.
              state:
                type: string
                enum:
                  - AL
                  - AK
                  - AZ
                  - AR
                  - CA
                  - CO
                  - CT
                  - DE
                  - DC
                  - FL
                  - GA
                  - HI
                  - ID
                  - IL
                  - IN
                  - IA
                  - KS
                  - KY
                  - LA
                  - ME
                  - MD
                  - MA
                  - MI
                  - MN
                  - MS
                  - MO
                  - MT
                  - NE
                  - NV
                  - NH
                  - NJ
                  - NM
                  - NY
                  - NC
                  - ND
                  - OH
                  - OK
                  - OR
                  - PA
                  - RI
                  - SC
                  - SD
                  - TN
                  - TX
                  - UT
                  - VT
                  - VA
                  - WA
                  - WV
                  - WI
                  - WY
                description: USPS state code.
              changeId:
                type: string
                pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                description: Lowercase words joined by hyphens; stable across rebuilds.
              effective:
                type: string
                nullable: true
                format: date
              effectiveRequested:
                type: boolean
                description: >-
                  Whether `effective` is the requested date rather than the
                  approved one.
              fileId:
                type: string
                nullable: true
                minLength: 1
                maxLength: 64
                description: >-
                  Effective file ID of the filing document, readable through the
                  files API.
              percent:
                type: number
                description: Overall rate change filed.
              indicatedPercent:
                type: number
                nullable: true
                description: The indicated change the filing reports.
              status:
                type: string
                enum:
                  - in_force
                  - pending
                  - withdrawn
                  - disapproved
                description: >-
                  From SERFF's normalized outcome. in_force: approved, filed,
                  acknowledged or informational. pending: not yet decided, or no
                  outcome recorded. withdrawn: withdrawn by the carrier.
                  disapproved: rejected by the regulator.
              writtenPremium:
                type: number
                nullable: true
                description: US dollars.
              premiumChange:
                type: number
                nullable: true
                description: US dollars.
              policyholders:
                type: integer
                nullable: true
                minimum: 0
              ratePlan:
                type: boolean
              writingCompanies:
                type: array
                items:
                  type: string
                  minLength: 1
                  maxLength: 200
                maxItems: 20
            required:
              - trackingNumber
              - state
              - changeId
              - effective
              - effectiveRequested
              - fileId
              - percent
              - indicatedPercent
              - status
              - writtenPremium
              - premiumChange
              - policyholders
              - ratePlan
              - writingCompanies
            additionalProperties: false
            description: One state's rate change in one filing.
          maxItems: 5000
        ratePlanYears:
          type: array
          items:
            type: object
            properties:
              year:
                type: integer
                minimum: 1990
                maximum: 2100
              ratePlanCount:
                type: integer
                minimum: 0
              stateCount:
                type: integer
                minimum: 0
              averagePercent:
                type: number
                description: Percent, where 6.5 is +6.5%.
              averageMethod:
                type: string
                enum:
                  - premium_weighted
                  - median
                description: >-
                  Premium-weighted when the filings report premium, otherwise
                  the median.
              medianPercent:
                type: number
                description: Percent, where 6.5 is +6.5%.
              minPercent:
                type: number
                description: Percent, where 6.5 is +6.5%.
              maxPercent:
                type: number
                description: Percent, where 6.5 is +6.5%.
              medianIndicatedGap:
                type: number
                nullable: true
                description: Median of indicated minus filed, in percentage points.
              premiumChange:
                type: number
                nullable: true
                description: US dollars.
              policyholders:
                type: integer
                nullable: true
                minimum: 0
            required:
              - year
              - ratePlanCount
              - stateCount
              - averagePercent
              - averageMethod
              - medianPercent
              - minPercent
              - maxPercent
              - medianIndicatedGap
              - premiumChange
              - policyholders
            additionalProperties: false
            description: >-
              Rate plans taking effect in one year. Only years with at least
              three are listed.
          maxItems: 20
        states:
          type: object
          additionalProperties:
            type: object
            properties:
              filingCount:
                type: integer
                minimum: 0
              medianDaysToDisposition:
                type: number
                nullable: true
                minimum: 0
              objectionLetterCount:
                type: integer
                minimum: 0
              objectionTopics:
                type: object
                properties:
                  admin:
                    type: integer
                    minimum: 0
                  statute:
                    type: integer
                    minimum: 0
                  rating_rules:
                    type: integer
                    minimum: 0
                  form_language:
                    type: integer
                    minimum: 0
                  rate_support:
                    type: integer
                    minimum: 0
                  cat_model:
                    type: integer
                    minimum: 0
              components:
                type: object
                properties:
                  rate:
                    type: object
                    properties:
                      filingCount:
                        type: integer
                        minimum: 0
                      lastEffective:
                        type: string
                        nullable: true
                        format: date
                      latestTrackingNumber:
                        type: string
                        nullable: true
                        pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                        description: SERFF tracking number, such as HART-133839761.
                    required:
                      - filingCount
                      - lastEffective
                      - latestTrackingNumber
                    additionalProperties: false
                  forms:
                    type: object
                    properties:
                      filingCount:
                        type: integer
                        minimum: 0
                      lastEffective:
                        type: string
                        nullable: true
                        format: date
                      latestTrackingNumber:
                        type: string
                        nullable: true
                        pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                        description: SERFF tracking number, such as HART-133839761.
                    required:
                      - filingCount
                      - lastEffective
                      - latestTrackingNumber
                    additionalProperties: false
                  rules:
                    type: object
                    properties:
                      filingCount:
                        type: integer
                        minimum: 0
                      lastEffective:
                        type: string
                        nullable: true
                        format: date
                      latestTrackingNumber:
                        type: string
                        nullable: true
                        pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                        description: SERFF tracking number, such as HART-133839761.
                    required:
                      - filingCount
                      - lastEffective
                      - latestTrackingNumber
                    additionalProperties: false
                  eligibility:
                    type: object
                    properties:
                      filingCount:
                        type: integer
                        minimum: 0
                      lastEffective:
                        type: string
                        nullable: true
                        format: date
                      latestTrackingNumber:
                        type: string
                        nullable: true
                        pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                        description: SERFF tracking number, such as HART-133839761.
                    required:
                      - filingCount
                      - lastEffective
                      - latestTrackingNumber
                    additionalProperties: false
                required:
                  - rate
                  - forms
                  - rules
                  - eligibility
                additionalProperties: false
                description: >-
                  For each part of the product, how often it was filed and when
                  last. Extracted from filed documents and form schedules, and
                  not yet verified for completeness or for comparison across
                  carriers. Staff-only: a public read of the timeline leaves it
                  out until it is verified.
              writers:
                type: array
                items:
                  type: object
                  properties:
                    naic:
                      type: string
                      pattern: ^\d{5}$
                    name:
                      type: string
                      minLength: 1
                      maxLength: 200
                    filingCount:
                      type: integer
                      minimum: 0
                    leadFilingCount:
                      type: integer
                      minimum: 0
                      description: Filings where it is the first company named.
                    firstEffective:
                      type: string
                      format: date
                    lastEffective:
                      type: string
                      format: date
                  required:
                    - naic
                    - name
                    - filingCount
                    - leadFilingCount
                    - firstEffective
                    - lastEffective
                  additionalProperties: false
                maxItems: 50
              rateIndex:
                type: array
                items:
                  type: object
                  properties:
                    effective:
                      type: string
                      format: date
                    index:
                      type: number
                      minimum: 0
                      exclusiveMinimum: true
                      description: Cumulative rate level; 100 at the start.
                    trackingNumber:
                      type: string
                      pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                      description: SERFF tracking number, such as HART-133839761.
                  required:
                    - effective
                    - index
                    - trackingNumber
                  additionalProperties: false
                maxItems: 200
              naic:
                type: array
                items:
                  type: object
                  properties:
                    year:
                      type: integer
                      minimum: 1990
                      maximum: 2100
                    writtenPremium:
                      type: number
                      description: Direct written premium.
                    lossRatio:
                      type: number
                      nullable: true
                      description: >-
                        A ratio, where 0.65 is 65%. Negative when losses or
                        premium are, as in a year of reserve releases.
                    marketLossRatio:
                      type: number
                      nullable: true
                      description: The whole market’s loss ratio for the line.
                    marketShare:
                      type: number
                      nullable: true
                      description: >-
                        A ratio, where 0.65 is 65%. Negative when losses or
                        premium are, as in a year of reserve releases.
                  required:
                    - year
                    - writtenPremium
                    - lossRatio
                    - marketLossRatio
                    - marketShare
                  additionalProperties: false
                maxItems: 20
                description: Oldest year first.
              forms:
                type: array
                items:
                  type: object
                  properties:
                    formNumber:
                      type: string
                      minLength: 1
                      maxLength: 60
                    edition:
                      type: string
                      nullable: true
                      pattern: ^\d{4}-\d{2}$
                    title:
                      type: string
                      minLength: 1
                      maxLength: 300
                    group:
                      type: string
                      enum:
                        - coverage
                        - exclusion
                        - state_amendatory
                        - core
                        - notice
                      description: >-
                        coverage: grants coverage. exclusion: excludes or limits
                        coverage. state_amendatory: amends a form for one state.
                        core: a core policy form. notice: a notice or
                        administrative form.
                    action:
                      type: string
                      enum:
                        - added
                        - replaced
                        - withdrawn
                    usage:
                      type: string
                      nullable: true
                      enum:
                        - base
                        - mandatory
                        - conditional
                        - optional
                        - null
                    status:
                      type: string
                      enum:
                        - in_force
                        - pending
                        - withdrawn
                        - disapproved
                      description: >-
                        From SERFF's normalized outcome. in_force: approved,
                        filed, acknowledged or informational. pending: not yet
                        decided, or no outcome recorded. withdrawn: withdrawn by
                        the carrier. disapproved: rejected by the regulator.
                    effective:
                      type: string
                      nullable: true
                      format: date
                    trackingNumber:
                      type: string
                      pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                      description: SERFF tracking number, such as HART-133839761.
                    fileId:
                      type: string
                      nullable: true
                      minLength: 1
                      maxLength: 64
                      description: >-
                        Effective file ID of the filing document, readable
                        through the files API.
                  required:
                    - formNumber
                    - edition
                    - title
                    - group
                    - action
                    - usage
                    - status
                    - effective
                    - trackingNumber
                    - fileId
                  additionalProperties: false
                  description: >-
                    A form edition filed in the state, with the filing that
                    added, replaced or withdrew it. Extracted from filed
                    documents and form schedules, and not yet verified for
                    completeness or for comparison across carriers. Staff-only:
                    a public read of the timeline leaves it out until it is
                    verified.
                maxItems: 2000
                description: >-
                  The forms on file in the state. Extracted from filed documents
                  and form schedules, and not yet verified for completeness or
                  for comparison across carriers. Staff-only: a public read of
                  the timeline leaves it out until it is verified.
            required:
              - filingCount
              - medianDaysToDisposition
              - objectionLetterCount
              - objectionTopics
              - components
              - writers
              - rateIndex
              - naic
              - forms
            additionalProperties: false
            description: The product's filings in one state.
        filings:
          type: array
          items:
            type: object
            properties:
              trackingNumber:
                type: string
                pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                description: SERFF tracking number, such as HART-133839761.
              state:
                type: string
                enum:
                  - AL
                  - AK
                  - AZ
                  - AR
                  - CA
                  - CO
                  - CT
                  - DE
                  - DC
                  - FL
                  - GA
                  - HI
                  - ID
                  - IL
                  - IN
                  - IA
                  - KS
                  - KY
                  - LA
                  - ME
                  - MD
                  - MA
                  - MI
                  - MN
                  - MS
                  - MO
                  - MT
                  - NE
                  - NV
                  - NH
                  - NJ
                  - NM
                  - NY
                  - NC
                  - ND
                  - OH
                  - OK
                  - OR
                  - PA
                  - RI
                  - SC
                  - SD
                  - TN
                  - TX
                  - UT
                  - VT
                  - VA
                  - WA
                  - WV
                  - WI
                  - WY
                description: USPS state code.
              changeId:
                type: string
                pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                description: Lowercase words joined by hyphens; stable across rebuilds.
              effective:
                type: string
                nullable: true
                format: date
              submitted:
                type: string
                format: date
              status:
                type: string
                enum:
                  - in_force
                  - pending
                  - withdrawn
                  - disapproved
                description: >-
                  From SERFF's normalized outcome. in_force: approved, filed,
                  acknowledged or informational. pending: not yet decided, or no
                  outcome recorded. withdrawn: withdrawn by the carrier.
                  disapproved: rejected by the regulator.
              objectionLetterCount:
                type: integer
                minimum: 0
              fileId:
                type: string
                nullable: true
                minLength: 1
                maxLength: 64
                description: >-
                  Effective file ID of the filing document, readable through the
                  files API.
              filingTypeNormalized:
                type: string
                nullable: true
                enum:
                  - FORM
                  - RATE
                  - RULE
                  - RATE_RULE
                  - FORM_RATE
                  - FORM_RULE
                  - FORM_RATE_RULE
                  - ENDORSEMENT
                  - LOSS_COST
                  - ADVERTISING
                  - CERTIFICATION
                  - CONTRACT
                  - CONSENT_TO_RATE
                  - DEVIATIONS
                  - INFORMATIONAL
                  - NEW_PROGRAM
                  - REPORT
                  - SERVICE_CONTRACT
                  - UNDERWRITING_GUIDE
                  - ANNUAL_FORMS_LIST
                  - MANUSCRIPT
                  - POLICY_FORM
                  - PREDICTIVE_MODEL
                  - ORGANIZATION_ADOPTION
                  - OTHER
                  - null
                description: >-
                  SERFF filing type, normalized as on the filings API
                  (`filingTypeNormalized`).
              productName:
                type: string
                nullable: true
                minLength: 1
                maxLength: 300
                description: As named in the filing.
            required:
              - trackingNumber
              - state
              - changeId
              - effective
              - submitted
              - status
              - objectionLetterCount
              - fileId
              - filingTypeNormalized
              - productName
            additionalProperties: false
            description: A filing in one of the changes.
          maxItems: 2500
        excluded:
          type: array
          items:
            type: object
            properties:
              trackingNumber:
                type: string
                pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                description: SERFF tracking number, such as HART-133839761.
              state:
                type: string
                enum:
                  - AL
                  - AK
                  - AZ
                  - AR
                  - CA
                  - CO
                  - CT
                  - DE
                  - DC
                  - FL
                  - GA
                  - HI
                  - ID
                  - IL
                  - IN
                  - IA
                  - KS
                  - KY
                  - LA
                  - ME
                  - MD
                  - MA
                  - MI
                  - MN
                  - MS
                  - MO
                  - MT
                  - NE
                  - NV
                  - NH
                  - NJ
                  - NM
                  - NY
                  - NC
                  - ND
                  - OH
                  - OK
                  - OR
                  - PA
                  - RI
                  - SC
                  - SD
                  - TN
                  - TX
                  - UT
                  - VT
                  - VA
                  - WA
                  - WV
                  - WI
                  - WY
                description: USPS state code.
              effective:
                type: string
                nullable: true
                format: date
              submitted:
                type: string
                format: date
              status:
                type: string
                enum:
                  - in_force
                  - pending
                  - withdrawn
                  - disapproved
                description: >-
                  From SERFF's normalized outcome. in_force: approved, filed,
                  acknowledged or informational. pending: not yet decided, or no
                  outcome recorded. withdrawn: withdrawn by the carrier.
                  disapproved: rejected by the regulator.
              fileId:
                type: string
                nullable: true
                minLength: 1
                maxLength: 64
                description: >-
                  Effective file ID of the filing document, readable through the
                  files API.
              filingTypeNormalized:
                type: string
                nullable: true
                enum:
                  - FORM
                  - RATE
                  - RULE
                  - RATE_RULE
                  - FORM_RATE
                  - FORM_RULE
                  - FORM_RATE_RULE
                  - ENDORSEMENT
                  - LOSS_COST
                  - ADVERTISING
                  - CERTIFICATION
                  - CONTRACT
                  - CONSENT_TO_RATE
                  - DEVIATIONS
                  - INFORMATIONAL
                  - NEW_PROGRAM
                  - REPORT
                  - SERVICE_CONTRACT
                  - UNDERWRITING_GUIDE
                  - ANNUAL_FORMS_LIST
                  - MANUSCRIPT
                  - POLICY_FORM
                  - PREDICTIVE_MODEL
                  - ORGANIZATION_ADOPTION
                  - OTHER
                  - null
                description: >-
                  SERFF filing type, normalized as on the filings API
                  (`filingTypeNormalized`).
              productName:
                type: string
                nullable: true
                minLength: 1
                maxLength: 300
                description: As named in the filing.
              reasonCode:
                type: string
                enum:
                  - other_product
                  - shared_change
                description: >-
                  other_product: it belongs to another program or brand;
                  shared_change: a change filed across programs.
              reason:
                type: string
                minLength: 1
                maxLength: 1000
            required:
              - trackingNumber
              - state
              - effective
              - submitted
              - status
              - fileId
              - filingTypeNormalized
              - productName
              - reasonCode
              - reason
            additionalProperties: false
            description: >-
              A filing the search found but judged not part of this product.
              Every filing found is in a change or here.
          maxItems: 2500
        objections:
          type: array
          items:
            type: object
            properties:
              trackingNumber:
                type: string
                pattern: ^[A-Za-z0-9][A-Za-z0-9-]{2,31}$
                description: SERFF tracking number, such as HART-133839761.
              state:
                type: string
                enum:
                  - AL
                  - AK
                  - AZ
                  - AR
                  - CA
                  - CO
                  - CT
                  - DE
                  - DC
                  - FL
                  - GA
                  - HI
                  - ID
                  - IL
                  - IN
                  - IA
                  - KS
                  - KY
                  - LA
                  - ME
                  - MD
                  - MA
                  - MI
                  - MN
                  - MS
                  - MO
                  - MT
                  - NE
                  - NV
                  - NH
                  - NJ
                  - NM
                  - NY
                  - NC
                  - ND
                  - OH
                  - OK
                  - OR
                  - PA
                  - RI
                  - SC
                  - SD
                  - TN
                  - TX
                  - UT
                  - VT
                  - VA
                  - WA
                  - WV
                  - WI
                  - WY
                description: USPS state code.
              changeId:
                type: string
                pattern: ^[a-z0-9][a-z0-9-]{0,63}$
                description: Lowercase words joined by hyphens; stable across rebuilds.
              date:
                type: string
                format: date
              excerpt:
                type: string
                minLength: 1
                maxLength: 1000
                description: The start of the letter.
              topics:
                type: array
                items:
                  type: string
                  enum:
                    - admin
                    - statute
                    - rating_rules
                    - form_language
                    - rate_support
                    - cat_model
                minItems: 1
                maxItems: 6
            required:
              - trackingNumber
              - state
              - changeId
              - date
              - excerpt
              - topics
            additionalProperties: false
            description: A regulator objection letter on one of the filings.
          maxItems: 1000
        objectionTopics:
          type: object
          properties:
            admin:
              type: integer
              minimum: 0
            statute:
              type: integer
              minimum: 0
            rating_rules:
              type: integer
              minimum: 0
            form_language:
              type: integer
              minimum: 0
            rate_support:
              type: integer
              minimum: 0
            cat_model:
              type: integer
              minimum: 0
        news:
          type: array
          items:
            type: object
            properties:
              date:
                type: string
                format: date
              title:
                type: string
                minLength: 1
                maxLength: 300
              url:
                type: string
                format: uri
              kind:
                type: string
                enum:
                  - product_change
                  - pricing
                  - appetite_distribution
                  - financial_results
            required:
              - date
              - title
              - url
              - kind
            additionalProperties: false
          maxItems: 200
          description: Press and web coverage.
      required:
        - schemaVersion
        - product
        - period
        - generatedAt
        - totals
        - naic
        - changes
        - appetite
        - rateChanges
        - ratePlanYears
        - states
        - filings
        - excluded
        - objections
        - objectionTopics
        - news
      additionalProperties: false
      description: >-
        Timeline built from state filings: its changes, rate changes, per-state
        forms and components, objections, and every filing found, in a change or
        excluded with the reason. Stored as published.
    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.