> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get selected products

> Get the list of products that have been selected in this discovery session.



## OpenAPI

````yaml /v2/buyer-api-v2.yaml get /discovery/{discoveryId}/products
openapi: 3.0.0
info:
  title: Scope3 Buyer API
  version: 2.0.0
  description: |-
    REST API for advertisers to manage advertisers, campaigns, and reporting.

    ## Authentication

    All endpoints require a Bearer token in the Authorization header:
    ```
    Authorization: Bearer your-api-key
    ```

    ## Base URL

    `https://api.interchange.io/api/v2/buyer`

    ## For AI Agents

    AI agents can use the MCP endpoint at `/mcp/v2/buyer` with three tools:
    - `initialize`: Start an MCP session
    - `api_call`: Make REST API calls
    - `ask_about_capability`: Learn about API features
servers:
  - url: https://api.interchange.io/api/v2/buyer
    description: Production server
security: []
tags:
  - name: Signup
    description: Request reviewed access to Interchange
  - name: Account
    description: Account management, service tokens, and preferences
  - name: Asks
    description: >-
      What you are waiting on Scope3 for — support, product, and supply asks in
      one list
  - name: Advertisers
    description: Manage advertisers
  - name: Product Discovery
    description: Discover and select products
  - name: Campaigns
    description: Manage advertising campaigns
  - name: Creatives
    description: Build, manage, and sync campaign creatives via AdCP Creative Protocol
  - name: Reporting
    description: Access performance metrics
  - name: Event Sources
    description: >-
      Manage event source configurations and log conversion/marketing events for
      attribution
  - name: Property Lists
    description: Validate property lists against AAO registry
  - name: Sales Agents
    description: View and connect sales agents
  - name: Measurement
    description: Measurement sources, records, context, and freshness
  - name: Syndication
    description: Syndicate resources to ADCP agents
  - name: Tasks
    description: Track async operation status
  - name: Buyer Billing
    description: >-
      Consolidated invoicing for buyers — invoices and pending invoice items
      issued by Scope3 across the buyer customer.
  - name: MCP
    description: Model Context Protocol endpoints for AI agents
paths:
  /discovery/{discoveryId}/products:
    get:
      tags:
        - Product Discovery
      summary: Get selected products
      description: >-
        Get the list of products that have been selected in this discovery
        session.
      operationId: getProducts
      parameters:
        - in: path
          name: discoveryId
          schema:
            description: Discovery ID
            example: abc123-def456-ghi789
            type: string
            minLength: 1
          required: true
          description: Discovery ID
      responses:
        '200':
          description: Get selected products
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionProductsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - bearerAuth: []
components:
  schemas:
    SessionProductsResponse:
      description: Response containing selected products
      type: object
      properties:
        discoveryId:
          description: Discovery ID
          type: string
        products:
          description: Selected products in the discovery session
          type: array
          items:
            $ref: '#/components/schemas/SelectedProduct'
        totalProducts:
          description: Total number of selected products
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        budgetContext:
          description: Budget allocation context
          allOf:
            - $ref: '#/components/schemas/BudgetContextResponse'
        campaignBound:
          description: >-
            Whether this discovery session is attached to an active campaign.
            When false, the products are saved to the session but no active
            campaign reflects them yet.
          type: boolean
        campaignWarning:
          description: >-
            Guidance shown only when campaignBound is false: either the session
            is not attached to any campaign, or the campaign it was attached to
            has been archived. Pass campaignId for an active campaign (or
            restore the archived one) so the campaign reflects the products.
          type: string
      required:
        - discoveryId
        - products
        - totalProducts
      additionalProperties: false
    ErrorResponse:
      description: Standard error response
      type: object
      properties:
        data:
          type: string
          nullable: true
          enum:
            - null
        error:
          $ref: '#/components/schemas/ApiError'
      required:
        - data
        - error
      additionalProperties: false
    SelectedProduct:
      description: A product selected for inclusion in a discovery session
      type: object
      properties:
        productId:
          description: Product ID
          type: string
        storefrontId:
          description: Storefront this product selection came from
          type: string
        inventorySourceId:
          description: Typed inventory source selected for execution
          type: string
          pattern: ^[1-9]\d*$
        selectionId:
          description: >-
            Per-instance selection identity. Present only on repeat instances
            (the same product selected more than once); absent on a product’s
            single "base" selection.
          type: string
        salesAgentId:
          description: Sales agent ID
          type: string
        bidPrice:
          description: Bid price (CPM) the buyer set for the product
          type: number
        budget:
          description: Budget allocation for this product
          type: number
        targetingOverlay:
          description: Per-line-item AdCP targeting saved with this selection
          type: object
          properties:
            geo_countries:
              type: array
              items:
                type: string
            geo_countries_exclude:
              type: array
              items:
                type: string
            geo_regions:
              type: array
              items:
                type: string
            geo_regions_exclude:
              type: array
              items:
                type: string
            geo_metros:
              type: array
              items:
                type: object
                properties:
                  system:
                    anyOf:
                      - type: string
                        enum:
                          - nielsen_dma
                      - type: string
                        enum:
                          - uk_itl1
                      - type: string
                        enum:
                          - uk_itl2
                      - type: string
                        enum:
                          - eurostat_nuts2
                      - type: string
                        enum:
                          - custom
                  values:
                    type: array
                    items:
                      type: string
                required:
                  - system
                  - values
                additionalProperties: {}
            geo_metros_exclude:
              type: array
              items:
                type: object
                properties:
                  system:
                    anyOf:
                      - type: string
                        enum:
                          - nielsen_dma
                      - type: string
                        enum:
                          - uk_itl1
                      - type: string
                        enum:
                          - uk_itl2
                      - type: string
                        enum:
                          - eurostat_nuts2
                      - type: string
                        enum:
                          - custom
                  values:
                    type: array
                    items:
                      type: string
                required:
                  - system
                  - values
                additionalProperties: {}
            geo_postal_areas:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      country:
                        type: string
                        pattern: ^[A-Z]{2}$
                      system:
                        anyOf:
                          - type: string
                            enum:
                              - postal_code
                          - type: string
                            enum:
                              - zip
                          - type: string
                            enum:
                              - zip_plus_four
                          - type: string
                            enum:
                              - outward
                          - type: string
                            enum:
                              - full
                          - type: string
                            enum:
                              - fsa
                          - type: string
                            enum:
                              - plz
                          - type: string
                            enum:
                              - code_postal
                          - type: string
                            enum:
                              - postcode
                          - type: string
                            enum:
                              - cep
                          - type: string
                            enum:
                              - pin
                          - type: string
                            enum:
                              - custom
                          - type: string
                            enum:
                              - us_zip
                          - type: string
                            enum:
                              - us_zip_plus_four
                          - type: string
                            enum:
                              - gb_outward
                          - type: string
                            enum:
                              - gb_full
                          - type: string
                            enum:
                              - ca_fsa
                          - type: string
                            enum:
                              - ca_full
                          - type: string
                            enum:
                              - de_plz
                          - type: string
                            enum:
                              - fr_code_postal
                          - type: string
                            enum:
                              - au_postcode
                          - type: string
                            enum:
                              - ch_plz
                          - type: string
                            enum:
                              - at_plz
                      values:
                        type: array
                        items:
                          type: string
                    required:
                      - country
                      - system
                      - values
                    additionalProperties: {}
                  - type: object
                    properties:
                      system:
                        anyOf:
                          - type: string
                            enum:
                              - us_zip
                          - type: string
                            enum:
                              - us_zip_plus_four
                          - type: string
                            enum:
                              - gb_outward
                          - type: string
                            enum:
                              - gb_full
                          - type: string
                            enum:
                              - ca_fsa
                          - type: string
                            enum:
                              - ca_full
                          - type: string
                            enum:
                              - de_plz
                          - type: string
                            enum:
                              - fr_code_postal
                          - type: string
                            enum:
                              - au_postcode
                          - type: string
                            enum:
                              - ch_plz
                          - type: string
                            enum:
                              - at_plz
                      values:
                        type: array
                        items:
                          type: string
                    required:
                      - system
                      - values
                    additionalProperties: {}
            geo_postal_areas_exclude:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      country:
                        type: string
                        pattern: ^[A-Z]{2}$
                      system:
                        anyOf:
                          - type: string
                            enum:
                              - postal_code
                          - type: string
                            enum:
                              - zip
                          - type: string
                            enum:
                              - zip_plus_four
                          - type: string
                            enum:
                              - outward
                          - type: string
                            enum:
                              - full
                          - type: string
                            enum:
                              - fsa
                          - type: string
                            enum:
                              - plz
                          - type: string
                            enum:
                              - code_postal
                          - type: string
                            enum:
                              - postcode
                          - type: string
                            enum:
                              - cep
                          - type: string
                            enum:
                              - pin
                          - type: string
                            enum:
                              - custom
                          - type: string
                            enum:
                              - us_zip
                          - type: string
                            enum:
                              - us_zip_plus_four
                          - type: string
                            enum:
                              - gb_outward
                          - type: string
                            enum:
                              - gb_full
                          - type: string
                            enum:
                              - ca_fsa
                          - type: string
                            enum:
                              - ca_full
                          - type: string
                            enum:
                              - de_plz
                          - type: string
                            enum:
                              - fr_code_postal
                          - type: string
                            enum:
                              - au_postcode
                          - type: string
                            enum:
                              - ch_plz
                          - type: string
                            enum:
                              - at_plz
                      values:
                        type: array
                        items:
                          type: string
                    required:
                      - country
                      - system
                      - values
                    additionalProperties: {}
                  - type: object
                    properties:
                      system:
                        anyOf:
                          - type: string
                            enum:
                              - us_zip
                          - type: string
                            enum:
                              - us_zip_plus_four
                          - type: string
                            enum:
                              - gb_outward
                          - type: string
                            enum:
                              - gb_full
                          - type: string
                            enum:
                              - ca_fsa
                          - type: string
                            enum:
                              - ca_full
                          - type: string
                            enum:
                              - de_plz
                          - type: string
                            enum:
                              - fr_code_postal
                          - type: string
                            enum:
                              - au_postcode
                          - type: string
                            enum:
                              - ch_plz
                          - type: string
                            enum:
                              - at_plz
                      values:
                        type: array
                        items:
                          type: string
                    required:
                      - system
                      - values
                    additionalProperties: {}
            daypart_targets:
              type: array
              items:
                type: object
                properties:
                  days:
                    type: array
                    items:
                      anyOf:
                        - type: string
                          enum:
                            - monday
                        - type: string
                          enum:
                            - tuesday
                        - type: string
                          enum:
                            - wednesday
                        - type: string
                          enum:
                            - thursday
                        - type: string
                          enum:
                            - friday
                        - type: string
                          enum:
                            - saturday
                        - type: string
                          enum:
                            - sunday
                  start_hour:
                    type: number
                    minimum: 0
                    maximum: 23
                  end_hour:
                    type: number
                    minimum: 1
                    maximum: 24
                  label:
                    type: string
                required:
                  - days
                  - start_hour
                  - end_hour
                additionalProperties: {}
            axe_include_segment:
              type: string
            axe_exclude_segment:
              type: string
            audience_include:
              type: array
              items:
                type: string
            audience_exclude:
              type: array
              items:
                type: string
            signal_targeting_groups:
              type: object
              properties:
                operator:
                  type: string
                  enum:
                    - all
                groups:
                  type: array
                  items:
                    type: object
                    properties:
                      operator:
                        anyOf:
                          - type: string
                            enum:
                              - any
                          - type: string
                            enum:
                              - none
                      signals:
                        type: array
                        items:
                          type: object
                          properties:
                            pricing_option_id:
                              type: string
                            signal_agent_segment_id:
                              type: string
                            activation_key:
                              anyOf:
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - segment_id
                                    segment_id:
                                      type: string
                                  required:
                                    - type
                                    - segment_id
                                  additionalProperties: {}
                                - type: object
                                  properties:
                                    type:
                                      type: string
                                      enum:
                                        - key_value
                                    key:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                    - type
                                    - key
                                    - value
                                  additionalProperties: {}
                          additionalProperties: {}
                    required:
                      - operator
                      - signals
                    additionalProperties: {}
              required:
                - operator
                - groups
              additionalProperties: {}
            signal_targeting:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      signal_ref:
                        anyOf:
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - product
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - signal_id
                            additionalProperties: {}
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - data_provider
                              data_provider_domain:
                                type: string
                                pattern: >-
                                  ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - data_provider_domain
                              - signal_id
                            additionalProperties: {}
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - signal_source
                              signal_source_url:
                                type: string
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - signal_source_url
                              - signal_id
                            additionalProperties: {}
                      signal_id:
                        anyOf:
                          - type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - catalog
                              data_provider_domain:
                                type: string
                                pattern: >-
                                  ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                              id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - source
                              - data_provider_domain
                              - id
                            additionalProperties: {}
                          - type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - agent
                              agent_url:
                                type: string
                              id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - source
                              - agent_url
                              - id
                            additionalProperties: {}
                      value_type:
                        type: string
                        enum:
                          - binary
                      value:
                        type: boolean
                    required:
                      - value_type
                      - value
                    additionalProperties: {}
                  - type: object
                    properties:
                      signal_ref:
                        anyOf:
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - product
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - signal_id
                            additionalProperties: {}
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - data_provider
                              data_provider_domain:
                                type: string
                                pattern: >-
                                  ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - data_provider_domain
                              - signal_id
                            additionalProperties: {}
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - signal_source
                              signal_source_url:
                                type: string
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - signal_source_url
                              - signal_id
                            additionalProperties: {}
                      signal_id:
                        anyOf:
                          - type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - catalog
                              data_provider_domain:
                                type: string
                                pattern: >-
                                  ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                              id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - source
                              - data_provider_domain
                              - id
                            additionalProperties: {}
                          - type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - agent
                              agent_url:
                                type: string
                              id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - source
                              - agent_url
                              - id
                            additionalProperties: {}
                      value_type:
                        type: string
                        enum:
                          - categorical
                      values:
                        type: array
                        items:
                          type: string
                    required:
                      - value_type
                      - values
                    additionalProperties: {}
                  - type: object
                    properties:
                      signal_ref:
                        anyOf:
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - product
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - signal_id
                            additionalProperties: {}
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - data_provider
                              data_provider_domain:
                                type: string
                                pattern: >-
                                  ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - data_provider_domain
                              - signal_id
                            additionalProperties: {}
                          - type: object
                            properties:
                              scope:
                                type: string
                                enum:
                                  - signal_source
                              signal_source_url:
                                type: string
                              signal_id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - scope
                              - signal_source_url
                              - signal_id
                            additionalProperties: {}
                      signal_id:
                        anyOf:
                          - type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - catalog
                              data_provider_domain:
                                type: string
                                pattern: >-
                                  ^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$
                              id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - source
                              - data_provider_domain
                              - id
                            additionalProperties: {}
                          - type: object
                            properties:
                              source:
                                type: string
                                enum:
                                  - agent
                              agent_url:
                                type: string
                              id:
                                type: string
                                pattern: ^[a-zA-Z0-9_-]+$
                            required:
                              - source
                              - agent_url
                              - id
                            additionalProperties: {}
                      value_type:
                        type: string
                        enum:
                          - numeric
                      min_value:
                        type: number
                      max_value:
                        type: number
                    required:
                      - value_type
                    additionalProperties: {}
            frequency_cap:
              type: object
              properties:
                suppress:
                  type: object
                  properties:
                    interval:
                      type: number
                      minimum: 1
                    unit:
                      anyOf:
                        - type: string
                          enum:
                            - seconds
                        - type: string
                          enum:
                            - minutes
                        - type: string
                          enum:
                            - hours
                        - type: string
                          enum:
                            - days
                        - type: string
                          enum:
                            - campaign
                  required:
                    - interval
                    - unit
                  additionalProperties: {}
                suppress_minutes:
                  type: number
                  minimum: 0
                max_impressions:
                  type: number
                  minimum: 1
                per:
                  anyOf:
                    - type: string
                      enum:
                        - individuals
                    - type: string
                      enum:
                        - households
                    - type: string
                      enum:
                        - devices
                    - type: string
                      enum:
                        - accounts
                    - type: string
                      enum:
                        - cookies
                    - type: string
                      enum:
                        - custom
                window:
                  type: object
                  properties:
                    interval:
                      type: number
                      minimum: 1
                    unit:
                      anyOf:
                        - type: string
                          enum:
                            - seconds
                        - type: string
                          enum:
                            - minutes
                        - type: string
                          enum:
                            - hours
                        - type: string
                          enum:
                            - days
                        - type: string
                          enum:
                            - campaign
                  required:
                    - interval
                    - unit
                  additionalProperties: {}
              additionalProperties: {}
            property_list:
              type: object
              properties:
                agent_url:
                  type: string
                list_id:
                  type: string
                  minLength: 1
                auth_token:
                  type: string
              required:
                - agent_url
                - list_id
              additionalProperties: {}
            collection_list:
              type: object
              properties:
                agent_url:
                  type: string
                list_id:
                  type: string
                  minLength: 1
                auth_token:
                  type: string
              required:
                - agent_url
                - list_id
              additionalProperties: {}
            collection_list_exclude:
              type: object
              properties:
                agent_url:
                  type: string
                list_id:
                  type: string
                  minLength: 1
                auth_token:
                  type: string
              required:
                - agent_url
                - list_id
              additionalProperties: {}
            age_restriction:
              type: object
              properties:
                min:
                  type: number
                  minimum: 13
                  maximum: 99
                verification_required:
                  type: boolean
                accepted_methods:
                  type: array
                  items:
                    anyOf:
                      - type: string
                        enum:
                          - facial_age_estimation
                      - type: string
                        enum:
                          - id_document
                      - type: string
                        enum:
                          - digital_id
                      - type: string
                        enum:
                          - credit_card
                      - type: string
                        enum:
                          - world_id
              required:
                - min
              additionalProperties: {}
            device_platform:
              type: array
              items:
                anyOf:
                  - type: string
                    enum:
                      - ios
                  - type: string
                    enum:
                      - android
                  - type: string
                    enum:
                      - windows
                  - type: string
                    enum:
                      - macos
                  - type: string
                    enum:
                      - linux
                  - type: string
                    enum:
                      - chromeos
                  - type: string
                    enum:
                      - tvos
                  - type: string
                    enum:
                      - tizen
                  - type: string
                    enum:
                      - webos
                  - type: string
                    enum:
                      - fire_os
                  - type: string
                    enum:
                      - roku_os
                  - type: string
                    enum:
                      - unknown
            device_type:
              type: array
              items:
                anyOf:
                  - type: string
                    enum:
                      - desktop
                  - type: string
                    enum:
                      - mobile
                  - type: string
                    enum:
                      - tablet
                  - type: string
                    enum:
                      - ctv
                  - type: string
                    enum:
                      - dooh
                  - type: string
                    enum:
                      - unknown
            device_type_exclude:
              type: array
              items:
                anyOf:
                  - type: string
                    enum:
                      - desktop
                  - type: string
                    enum:
                      - mobile
                  - type: string
                    enum:
                      - tablet
                  - type: string
                    enum:
                      - ctv
                  - type: string
                    enum:
                      - dooh
                  - type: string
                    enum:
                      - unknown
            store_catchments:
              type: array
              items:
                type: object
                properties:
                  catalog_id:
                    type: string
                  store_ids:
                    type: array
                    items:
                      type: string
                  catchment_ids:
                    type: array
                    items:
                      type: string
                required:
                  - catalog_id
                additionalProperties: {}
            geo_proximity:
              type: array
              items:
                anyOf:
                  - type: object
                    properties:
                      lat:
                        type: number
                        minimum: -90
                        maximum: 90
                      lng:
                        type: number
                        minimum: -180
                        maximum: 180
                      label:
                        type: string
                      travel_time:
                        type: object
                        properties:
                          value:
                            type: number
                            minimum: 1
                          unit:
                            anyOf:
                              - type: string
                                enum:
                                  - min
                              - type: string
                                enum:
                                  - hr
                        required:
                          - value
                          - unit
                        additionalProperties: {}
                      transport_mode:
                        anyOf:
                          - type: string
                            enum:
                              - walking
                          - type: string
                            enum:
                              - cycling
                          - type: string
                            enum:
                              - driving
                          - type: string
                            enum:
                              - public_transport
                      ext:
                        type: object
                        properties: {}
                        additionalProperties: {}
                    required:
                      - lat
                      - lng
                      - travel_time
                      - transport_mode
                    additionalProperties: {}
                  - type: object
                    properties:
                      lat:
                        type: number
                        minimum: -90
                        maximum: 90
                      lng:
                        type: number
                        minimum: -180
                        maximum: 180
                      label:
                        type: string
                      transport_mode:
                        anyOf:
                          - type: string
                            enum:
                              - walking
                          - type: string
                            enum:
                              - cycling
                          - type: string
                            enum:
                              - driving
                          - type: string
                            enum:
                              - public_transport
                      radius:
                        type: object
                        properties:
                          value:
                            type: number
                          unit:
                            anyOf:
                              - type: string
                                enum:
                                  - km
                              - type: string
                                enum:
                                  - mi
                              - type: string
                                enum:
                                  - m
                        required:
                          - value
                          - unit
                        additionalProperties: {}
                      ext:
                        type: object
                        properties: {}
                        additionalProperties: {}
                    required:
                      - lat
                      - lng
                      - radius
                    additionalProperties: {}
                  - type: object
                    properties:
                      lat:
                        type: number
                        minimum: -90
                        maximum: 90
                      lng:
                        type: number
                        minimum: -180
                        maximum: 180
                      label:
                        type: string
                      transport_mode:
                        anyOf:
                          - type: string
                            enum:
                              - walking
                          - type: string
                            enum:
                              - cycling
                          - type: string
                            enum:
                              - driving
                          - type: string
                            enum:
                              - public_transport
                      geometry:
                        type: object
                        properties:
                          type:
                            anyOf:
                              - type: string
                                enum:
                                  - Polygon
                              - type: string
                                enum:
                                  - MultiPolygon
                          coordinates:
                            type: array
                            items: {}
                        required:
                          - type
                          - coordinates
                        additionalProperties: {}
                      ext:
                        type: object
                        properties: {}
                        additionalProperties: {}
                    required:
                      - geometry
                    additionalProperties: {}
            language:
              type: array
              items:
                type: string
            keyword_targets:
              type: array
              items:
                type: object
                properties:
                  keyword:
                    type: string
                    minLength: 1
                  match_type:
                    anyOf:
                      - type: string
                        enum:
                          - broad
                      - type: string
                        enum:
                          - phrase
                      - type: string
                        enum:
                          - exact
                  bid_price:
                    type: number
                    minimum: 0
                required:
                  - keyword
                  - match_type
                additionalProperties: {}
            negative_keywords:
              type: array
              items:
                type: object
                properties:
                  keyword:
                    type: string
                    minLength: 1
                  match_type:
                    anyOf:
                      - type: string
                        enum:
                          - broad
                      - type: string
                        enum:
                          - phrase
                      - type: string
                        enum:
                          - exact
                required:
                  - keyword
                  - match_type
                additionalProperties: {}
          additionalProperties: {}
        selectedAt:
          description: When the product was selected (ISO 8601)
          type: string
        groupId:
          description: Group ID where product was discovered
          type: string
        groupName:
          description: Name of the group
          type: string
      required:
        - productId
        - salesAgentId
        - selectedAt
        - groupId
        - groupName
      additionalProperties: false
    BudgetContextResponse:
      description: Budget allocation context
      type: object
      properties:
        sessionBudget:
          description: Total budget set for the session
          nullable: true
          type: number
        allocatedBudget:
          description: Budget allocated to selected products
          type: number
        remainingBudget:
          description: Remaining unallocated budget
          nullable: true
          type: number
        budgetWarning:
          description: Warning message if budget allocation has issues
          type: string
      required:
        - sessionBudget
        - allocatedBudget
        - remainingBudget
      additionalProperties: false
    ApiError:
      description: Structured error object
      type: object
      properties:
        code:
          description: Machine-readable error code
          type: string
        message:
          description: Human-readable error message
          type: string
        field:
          description: Field path associated with the error
          type: string
        details:
          description: Additional error context
          type: object
          additionalProperties: {}
      required:
        - code
        - message
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or access token

````