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

# Get Opportunity Watch Detail

> Get the full Opportunity Watch record for a single deal: the opportunity, its enrollment (policy, state, routed model tier, last run time), every CURRENT output the loop has generated (health_check, suggested_actions, deal_positioning, win_loss_postmortem, etc — full content), plus the deal's ICP Fit qualification snapshot, a version count per output key, and a page of its activity timeline.



## OpenAPI

````yaml get /api/v2/opportunity-watch/get
openapi: 3.0.0
info:
  version: 5.1.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/opportunity-watch/get:
    get:
      tags:
        - Opportunity Watch
      summary: Get Opportunity Watch Detail
      description: >-
        Get the full Opportunity Watch record for a single deal: the
        opportunity, its enrollment (policy, state, routed model tier, last run
        time), every CURRENT output the loop has generated (health_check,
        suggested_actions, deal_positioning, win_loss_postmortem, etc — full
        content), plus the deal's ICP Fit qualification snapshot, a version
        count per output key, and a page of its activity timeline.
      operationId: getOpportunityWatchDetail
      parameters:
        - schema:
            type: string
            description: The oId of the CRM opportunity.
          required: true
          description: The oId of the CRM opportunity.
          name: opportunityOId
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: >-
              Page size for the Opportunity Watch activity timeline (default:
              25, max: 100).
            example: 25
          required: false
          description: >-
            Page size for the Opportunity Watch activity timeline (default: 25,
            max: 100).
          name: timelineLimit
          in: query
        - schema:
            type: string
            description: >-
              ISO-8601 timestamp cursor — only return timeline entries strictly
              before this time, to page further back.
          required: false
          description: >-
            ISO-8601 timestamp cursor — only return timeline entries strictly
            before this time, to page further back.
          name: timelineBefore
          in: query
      responses:
        '200':
          description: Opportunity Watch detail
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    type: object
                    properties:
                      opportunity:
                        type: object
                        properties:
                          oId:
                            type: string
                          name:
                            type: string
                          amount:
                            type: number
                            nullable: true
                          currency:
                            type: string
                            nullable: true
                          stageName:
                            type: string
                            nullable: true
                          stageCategory:
                            type: string
                            enum:
                              - open
                              - closed_won
                              - closed_lost
                              - other
                          dealType:
                            type: string
                            nullable: true
                          closeDate:
                            type: string
                            nullable: true
                          crmAccountName:
                            type: string
                            nullable: true
                          crmAccountDomain:
                            type: string
                            nullable: true
                          ownerName:
                            type: string
                            nullable: true
                          createdDate:
                            type: string
                        required:
                          - oId
                          - name
                          - amount
                          - currency
                          - stageName
                          - stageCategory
                          - dealType
                          - closeDate
                          - crmAccountName
                          - crmAccountDomain
                          - ownerName
                          - createdDate
                      accountLogo:
                        type: string
                        nullable: true
                      icpFit:
                        type: object
                        nullable: true
                        properties:
                          current:
                            type: object
                            properties:
                              oId:
                                type: string
                              createdAt:
                                type: string
                              overallScore:
                                type: integer
                                nullable: true
                              overallRationale:
                                type: string
                                nullable: true
                              offeringName:
                                type: string
                                nullable: true
                              offeringOId:
                                type: string
                                nullable: true
                              offeringScore:
                                type: integer
                                nullable: true
                              offeringRationale:
                                type: string
                                nullable: true
                              segmentName:
                                type: string
                                nullable: true
                              segmentOId:
                                type: string
                                nullable: true
                              segmentScore:
                                type: integer
                                nullable: true
                              segmentRationale:
                                type: string
                                nullable: true
                              segmentLowConfidence:
                                type: boolean
                              triggerSource:
                                type: string
                            required:
                              - oId
                              - createdAt
                              - overallScore
                              - overallRationale
                              - offeringName
                              - offeringOId
                              - offeringScore
                              - offeringRationale
                              - segmentName
                              - segmentOId
                              - segmentScore
                              - segmentRationale
                              - segmentLowConfidence
                              - triggerSource
                          previous:
                            type: object
                            nullable: true
                            properties:
                              oId:
                                type: string
                              createdAt:
                                type: string
                              overallScore:
                                type: integer
                                nullable: true
                              overallRationale:
                                type: string
                                nullable: true
                              offeringName:
                                type: string
                                nullable: true
                              offeringOId:
                                type: string
                                nullable: true
                              offeringScore:
                                type: integer
                                nullable: true
                              offeringRationale:
                                type: string
                                nullable: true
                              segmentName:
                                type: string
                                nullable: true
                              segmentOId:
                                type: string
                                nullable: true
                              segmentScore:
                                type: integer
                                nullable: true
                              segmentRationale:
                                type: string
                                nullable: true
                              segmentLowConfidence:
                                type: boolean
                              triggerSource:
                                type: string
                            required:
                              - oId
                              - createdAt
                              - overallScore
                              - overallRationale
                              - offeringName
                              - offeringOId
                              - offeringScore
                              - offeringRationale
                              - segmentName
                              - segmentOId
                              - segmentScore
                              - segmentRationale
                              - segmentLowConfidence
                              - triggerSource
                          history:
                            type: array
                            items:
                              type: object
                              properties:
                                oId:
                                  type: string
                                createdAt:
                                  type: string
                                overallScore:
                                  type: integer
                                  nullable: true
                                overallRationale:
                                  type: string
                                  nullable: true
                                offeringName:
                                  type: string
                                  nullable: true
                                offeringOId:
                                  type: string
                                  nullable: true
                                offeringScore:
                                  type: integer
                                  nullable: true
                                offeringRationale:
                                  type: string
                                  nullable: true
                                segmentName:
                                  type: string
                                  nullable: true
                                segmentOId:
                                  type: string
                                  nullable: true
                                segmentScore:
                                  type: integer
                                  nullable: true
                                segmentRationale:
                                  type: string
                                  nullable: true
                                segmentLowConfidence:
                                  type: boolean
                                triggerSource:
                                  type: string
                              required:
                                - oId
                                - createdAt
                                - overallScore
                                - overallRationale
                                - offeringName
                                - offeringOId
                                - offeringScore
                                - offeringRationale
                                - segmentName
                                - segmentOId
                                - segmentScore
                                - segmentRationale
                                - segmentLowConfidence
                                - triggerSource
                        required:
                          - current
                          - previous
                          - history
                      enrollment:
                        type: object
                        nullable: true
                        properties:
                          oId:
                            type: string
                          opportunityOId:
                            type: string
                          policyOId:
                            type: string
                          state:
                            type: string
                            enum:
                              - auto_included
                              - pinned
                              - excluded
                          routedTier:
                            type: string
                            enum:
                              - NOTE
                              - PULSE
                              - ECHO
                              - HARMONY
                              - CHORUS
                              - SYMPHONY
                          enrolledAt:
                            type: string
                          lastRunAt:
                            type: string
                            nullable: true
                          policyName:
                            type: string
                          healthSnapshot:
                            type: object
                            nullable: true
                            properties:
                              overallHealth:
                                type: string
                                enum:
                                  - healthy
                                  - at_risk
                                  - stalled
                              signalTypes:
                                type: array
                                items:
                                  type: string
                            required:
                              - overallHealth
                              - signalTypes
                          healthComputedAt:
                            type: string
                            nullable: true
                          dealState:
                            type: object
                            nullable: true
                            properties:
                              version:
                                type: number
                                enum:
                                  - 1
                              computedAt:
                                type: string
                              flags:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - SINGLE_THREADED_OBSERVED
                                        - NO_SENIOR_BUYER_OBSERVED
                                        - NO_RECENT_ACTIVITY_INGESTED
                                        - STAGE_EVIDENCE_PENDING
                                        - COMPETITOR_DETECTED
                                        - COMMITMENT_OPEN
                                        - OBJECTION_UNADDRESSED
                                        - PERSONA_COVERAGE_GAP
                                        - CLOSE_DATE_PUSHED
                                        - STAGE_DURATION_EXCEEDED
                                    detail:
                                      type: string
                                    evidenceOIds:
                                      type: array
                                      items:
                                        type: string
                                    firstDetectedAt:
                                      type: string
                                  required:
                                    - type
                                    - detail
                                    - evidenceOIds
                                    - firstDetectedAt
                              commitments:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    findingOId:
                                      type: string
                                    description:
                                      type: string
                                    madeBy:
                                      type: string
                                      enum:
                                        - internal
                                        - external
                                    madeAt:
                                      type: string
                                    sourceEventOId:
                                      type: string
                                      nullable: true
                                    status:
                                      type: string
                                      enum:
                                        - open
                                        - delivery_observed
                                  required:
                                    - findingOId
                                    - description
                                    - madeBy
                                    - madeAt
                                    - sourceEventOId
                                    - status
                              objections:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    entityOId:
                                      type: string
                                      nullable: true
                                    label:
                                      type: string
                                    status:
                                      type: string
                                      enum:
                                        - open
                                        - addressed
                                        - recurring
                                    firstRaisedAt:
                                      type: string
                                    latestFindingOId:
                                      type: string
                                    raiseCount:
                                      type: integer
                                  required:
                                    - entityOId
                                    - label
                                    - status
                                    - firstRaisedAt
                                    - latestFindingOId
                                    - raiseCount
                                default: []
                              competitors:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                    entityOId:
                                      type: string
                                      nullable: true
                                    firstDetectedAt:
                                      type: string
                                    sourceFindingOId:
                                      type: string
                                      nullable: true
                                  required:
                                    - name
                                    - entityOId
                                    - firstDetectedAt
                                    - sourceFindingOId
                              committee:
                                type: object
                                nullable: true
                                properties:
                                  knownPersonaCount:
                                    type: integer
                                  engagedPersonaCount:
                                    type: integer
                                  unengagedPersonaNames:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - knownPersonaCount
                                  - engagedPersonaCount
                                  - unengagedPersonaNames
                              stageEvidence:
                                type: object
                                nullable: true
                                properties:
                                  stageBand:
                                    type: string
                                    enum:
                                      - early
                                      - mid
                                      - late
                                      - closing
                                  pendingTenetKeys:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - stageBand
                                  - pendingTenetKeys
                            required:
                              - version
                              - computedAt
                              - flags
                              - commitments
                              - competitors
                              - committee
                              - stageEvidence
                          committeePins:
                            type: array
                            items:
                              type: object
                              properties:
                                contactOId:
                                  type: string
                                  nullable: true
                                email:
                                  type: string
                                  nullable: true
                                name:
                                  type: string
                                  minLength: 1
                                role:
                                  type: string
                                  enum:
                                    - economic_buyer
                                    - champion
                                    - technical_evaluator
                                    - end_user
                                    - procurement
                                    - influencer
                                    - other
                                pinnedAt:
                                  type: string
                              required:
                                - contactOId
                                - email
                                - name
                                - role
                                - pinnedAt
                        required:
                          - oId
                          - opportunityOId
                          - policyOId
                          - state
                          - routedTier
                          - enrolledAt
                          - lastRunAt
                          - policyName
                          - healthSnapshot
                          - healthComputedAt
                          - dealState
                          - committeePins
                      outputs:
                        type: array
                        items:
                          type: object
                          properties:
                            oId:
                              type: string
                            opportunityOId:
                              type: string
                            outputKey:
                              type: string
                            version:
                              type: integer
                            mode:
                              type: string
                              enum:
                                - freeform
                                - number
                                - enum
                                - structured
                            content:
                              nullable: true
                            modelTier:
                              type: string
                              enum:
                                - NOTE
                                - PULSE
                                - ECHO
                                - HARMONY
                                - CHORUS
                                - SYMPHONY
                            creditsCharged:
                              type: number
                            triggerKind:
                              type: string
                              enum:
                                - opp_created
                                - stage_changed
                                - close_date_changed
                                - amount_changed
                                - deal_closed
                                - activity_linked
                                - octave_call_activity
                                - health_transition
                                - key_date
                                - elapsed_time
                                - manual
                            batchId:
                              type: string
                              nullable: true
                            createdAt:
                              type: string
                            supersededAt:
                              type: string
                              nullable: true
                          required:
                            - oId
                            - opportunityOId
                            - outputKey
                            - version
                            - mode
                            - modelTier
                            - creditsCharged
                            - triggerKind
                            - batchId
                            - createdAt
                            - supersededAt
                      outputVersionCounts:
                        type: object
                        additionalProperties:
                          type: integer
                      timeline:
                        type: array
                        items:
                          type: object
                          properties:
                            oId:
                              type: string
                            opportunityOId:
                              type: string
                            entryType:
                              type: string
                            triggerKinds:
                              type: array
                              items:
                                type: string
                                enum:
                                  - opp_created
                                  - stage_changed
                                  - close_date_changed
                                  - amount_changed
                                  - deal_closed
                                  - activity_linked
                                  - octave_call_activity
                                  - health_transition
                                  - key_date
                                  - elapsed_time
                                  - manual
                            summary:
                              type: string
                              nullable: true
                            outputKeysChanged:
                              type: array
                              items:
                                type: string
                            creditsCharged:
                              type: number
                            occurredAt:
                              type: string
                          required:
                            - oId
                            - opportunityOId
                            - entryType
                            - triggerKinds
                            - summary
                            - outputKeysChanged
                            - creditsCharged
                            - occurredAt
                      timelineHasMore:
                        type: boolean
                    required:
                      - opportunity
                      - accountLogo
                      - icpFit
                      - enrollment
                      - outputs
                      - outputVersionCounts
                      - timeline
                      - timelineHasMore
                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: Opportunity not found
          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
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````