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

>  Provide either `agentOId` or `experimentOId` depending on what you want to run.
- Use `agentOId` to run a specific agent.
- Use `experimentOId` to run a specific experiment.

Only one of them should be set at a time. 

# Content Agent



## OpenAPI

````yaml post /api/v2/agents/generate-content/run
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/agents/generate-content/run:
    post:
      tags:
        - Agents
      summary: Content Agent
      description: Generate content for a person
      operationId: runContentAgent
      requestBody:
        description: Generate content input
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  nullable: true
                  description: Email of the person to generate content for
                  example: john.doe@example.com
                firstName:
                  type: string
                  nullable: true
                  description: First name of the person to generate content for
                lastName:
                  type: string
                  nullable: true
                jobTitle:
                  type: string
                  nullable: true
                  description: Job title of the person to generate content for
                companyDomain:
                  type: string
                  nullable: true
                  description: Company domain to generate content for
                  example: example.com
                companyName:
                  type: string
                  nullable: true
                  description: Company name to generate content for
                linkedInProfile:
                  type: string
                  nullable: true
                  description: LinkedIn profile of the person to generate content for
                crmContactId:
                  type: string
                  nullable: true
                crmLeadId:
                  type: string
                  nullable: true
                crmAccountId:
                  type: string
                  nullable: true
                runtimeContext:
                  nullable: true
                  description: Runtime context
                url:
                  type: string
                  nullable: true
                  description: URL to generate content for
                customContext:
                  type: object
                  nullable: true
                  properties:
                    playbook:
                      type: object
                      properties:
                        oId:
                          type: string
                      required:
                        - oId
                    product:
                      type: object
                      properties:
                        oId:
                          type: string
                      required:
                        - oId
                    service:
                      type: object
                      properties:
                        oId:
                          type: string
                      required:
                        - oId
                    persona:
                      type: object
                      properties:
                        oId:
                          type: string
                      required:
                        - oId
                    segment:
                      type: object
                      properties:
                        oId:
                          type: string
                      required:
                        - oId
                  description: >-
                    Pins specific library entities for this run, overriding the
                    agent's configured selection. Each field takes the oId of an
                    entity in your workspace, and that exact entity is used with
                    no re-matching. On motion agents, playbook.oId must be an
                    active motion playbook; if the agent is configured with a
                    specific motion, the playbook must belong to that motion or
                    the request fails with a 400. product/service pin the
                    offering unless the resolved motion playbook supplies its
                    own (reported as a run warning).
                  example:
                    persona:
                      oId: pe_xxxxxxxxxxxxxxxxxxxxx
                    segment:
                      oId: sg_xxxxxxxxxxxxxxxxxxxxx
                outputFormat:
                  type: string
                  nullable: true
                  enum:
                    - JSON
                    - TEXT
                    - HTML
                    - MARKDOWN
                    - null
                agentOId:
                  type: string
                  description: >-
                    AgentOId is required when creating an agent in the
                    application. You can find it in the Agents section of your
                    dashboard.
                  example: agent_123
                experimentOId:
                  type: string
                  description: ExperimentOId is required when running an experiment
                  example: experiment_123
                includeFullAnnotation:
                  type: boolean
                  description: >-
                    If true, returns full annotation data including metadata. If
                    false or omitted (default), returns minimal annotations to
                    reduce response size.
      responses:
        '200':
          description: Generate content successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  found:
                    type: boolean
                    description: Whether the operation was successful
                    example: true
                  message:
                    type: string
                    nullable: true
                    description: Message
                    example: Additional information
                  data:
                    $ref: '#/components/schemas/GeneratedContentData'
                required:
                  - _metadata
                  - found
        '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:
    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
    GeneratedContentData:
      type: object
      nullable: true
      properties:
        content:
          type: string
          nullable: true
        jsonContent:
          type: object
          nullable: true
          additionalProperties:
            nullable: true
        product:
          $ref: '#/components/schemas/LibraryEntitySlot'
        service:
          $ref: '#/components/schemas/LibraryEntitySlot'
        solution:
          $ref: '#/components/schemas/LibraryEntitySlot'
        playbook:
          $ref: '#/components/schemas/LibraryEntitySlot'
        persona:
          $ref: '#/components/schemas/LibraryEntitySlot'
        useCases:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/LibraryEntitySlot'
        referenceCustomers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/LibraryEntitySlot'
        proofPoints:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/LibraryEntitySlot'
        competitors:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/LibraryEntitySlot'
        alternatives:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/LibraryEntitySlot'
        buyingTriggers:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/LibraryEntitySlot'
        coreFeatures:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/LibraryEntitySlot'
        objections:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/LibraryEntitySlot'
        valueProps:
          type: array
          nullable: true
          items:
            type: object
            properties:
              oId:
                type: string
                nullable: true
              name:
                type: string
                nullable: true
              details:
                type: string
                nullable: true
              createdAt:
                type: string
                nullable: true
                format: date-time
              updatedAt:
                type: string
                nullable: true
                format: date-time
              evidence:
                type: array
                nullable: true
                items:
                  type: string
        annotations:
          type: object
          nullable: true
          properties:
            annotations:
              type: array
              nullable: true
              items:
                type: object
                properties:
                  type:
                    type: string
                  meta:
                    nullable: true
                  title:
                    type: string
                  description:
                    type: string
                    nullable: true
                  url:
                    type: string
                    nullable: true
                required:
                  - type
                  - title
            metadata:
              nullable: true
    LibraryEntitySlot:
      type: object
      nullable: true
      properties:
        oId:
          type: string
        name:
          type: string
        description:
          type: string
          nullable: true
        matchConfidence:
          type: string
          nullable: true
          enum:
            - LOW
            - MEDIUM
            - HIGH
            - null
        matchAnalysis:
          type: string
          nullable: true
      required:
        - oId
        - name
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````