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

# Update a product profile

> Super Admin only. Store supplied fields atomically; omitted fields stay unchanged, null clears a scalar/target market, and primaryCuts replaces the complete ordered list (maximum 100). Target market is an existing option ref or custom text (maximum 1000 characters). Custom text does not create registry entries. References must resolve. Repeating the same patch has the same stored result; no events or external effects are emitted.



## OpenAPI

````yaml /openapi.json patch /insurance/products/{productId}/profile
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}/profile:
    patch:
      tags:
        - Products
      summary: Update a product profile
      description: >-
        Super Admin only. Store supplied fields atomically; omitted fields stay
        unchanged, null clears a scalar/target market, and primaryCuts replaces
        the complete ordered list (maximum 100). Target market is an existing
        option ref or custom text (maximum 1000 characters). Custom text does
        not create registry entries. References must resolve. Repeating the same
        patch has the same stored result; no events or external effects are
        emitted.
      operationId: updateProductProfile
      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
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2ProductProfilePatch'
      responses:
        '200':
          description: The stored profile.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ProductProfile'
        '400':
          description: Invalid request or unresolved taxonomy reference.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '401':
          description: Authentication required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '403':
          description: Super Admin credentials required for writes.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '404':
          description: Product not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '409':
          description: Reference conflicts with a concurrent registry edit.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2CodedError'
        '415':
          description: application/json required.
          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:
    V2ProductProfilePatch:
      type: object
      properties:
        customerType:
          type: string
          nullable: true
          enum:
            - PERSONAL
            - BUSINESS
            - null
        structure:
          type: string
          nullable: true
          enum:
            - PACKAGE
            - MONOLINE
            - null
        targetMarket:
          anyOf:
            - type: object
              properties:
                ref:
                  type: string
                  minLength: 1
                  maxLength: 2000
              required:
                - ref
              additionalProperties: false
            - type: object
              properties:
                text:
                  type: string
                  minLength: 1
                  maxLength: 1000
              required:
                - text
              additionalProperties: false
            - nullable: true
        primaryCuts:
          type: array
          items:
            type: object
            properties:
              ref:
                type: string
                minLength: 1
                maxLength: 2000
            required:
              - ref
            additionalProperties: false
          maxItems: 100
      additionalProperties: false
    V2ProductProfile:
      type: object
      properties:
        customerType:
          type: string
          nullable: true
          enum:
            - PERSONAL
            - BUSINESS
            - null
        structure:
          type: string
          nullable: true
          enum:
            - PACKAGE
            - MONOLINE
            - null
        targetMarket:
          anyOf:
            - type: object
              properties:
                ref:
                  type: string
                  minLength: 1
                  maxLength: 2000
              required:
                - ref
              additionalProperties: false
            - type: object
              properties:
                text:
                  type: string
                  minLength: 1
                  maxLength: 1000
              required:
                - text
              additionalProperties: false
            - nullable: true
        primaryCuts:
          type: array
          items:
            type: object
            properties:
              ref:
                type: string
                minLength: 1
                maxLength: 2000
            required:
              - ref
            additionalProperties: false
          maxItems: 100
      required:
        - customerType
        - structure
        - targetMarket
        - primaryCuts
      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
              description: Dataset needed for dataset_not_enabled.
          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.