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

# List Watched Opportunities

> List CRM opportunities enrolled in Opportunity Watch (Deal Pulse), the pipeline-watching learning loop. Each row pairs the enrollment (state, routed model tier, last run time) and its policy with the opportunity, its ICP Fit score, its latest health_check classification, and its top suggested action, when generated. Filter by policyOId, enrollment state, CRM stageCategory, dealType, or a name substring search.



## OpenAPI

````yaml get /api/v2/opportunity-watch/list
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/list:
    get:
      tags:
        - Opportunity Watch
      summary: List Watched Opportunities
      description: >-
        List CRM opportunities enrolled in Opportunity Watch (Deal Pulse), the
        pipeline-watching learning loop. Each row pairs the enrollment (state,
        routed model tier, last run time) and its policy with the opportunity,
        its ICP Fit score, its latest health_check classification, and its top
        suggested action, when generated. Filter by policyOId, enrollment state,
        CRM stageCategory, dealType, or a name substring search.
      operationId: listWatchedOpportunities
      parameters:
        - schema:
            type: string
            description: >-
              Restrict to opportunities enrolled under this Opportunity Watch
              policy.
          required: false
          description: >-
            Restrict to opportunities enrolled under this Opportunity Watch
            policy.
          name: policyOId
          in: query
        - schema:
            type: string
            enum:
              - auto_included
              - pinned
              - excluded
            description: Restrict to enrollments in this state.
          required: false
          description: Restrict to enrollments in this state.
          name: state
          in: query
        - schema:
            type: string
            enum:
              - open
              - closed_won
              - closed_lost
              - other
            description: Restrict to opportunities in this CRM stage category.
          required: false
          description: Restrict to opportunities in this CRM stage category.
          name: stageCategory
          in: query
        - schema:
            type: string
            description: >-
              Restrict to opportunities with this CRM deal-type picklist value
              (Salesforce Type, HubSpot dealtype), matched exactly.
          required: false
          description: >-
            Restrict to opportunities with this CRM deal-type picklist value
            (Salesforce Type, HubSpot dealtype), matched exactly.
          name: dealType
          in: query
        - schema:
            type: string
            description: Case-insensitive substring match against the opportunity name.
          required: false
          description: Case-insensitive substring match against the opportunity name.
          name: nameSearch
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: 'Page size (default: 25, max: 100).'
            example: 25
          required: false
          description: 'Page size (default: 25, max: 100).'
          name: limit
          in: query
        - schema:
            type: integer
            nullable: true
            minimum: 0
            default: 0
            description: 'Pagination offset (default: 0).'
            example: 0
          required: false
          description: 'Pagination offset (default: 0).'
          name: offset
          in: query
      responses:
        '200':
          description: Page of watched opportunities
          content:
            application/json:
              schema:
                type: object
                properties:
                  _metadata:
                    $ref: '#/components/schemas/Metadata'
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        enrollment:
                          type: object
                          properties:
                            oId:
                              type: string
                            state:
                              type: string
                              enum:
                                - auto_included
                                - pinned
                                - excluded
                            routedTier:
                              type: string
                              enum:
                                - NOTE
                                - PULSE
                                - ECHO
                                - HARMONY
                                - CHORUS
                                - SYMPHONY
                            lastRunAt:
                              type: string
                              nullable: true
                          required:
                            - oId
                            - state
                            - routedTier
                            - lastRunAt
                        policy:
                          type: object
                          properties:
                            oId:
                              type: string
                            name:
                              type: string
                          required:
                            - oId
                            - name
                        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
                        lastActivityAt:
                          type: string
                          nullable: true
                        fit:
                          type: object
                          nullable: true
                          properties:
                            score:
                              type: integer
                              minimum: 0
                              maximum: 100
                            band:
                              type: string
                              enum:
                                - strong
                                - moderate
                                - weak
                          required:
                            - score
                            - band
                        health:
                          type: string
                          nullable: true
                          enum:
                            - at_risk
                            - neutral
                            - good
                            - thriving
                            - null
                        topSuggestedAction:
                          type: object
                          nullable: true
                          properties:
                            actionKey:
                              type: string
                              minLength: 1
                            headline:
                              type: string
                              minLength: 1
                            rationale:
                              type: string
                              minLength: 1
                            urgency:
                              type: string
                              enum:
                                - low
                                - medium
                                - high
                          required:
                            - actionKey
                            - headline
                            - rationale
                            - urgency
                        accountDealCount:
                          type: integer
                          minimum: 1
                          default: 1
                      required:
                        - enrollment
                        - policy
                        - opportunity
                        - accountLogo
                        - lastActivityAt
                        - fit
                        - health
                        - topSuggestedAction
                  total:
                    type: number
                  hasNext:
                    type: boolean
                required:
                  - _metadata
                  - data
                  - total
                  - hasNext
        '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
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key

````