---
title: "Send a customer in-app assistant turn"
method: POST
path: "/v1/account/assistant/chat"
tags: ["Customer Account"]
---

# Send a customer in-app assistant turn

`POST /v1/account/assistant/chat`

## Request

- Base URL: `https://loppee.com`
- URL: `https://loppee.com/v1/account/assistant/chat`
- Auth: HTTP bearer

Originless first-party customer transport. Requires a verified active human customer bearer; API keys and browser cookies grant no access. Reuses the website engine and provider settings with shared per-invocation quotas and opaque customer location references. No model credential or private coordinates are returned.

## Request body

- object
  - `messages` object[], required
    - `role` 'user' | 'assistant', required
    - `content` string, required
  - `location` union: An opaque location reference from the website's own location controls. Omit or send null when no location is chosen.
    - object
      - `kind` 'current' | 'destination', required
      - `location_proof_id` string, uuid, required
    - object
      - `kind` 'saved', required
      - `saved_location_ref` string, required
  - `continuation` object, nullable: The continuation from the previous response, sent back unchanged to get the next results.
    - `search` string, required
    - `cursor` string, required

## Response `200`

Send a customer in-app assistant turn response

- object
  - `schema_version` '1.0', required
  - `reply` string, required
  - `results` object[], required
    - `subject_id` string, required
    - `source_type` 'published_profile' | 'unclaimed_registry_record' | 'registry_record', required
    - `business_id` string, nullable, required
    - `display_name` string, required
    - `category` string, required
    - `city` string, required
    - `state` string, required
    - `phone` string, nullable, required
    - `website` string, nullable, required
    - `distance_miles` number, nullable, required: Rounded to one decimal place. Null when no location was used.
    - `trust_class` 'verified' | 'listed' | 'registry', required
    - `trust_label` 'Verified' | 'Listed' | 'Registry record', required
    - `trust_disclosure` string, required
    - `review_summary` object, nullable, required
      - `rating` number, nullable, required
      - `count` number, required
    - `open_now` boolean, nullable, required
    - `public_profile_url` string, nullable, required
  - `has_more` boolean, required
  - `continuation` object, nullable, required
    - `search` string, required
    - `cursor` string, required
  - `actions` union[], required
    - union
      - object
        - `type` 'request_location' | 'refresh_location', required
        - `options` string[], required
      - object
        - `type` 'sign_in', required
        - `reason` 'saved_home' | 'save_business', required
      - object
        - `type` 'open_section', required
        - `section` 'saved_businesses' | 'jobs' | 'saved_jobs' | 'inbox' | 'account' | 'agents', required
      - object
        - `type` 'review_message', required
        - `business_id` string, required
        - `business_name` string, required
        - `subject` string, required
        - `message` string, required
  - `mode` 'assistant' | 'fallback', required: fallback: a direct search answered because the language model was unavailable.
  - `signed_in` boolean, required
  - `coordinates_returned` false, required
  - `disclosure` string, required

## Other responses

- `400`: ErrorResponse
- `401`: ErrorResponse
- `403`: ErrorResponse
- `404`: ErrorResponse
- `409`: ErrorResponse
- `413`: ErrorResponse
- `429`: RateLimitError
- `default`: ErrorResponse

---

[API](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents.md) · [All operations](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/revisions/37285f7cddcd?raw)
