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

# Create Product

> Create a new product



## OpenAPI

````yaml post /api/v2/product/create
openapi: 3.0.0
info:
  version: 1.0.0
  title: Octave API
  description: API for Octave workspace management and AI-powered content generation
servers:
  - url: https://app.octavehq.com
security:
  - ApiKeyAuth: []
paths:
  /api/v2/product/create:
    post:
      tags:
        - Product
      summary: Create Product
      description: Create a new product
      operationId: createProduct
      requestBody:
        description: Product creation input
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  description: The external name of the product
                  example: Marketing Automation Platform
                internalName:
                  type: string
                  description: The internal name of the product
                  example: MAP Product
                description:
                  type: string
                  description: A description of the product
                  example: A comprehensive marketing automation solution for businesses
                primaryUrl:
                  type: string
                  format: uri
                  description: The primary URL of the product
                  example: https://www.product.com
                summary:
                  type: string
                  description: A brief summary of the product
                  example: Enterprise-grade marketing automation
                distinctCapabilities:
                  type: array
                  items:
                    type: string
                  description: >-
                    What the product does at the functional level —
                    outcome-oriented capabilities, not mechanisms (mechanisms
                    live in keyFeatures).
                  example:
                    - Email automation
                    - Lead scoring
                    - Campaign analytics
                keyFeatures:
                  type: array
                  items:
                    type: string
                  description: >-
                    Specific, named, often branded components of the product
                    worth highlighting — the 'how' behind the capabilities.
                  example:
                    - Smart Send Time
                    - Predictive Lead Scoring
                    - Journey Builder
                differentiatedValue:
                  type: array
                  items:
                    type: string
                  description: The differentiated value of the product
                  example:
                    - AI-powered personalization
                    - Advanced segmentation
                statusQuo:
                  type: array
                  items:
                    type: string
                  description: The current state or status quo that the product addresses
                  example:
                    - Manual email campaigns
                    - Generic messaging
                challengesAddressed:
                  type: array
                  items:
                    type: string
                  description: The challenges addressed by the offering
                  example:
                    - Low email engagement
                    - Poor lead qualification
                customerBenefits:
                  type: array
                  items:
                    type: string
                  description: The customer benefits of the offering
                  example:
                    - Increased conversion rates
                    - Time savings
                customFields:
                  allOf:
                    - $ref: '#/components/schemas/CustomDataFields'
                    - description: Custom fields for additional product information
                additionalProperties:
                  type: object
                  additionalProperties:
                    anyOf:
                      - type: string
                      - type: array
                        items:
                          type: string
                      - type: number
                      - type: boolean
                  description: >-
                    Workspace-defined additional property values for this
                    product, keyed by property key.
                  example:
                    tier: Enterprise
                    region: APAC
              required:
                - name
      responses:
        '200':
          description: Product created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    $ref: '#/components/schemas/Product'
                required:
                  - _metadata
                  - data
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  message:
                    type: string
                required:
                  - _metadata
                  - message
      deprecated: false
components:
  schemas:
    CustomDataFields:
      type: array
      items:
        $ref: '#/components/schemas/CustomDataFieldItem'
    Metadata:
      type: object
      properties:
        usage:
          type: number
          default: 0
          example: 0
          description: API usage
        requestId:
          type: string
          example: requestId
          description: Request ID
        message:
          type: string
          example: message
          description: Message
        timestamp:
          type: string
          example: '2021-01-01T00:00:00.000Z'
          description: Timestamp
      required:
        - requestId
        - timestamp
    Product:
      type: object
      properties:
        oId:
          type: string
          minLength: 1
          description: The ID of the product
          example: p_1234
        createdAt:
          type: string
          format: date-time
          description: The date and time the product was created
          example: '2021-01-01'
        updatedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the product was updated
          example: '2021-01-01'
        archivedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the product was archived
          example: '2021-01-01'
        deletedAt:
          type: string
          nullable: true
          format: date-time
          description: The date and time the product was deleted
          example: '2021-01-01'
        name:
          type: string
          nullable: true
          description: The external facing name of the product
          example: Product Name
        internalName:
          type: string
          nullable: true
          description: The internal name of the product
          example: Product Internal Name
        description:
          type: string
          nullable: true
          description: The description of the product
          example: Product Description
        primaryUrl:
          type: string
          nullable: true
          description: The primary URL of the product
          example: https://www.product.com
        active:
          type: boolean
          default: true
          description: Whether the product is active and can be used
          example: true
        data:
          $ref: '#/components/schemas/ProductData'
        qualifyingQuestions:
          type: array
          nullable: true
          items:
            type: object
            properties:
              question:
                type: string
                description: The question to ask to qualify the entity
              rationale:
                type: string
                description: The rationale for the question as to why it helps qualify
              fitType:
                type: string
                enum:
                  - GOOD
                  - BAD
                description: The fit type of the question
                example: GOOD
              weight:
                type: string
                enum:
                  - LOW
                  - MEDIUM
                  - HIGH
                  - INSTANT_QUALIFIER
                  - INSTANT_DISQUALIFIER
                description: The weight of the question
                example: MEDIUM
              archivedAt:
                type: string
                nullable: true
                format: date-time
                description: The date and time the question was archived
            required:
              - question
              - rationale
              - fitType
              - weight
        user:
          type: object
          properties:
            oId:
              type: string
              nullable: true
              description: The ID of the user who created the product
              example: u_1234
            firstName:
              type: string
              nullable: true
              description: The first name of the user who created the product
              example: John
            lastName:
              type: string
              nullable: true
              description: The last name of the user who created the product
              example: Doe
        workspace:
          type: object
          properties:
            oId:
              type: string
              nullable: true
              description: The ID of the workspace that the product belongs to
              example: wa_1234
      required:
        - oId
        - createdAt
        - data
        - user
        - workspace
    CustomDataFieldItem:
      type: object
      properties:
        title:
          type: string
        value:
          type: array
          items:
            type: string
      required:
        - title
        - value
    ProductData:
      type: object
      properties:
        type:
          type: string
          enum:
            - PRODUCT
            - SERVICE
            - SOLUTION
          default: PRODUCT
        internalName:
          type: string
          nullable: true
          description: The internal name of the product
        summary:
          type: string
          nullable: true
        distinctCapabilities:
          type: array
          items:
            type: string
          default: []
          description: >-
            What the product does at the functional level, and what it enables
            customers to accomplish. Outcome-oriented, not mechanism-oriented
            (mechanisms live in keyFeatures).
          example:
            - Capability 1
            - Capability 2
        keyFeatures:
          type: array
          items:
            type: string
          default: []
          description: >-
            The specific, named, often branded components of the product worth
            highlighting. Concrete and tangible; these help frame the 'how'
            behind the capabilities.
          example:
            - Feature 1
            - Feature 2
        differentiatedValue:
          type: array
          items:
            type: string
          default: []
          description: The differentiated value of the product
          example:
            - Differentiated Value 1
            - Differentiated Value 2
        statusQuo:
          type: array
          items:
            type: string
          default: []
          description: The status quo of the product
          example:
            - Status Quo 1
            - Status Quo 2
        challengesAddressed:
          type: array
          items:
            type: string
          default: []
          description: The challenges addressed by the offering
          example:
            - Challenge 1
            - Challenge 2
        customerBenefits:
          type: array
          items:
            type: string
          default: []
          description: The customer benefits of the offering
          example:
            - Benefit 1
            - Benefit 2
        customFields:
          $ref: '#/components/schemas/CustomDataFields'
        additionalProperties:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: number
              - type: boolean
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````