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

> Create a new persona



## OpenAPI

````yaml post /api/v2/persona/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/persona/create:
    post:
      tags:
        - Persona
      summary: Create Persona
      description: Create a new persona
      operationId: createPersona
      requestBody:
        description: Persona creation input
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  minLength: 1
                  description: The external name of the persona
                  example: VP of Sales
                internalName:
                  type: string
                  description: The internal name of the persona
                  example: Sally the Sales Leader
                description:
                  type: string
                  description: A description of the persona
                  example: Senior sales leaders responsible for revenue growth
                primaryResponsibilities:
                  type: array
                  items:
                    type: string
                  description: The primary responsibilities of the persona
                  example:
                    - Drive revenue growth
                    - Manage sales team
                painPoints:
                  type: array
                  items:
                    type: string
                  description: The pain points of the persona
                  example:
                    - Long sales cycles
                    - Difficulty tracking performance
                keyConcerns:
                  type: array
                  items:
                    type: string
                  description: The key concerns of the persona
                  example:
                    - Meeting quotas
                    - Team productivity
                keyObjectives:
                  type: array
                  items:
                    type: string
                  description: The key objectives of the persona
                  example:
                    - Increase revenue by 20%
                    - Reduce churn
                commonJobTitles:
                  type: array
                  items:
                    type: string
                  description: The common job titles of the persona
                  example:
                    - VP of Sales
                    - Sales Director
                    - Chief Revenue Officer
                whyTheyMatterToUs:
                  type: array
                  items:
                    type: string
                  description: The reasons why the persona matters to us
                  example:
                    - Decision makers
                    - Budget holders
                whyWeMatterToThem:
                  type: array
                  items:
                    type: string
                  description: The reasons why we matter to this type of persona
                  example:
                    - Help achieve revenue goals
                    - Improve team efficiency
                buyingRole:
                  type: array
                  items:
                    type: string
                  description: >-
                    The function this persona typically plays in a purchase
                    decision (e.g. economic buyer, champion, technical
                    evaluator, end user, influencer, blocker), along with their
                    level of sophistication on the problem space.
                  example:
                    - Economic buyer with budget authority over the GTM stack.
                    - >-
                      Experienced operator who has evaluated similar tooling
                      before.
                customFields:
                  allOf:
                    - $ref: '#/components/schemas/CustomDataFields'
                    - description: Custom fields for additional persona 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
                    persona, keyed by property key.
                  example:
                    buying_role: Champion
                    seniority_level: VP
                primaryOfferingOId:
                  type: string
                  description: >-
                    Primary Offering to use as context when generating personas.
                    If not provided, the primary company attached to the
                    Workspace will be used.
                  example: o_123456
                linkingStrategy:
                  $ref: '#/components/schemas/LinkingStrategy'
              required:
                - name
      responses:
        '200':
          description: Persona created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    type: object
                    properties:
                      oId:
                        type: string
                        minLength: 1
                        description: The ID of the persona
                        example: p_1234
                      name:
                        type: string
                        nullable: true
                        description: The name of the persona
                        example: VP of Sales
                      internalName:
                        type: string
                        nullable: true
                        description: The internal name of the persona
                        example: Sally the Sales Leader
                      description:
                        type: string
                        nullable: true
                        description: The description of the persona
                      createdAt:
                        type: string
                        format: date-time
                        description: The date and time the persona was created
                        example: '2021-01-01'
                      deletedAt:
                        type: string
                        nullable: true
                        format: date-time
                        description: The date and time the persona was deleted
                        example: '2021-01-01'
                      archivedAt:
                        type: string
                        nullable: true
                        format: date-time
                        description: The date and time the persona was archived
                        example: '2021-01-01'
                      updatedAt:
                        type: string
                        nullable: true
                        format: date-time
                        description: The date and time the persona was updated
                        example: '2021-01-01'
                      unrecognized:
                        type: boolean
                        nullable: true
                        description: Whether the persona is unrecognized
                        example: false
                      rejected:
                        type: boolean
                        nullable: true
                        description: Whether the persona is rejected
                        example: false
                      active:
                        type: boolean
                        default: true
                        description: Whether the persona is active and can be used
                        example: true
                      data:
                        $ref: '#/components/schemas/PersonaData'
                      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 persona
                            example: u_1234
                          firstName:
                            type: string
                            nullable: true
                            description: The first name of the user who created the persona
                            example: John
                          lastName:
                            type: string
                            nullable: true
                            description: The last name of the user who created the persona
                            example: Doe
                      workspace:
                        type: object
                        properties:
                          oId:
                            type: string
                            nullable: true
                            description: >-
                              The ID of the workspace that the persona belongs
                              to
                            example: wa_1234
                    required:
                      - oId
                      - createdAt
                      - data
                      - user
                      - workspace
                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
        '404':
          description: Offering not found
          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'
    LinkingStrategy:
      oneOf:
        - $ref: '#/components/schemas/LinkingStrategyAll'
        - $ref: '#/components/schemas/LinkingStrategySpecific'
      discriminator:
        propertyName: mode
        mapping:
          ALL:
            $ref: '#/components/schemas/LinkingStrategyAll'
          SPECIFIC:
            $ref: '#/components/schemas/LinkingStrategySpecific'
      default:
        mode: ALL
      description: Strategy for linking this persona to offerings (products/services)
    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
    PersonaData:
      type: object
      properties:
        internalName:
          type: string
          nullable: true
          description: The internal name of the persona
        primaryResponsibilities:
          type: array
          items:
            type: string
          default: []
          description: The primary responsibilities of the persona
          example:
            - Responsibility 1
            - Responsibility 2
        painPoints:
          type: array
          items:
            type: string
          default: []
          description: The pain points of the persona
          example:
            - Pain Point 1
            - Pain Point 2
        keyConcerns:
          type: array
          items:
            type: string
          default: []
          description: The key concerns of the persona
          example:
            - Concern 1
            - Concern 2
        keyObjectives:
          type: array
          items:
            type: string
          default: []
          description: The key objectives of the persona
          example:
            - Objective 1
            - Objective 2
        commonJobTitles:
          type: array
          items:
            type: string
          default: []
          description: The common job titles of the persona
          example:
            - Job Title 1
            - Job Title 2
        whyTheyMatterToUs:
          type: array
          items:
            type: string
          default: []
          description: The reasons why the persona matters to us
          example:
            - Reason 1
            - Reason 2
        whyWeMatterToThem:
          type: array
          items:
            type: string
          default: []
          description: The reasons why we matter to this type of persona
          example:
            - Reason 1
            - Reason 2
        buyingRole:
          type: array
          items:
            type: string
          default: []
          description: >-
            The function this persona typically plays in a purchase decision
            (e.g. economic buyer, champion, technical evaluator, end user,
            influencer, blocker), along with their level of sophistication on
            the problem space (newcomer, experienced, expert).
          example:
            - Economic buyer with budget authority over the GTM stack.
            - Experienced operator who has evaluated similar tooling before.
        customFields:
          $ref: '#/components/schemas/CustomDataFields'
        additionalProperties:
          type: object
          additionalProperties:
            anyOf:
              - type: string
              - type: array
                items:
                  type: string
              - type: number
              - type: boolean
    CustomDataFieldItem:
      type: object
      properties:
        title:
          type: string
        value:
          type: array
          items:
            type: string
      required:
        - title
        - value
    LinkingStrategyAll:
      type: object
      properties:
        mode:
          type: string
          enum:
            - ALL
          description: >-
            Link to all active offerings in the workspace (products, services,
            and solutions)
          example: ALL
      required:
        - mode
    LinkingStrategySpecific:
      type: object
      properties:
        mode:
          type: string
          enum:
            - SPECIFIC
          description: >-
            Link to specific offerings by their IDs (products, services, and
            solutions)
          example: SPECIFIC
        offeringOIds:
          type: array
          items:
            type: string
            minLength: 1
          minItems: 1
          description: >-
            Array of offering IDs to link to (supports product, service, and
            solution oIds)
          example:
            - px_123
            - sc_456
            - sv_789
      required:
        - mode
        - offeringOIds
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````