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

# Generate Service

> Generate a service from source materials using AI. Creates and validates the service against usage rules.



## OpenAPI

````yaml post /api/v2/service/generate
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/service/generate:
    post:
      tags:
        - Service
      summary: Generate Service
      description: >-
        Generate a service from source materials using AI. Creates and validates
        the service against usage rules.
      operationId: generateServices
      requestBody:
        description: Service generation input with source materials
        content:
          application/json:
            schema:
              type: object
              properties:
                services:
                  $ref: '#/components/schemas/ServiceGenerationInputs'
                comparativeAdvantageInput:
                  type: string
                  description: Optional comparative advantage description
                  example: Dedicated success engineer with analytics background
                likelyAlternativeInput:
                  type: string
                  description: Optional likely alternative description
                  example: Generalist consulting firm or in-house rollout
                brandVoiceOId:
                  type: string
                  description: Optional brand voice ID to apply to generated services
                  example: bv_789
              required:
                - services
      responses:
        '200':
          description: Service generated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Service'
                required:
                  - _metadata
                  - data
        '400':
          description: >-
            Bad request - invalid sources, usage limit exceeded, or unable to
            process
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  message:
                    type: string
                required:
                  - _metadata
                  - message
      deprecated: false
components:
  schemas:
    ServiceGenerationInputs:
      type: array
      items:
        type: object
        properties:
          name:
            type: string
            description: >-
              Optional name for the service - if provided, will be used as the
              entity name
            example: Managed Analytics Onboarding
          sources:
            type: array
            items:
              type: object
              properties:
                type:
                  type: string
                  enum:
                    - TEXT
                    - URL
                    - RESOURCE
                  description: The type of source material
                  example: TEXT
                value:
                  type: string
                  minLength: 1
                  description: The source content (text, URL, or name)
                  example: Lead generation and qualification for enterprise sales
              required:
                - type
                - value
            description: Source materials to generate the service from
        required:
          - sources
      minItems: 1
      description: Array of service generation requests - each object generates one service
      example:
        - name: Managed Analytics Onboarding
          sources:
            - type: URL
              value: https://www.example.com/services/onboarding
        - sources:
            - type: TEXT
              value: >-
                6-week onboarding engagement that configures dashboards and
                trains customer teams
    Metadata:
      type: object
      properties:
        usage:
          type: number
          default: 0
          description: API usage
          example: 0
        requestId:
          type: string
          description: Request ID
          example: requestId
        message:
          type: string
          description: Message
          example: message
        timestamp:
          type: string
          description: Timestamp
          example: '2021-01-01T00:00:00.000Z'
      required:
        - requestId
        - timestamp
    Service:
      type: object
      properties:
        oId:
          type: string
          minLength: 1
          description: The ID of the service
          example: p_1234
        createdAt:
          type: string
          description: The date and time the service was created
          example: '2021-01-01'
        updatedAt:
          type: string
          nullable: true
          description: The date and time the service was updated
          example: '2021-01-01'
        archivedAt:
          type: string
          nullable: true
          description: The date and time the service was archived
          example: '2021-01-01'
        deletedAt:
          type: string
          nullable: true
          description: The date and time the service was deleted
          example: '2021-01-01'
        name:
          type: string
          nullable: true
          description: The external facing name of the service
          example: Service Name
        internalName:
          type: string
          nullable: true
          description: The internal name of the service
          example: Service Internal Name
        description:
          type: string
          nullable: true
          description: The description of the service
          example: Service Description
        primaryUrl:
          type: string
          nullable: true
          description: The primary URL of the service
          example: https://www.service.com
        active:
          type: boolean
          default: true
          description: Whether the service is active and can be used
          example: true
        data:
          $ref: '#/components/schemas/ServiceData'
        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
                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 service
              example: u_1234
            firstName:
              type: string
              nullable: true
              description: The first name of the user who created the service
              example: John
            lastName:
              type: string
              nullable: true
              description: The last name of the user who created the service
              example: Doe
        workspace:
          type: object
          properties:
            oId:
              type: string
              nullable: true
              description: The ID of the workspace that the service belongs to
              example: wa_1234
      required:
        - oId
        - createdAt
        - data
        - user
        - workspace
    ServiceData:
      type: object
      properties:
        type:
          type: string
          enum:
            - PRODUCT
            - SERVICE
            - SOLUTION
          default: SERVICE
        summary:
          type: string
          nullable: true
        deliverables:
          type: array
          items:
            type: string
          default: []
          description: Key deliverables of the service
          example:
            - Deliverable 1
            - Deliverable 2
        competencies:
          type: array
          items:
            type: string
          default: []
          description: Key competencies required for the service
          example:
            - Competency 1
            - Competency 2
        comparativeAdvantage:
          type: array
          items:
            type: string
          default: []
          description: The comparative advantage of the service
          example:
            - Advantage 1
            - Advantage 2
        likelyAlternative:
          type: array
          items:
            type: string
          default: []
          description: The likely alternative to the service
          example:
            - Alternative 1
            - Alternative 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'
    CustomDataFields:
      type: array
      items:
        $ref: '#/components/schemas/CustomDataFieldItem'
    CustomDataFieldItem:
      type: object
      properties:
        title:
          type: string
        value:
          type: array
          items:
            type: string
      required:
        - title
        - value
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````