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

# Update Competitor

> Update an existing competitor



## OpenAPI

````yaml post /api/v2/competitor/update
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/competitor/update:
    post:
      tags:
        - Competitor
      summary: Update Competitor
      description: Update an existing competitor
      operationId: updateCompetitor
      requestBody:
        description: Competitor update input
        content:
          application/json:
            schema:
              type: object
              properties:
                oId:
                  type: string
                  minLength: 1
                  description: The ID of the competitor to update
                  example: cp_1234
                name:
                  type: string
                  description: The name of the competitor
                  example: Salesforce CRM
                internalName:
                  type: string
                  description: The internal name of the competitor
                  example: Salesforce (Main CRM Competitor)
                description:
                  type: string
                  description: A description of the competitor
                  example: Leading CRM platform with extensive enterprise features
                url:
                  type: string
                  nullable: true
                  description: >-
                    The competitor's canonical web URL — the company homepage,
                    or the product page when the competitor is a product of a
                    larger company. A bare domain is also accepted. Used to
                    resolve the competitor's logo. Pass null to clear.
                  example: https://salesforce.com
                howTheyPosition:
                  type: array
                  items:
                    type: string
                  description: >-
                    How the competitor positions themselves: their narrative,
                    messaging, and market story — the pitch they take to market.
                  example:
                    - Positions as the all-in-one CRM for enterprises.
                    - >-
                      Frames AI as the core differentiator across every product
                      line.
                ourKeyDifferentiators:
                  type: array
                  items:
                    type: string
                  description: >-
                    Concrete, observable, tactical points of differentiation we
                    lead with against this competitor — features, capabilities,
                    integrations, certifications, IP, performance benchmarks,
                    ecosystem advantages.
                  example:
                    - Native event-driven sync with Postgres CDC.
                    - Built-in SOC2 audit reporting at no extra cost.
                competitorStrengths:
                  type: array
                  items:
                    type: string
                  description: >-
                    Where this competitor genuinely excels — capabilities,
                    features, market position, brand recognition, ecosystem
                    advantages.
                  example:
                    - Market leader
                    - Extensive integration ecosystem
                    - Strong brand recognition
                competitorWeaknesses:
                  type: array
                  items:
                    type: string
                  description: >-
                    Where this competitor falls short — gaps in their offering,
                    capability holes, pricing rigidity, ecosystem limitations.
                  example:
                    - Complex setup
                    - High cost
                    - Steep learning curve
                reasonsWeWin:
                  type: array
                  items:
                    type: string
                  description: Reasons why we win against this competitor
                  example:
                    - Lower cost
                    - Easier implementation
                    - Better customer support
                reasonsWeLose:
                  type: array
                  items:
                    type: string
                  description: >-
                    The deal-level dynamics for why customers might choose them
                    when both are evaluated — the kinds of prospects,
                    requirements, scenarios, or buyer types that favor them.
                  example:
                    - >-
                      Existing Salesforce-heavy stack with deep org-wide
                      adoption.
                    - Procurement preference for the incumbent vendor.
                customFields:
                  allOf:
                    - $ref: '#/components/schemas/CustomDataFields'
                    - description: Custom fields for additional competitor 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
                    competitor, keyed by property key.
                  example:
                    tier: Enterprise
                    region: APAC
              required:
                - oId
      responses:
        '200':
          description: Competitor updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    type: object
                    properties:
                      oId:
                        type: string
                      createdAt:
                        type: string
                        nullable: true
                        format: date-time
                      updatedAt:
                        type: string
                        nullable: true
                        format: date-time
                      deletedAt:
                        type: string
                        nullable: true
                        format: date-time
                      archivedAt:
                        type: string
                        nullable: true
                        format: date-time
                      name:
                        type: string
                      internalName:
                        type: string
                      description:
                        type: string
                      url:
                        type: string
                        nullable: true
                      active:
                        type: boolean
                        default: true
                      data:
                        type: object
                        nullable: true
                        properties:
                          howTheyPosition:
                            type: array
                            items:
                              type: string
                          ourKeyDifferentiators:
                            type: array
                            items:
                              type: string
                          competitorStrengths:
                            type: array
                            items:
                              type: string
                          competitorWeaknesses:
                            type: array
                            items:
                              type: string
                          reasonsWeWin:
                            type: array
                            items:
                              type: string
                          reasonsWeLose:
                            type: array
                            items:
                              type: string
                          customFields:
                            $ref: '#/components/schemas/CustomDataFields'
                          additionalProperties:
                            type: object
                            additionalProperties:
                              anyOf:
                                - type: string
                                - type: array
                                  items:
                                    type: string
                                - type: number
                                - type: boolean
                        required:
                          - howTheyPosition
                          - ourKeyDifferentiators
                          - competitorStrengths
                          - competitorWeaknesses
                          - reasonsWeWin
                          - reasonsWeLose
                      user:
                        type: object
                        nullable: true
                        properties:
                          oId:
                            type: string
                            nullable: true
                          firstName:
                            type: string
                            nullable: true
                            description: >-
                              The first name of the user who created the
                              competitor
                            example: John
                          lastName:
                            type: string
                            nullable: true
                            description: >-
                              The last name of the user who created the
                              competitor
                            example: Doe
                      workspace:
                        type: object
                        nullable: true
                        properties:
                          oId:
                            type: string
                            nullable: true
                      intelOverride:
                        type: object
                        nullable: true
                        properties:
                          enabled:
                            type: boolean
                          cadence:
                            type: string
                            enum:
                              - weekly
                              - biweekly
                              - monthly
                          guidance:
                            type: string
                            nullable: true
                    required:
                      - oId
                      - createdAt
                      - updatedAt
                      - name
                      - internalName
                      - description
                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: Competitor 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'
    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
    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

````