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

# /preview/recommendation/search-conversational

> Retrieves a list of products recommended for the given user based on a conversation between a user and a partner's agent



## OpenAPI

````yaml https://api.criteo.com/preview/marketingsolutions/open-api-specifications.json post /preview/recommendation/search-conversational
openapi: 3.0.1
info:
  title: Criteo API
  description: Criteo API - MarketingSolutions
  version: Preview
servers:
  - url: https://api.criteo.com
security:
  - oauth: []
tags:
  - name: Advertiser
  - name: Analytics
  - name: Audience
  - name: Campaign
  - name: Catalog
  - name: Creative
  - name: Gateway
  - name: OnSiteRecommendation
  - name: Reco
paths:
  /preview/recommendation/search-conversational:
    post:
      tags:
        - OnSiteRecommendation
      summary: /preview/recommendation/search-conversational
      description: >-
        Retrieves a list of products recommended for the given user based on a
        conversation between a user and a partner's agent
      operationId: SearchRecommendedProductsConversational
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnSiteRecoRequestConversational'
        x-bodyName: request
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnSiteRecoResponse'
      security:
        - oauth:
            - MarketingSolutions_OnSiteRecommendation_Read
components:
  schemas:
    OnSiteRecoRequestConversational:
      required:
        - adSetId
        - conversation
        - nbRequestedProducts
        - partnerId
        - userId
      type: object
      properties:
        adId:
          type: integer
          description: >-
            Id of the Ad. This field is optional, it allows to setup Reco
            controls at Ad level.
          format: int32
        adSetId:
          type: integer
          description: >-
            Id of the AdSet. This field is optional and is resolved
            automatically for adsets previously configured.
          format: int32
        conversation:
          type: array
          items:
            $ref: '#/components/schemas/OnSiteRecoChatMessage'
          description: Conversation between the user and the agent.
        nbRequestedProducts:
          type: integer
          description: Amount of products to recommend.
          format: int32
        partnerId:
          type: integer
          description: Id of the partner.
          format: int32
        product:
          $ref: '#/components/schemas/ProductContext'
        userId:
          type: string
          description: Used to retrieve user events from Criteo trackers.
      description: Conversational recommendation request parameters
    OnSiteRecoResponse:
      type: object
      properties:
        extraInfos:
          type: array
          items:
            type: integer
            format: int32
          description: Additional information in case of warnings, errors...
          nullable: true
        products:
          type: array
          items:
            $ref: '#/components/schemas/RecommendedProduct'
          description: Recommended products
          nullable: true
      description: Recommendation response
    OnSiteRecoChatMessage:
      type: object
      properties:
        content:
          type: string
        role:
          type: string
      description: Chat message of conversation
    ProductContext:
      type: object
      properties:
        brand:
          type: string
          description: Product brand.
        category:
          type: string
          description: Google product category.
        color:
          type: string
          description: Product color.
        description:
          type: string
          description: Product description.
        name:
          type: string
          description: Product name.
        price:
          $ref: '#/components/schemas/ProductPrice'
        productId:
          type: string
          description: Unique identifier of the product matching Criteo Catalog Integration
        size:
          type: string
          description: Product size (e.g., M, 42, 500ml).
      description: >-
        Information about a product used as context for conversational
        recommendation
    RecommendedProduct:
      type: object
      properties:
        alternativeClickUrl:
          type: string
          description: >-
            Url leading to product details page and also used to track user
            click. It's relying on a custom product URL field in the catalog.
          nullable: true
        brand:
          type: string
          description: Product brand.
          nullable: true
        clickUrl:
          type: string
          description: >-
            Url leading to product details page and also used to track user
            click
          nullable: true
        description:
          type: string
          description: Product description.
          nullable: true
        googleCategory:
          type: string
          description: Product google category.
          nullable: true
        hasVariants:
          type: boolean
          description: Whether the product has variants available.
          nullable: true
        imageUrl:
          type: string
          description: Product image.
          nullable: true
        name:
          type: string
          description: Product name
          nullable: true
        price:
          type: number
          description: Product price.
          format: double
          nullable: true
        productExternalId:
          type: string
          description: Product external id. Same id than what is used in user events
          nullable: true
        relevanceLabel:
          enum:
            - Similar
            - Relevant
          type: string
          description: Product Relevance label
          nullable: true
        relevancyScore:
          type: number
          description: Product Relevancy score
          format: double
          nullable: true
        retailPrice:
          type: number
          description: Product retail price.
          format: double
          nullable: true
      description: Represents a recommended product.
    ProductPrice:
      type: object
      properties:
        amount:
          type: number
          description: Price amount.
          format: float
        currency:
          type: string
          description: Price currency in ISO 4217 format.
      description: Price information
  securitySchemes:
    oauth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.criteo.com/oauth2/token
          scopes: {}
        authorizationCode:
          authorizationUrl: https://api.criteo.com/oauth2
          tokenUrl: https://api.criteo.com/oauth2/token
          scopes: {}

````