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

# Chat With Advisor

> Handle a chat request and return a structured AI advisor response.

Uses Mistral AI with the Scout personality to provide business insights.

Returns:
    AIAdvisorResponse: Advisor message, transaction metrics and summary, date range, optional warning, and timestamp.

Raises:
    HTTPException: with status 503 if AI backend (MISTRAL_API_KEY) is not configured; with status 500 for other internal errors.



## OpenAPI

````yaml https://api.loyalty.dog/openapi.json post /api/ai-advisor
openapi: 3.1.0
info:
  title: LoyaltyDog
  description: >-

    Welcome to the LoyaltyDog API! This API provides access to our loyalty
    program features, allowing you to integrate with various platforms and
    manage your loyalty data.


    Want to query LoyaltyDog via an AI assistant (Claude, Cursor, Windsurf)? See
    the [MCP Integration guide](https://loyaltydog.ai/playground#mcp).
        
  termsOfService: https://loyalty.dog/loyalty-program-terms-service
  contact:
    name: LoyaltyDog Support
    url: https://loyalty.dog/contact-us
    email: support@loyalty.dog
  version: 1.0.1
servers:
  - url: https://api.loyalty.dog
    description: Production
security:
  - bearerAuth: []
paths:
  /api/ai-advisor:
    post:
      tags:
        - AI Advisor
      summary: Chat With Advisor
      description: |-
        Handle a chat request and return a structured AI advisor response.

        Uses Mistral AI with the Scout personality to provide business insights.

        Returns:
            AIAdvisorResponse: Advisor message, transaction metrics and summary, date range, optional warning, and timestamp.

        Raises:
            HTTPException: with status 503 if AI backend (MISTRAL_API_KEY) is not configured; with status 500 for other internal errors.
      operationId: chat_with_advisor_api_ai_advisor_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AIAdvisorRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AIAdvisorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    AIAdvisorRequest:
      properties:
        message:
          type: string
          maxLength: 2000
          minLength: 1
          title: Message
        conversationHistory:
          items:
            $ref: '#/components/schemas/Message'
          type: array
          maxItems: 20
          title: Conversationhistory
        dateRangeOverride:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Daterangeoverride
        userId:
          anyOf:
            - type: string
            - type: 'null'
          title: Userid
        programId:
          anyOf:
            - type: string
            - type: 'null'
          title: Programid
        transactionSummary:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Transactionsummary
        transactionDetails:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
              maxItems: 100
            - type: 'null'
          title: Transactiondetails
        currencyCode:
          type: string
          title: Currencycode
          default: USD
        currencySymbol:
          type: string
          title: Currencysymbol
          default: $
      type: object
      required:
        - message
      title: AIAdvisorRequest
    AIAdvisorResponse:
      properties:
        response:
          type: string
          title: Response
        transactionCount:
          type: integer
          title: Transactioncount
        transactionSummary:
          additionalProperties: true
          type: object
          title: Transactionsummary
        dateRange:
          additionalProperties:
            type: string
          type: object
          title: Daterange
        warning:
          anyOf:
            - type: string
            - type: 'null'
          title: Warning
        timestamp:
          type: string
          title: Timestamp
      type: object
      required:
        - response
        - transactionCount
        - transactionSummary
        - dateRange
        - timestamp
      title: AIAdvisorResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Message:
      properties:
        role:
          type: string
          title: Role
        content:
          type: string
          title: Content
      type: object
      required:
        - role
        - content
      title: Message
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT access token obtained from POST /v2/token.

````