---
title: "Yelp AI API (Search & Chat)"
method: POST
path: "/ai/chat/v2"
tags: ["Businesses"]
---

# Yelp AI API (Search & Chat)

`POST /ai/chat/v2`

The Yelp AI API endpoint brings conversational intelligence to your applications, enabling users to ask natural language questions and receive real-time, contextually relevant answers powered by Yelp’s latest business data and reviews.

**Yelp AI API Features**
- **Next generation search & discovery** - Search with natural language, discover, and connect with contextually relevant businesses.
- **Multi-turn conversations** - Support back-and-forth interactions and refine queries with follow-up questions.
- **Direct business queries** - Ask targeted questions about businesses without needing to perform a prior search.
- **Conversational restaurant reservations** - Explore availability and book a table at restaurants through natural language interactions. (Please note that this feature is available on request only. To enable reservations, please <a href="https://business.yelp.com/data/products/fusion-ai/#form" target="_blank">contact us</a>.)
- **Instant quotes for home services** - Simply describe the service you need (like “I need quotes for fixing a leaking faucet”), and Yelp AI API instantly connects you with top local pros, so you receive multiple quotes from the best professionals for your job. (Currently in beta and not yet publicly available.)

🚀 **Try it now** - Test Yelp AI API for free in our **<a href="https://www.yelp.com/developers/fusion-ai/chat" target="_blank">playground</a>** and see real-time responses in action.

🛠️ For a detailed, step-by-step guide on integrating this endpoint into your application, check out the **<a href="https://docs.developer.yelp.com/docs/yelp-fusion-ai-api" target="_blank">Getting Started with Yelp AI API guide</a>**.

## Request body

- object — This object captures the user’s request to the Fusion AI Chat endpoint. It includes the conversational query, optional user context for more relevant results, and an optional chat_id for session continuity.
  - `query` string, required — • Natural language text for querying Yelp-specific information. • Accepts any prompt related to Yelp businesses, such as “Can you find a Thai restaurant near me?” • This should be plain text (no special formatting needed).
  - `chat_id` string — • Uniquely identifies the current conversation (chat session). • For the first request, set this to null or omit it; the API will respond with a new chat_id. • Use the returned chat_id on subsequent requests to continue the same conversation. • If omitted on subsequent requests, a new conversation is started. • If an invalid chat_id is provided, the request will fail.
  - `user_context` object — Contains optional location data (latitude and longitude) that can help the AI tailor results to a user’s location. If not provided and a location-based query is asked, the system may prompt the user to specify a location.
    - `latitude` number, float — • User’s approximate latitude. • If provided, it helps return more location-specific results. • Otherwise, the system may ask for location details if needed (e.g., for searches).
    - `longitude` number, float — • User's approximate longitude. • If provided, it helps return more location-specific results. • Otherwise, the system may ask for location details if needed.
  - `request_context` object — Contains optional settings that control how the API processes the request. These settings affect the response format and content generation behavior.
    - `skip_text_generation` boolean — • When set to true, skips LLM text generation and returns only structured data. • The response will contain empty text and tags, but all structured data (businesses, entities, types) will still be returned. • Useful for clients that only need structured data and want to reduce latency.

## Response `200`

A successful response

- object — Represents the AI Chat response returned by Yelp’s Fusion AI endpoint. It includes a conversational response, any structured data (entities) relevant to the query, and a chat_id for tracking the user session.
  - `chat_id` string, required — A unique Yelp-generated Chat ID that ties all requests to a specific conversation. • This remains the same if the user provided a valid chat_id in the request. • It is static throughout one session.
  - `response` object — Contains a contextually relevant response message for the user’s query: • Might be one or multiple sentences. • May include follow-up questions if needed (e.g. to request user’s location).
    - `text` string — The AI-generated textual response to the user’s query. For example, it may contain an answer, an additional prompt, or instructions to refine the query.
    - `tags` object[] — Additional metadata tags that provide context about the response. These tags can be used to enrich the response or display additional information.
      - `start` number — The start index of a particular style/information. e.g. highlight/business name/etc
      - `end` number — The end index of a particular style/information. e.g. highlight/business name/etc
      - `tag_type` string — The type of metadata tag. Valid values: • highlight - indicates a highlighted text in the response. • business - indicates the name of a business mentioned in the response.
      - `meta` object — Additional metadata that can provide more context about the tag. This can include information like business ID, category, or other relevant details.
  - `types` string[] — A list of response categories indicating the nature of the answer. Valid values: • business_search • business_question • clarification • unsupported • confirmation
  - `entities` object[] — Structured data corresponding to the businesses or other entities referenced in the AI response. If the response does not reference specific businesses, this array may be empty.
    - `businesses` object[] — A list of Yelp business objects that the AI response refers to. The data may be partially or fully populated depending on the nature of the query.
      - `id` string, required
      - `name` string, required — Name of this business.
      - `alias` string — Unique Yelp alias of this business. Can contain unicode characters. Example: 'yelp-san-francisco'. Also see <a href="https://docs.developer.yelp.com/docs/fusion-faq#whats-the-difference-between-the-yelp-business-id-and-business-alias" target="_blank">What's the difference between the Yelp business ID and business alias?</a>
      - `url` string — URL for business page on Yelp.
      - `location` object, required
        - `address1` unknown
        - `address2` unknown
        - `address3` unknown
        - `city` unknown
        - `state` unknown
        - `zip_code` unknown
        - `country` unknown
      - `coordinates` object, required — Coordinates of this business.
        - `latitude` number — Latitude position on map.
        - `longitude` number — Longitude position on map.
      - `review_count` integer — Number of reviews for this business.
      - `price` string — Price level of the business. Value is one of *$*, *$$*, *$$$* or *$$$$*.
      - `rating` number, double — Rating for this business (value ranges from 1, 1.5, ... 4.5, 5).
      - `categories` object[], required — A list of Yelp Categories
        - `alias` string — Alias of a category, when searching for business in certain categories, use alias rather than the title.
        - `title` string — Title of a category for display purpose.
      - `attributes` object, required — Various features or facilities provided by the business.
      - `phone` string — Phone number of the business.
      - `summaries` object, required — AI-generated textual summaries for this business. These are not specific to the user’s query.
        - `short` string — A short, typically single-sentence summary.
        - `medium` string — A medium-length summary (2–3 sentences).
        - `long` string — A more detailed paragraph-length summary.
      - `contextual_info` object — Additional context relevant to the user’s specific query, if applicable.
        - `summary` string — A contextual summary relevant to the user’s query. May be null if not applicable.
        - `review_snippets` object[] — Automatically selected short excerpts from user reviews, based on the query.
          - `review_id` string, required
          - `comment` string, required
          - `rating` number, double, required
          - `timestamp` integer
        - `business_hours` object[]
          - `day_of_week` string, required
          - `business_hours` object[], required
            - `open_time` string, required
            - `close_time` string, required
        - `photos` object[] — A list of Yelp-hosted photo objects.
          - `original_url` string, required
        - `review_snippet` string — A single representative snippet from a review.
        - `accepts_reservations_through_yelp` boolean — Whether the business accepts reservations through Yelp
        - `reservation_availability` object — Contains reservation availability information for the business. This field is only present if the business accepts reservations through Yelp.
          - `openings` object[], required — List of available reservation slots.
            - `date` string, date, required — Date in YYYY-MM-DD format
            - `slots` object[], required — Available reservation slots for this date
              - …
  - `request_a_quote_survey` object — Request a Quote survey information when the user is in a quote request flow. This field will be populated when the AI determines the user wants to request quotes from businesses for services.
    - `job_display_name` string, required — Display name for the job type
    - `status` 'in_progress' | 'awaiting_user_info' | 'awaiting_confirmation' | 'awaiting_submit_to_nearby' | 'submitted' | 'failed', required — Status of the Request a Quote survey
    - `questions` object[], required — List of survey questions
      - `text` string, required — The question text
      - `available_choices` string[] — List of available choices for the question
      - `only_accepts_choices` boolean — Whether the question only accepts predefined choices
      - `is_multi_select` boolean — Whether multiple choices can be selected
      - `required` boolean — Whether the question is required
      - `user_response` string[] — User's response to the question
    - `user_info` object
      - `first_name` string
      - `last_name` string
      - `email` string
      - `phone` string
      - `zip_code` string
    - `requested_biz_ids` string[] — List of encrypted business IDs requested for quotes
    - `num_matched_businesses` integer — Number of businesses matched for this request
    - `submit_to_nearby_businesses` boolean — Whether to submit quote request to nearby businesses

## Other responses

- `400` — Bad Request. Message varies depending on failure scenario
- `401` — The API key has either expired or doesn't have the required scopes to query this endpoint. | code | description | | ------------- | ------------- | | UNAUTHORIZED_API_KEY | The API key provided is not currently able to query this endpoint. | | TOKEN_INVALID | Invalid API key or authorization header. |
- `403` — unresolved $ref
- `404` — Resource Not Found
- `413` — The length of the request exceeded the maximum allowed
- `429` — You have either exceeded your daily quota, or have exceeded the queries-per-second limit for this endpoint. Try reducing the rate at which you make queries.
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/yelp/apis/businesses.md) · [All operations](https://skmtc.net/yelp/apis/businesses/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/yelp/businesses/revisions/d3f744f55ed7/schema)
