# Yelp Developers Documentation ## Guides - [Getting Started](https://docs.developer.yelp.com/docs/getting-started.md) - [Yelp Partner APIs](https://docs.developer.yelp.com/docs/yelp-partner-apis.md) - [Overview](https://docs.developer.yelp.com/docs/overview.md) - [Yelp Places Authentication](https://docs.developer.yelp.com/docs/places-authentication.md) - [OAuth Authorization](https://docs.developer.yelp.com/docs/oauth-authorization.md) - [Authorization Code Workflow](https://docs.developer.yelp.com/docs/authorization-code-workflow.md) - [Refresh tokens](https://docs.developer.yelp.com/docs/refresh-tokens.md) - [Basic HTTP Authentication (partner-api.yelp.com)](https://docs.developer.yelp.com/docs/partner-apiyelpcom-basic-http-authentication.md) - [Getting Started with the Yelp Places API](https://docs.developer.yelp.com/docs/places-intro.md) - [Yelp Places API Plan Details](https://docs.developer.yelp.com/docs/plans.md) - [Rate Limiting](https://docs.developer.yelp.com/docs/places-rate-limiting.md) - [Additional Resources](https://docs.developer.yelp.com/docs/places-additional-resources.md) - [Frequently Asked Questions](https://docs.developer.yelp.com/docs/places-faq.md) - [Business Matching Guidance](https://docs.developer.yelp.com/docs/business-matching-guidance.md) - [Getting Started with Yelp AI API](https://docs.developer.yelp.com/docs/yelp-ai-api.md) - [Building an AI Agent for Local Search with Yelp AI API](https://docs.developer.yelp.com/docs/agentic_ai_api.md): A developer’s guide to creating an intelligent LLM-powered local business search agent using Yelp AI API. - [Integration Recipes](https://docs.developer.yelp.com/docs/basic-usage.md) - [Current Capabilities & Limitations](https://docs.developer.yelp.com/docs/current-capabilities-limitations.md) - [Request-a-Quote](https://docs.developer.yelp.com/docs/request-a-quote-runbook.md) - [Yelp Insights APIs](https://docs.developer.yelp.com/docs/yelp-insights.md) - [Respond to Reviews API](https://docs.developer.yelp.com/docs/respond-to-reviews-api-v2.md) - [Reviews Webhooks](https://docs.developer.yelp.com/docs/reviews-webhooks-v2.md) - [Policies](https://docs.developer.yelp.com/docs/policies.md) - [FAQs](https://docs.developer.yelp.com/docs/faqs.md): Please note that this information is only relevant for official Yelp partners that are integrated to our Respond to Reviews API. Here's a list of common questions and answers related to our Respond to Reviews and Retrieve Reviews APIs. Feel free to leave comments/questions if you have a topic that's not covered here already. - [Partner Feeds](https://docs.developer.yelp.com/docs/partner-feeds.md) - [Location Subscription API](https://docs.developer.yelp.com/docs/location-subscription-api-v2.md) - [Location Subscription API v1 (deprecated)](https://docs.developer.yelp.com/docs/location-subscription-api.md) - [Private Reviews API](https://docs.developer.yelp.com/docs/private-reviews-api.md) - [Engagement Metrics API](https://docs.developer.yelp.com/docs/engagement-metrics-api.md) - [Getting Started with Yelp GraphQL](https://docs.developer.yelp.com/docs/graphql-intro.md) - [Basic Usage](https://docs.developer.yelp.com/docs/graphql-basic-usage.md) - [Making Requests](https://docs.developer.yelp.com/docs/graphql-making-requests.md) - [Rate Limiting](https://docs.developer.yelp.com/docs/graphql-rate-limiting.md): GraphQL API Points-Based Daily Limit - [Localization](https://docs.developer.yelp.com/docs/graphql-localization.md) - [Supported Locales](https://docs.developer.yelp.com/docs/resources-supported-locales.md) - [State (Country Subdivision) Codes](https://docs.developer.yelp.com/docs/resources-state-codes.md) - [Categories](https://docs.developer.yelp.com/docs/resources-categories.md) - [Event Categories](https://docs.developer.yelp.com/docs/resources-event-categories.md) - [Guide to Webhooks](https://docs.developer.yelp.com/docs/webhooks.md) - [Data Ingestion API](https://docs.developer.yelp.com/docs/data-ingestion-api.md) - [Yelp Data Quality Guidelines](https://docs.developer.yelp.com/docs/yelp-data-quality-guidelines.md) - [Listing Management Subscription API](https://docs.developer.yelp.com/docs/listing-management-api.md) - [SMB Claiming API](https://docs.developer.yelp.com/docs/claiming.md) - [Claiming FAQs](https://docs.developer.yelp.com/docs/claiming-faq.md) - [Call to Action Best Practices](https://docs.developer.yelp.com/docs/ads-api-call-to-action-best-practices.md) - [Data Ingestion FAQs](https://docs.developer.yelp.com/docs/data-ingestion-faqs.md): Here's a list of common questions and answers related to our Data Ingestion APIs. Feel free to leave comments/questions if you have a topic that's not covered here already. - [Data Ingestion API Testing Guidelines](https://docs.developer.yelp.com/docs/api-testing-guidelines.md) - [FAQs](https://docs.developer.yelp.com/docs/faq.md) - [Ads API](https://docs.developer.yelp.com/docs/ads-api.md) - [FAQs](https://docs.developer.yelp.com/docs/ads-faqs.md): Here's a list of common questions and answers related to our advertising APIs. Feel free to leave comments/questions if you have a topic that's not covered here already. - [Program Feature API](https://docs.developer.yelp.com/docs/program-feature-api.md) - [Reporting API](https://docs.developer.yelp.com/docs/reporting-api.md) - [Reporting v2 to v3 Migration Guide](https://docs.developer.yelp.com/docs/reporting-v2-to-v3-migration-guide.md) - [Reporting API v2 (deprecated)](https://docs.developer.yelp.com/docs/reporting-api-v2-deprecated.md) - [Reporting v1 to v2 Changelog](https://docs.developer.yelp.com/docs/reporting-v1-to-v2-changelog.md) - [Reporting API Terms of Use](https://docs.developer.yelp.com/docs/reporting-api-terms-of-use.md) - [Partner Support API](https://docs.developer.yelp.com/docs/partner-support-api.md) - [Verified License Status Webhooks](https://docs.developer.yelp.com/docs/verified-license-status-webhooks.md) - [Leads API](https://docs.developer.yelp.com/docs/leads-api.md) - [Partner Integration Guide](https://docs.developer.yelp.com/docs/partner-integration-guide.md): End-to-end integration guide for the Yelp Leads API, covering authentication, webhooks, messaging flows, and testing. - [Leads API - Zapier Integration](https://docs.developer.yelp.com/docs/leads-api-zapier-integration.md): A step by step guide for a no/low code integration with Yelp Leads using Zapier. - [Leads Zapier Integration - Access Error When Testing](https://docs.developer.yelp.com/docs/leads-zapier-integration-access-error-when-testing.md): A description of a common error when testing your new Zapier integration with test lead data, as well as a workaround solution. - [Leads Webhooks](https://docs.developer.yelp.com/docs/leads-webhooks.md) - [Leads API FAQs](https://docs.developer.yelp.com/docs/leads-api-faqs.md): Here's a list of common questions and answers related to our Leads APIs. Feel free to leave comments/questions if you have a topic that's not covered here already. - [Phone Number Management API](https://docs.developer.yelp.com/docs/leads-api-copy-1.md) - [Lead Interaction](https://docs.developer.yelp.com/docs/lead-interaction.md): Detailed guide on how to manage communication for your Yelp Leads - [Migration Guide: Leads API Unmasked Phone Numbers](https://docs.developer.yelp.com/docs/migration-guide-unmasked-phone-numbers.md): Effective April 16, 2026 - [Yelp Leads Program Agreement](https://docs.developer.yelp.com/docs/yelp-leads-agreement.md) - [Yelp API Lead Acquisition Terms of Service](https://docs.developer.yelp.com/docs/yelp-api-lead-acquisition-terms-of-service.md) - [Conversions API](https://docs.developer.yelp.com/docs/conversions-api.md) - [Conversions API - Zapier](https://docs.developer.yelp.com/docs/conversions-api-zapier.md): A step by step guide for a no/low code integration with the Yelp Conversions API using Zapier. - [Overview](https://docs.developer.yelp.com/docs/yelp-platform.md) - [Checkout API](https://docs.developer.yelp.com/docs/checkout-api.md) - [Resources](https://docs.developer.yelp.com/docs/resources.md) - [Notifications](https://docs.developer.yelp.com/docs/notifications.md) - [API Errors](https://docs.developer.yelp.com/docs/api-errors.md) - [Fulfillment API](https://docs.developer.yelp.com/docs/fulfillment-api.md): This specifies the API that Partners must implement on their servers to provide real-time fulfillment availability checks for their services - for example, for checking if a restaurant delivers to a user-specified delivery address. This is an important step in the checkout flow and is a prerequisite check before Yelp lets the user build an order via the iframe to the Partner. - [Resources](https://docs.developer.yelp.com/docs/fulfillment-resources.md) - [Iframe Interactions](https://docs.developer.yelp.com/docs/iframe-interactions.md) - [API Specification](https://docs.developer.yelp.com/docs/iframe-api-specification.md) - [Iframe Style & Developer Guidelines](https://docs.developer.yelp.com/docs/iframe-style-developer-guidelines.md) - [Order Confirmation](https://docs.developer.yelp.com/docs/order-confirmation.md) - [Yelp Reservations API](https://docs.developer.yelp.com/docs/reservation.md) - [FAQ](https://docs.developer.yelp.com/docs/faq-1.md) - [Endpoints (deprecated)](https://docs.developer.yelp.com/docs/endpoints-4.md): This documentation is now deprecated, please head to the API reference section - Reservations API. - [Business Subscriptions API](https://docs.developer.yelp.com/docs/business-subscriptions-api.md) - [Changelog and Migration Guide](https://docs.developer.yelp.com/docs/business-subscriptions-migration-guide.md) - [Webhook Subscriptions](https://docs.developer.yelp.com/docs/webhook-subscriptions-migration-guide.md): This Migration Guide shows all the necessary steps to migrate from the Webhook Subscriptions API to the Business Subscriptions API. - [Listing Management](https://docs.developer.yelp.com/docs/listing-management-migration-guide.md): This Migration Guide shows all the necessary steps to migrate from the Listing Management API to the Business Subscriptions API. - [Location Subscriptions](https://docs.developer.yelp.com/docs/location-subscriptions.md): This Migration Guide shows all the necessary steps to migrate from the Location Subscriptions API to the Business Subscriptions API. - [Overview](https://docs.developer.yelp.com/docs/overview-1.md) - [Home Services API](https://docs.developer.yelp.com/docs/home-services-api.md) ## API Reference - [Yelp AI API (Search & Chat)](https://docs.developer.yelp.com/reference/v2_ai_chat.md): 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 contact us.) - **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 **playground** and see real-time responses in action. 🛠️ For a detailed, step-by-step guide on integrating this endpoint into your application, check out the **Getting Started with Yelp AI API guide**. - [Search](https://docs.developer.yelp.com/reference/v3_business_search.md): This endpoint returns up to 240 businesses with some basic information based on the provided search criteria. Explore our new Yelp AI API for conversational search experiences. Try it for free in our playground and see real-time conversational responses in action. **Note:** The API does not return businesses without any reviews. - [Phone Search](https://docs.developer.yelp.com/reference/v3_business_phone_search.md): This endpoint returns a list of businesses based on the provided phone number. It is possible for more than one business to have the same phone number (for example, chain stores with the same +1 800 phone number). Note: at this time, the API does not return businesses without any reviews. - [Business Match](https://docs.developer.yelp.com/reference/v3_business_match.md): This endpoint lets you match business data from other sources against businesses on Yelp, based on provided business information. For example, if you know a business's exact address and name, and you want to find that business only on Yelp. When should you use the Business Match endpoint? We have several endpoints that will return information on Yelp businesses. You should pick the endpoint to use based on how specific your input information is. * [Business Match endpoint](https://docs.developer.yelp.com/reference/v3_business_match) when you have precise info like name & address * [Business Search endpoint](https://docs.developer.yelp.com/reference/v3_business_search) when you have general info on the biz like name & location but don't know the address * [Phone Search endpoint](https://docs.developer.yelp.com/reference/v3_business_phone_search) when you only have the phone number or less confident about other matching criteria All of these endpoints return the same information about each business. **Note:** at this time, the API does not return businesses without any reviews. - [Business Details](https://docs.developer.yelp.com/reference/v3_business_info.md): This endpoint returns detailed business content. Normally, you would get the Business ID from [/v3/businesses/search](https://docs.developer.yelp.com/reference/v3_business_search), [/v3/businesses/search/phone](https://docs.developer.yelp.com/reference/v3_business_phone_search), [/v3/transactions/{transaction_type}/search](https://docs.developer.yelp.com/reference/v3_transaction_search) or [/v3/autocomplete](https://docs.developer.yelp.com/reference/v3_autocomplete). To retrieve review excerpts for a business, please refer to our Reviews endpoint ([/v3/businesses/{id}/reviews](https://docs.developer.yelp.com/reference/v3_business_reviews)) **Note:** at this time, the API does not return businesses without any reviews. - [Food Delivery Search](https://docs.developer.yelp.com/reference/v3_transaction_search.md): This endpoint returns a list of businesses which support requested transaction type. **Note:** * At this time, the API does not return businesses without any reviews. * Currently, this endpoint only supports food delivery in the US. - [Engagement Metrics](https://docs.developer.yelp.com/reference/v3_get_businesses_engagement.md): Returns engagement metrics information for the provided businesses.
This endpoint requires special permissions to be enabled for your Yelp Places API Key.
- [Service Offerings](https://docs.developer.yelp.com/reference/v3_business_service_offerings.md): Returns active and eligible service offerings for a business.
This endpoint requires special permissions to be enabled for your Yelp Places API Key.
- [Enable/Disable Request a Phone Call](https://docs.developer.yelp.com/reference/v3_business_rapc_enabledness.md): This endpoint lets you enable or disable Request a Phone Call for a particular business. Check whether the business is eligible using the [Get business by ID](https://docs.developer.yelp.com/reference/v3_business_info) endpoint and inspecting the *rapc* object. *Example*: To enable Request a Phone call for a Business with ID "loPSlzp6M628rzyCRPqrv3tC", send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) POST request to the URL: https://api.yelp.com/v3/businesses/loPSlzp6M628rzyCRPqrv3tC/rapc_enabledness with the following request body: ```json { "is_enabled": true, } ``` For the above request, a successful POST call will return a 202 accepted response. - [Business Insights](https://docs.developer.yelp.com/reference/v3_businesses_insights.md): Returns Business Insights information for the provided businesses. This endpoint is part of Yelp Insights API, visit Yelp Insights API to learn more. - [Food & Drinks Insights](https://docs.developer.yelp.com/reference/v3_get_business_food_and_drinks_insights.md): This endpoint returns the list of food & drinks offered at the business, including what is trending and the raw food ingredients needed. This endpoint is part of Yelp Insights API, visit Yelp Insights API to learn more. - [Risk Signal Insights](https://docs.developer.yelp.com/reference/v3_get_business_risk_signals_insights.md): Returns risk signal insights for the provided businesses. This endpoint is part of Yelp Insights API, visit Yelp Insights API to learn more. - [Reviews](https://docs.developer.yelp.com/reference/v3_business_reviews.md): This endpoint returns up to three review excerpts for a given business ordered by Yelp's default sort order. **Note:** at this time, the API does not return businesses without any reviews. To use this endpoint, make the GET request to the following URL with the ID of the business you want to get reviews for. Normally, you'll get the Business ID from /v3/businesses/search, /v3/businesses/search/phone, /v3/transactions/{transaction_type}/search or /v3/autocomplete. - [Review Highlights](https://docs.developer.yelp.com/reference/v3_business_review_highlights.md): Return a business's review highlights - [Event Search](https://docs.developer.yelp.com/reference/v3_events_search.md): Returns events that match search criteria - [Event Details](https://docs.developer.yelp.com/reference/v3_event.md): This endpoint returns the detailed information of a Yelp event. You can get the event ID from /events or /events/featured. - [Featured Event](https://docs.developer.yelp.com/reference/v3_featured_event.md): This endpoint returns the featured event for a given location. Featured events are chosen by Yelp's community managers. - [All Categories](https://docs.developer.yelp.com/reference/v3_all_categories.md): This endpoint returns all Yelp business categories across all locales by default. Include the "locale" parameter to filter to only those categories available for a particular locale, and translate/localize the names of those categories. - [Category Details](https://docs.developer.yelp.com/reference/v3_categories.md): This endpoint returns detailed information about the Yelp category specified by a Yelp category alias. The alias for each category can be found either by using the /v3/categories endpoint, or the category list. - [Get Jobs](https://docs.developer.yelp.com/reference/v3_get_jobs.md): This endpoint identifies the most relevant job types based on the end user's home service needs. By providing details about what the user is looking for, this endpoint returns multiple matching job types. From these, a single job type is selected and used as input for the Get Survey endpoint to continue the matching flow. - [Get Survey](https://docs.developer.yelp.com/reference/v3_job_survey.md): This endpoint returns a tailored set of questions and required information based on the provided job alias. This information must be collected from the end user in order to create a project submission. A project submission is how we match users with qualified home service providers — the more accurately this data is filled out, the higher the quality of the submission, leading to better and more relevant matches. - [Request a Quote](https://docs.developer.yelp.com/reference/v3_raq_submit_project.md): This endpoint allows users to request quotes from home service professionals for their specific needs. After submitting the project details and user contact information, a project is created and a unique project ID is returned. Yelp will then automatically match the request with relevant home service businesses and invite them to provide quotes. - [Autocomplete](https://docs.developer.yelp.com/reference/v3_autocomplete.md): This endpoint returns autocomplete suggestions for search keywords, businesses, and categories based on the input text. - [Get Access Token v2](https://docs.developer.yelp.com/reference/oauth2_token.md): Either: 1) Exchanges an authorization_code for an access_token, or 2) Exchanges a refresh_token for an access_token. See [Refresh Tokens](https://docs.developer.yelp.com/docs/refresh-tokens) for how this works - [Revoke Access Token](https://docs.developer.yelp.com/reference/oauth2_revoke.md): Revoke a given token. - [Get Access Token v3](https://docs.developer.yelp.com/reference/oauth2_token_v3.md): Either: 1) Exchanges an authorization_code for an access_token, or 2) Exchanges a refresh_token for an access_token. When exchanging a refresh_token for an access_token, also invalidates existing refresh_token and generates a new refresh_token. See [Refresh Tokens](https://docs.developer.yelp.com/docs/refresh-tokens) for how this works - [Business Update](https://docs.developer.yelp.com/reference/create_business_update_v1.md): The Yelp Data Ingestion API provides a means for partners to programmatically perform updates on a large number of businesses asynchronously. Partners can perform updates on various attributes. The businesses and fields that can be updated are contract-dependent. - [Job Status](https://docs.developer.yelp.com/reference/get_business_update_status_v1.md): Obtain the status of a Data Ingestion job and its individual parts. - [Claim Business](https://docs.developer.yelp.com/reference/claim_business_v1.md): SMB Claiming API provides a means to submit a business claim and to revoke a business claim on Yelp. - [Claim Status](https://docs.developer.yelp.com/reference/get_partner_biz_claim_status_v1.md): Obtain the claim status. You must first the [Job Status Endpoint](https://docs.developer.yelp.com/reference/get_business_update_status_v1) to see if the initial claim request succeeded. - [Retrieve subscriptions](https://docs.developer.yelp.com/reference/get_listing_management_subscriptions_v1.md): This endpoint returns a paginated list of active business subscriptions for Listing Management. - [Add subscriptions](https://docs.developer.yelp.com/reference/add_listing_management_subscriptions_v1.md): This endpoint creates new business subscriptions for Listing Management. - [Delete subscriptions](https://docs.developer.yelp.com/reference/remove_listing_management_subscriptions_v1.md): This endpoint deletes business subscriptions for Listing Management. - [Create Program](https://docs.developer.yelp.com/reference/create_reseller_program_v1.md): Creates a new program for a Yelp business - [Modify Program](https://docs.developer.yelp.com/reference/modify_reseller_program_v1.md): Modifies an existing program for a Yelp business - [Terminate Program](https://docs.developer.yelp.com/reference/end_reseller_program_v1.md): Deletes an existing program for a Yelp business - [Program Status](https://docs.developer.yelp.com/reference/get_reseller_status_v1.md): Obtain the status of an existing ingestion job - [Pause Program](https://docs.developer.yelp.com/reference/pause_reseller_program_v1.md): Pauses a running CPC program. This endpoint requires special configuration, please get in touch if you would like access. - [Resume Program](https://docs.developer.yelp.com/reference/resume_reseller_program_v1.md): Resume a paused CPC program. This endpoint requires special configuration, please get in touch if you would like access. - [Retrieve Program Feature](https://docs.developer.yelp.com/reference/retrieve_program_feature.md): Retrieve available and active features for the specified payment program. This endpoint returns the program features that are available for the specified program. For each available feature type, the `features` object will contain the corresponding `feature` object as described below. If the program does not support any of the available feature types the `features` object will be empty. ### LINK_TRACKING | Parameter | Type | Required | Description | --------- | ------------- | ------------- | ------------- | `website` | string or null | Yes | Tracking URL or parameter(s) for the website link | `menu` | string or null | Yes | Tracking URL or parameter(s) for the menu link | `url` | string or null | Yes | Tracking URL or parameter(s) for the CTA link ### NEGATIVE_KEYWORD_TARGETING | Parameter | Type | Required | Description | -------------------- | ---------------- | ----------- | ------------- | `suggested_keywords` | list of string | No | List of search terms for which your biz ad might be shown. **Please note:** This list consists of up to 25 possible keywords where your ad may appear. Those suggestions are based on common searches associated with the business category. The 25 suggestions are not exhaustive, your ad will also appear on searches not shown in the list of suggestions. | `blocked_keywords` | list of string | Yes | List of currently blocked keywords. You can use this field to update the list of terms you would like to block. **Please note:** You are allowed to add custom search terms outside of the suggested keywords list. Suggested keywords list is for guidance purposes. ### STRICT_CATEGORY_TARGETING | Parameter | Type | Required | Description | --------- | ------------- | ------------- | ------------- | `enabled` | bool | Yes ### AD_SCHEDULING | Parameter | Type | Required | Description | -------------------- | -------- | ----------- | ------------- | `uses_opening_hours` | bool | Yes | Should the ad only be delivered while the business is open?
i.e. if {'uses_opening_hours': true } and the business's hours are 8-5pm, a 6pm search wouldn't be eligible for this ad. ### CUSTOM_LOCATION_TARGETING | Parameter | Type | Required | Description | --------------------------- | ------------- | ------------| ------------- | `businesses` | list[object] | Yes | List of all businesses that are part of the ad campaign. | `businesses[].business_id` | string | Yes | Business ID | `businesses[].locations` | list[string] | Yes | List of 0 up to 25 locations. These locations can be zip codes, cities, neighbourhoods, counties or state names but must be within the US. ### AD_GOAL | Parameter | Type | Required | Description | --------- | ------------- | ------------- | ------------- | `ad_goal` | bool | Yes | Must be one of `DEFAULT`, `CALLS`, or `WEBSITE_CLICKS` ### CALL_TRACKING | Parameter | Type | Required | Description | ----------------------------------- | -------------- | ------------- | ------------- | `enabled` | bool | Yes | Indicates whether call tracking is enabled or disabled on a campaign level. | `businesses` | list[object] | Yes | List of all businesses that are part of the ad campaign. | `businesses[].business_id` | string | Yes | Business ID | `businesses[].metered_phone_number` | string or null | Yes | Phone number which will be used as a call tracking number for the provided business in the ad campaign. ### SERVICE_OFFERINGS_TARGETING **Note:** This feature was **deprecated** and removed, please use Negative Keyword Targeting instead. ### BUSINESS_HIGHLIGHTS | Parameter | Type | Required | Description | ---------------------------------------- | ------------------ | ----------- | ------------- | `active_business_highlights` | list[string] | Yes | Currently active business highlights enabled | `available_business_highlights` | list[string] | Yes | Valid business highlights available to select from | `mutually_exclusive_business_highlights` | list[list[string]] | Yes | Pairs of business highlights that can't be enabled together ### VERIFIED_LICENSE | Parameter | Type | Required | Description | ------------------------------------------------ | ----------- | ------------- | ------------- | `licenses[].license_number` | string | Yes | License number provided by issuing agency/authority | `licenses[].license_expiry_date` | string | No | License expiry date (format YYYY-MM-DD) | `licenses[].license_trade` | string | No | Business or trade for which a license was issued | `licenses[].license_issuing_agency` | string | No | Agency/authority that issued the license | `licenses[].license_verification_status` | string | Yes | License verification status, one of PENDING, VERIFIED or REJECTED | `licenses[].license_verification_failure_reason` | string | No | License verification failure reason ### CUSTOM_RADIUS_TARGETING | Parameter | Type | Required | Description | --------------- | ------------- | ------------- | ------------- | `custom_radius` | float | No | Radius in miles (1 to 60)
By default, custom_radius is null which means this feature is inactive. ### CUSTOM_AD_TEXT | Parameter | Type | Required | Description | ------------------ | ---------- | ----------- | ------------- | `custom_review_id` | string | No | Identifier of the review from which to extract the text. | `custom_text` | string | No | Custom text to be shown. *Note: Only one field can be set By default, this is set to null, which means the ad text is set by Yelp. ### CUSTOM_AD_PHOTO | Parameter | Type | Required | Description | ----------------- | ---------- | ------------- | ------------- | `custom_photo_id` | string | No | Identifier of the photo to show on the custom ad. ### BUSINESS_LOGO | Parameter | Type | Required | Description | ------------------- | ---------- | ----------- | ------------- | `business_logo_url` | string | No | URL to the business's brand logo if in use.
In POST, URL must be publicly accessible image file of type: jpeg / png / gif / tiff ### YELP_PORTFOLIO | Parameter | Type | Required | Description | ----------------------- | ------------- | ------------- | ------------- | `projects[].project_id` | string | Yes | Identifier of a project | `projects[].published` | boolean | Yes | Whether the project is published - [Add Program Feature](https://docs.developer.yelp.com/reference/add_program_feature.md): Set up or update program features for the specified payment program. This endpoint sets up feature types for the specified program by providing values for the available features in the request body - either all features types or any subset. The response of this endpoint is identical to the one from the GET endpoint and reflects the changes to the specified payment program if successful. If a feature_type key is passed to a program that does not support the requested feature type, an error message is returned. ### LINK_TRACKING | Parameter | Type | Required | Description | --------- | ------------- | ------------- | ------------- | `website` | string or null | Yes | Tracking URL or parameter(s) for the website link | `menu` | string or null | Yes | Tracking URL or parameter(s) for the menu link | `url` | string or null | Yes | Tracking URL or parameter(s) for the CTA link ### NEGATIVE_KEYWORD_TARGETING | Parameter | Type | Required | Description | -------------------- | ---------------- | ----------- | ------------- | `suggested_keywords` | list of string | No | List of search terms for which your biz ad might be shown. **Please note:** This list consists of up to 25 possible keywords where your ad may appear. Those suggestions are based on common searches associated with the business category. The 25 suggestions are not exhaustive, your ad will also appear on searches not shown in the list of suggestions. | `blocked_keywords` | list of string | Yes | List of currently blocked keywords. You can use this field to update the list of terms you would like to block. **Please note:** You are allowed to add custom search terms outside of the suggested keywords list. Suggested keywords list is for guidance purposes. ### STRICT_CATEGORY_TARGETING | Parameter | Type | Required | Description | --------- | ------------- | ------------- | ------------- | `enabled` | bool | Yes ### AD_SCHEDULING | Parameter | Type | Required | Description | -------------------- | -------- | ----------- | ------------- | `uses_opening_hours` | bool | Yes | Should the ad only be delivered while the business is open?
i.e. if {'uses_opening_hours': true } and the business's hours are 8-5pm, a 6pm search wouldn't be eligible for this ad. ### CUSTOM_LOCATION_TARGETING | Parameter | Type | Required | Description | --------------------------- | ------------- | ------------| ------------- | `businesses` | list[object] | Yes | List of all businesses that are part of the ad campaign. | `businesses[].business_id` | string | Yes | Business ID | `businesses[].locations` | list[string] | Yes | List of 0 up to 25 locations. These locations can be zip codes, cities, neighbourhoods, counties or state names but must be within the US. ### AD_GOAL | Parameter | Type | Required | Description | --------- | ------------- | ------------- | ------------- | `ad_goal` | bool | Yes | Must be one of `DEFAULT`, `CALLS`, or `WEBSITE_CLICKS` ### CALL_TRACKING | Parameter | Type | Required | Description | ----------------------------------- | -------------- | ------------- | ------------- | `enabled` | bool | Yes | Indicates whether call tracking is enabled or disabled on a campaign level. | `businesses` | list[object] | Yes | List of all businesses that are part of the ad campaign. | `businesses[].business_id` | string | Yes | Business ID | `businesses[].metered_phone_number` | string or null | Yes | Phone number which will be used as a call tracking number for the provided business in the ad campaign. ### SERVICE_OFFERINGS_TARGETING **Note:** This feature was **deprecated** and removed, please use Negative Keyword Targeting instead. ### BUSINESS_HIGHLIGHTS | Parameter | Type | Required | Description | ---------------------------------------- | ------------------ | ----------- | ------------- | `active_business_highlights` | list[string] | Yes | List of desired business highlights to set Business Highlights with parameters and examples of the format they must be sent to the POST endpoint. This is also the format that the GET endpoint returns these Business Highlights in: X_EMPLOYEES: (e.g. 10_EMPLOYEES) XX_YEARS_IN_BUSINESS (eg. 15_YEARS_IN_BUSINESS) ESTABLISHED_IN_XXXX (e.g. ESTABLISHED_IN_1990) ### VERIFIED_LICENSE | Parameter | Type | Required | Description | ------------------------------------------------ | ----------- | ------------- | ------------- | `licenses[].license_number` | string | Yes | License number provided by issuing agency/authority | `licenses[].license_expiry_date` | string | No | License expiry date (format YYYY-MM-DD) | `licenses[].license_trade` | string | No | Business or trade for which a license was issued | `licenses[].license_issuing_agency` | string | No | Agency/authority that issued the license Note 1. Each POST `VERIFIED_LICENSE` appends to the existing licenses stored 2. If you need to edit a license use the same `license_number` and the other fields will be overwritten for that license 3. You can send multiple licenses in one request ### CUSTOM_RADIUS_TARGETING | Parameter | Type | Required | Description | --------------- | ------------- | ------------- | ------------- | `custom_radius` | float | No | Radius in miles (1 to 60)
By default, custom_radius is null which means this feature is inactive. ### CUSTOM_AD_TEXT | Parameter | Type | Required | Description | ------------------ | ---------- | ----------- | ------------- | `custom_review_id` | string | No | Identifier of the review from which to extract the text. | `custom_text` | string | No | Custom text to be shown. *Note: Only one field can be set By default, this is set to null, which means the ad text is set by Yelp. ### CUSTOM_AD_PHOTO | Parameter | Type | Required | Description | ----------------- | ---------- | ------------- | ------------- | `custom_photo_id` | string | No | Identifier of the photo to show on the custom ad. ### BUSINESS_LOGO | Parameter | Type | Required | Description | ------------------- | ---------- | ----------- | ------------- | `business_logo_url` | string | No | URL to the business's brand logo if in use.
In **POST**, URL must be publicly accessible image file of type: jpeg / png / gif / tiff ### YELP_PORTFOLIO | Parameter | Type | Required | Description | ----------------------- | ------------- | ------------- | ------------- | `projects[].project_id` | string | Yes | Identifier of a project | `projects[].published` | boolean | Yes | Whether the project is published - [Delete Program Feature](https://docs.developer.yelp.com/reference/delete_program_feature.md): Delete certain program features from the specified payment program. This endpoint allows deleting particular feature types from the specified payment program. The feature types that have to be deleted are provided as an array value to the `features` key in the request object. The response is identical to the one returned by the GET endpoint and will contain all the feature property values set to their disabled states (e.g. `null`). ### VERIFIED_LICENSE You can remove all the license with the above method or you can use the `disabled_licenses` field to delete a single license: ```bash curl \ -X DELETE -H 'Content-Type: application/json' \ --user "{username}:{password}" \ -d '{"features":["VERIFIED_LICENSE"],"disable_licenses":["license_num_to_delete"]}' \ https://partner-api.yelp.com/program/hmPSQN_57dtcE9fUJvWTDw/features/v1 ``` ### BUSINESS_PORTFOLIO You can delete all portfolio projects related to a program by sending a DELETE request. ```bash curl \ -X DELETE -H 'Content-Type: application/json' \ --user "{username}:{password}" \ -d '{"features":["BUSINESS_PORTFOLIO"]}' \ https://partner-api.yelp.com/program/hmPSQN_57dtcE9fUJvWTDw/features/v1 ``` - [Retrieve Portfolio Project Info](https://docs.developer.yelp.com/reference/retrieve_portfolio_project_info.md): Get information about a portfolio project. - [Update Portfolio Project](https://docs.developer.yelp.com/reference/update_portfolio_project.md): Update an existing project portfolio. | Parameter | Accepted values | Note | -------------- | ---------------------------------------------------------------------------------------------------------- | ------- | call_to_action | MTB, WEBSITE, PHONE, NONE | | cost | LESS_THAN_100, 100_TO_300, 300_TO_1K, 1K_TO_5K, 5K_TO_10K, 10K_TO_20K, 20K_TO_35K, MORE_THAN_35K | | duration | LESS_THAN_1_DAY, 1_TO_7_DAYS, 1_TO_2_WEEKS, 2_TO_4_WEEKS, 1_TO_2_MONTHS, 2_TO_3_MONTHS, MORE_THAN_3_MONTHS | - [Delete Portfolio Project](https://docs.developer.yelp.com/reference/delete_portfolio_project.md): Delete a portfolio project. - [Create a portfolio project draft](https://docs.developer.yelp.com/reference/create_portfolio_project_draft.md): Create a new project draft. - [Get Portfolio Photos](https://docs.developer.yelp.com/reference/get_portfolio_photos.md): Get all photos belonging to a portfolio project. - [Upload Portfolio Photos](https://docs.developer.yelp.com/reference/upload_portfolio_photos.md): Upload photos to a portfolio project. ## Notes: * The first uploaded photo will be the cover photo. * Either provide an existing biz photo ID or a link to the URL * the `is_before_photo` field adds a "before" label to the photo - [Delete Portfolio Photo](https://docs.developer.yelp.com/reference/delete_portfolio_photo.md): Delete a photo from a portfolio project. - [Request Daily Report](https://docs.developer.yelp.com/reference/create_daily_reports_v2.md): Requests a report containing daily business/advertiser metrics for a specified list of businesses over a date range. Daily metrics can be requested up to 89 days ago. - [Get Daily Report](https://docs.developer.yelp.com/reference/get_daily_reports_v2.md): Fetches the daily report associated with {report_id}. - [Request Monthly Report](https://docs.developer.yelp.com/reference/create_monthly_reports_v2.md): Requests a report containing monthly business/advertiser metrics for a specified list of businesses over a date range. Monthly business metrics can be requested up to 2 months ago. - [Get Monthly Report](https://docs.developer.yelp.com/reference/get_monthly_reports_v2.md): Fetches the monthly report associated with {report_id}. - [Request Daily Report](https://docs.developer.yelp.com/reference/create_daily_reports_v3.md): Requests a report containing daily business/advertiser metrics for a specified list of businesses over a date range. The start date can be up to 730 days (2 years) ago, and the date range (end minus start) cannot exceed 89 days. Use [get_daily_reports_v3](https://docs.developer.yelp.com/reference/get_daily_reports_v3) to poll for report completion and retrieve the report. - [Get Daily Report](https://docs.developer.yelp.com/reference/get_daily_reports_v3.md): Fetch the daily report associated with {report_id}. - [Request Monthly Report](https://docs.developer.yelp.com/reference/create_monthly_reports_v3.md): Requests a report containing monthly business/advertiser metrics for a specified list of businesses over a date range. The start month can be up to 730 days (2 years) ago, and the date range cannot exceed 3 months. Use [get_monthly_reports_v3](https://docs.developer.yelp.com/reference/get_monthly_reports_v3) to poll for report completion and retrieve the report. - [Get Monthly Report](https://docs.developer.yelp.com/reference/get_monthly_reports_v3.md): Fetch the monthly report associated with {report_id}. - [Program List All](https://docs.developer.yelp.com/reference/get_program_list_all.md): Returns the entire list of past, current and future advertising programs under a given payment account with info for each program (status, start/end date). - [Business Info](https://docs.developer.yelp.com/reference/get_business_info.md): Given a list of Yelp business ids, this API returns business information, including business migration information and additional fields such as partner_business_id and cta values for all given businesses. - [Business Migration Info](https://docs.developer.yelp.com/reference/get_business_migration_info.md): Given a list of Yelp business ids, this API provides information about the migration paths of all given businesses. - [Program List](https://docs.developer.yelp.com/reference/get_program_list.md): Given a list of business ids, this API returns the list of past, current and future advertising programs with info for each program (status, start/end date) for every business id. - [Program Info](https://docs.developer.yelp.com/reference/get_program_info.md): Given a list of Yelp program ids, this API returns detailed information about the advertising programs. - [Add Business IDs](https://docs.developer.yelp.com/reference/add_business_subscriptions_v2.md) - [Remove Business IDs](https://docs.developer.yelp.com/reference/remove_business_subscriptions_v2.md) - [Get Quota](https://docs.developer.yelp.com/reference/get_quota_v2.md) - [Get Subscribed Business List](https://docs.developer.yelp.com/reference/get_business_subscriptions_v2.md) - [Get Access Token](https://docs.developer.yelp.com/reference/redeem_authorization_code_for_access_token.md): Using the authorization code assigned to the business user, this endpoint will send back an access token. - [Respond to Review](https://docs.developer.yelp.com/reference/create_review_response.md): Create a new review response. - [Retrieve Business Owner Information](https://docs.developer.yelp.com/reference/retrieve_business_owner_information-1.md): Retrieve information about the business owner associated with the given access token. - [Get Businesses](https://docs.developer.yelp.com/reference/get_businesses_associated_with_access_token.md): Get the businesses associated with an access token. Authenticate this endpoint with the access token for which to fetch businesses for. - [Create Order](https://docs.developer.yelp.com/reference/create_order.md): This creates a Yelp Checkout Order and is to be called after the user builds and submits his/her order on the iframe. This call returns a `yelp_order_id`. In other words, the iframe POST goes to the Partner server, where the user's request can be processed however necessary by the Partner. Immediately following this, the Partner must POST to the above URL to communicate to Yelp the details of the Order. In return, Yelp will give the Partner a yelp_order_id. See [Order](https://docs.developer.yelp.com/docs/resources#section-order) resource for more info. - [Update Order](https://docs.developer.yelp.com/reference/update_order.md): Update an existing Yelp Checkout Order by passing a Order object as the Partner wishes it to be. Fields that cannot be updated: `yelp_order_id`, `service`, `billing_type`, `partner_business_id`, `collection_type`. These must be included as part of the Order object, but should match those passed when the order was created. This operation is asynchronous, in that only basic sanity checking is done at the time the update request is submitted to Yelp, and, barring failure of those, the operation immediately returns an HTTP 200 response that includes the `yelp_order_id` and an `order_request_id`, which is a unique identifier for this partner request. Once submitted, Yelp will attempt to process this update request, including re-examining transactions associated with the order. The final success or failure of the operation is then delivered to the Partner by POSTing an `OrderStatusChangeNotification` to the `notification_url` provided at order creation time. This notification will include the matching `order_request_id` given to the Partner when the request was submitted. A Yelp Checkout Order may be updated before and after charges are made. However, only one update request may be outstanding at a time. That is, a Partner cannot submit a second update request before an `OrderStatusChangeNotification` is received for the first. On every update call, all transactions on the Order are re-examined and possibly cancelled or replaced by up-to-date transactions. See [Order](https://docs.developer.yelp.com/docs/resources#section-order) resource for more info. - [Cancel Order](https://docs.developer.yelp.com/reference/cancel_order.md): Cancel a Yelp Checkout Order. This can be called anytime after an order is created. Any associated credit card auths will be cancelled, and any charges refunded. The order will transition into a cancelled state and no further actions can be performed on the order. Like `/update`, this operation is asynchronous as well. That is, after passing basic sanity checks, it immediately returns an HTTP 200 response that includes the `yelp_order_id` and an `order_request_id`, which will later be included as part of the partner notification that will notify the partner of the success or failure of the cancel request. Any amount that has been collected by Yelp minus the `cancellation_fee` will be refunded to the user before the Order transitions to the cancelled state. This implies that Yelp may charge the user credit card if the amount thus far collected is not sufficient to cover the `cancellation_fee`. The Partner should call `/cancel` whenever the Order becomes invalid, for instance: * when user cancels the Order via Partner or business * when the Order can not be fulfilled because business closed or depleted inventory * when the reservation timeslot is no longer available * when user cancels through Yelp and a cancellation policy applies, the order will transition to a temporary state and await to go to `CANCEL_PENDING` The partner must call `/cancel` to bring the order to a canceled state and charge/refund CC if needed: * when business through the partner reports a "no show" for an appointment. The Partner may specify a cancellation fee if the user needs to pay to cancel the order. Orders that have stayed in the "pending_user_submit" state for longer than two weeks will be auto-cancelled by Yelp. Although the request body only contains optional fields, the body itself MUST both be sent and be valid JSON. If you wish to specify none of the optional request arguments, simply encode an empty JSON object. ## cancellation_fee This is the net amount that Yelp is to charge the user for cancelling this order. Yelp will ensure that the specified amount is ultimately charged to the user (assuming we can collect on the CC). Here are some examples for illustration: CC hold case, cancellation fee $0 - the business owner does not wish to charge a fee CC hold case, cancellation fee $100 - the business owner wants to charge $100 for cancellation Deposit $100, cancellation fee $0 - the business owner does not wish to charge a fee, so Yelp will refund the $100 Deposit $100, cancellation fee $100 - the business owner wishes to retain the deposit, Yelp does not need to do anything wrt to CC charges, just bring the order to CANCELLED state. Deposit $100, cancellation fee $25 - the business owner only wishes to charge $25 for the cancellation, so yelp will refund $75 back to CC - [Get Order Status](https://docs.developer.yelp.com/reference/get_order_status.md): Get the status of a Yelp Checkout Order. Partner Server is free to poll the status of an order at any time. It will also be provided as part of the `OrderStatusChangeNotification`. See [OrderStatus](https://docs.developer.yelp.com/docs/resources#orderstatus) resource for more info. - [Update Order Status](https://docs.developer.yelp.com/reference/update_order_status.md): **This API is only for specific food partners.** This allows a status update to an order. This call returns a status code which indicates if the request was successful. A notification will not be sent in the following scenarios: * The order was made over 3 hours ago * The same notification (same `yelp_order_id` and the `confirmation_type`) has already been sent * An ETA is provided and the notification is being sent past the ETA * An `order_confirmed` update is trying to be sent after a `deliver_in_progress` notification - [Get Opportunity](https://docs.developer.yelp.com/reference/get_opportunity.md): Get info that user provided (e.g. customer address) when they were checking if business can service them (e.g. business delivers to their address or has a reservation time slot). The `opportunity_id` is provided to the Partner via the iframe URL and is the same token provided to the Partner when Yelp POSTs the user's customer address to check for delivery availability. This call is optional if the Partner temporarily caches the customer_address and opportunity token during the delivery availability check. See [Opportunity](https://docs.developer.yelp.com/docs/resources#opportunity) resource for more info. - [Get Status Change Notifications](https://docs.developer.yelp.com/reference/get_status_change_notifications.md): Get status change notifications associated with a Yelp Checkout Order, ordered by most recent first. See [OrderStatusNotification](https://docs.developer.yelp.com/docs/resources#orderstatuschangenotification) resource for more info. - [Get User Fulfillment Info](https://docs.developer.yelp.com/reference/get_user_fulfillment_info.md): Get user-provided information for delivery or fulfillment purposes. This may only be called after the user submitted their billing or fulfillment info on Yelp's checkout page (i.e. Order status needs to be anything but `pending_user_submit`). This depends on what the Partner specified for the Order's service type. For example, for Orders of `at_customer` this may be `customer_address` and `phone`. See [FulfillmentUserInfo](https://docs.developer.yelp.com/docs/resources#fulfillmentuserinfo) for more info. - [Get Lead](https://docs.developer.yelp.com/reference/get-lead.md): Returns details for a given Lead ID. Example: To fetch the details for a lead with the ID `jPlz8TM628rzyCRPqrtcvm`, send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) GET request to the following URL: https://api.yelp.com/v3/leads/jPlz8TM628rzyCRPqrtcvm A sample response is shown in the example response box on the right under "200 - Lead" - [Get Lead Events](https://docs.developer.yelp.com/reference/get-lead-events.md): Returns the latest events belonging to a given Lead ID. ## Example To fetch the events belonging to a lead with the ID "jPlz8TM628rzyCRPqrtcvm", send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) GET request to the following URL: ``` https://api.yelp.com/v3/leads/jPlz8TM628rzyCRPqrtcvm/events ``` For the above request, a successful GET call would return the lead events if they exist in our system. A sample response is shown in the example response box on the right under "200 - Events" ## Order and Pagination The order of events will be shown as it appears on Yelp, where the last message in the list represents the latest message in the conversation. Although the order will mostly follow the `time_created` field, it may deviate for certain events. You can control the number of events returned using the `limit` parameter, and paginate through events using the `older_than_cursor` and `newer_than_cursor` parameters. - **`limit`**: Defines the maximum number of events to return in a single response. The default is 20. - **`older_than_cursor`**: Fetches events that occurred before the event identified by the given cursor value. - **`newer_than_cursor`**: Fetches events that occurred after the event identified by the given cursor value. ### Example Using simplified API responses. #### Assuming the following Message view on Yelp: \> `Consumer Message 1`       `Biz Response 1` < \>`Consumer Message 2`       `Biz Response 2` < \>`Consumer Message 3` #### API Responses ##### No limit parameter Notice how the latest event is the last entry in the array of events. ```json [ { "event_content": {"text": "Consumer Message 1", ...}, "cursor": "cursor1", ...}, { "event_content": { "text": "Biz Response 1", ... }, "cursor": "cursor2", ... }, { "event_content": { "text": "Consumer Message 2", ... }, "cursor": "cursor3", ... }, { "event_content": { "text": "Biz Response 2", ... }, "cursor": "cursor4", ... }, { "event_content": { "text": "Consumer Message 3", ... }, "cursor": "cursor5", ... } ] ``` ##### limit=1 Only the latest event shown on Yelp is returned. ```json [ { "event_content": { "text": "Consumer Message 3", ... }, "cursor": "cursor5", ... } ] ``` ##### limit=2 Only the latest 2 events shown on Yelp are returned. ```json [ { "event_content": { "text": "Biz Response 2", ... }, "cursor": "cursor4", ... }, { "event_content": { "text": "Consumer Message 3", ... }, "cursor": "cursor5", ... } ] ``` ##### Using `newer_than_cursor` **Request:** ``` GET /v3/leads/{ID}/events?limit=2&newer_than_cursor=cursor1 ``` **Response:** ```json [ { "event_content": { "text": "Biz Response 1", ... }, "cursor": "cursor2", ... }, { "event_content": { "text": "Consumer Message 2", ... }, "cursor": "cursor3", ... }, ] ``` ##### Using `older_than_cursor` **Request:** ``` GET /v3/leads/{ID}/events?limit=2&older_than_cursor=cursor5 ``` **Response:** ```json [ { "event_content": { "text": "Consumer Message 2", ... }, "cursor": "cursor3", ... }, { "event_content": { "text": "Biz Response 2", ... }, "cursor": "cursor4", ... }, ] ``` **Request with No Events Before Cursor:** ``` GET /v3/leads/{ID}/events?limit=2&older_than_cursor=cursor1 ``` **Response:** ```json [] ``` #### How to Obtain Cursor Values 1. **Initial API Call**: Make a request without cursor parameters to retrieve the most recent events. 2. **Extract Cursors**: From the response, extract the `cursor` values from the events you're interested in. 3. **Subsequent Calls**: Use these cursor values with `older_than_cursor` or `newer_than_cursor` in your next request to fetch adjacent events. - [Write Event](https://docs.developer.yelp.com/reference/write-lead-event.md): Create an event in an existing lead. An event represents any interaction that the caller wants to do in an existing lead. Currently, only text messages are supported. *Example*: To write a message in the lead with the ID "jPlz8TM628rzyCRPqrtcvm", send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) POST request to the URL: https://api.yelp.com/v3/leads/jPlz8TM628rzyCRPqrtcvm/events with the following request body: ```json { "request_content": "The text message you want to send", "request_type": "TEXT" } ``` For the above request, a successful POST call will return a 201 created response. - [Mark Lead as replied](https://docs.developer.yelp.com/reference/mark-lead-as-replied.md): Mark an existing lead as replied through a specified reply medium. *Example*: To mark a lead with the ID "loPSlzp6M628rzyCRPqrv3tC" as replied through phone, send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) POST request to the URL: https://api.yelp.com/v3/leads/loPSlzp6M628rzyCRPqrv3tC/mark_as_replied with the following request body: ```json { "reply_type": "PHONE", } ``` For the above request, a successful POST call will return a 201 created response. - [Mark Lead Event as read](https://docs.developer.yelp.com/reference/mark-lead-event-as-read.md): Mark an existing lead event and all events before that as read. *Example*: To mark all events before and including the event ID "NJJQvyxvpk87NUpsm2y5Yw" as read at "2022-07-21T20:54:42+00:00", in the lead with the ID "loPSlzp6M628rzyCRPqrv3tC", send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) POST request to the URL: https://api.yelp.com/v3/leads/loPSlzp6M628rzyCRPqrv3tC/events/mark_as_read with the following request body: ```json { "event_id": "NJJQvyxvpk87NUpsm2y5Yw", "time_read": "2022-07-21T20:54:42+00:00" } ``` For the above request, a successful POST call will return a 201 created response. - [Get Lead IDs for a Business](https://docs.developer.yelp.com/reference/get-lead-ids-for-business.md): Returns the lead IDs for a given Business ID. Example: To fetch the lead IDs for a business with the ID `VXi7gzRqPKp63X0u6fUtbg`, send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) GET request to the following URL: https://api.yelp.com/v3/businesses/VXi7gzRqPKp63X0u6fUtbg/lead_ids A sample response is shown in the example response box on the right under "200 - Lead IDs" - [Get Lead Metrics](https://docs.developer.yelp.com/reference/get-lead-metrics.md): Returns the metrics belonging to a given Lead ID. ## Example To fetch the metrics belonging to a lead with the ID "jPlz8TM628rzyCRPqrtcvm", send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) GET request to the following URL: ``` https://api.yelp.com/v3/leads/jPlz8TM628rzyCRPqrtcvm/metrics ``` For the above request, a successful GET call would return the lead metrics if they exist in our system. A sample response is shown in the example response box on the right under "200 - Metrics" #### API Responses ```json { "metrics": { "cost_per_lead": { "value": 0, "currency_code": "USD" } } } ``` - [Get Phone Numbers](https://docs.developer.yelp.com/reference/get-phone-numbers.md): Returns the configured outbound phone numbers. Includes the client's inbound phone number only when this capability is enabled for the client. Outbound phone numbers are allowed to call consumer phone numbers to reach customers, whereas the inbound phone number receives calls from consumers. Note: This endpoint is only required for legacy masked phone number leads before 16th April 2026 - [Add Phone Numbers](https://docs.developer.yelp.com/reference/add-phone-numbers.md): Add outbound phone numbers and/or set an inbound phone number. Inbound phone number is only supported when this capability is enabled for the client. When setting up for the first time (no existing phone masking configuration), the inbound phone number is required. For subsequent requests, the inbound phone number is optional. Outbound phone numbers are allowed to call consumer phone numbers to reach customers, whereas the inbound phone number receives calls from consumers. Note: This endpoint is only required for legacy masked phone number leads before 16th April 2026 - [Remove Phone Numbers](https://docs.developer.yelp.com/reference/remove-phone-numbers.md): Remove outbound phone numbers. These phone numbers will no longer be allowed to call consumer numbers. Note: This endpoint is only required for legacy masked phone number leads before 16th April 2026 - [Clear Phone Masking Configuration](https://docs.developer.yelp.com/reference/clear-all-phone-numbers.md): Removes all configured phone numbers and clears the phone masking configuration. Note: This endpoint is only required for legacy masked phone number leads before 16th April 2026 - [Get Business Subscriptions](https://docs.developer.yelp.com/reference/get_business_subscriptions.md): Retrieve a paginated list of business subscriptions for a given subscription type. Example: To fetch the first 100 business subscriptions of type WEBHOOK, sent a GET request to the following URL: https://api.yelp.com/v3/businesses/subscriptions?subscription_type=WEBHOOK For the above request a successful GET call will return at most 100 business subscriptions with the following response body: ```json { "total": 2, "offset": 0, "limit": 100, "subscription_type": "WEBHOOK", "subscriptions": [ {"business_id": "4U9kSBLuBDU391x6bxU-YA", "subscribed_at": "2022-12-10T09:50:00+00"}, {"business_id": "7w8SVwIEhxZ7jPnMUFYrng", "subscribed_at": "2022-12-10T10:52:30+00"}, ] } ``` **Note**: Each subscription type requires configuration by Yelp to access, please reach out to partner-support@yelp.com to configure access. - [Subscribe to businesses](https://docs.developer.yelp.com/reference/create_business_subscriptions.md): Create business subscriptions of the given types. Subscriptions are created asynchronously after a request is accepted. There is a maximum number of subscriptions with type YELP_KNOWLEDGE that can be active in the current month. Use [Get Quota](https://docs.developer.yelp.com/reference/get_business_subscriptions_quota) to retrieve the quota information. Example: To create business subscriptions of type LISTING_MANAGEMENT and YELP_KNOWLEDGE for two businesses, sent a POST request to the following URL: https://api.yelp.com/v3/businesses/subscriptions Containing the following request body: ```json { "subscription_types": ["LISTING_MANAGEMENT", "YELP_KNOWLEDGE"], "business_ids": ["4U9kSBLuBDU391x6bxU-YA", "7w8SVwIEhxZ7jPnMUFYrng"] } ``` **Note**: Each subscription type requires configuration by Yelp to access, please reach out to partner-support@yelp.com to configure access. - [Unsubscribe from businesses](https://docs.developer.yelp.com/reference/remove_business_subscriptions.md): Remove business subscriptions of the given types. Subscriptions are removed asynchronously after a request is accepted. There is a maximum number of subscriptions with type YELP_KNOWLEDGE that can be removed yearly. To get this quota information please reach out to partner-support@yelp.com. Example: To remove business subscriptions of type LISTING_MANAGEMENT and YELP_KNOWLEDGE for two businesses, sent a DELETE request to the following URL: https://api.yelp.com/v3/businesses/subscriptions Containing the following request body: ```json { "subscription_types": ["LISTING_MANAGEMENT", "YELP_KNOWLEDGE"], "business_ids": ["4U9kSBLuBDU391x6bxU-YA", "7w8SVwIEhxZ7jPnMUFYrng"] } ``` **Note**: Each subscription type requires configuration by Yelp to access, please reach out to partner-support@yelp.com to configure access. - [Get Quota](https://docs.developer.yelp.com/reference/get_business_subscriptions_quota.md): Get quota information for the given subscription type. This includes the maximum number of subscriptions that can be active this month, the current total number of active subscriptions and the remaining amount that can be created this month. To get quota information regarding the deletion of subscriptions, please reach out to partner-support@yelp.com - [Add Business IDs to Allow List](https://docs.developer.yelp.com/reference/add_businesses_to_allow_list.md): Add business IDs to Allow List. Example: If you want to add the following two business IDs, send a POST request with the following JSON body: ```json { “business_ids”: [ “w-WAiKJe__oZV13M34pTFw”, “ThncHZzfDNaNYYMXk88hLQ” ] } ``` A successful response will show the number of businesses in your allow list. For the above example: ```json {“whitelist_business_ids_count”: 2} ``` Note: The format for the authorization header is "Bearer ", i.e. for curl `-H Authorization: Bearer `. For details see [Authentication](https://docs.developer.yelp.com/docs/fusion-authentication) - [Remove Business IDs from Allow List](https://docs.developer.yelp.com/reference/remove_businesses_to_allow_list.md): Add business IDs to Allow List. Example: If you want to remove the following two business IDs, send a POST request with the following JSON body: ```json { “business_ids”: [ “w-WAiKJe__oZV13M34pTFw”, “ThncHZzfDNaNYYMXk88hLQ” ] } ``` A successful response will show the number of businesses in your allow list. For the above example: ```json {“whitelist_business_ids_count”: 0} ``` Note: The format for the authorization header is "Bearer ", i.e. for curl `-H Authorization: Bearer `. For details see [Authentication](https://docs.developer.yelp.com/docs/fusion-authentication) - [Subscribe to Webhooks](https://docs.developer.yelp.com/reference/subscribe_to_webhooks.md): To subscribe to webhooks for all businesses a Biz Owner has access to send an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) POST request to the `https://api.yelp.com/v3/webhooks`. Note: Currently only `leads_event` [webhooks](https://docs.developer.yelp.com/docs/leads-webhooks) are supported (`NEW_EVENT`, `CONSUMER_PHONE_NUMBER_OPT_IN_EVENT`, `CONSUMER_PHONE_NUMBER_OPT_OUT_EVENT`). **A webhook subscription will have a default expiration date of 14 days.** To ensure _no loss of data_, it is recommended you unsubscribe and subscribe again at least an hour before the expiration date and time. - [Unsubscribe to Webhook](https://docs.developer.yelp.com/reference/unsubscribe_to_webhook.md): Unsubscribe from a webhook subscription using the `webhook_id` obtained during the subscription process. Use an [authenticated](https://docs.developer.yelp.com/docs/authorization-code-workflow) DELETE to the `https://api.yelp.com/v3/webhooks/{webhook_id}` endpoint. - [Linkout Attribution](https://docs.developer.yelp.com/reference/v3_conversion_webhook.md): The linkout attribution endpoint allows you to connect Yelp events, with relevant events of your service. ## Example If you provide a booking service and are partnered with Yelp, we will send a linkout URL on business booking events. The linkout URL will look like: `https://partner.example.com/book?yelp_token=abcd-1234` You will need to store the provided token for 30 days so it can be linked to further updates. Then, to update the status of the booking event, send a POST request with a 'booking' vertical echoing the yelp token from the linkout, like so: Endpoint: `https://api.yelp.com/v3/webhooks/conversions/booking` Body: ```json { "yelp_token": "abcd-1234", "event_type": "confirmed", "event_timestamp": 1774619463560, "external_id": "123456789", "original_external_id": "1234567890", "booking_details_url": "https://partner.example.com/appointments/123456789", "booked_services": [ { "title": "Haircut and Style", "provider": "Mike's Salon", "duration_minutes": 60, "start_datetime": "1774619463560", "order_value": { "price": 90.0, "currency": "USD" } }, ] } ``` A success will return an empty 200 response. Note: The format for the authorization header is "Bearer ", i.e. for curl `-H Authorization: Bearer `. For details see [Authentication](https://docs.developer.yelp.com/docs/fusion-authentication) - [Add Business IDs](https://docs.developer.yelp.com/reference/testinput.md) - [Remove Business IDs](https://docs.developer.yelp.com/reference/remove-business-ids.md) - [Get Quota](https://docs.developer.yelp.com/reference/get-quota.md) - [Get Subscribed Business List](https://docs.developer.yelp.com/reference/get-subscribed-business-list.md) - [Check Availability](https://docs.developer.yelp.com/reference/check_fulfillment_availability.md): Check if the given business can currently fulfill an order. This call will be made by Yelp to the Partner when the User is on the biz details page and wants to enter the ordering flow. The information the user enters will be validated and posted to this endpoint. If the Partner responds that the service is available within the constraints the User provided, then Yelp will take the user to the iframe flow where they can continue building the Order. If the User-supplied address is ambiguous, the Partner should return a list of `address_suggestions` and specify `availability_status` as `not_deliverable_ambiguous_address`. **Request**: See [Opportunity](https://docs.developer.yelp.com/docs/resources#opportunity) resource for more info. ## Example of using multiple availability constraints: In this example a user attempts to reorder order `1BA41E8A0F4234A3B7DF4B232E1E9C87` and have it delivered to `140 New Montgomery St. San Francisco, CA 94105` (two availability constraints: `RepeatOrderConstraint` and `CustomerAddressConstraint`) ```json { "opportunity_token": "", "partner_business_id": "partner business id", "request_time": "2018-01-27T10:32:50+00:00", "service_type": "food", "selected_option": "at_customer", "availability_constraints": [ { "object": "CustomerAddressConstraint", "customer_address_str": "140 New Montgomery St. San Francisco, CA 94105", "customer_address": { "object": "Address", "address1": "140 New Montgomery St", "city": "San Francisco", "region": "CA", "postal_code": "94105", "country": "US" } }, { "object": "RepeatOrderConstraint", "reorder_yelp_order_id": "1BA41E8A0F4234A3B7DF4B232E1E9C87" } ] } ``` The recommended precedence order for checking constraints is as follows: 1. service type * `unsupported` * `unsupported_by_business` 2. hours * `not_available_outside_of_hours` 3. address * `not_available_outside_of_area` * `not_available_invalid_address` * `not_available_ambiguous_address` 4. re-order * `not_available_cannot_fulfill_reorder` **Note**: `not_available_other` can be used in case an unexpected situation arises. If none of the above are encountered then return * `available_can_fulfill_reorder` - if a `RepeatOrderConstraint` is specified * `available` - if a `RepeatOrderConstraint` is not specified - [Waitlist Status of the business](https://docs.developer.yelp.com/reference/v3_business_waitlist_status-1.md): This endpoint returns waitlist status about a specific business by querying the encryped Yelp business id. All the returned fields that are included in this endpoint are configuration fields including the object that contains wait estimate of each party size (wait_estimates), the closed reason of the waitlist (closed_reason) and the state of the waitlist (state). **Curl example with OAuth authentication:** ```sh root@test:~# curl -X GET "https://api.yelp.com/v3/businesses/${BUSINESS_ID}/waitlist/status" --header "Authorization: Bearer ${API_TOKEN}" --header "Content-Type: application/json" ``` **Example 200 response:** ```json { "business_id": "Yelp business id", "state": "ON_MY_WAY", "closed_reason": null, "wait_estimates": { "1-2": { "est_wait": 0, "min_wait": 0, "wait_range": "0", "max_wait": 0 }, "3-4": { "est_wait": 0, "min_wait": 0, "wait_range": "0", "max_wait": 0 }, "5-6": { "est_wait": 0, "min_wait": 0, "wait_range": "0", "max_wait": 0 }, "7+": { "est_wait": 0, "min_wait": 0, "wait_range": "0" } } } ``` **Note:** In order to use this endpoint, the caller should be an onboarded Yelp Waitlist partner - [Waitlist Infomation of the business](https://docs.developer.yelp.com/reference/v3_business_waitlist_info-1.md): This endpoint returns waitlist information about a specific business by querying the encryped Yelp business id. All the returned fields that are included in this endpoint are configuration fields including the maximum join radius (join_radius), the maximum party size (max_party_size) and the seating areas supported by the restaurant for user to choose from (seating_areas). **Curl example with OAuth authentication:** ```sh root@test:~# curl -X GET "https://api.yelp.com/v3/businesses/${BUSINESS_ID}/waitlist/info" --header "Authorization: Bearer ${API_TOKEN}" --header "Content-Type: application/json" ``` **Example 200 response:** ```json { "join_radius": 0, "join_radius_unit": "MILES", "max_party_size": 8, "seating_areas": { "FIRST": "First Available" } } ``` **Note:** In order to use this endpoint, the caller should be an onboarded Yelp Waitlist partner - [Create waitlist on-my-way](https://docs.developer.yelp.com/reference/v3_business_waitlist_on-my-way-1.md): Create a waitlist on-my-way visit in a restaurant. **Curl example with OAuth authentication:** ```sh root@test:~# curl -X POST https://api.yelp.com/v3/businesses/{BUSINESS_ID}/waitlist/on-my-way --header 'accept: application/json' --header "Authorization: Bearer ${API_TOKEN}" -d "{\"name\": \"Customer Name\", \"party_size\": 2, \"phone\": \"+19050000000\", \"arrival_range_max\": 30, \"arrival_range_min\": 10}"" ``` **Example 201 response:** ```json { "visit_id": "Encoded visit id", "party_size": 2, "arrive_by_time": 1714577798 } ``` **Note:** In order to use this endpoint, the caller should be an onboarded Yelp Waitlist partner - [Join queue](https://docs.developer.yelp.com/reference/v3_business_waitlist_visits-1.md): Join the queue for a restaurant. **Note:** Prior to making a call to this endpoint, the restaurant must currently be on a wait, nor the API caller will receive response with 422 `CURRENTLY_NO_WAIT`. Enqueuing the first party on the waitlist can be achieved by using the Yelp Guest Manager app. **Curl example with OAuth authentication:** ```sh root@test:~# curl -X POST https://api.yelp.com/v3/businesses/{BUSINESS_ID}/waitlist/visits --header 'accept: application/json' --header "Authorization: Bearer ${API_TOKEN}" -d "{\"name\": \"Customer Name\", \"party_size\": 2, \"phone\": \"+19050000000\"}" ``` **Example 200 response:** ```json { "visit_id": "Encoded visit id", "queue_time": 1714576951, "party_size": 2, "arrive_by_time": 1714577011, "expected_seating_time_min": 1714577011, "expected_seating_time_max": 1714577551, "seating_area_preference": "" } ``` **Note 2:** In order to use this endpoint, the caller should be an onboarded Yelp Waitlist partner. - [Cancel a visit](https://docs.developer.yelp.com/reference/v3_visit_cancel-1.md): Cancel an on-my-way or a waitlist visit by the given encrypted visit identifier. **Curl example with OAuth authentication:** ```sh root@test:~# curl -X POST "https://api.yelp.com/v3/visits/{VISIT_ID}/cancel" --header 'accept: application/json' --header "Authorization: Bearer ${API_TOKEN}" ``` If the visit is canceled successfully, the client will receive an empty 204 response. **Note:** In order to use this endpoint, the caller should be an onboarded Yelp Waitlist partner - [Get details of a visit](https://docs.developer.yelp.com/reference/v3_visit_get-1.md): Get the visit details by the given encrypted visit identifier. **Curl example with OAuth authentication:** ```sh root@test:~# curl -X GET "https://api.yelp.com/v3/visits/{VISIT_ID}" --header "Authorization: Bearer ${API_TOKEN}" --header "Content-Type: application/json" ``` **Example 200 response:** ```json { "visit_id": "Encoded visit id", "phone": "+19050000000", "parties_ahead": 0, "quoted_wait": 30, "business_id": "Yelp business id", "business_name": "Partner onboarded business", "is_on_my_way": true, "arrive_by_time": 1714578845, "expected_seating_time_min": 1714578845, "expected_seating_time_max": 1714580045, "party_size": 2, "seating_area_preference": "", "visit_start_time": 1714578245, "visit_state": "upcoming" } ``` **Note:** In order to use this endpoint, the caller should be an onboarded Yelp Waitlist partner - [Partner Restaurants](https://docs.developer.yelp.com/reference/v3_partner_restaurants-1.md): This endpoint returns a list of restaurants that were onboarded with the partner. Both Business ID and Display name will be returned for each onboarded restaurants. **Curl example with OAuth authentication:** ```sh root@test:~# curl -X GET "https://api.yelp.com/v3/partner/restaurants" --header "Authorization: Bearer ${API_TOKEN}" --header "Content-Type: application/json" ``` **Example 200 response:** ```json { "restaurants": [ { "business_id": "Yelp business id 1", "display_name": "Partner onboarded business 1" }, { "business_id": "Yelp business id 2", "display_name": "Partner onboarded business 2" } ] } ``` **Note:** In order to use this endpoint, the caller should be an onboarded Yelp Waitlist partner - [Openings](https://docs.developer.yelp.com/reference/v3_openings.md): To get the available reservation times for a restaurant, you can give this endpoint the Business ID along with a few parameters. This endpoint will return times around the requested timeslot and across several days to provide the end user with some options. In general, the openings endpoint will return times across 4 days - the day before, current day and 2 days after the requested date. Currently, only openings with "credit_card_required": false are returned. **cURL example with OAuth authentication:** ```sh curl -X GET "https://api.yelp.com/v3/bookings/victors-french-bistro-test-listing-san-francisco/openings?covers=2&date=2017-12-30&time=18%3A00" -H "Authorization: Bearer {ACCESS_TOKEN}" ``` **Example 200 response:** ```json { "reservation_times": [ { "date": "2017-09-22", "times": [ { "credit_card_required": false, "time": "14:45", }, { "credit_card_required": false, "time": "15:00", }, { "credit_card_required": false, "time": "15:15", }, ] }, { "date": "2017-09-23", "times": [ { "credit_card_required": false, "time": "14:45", }, { "credit_card_required": false, "time": "15:00", }, { "credit_card_required": false, "time": "15:15", }, ] }, ] "covers_range": { "min_party_size": 1, "max_party_size": 7 } } ``` - [Holds](https://docs.developer.yelp.com/reference/v3_holds.md): This endpoint will place a temporary hold on the requested time slot so that the partner can request all the required reservation information from the user. Holds are only valid for 5 minutes and you must use the hold id returned from this endpoint to place the reservation or you will get a conflict. Note: All parameters being sent into the holds endpoint needs to be sent as form data inside of the request body. They will not work as query parameters. **cURL example with OAuth authentication:** ```sh curl -X POST "https://api.yelp.com/v3/bookings/victors-french-bistro-test-listing-san-francisco/holds" -H "authorization: Bearer {ACCESS_TOKEN}" -H "content-type: application/x-www-form-urlencoded" -d "covers=2&date=2017-12-30&time=18%3A00&unique_id=tmL95Scg93sajOswiIl4kA" ``` **Example 200 response:** ```json { "cancellation_policy": "Cancel before it's too late!", "credit_card_hold": false, "expires_at": 1506118155.568123, "hold_id": "KiXJLFFBnwW6NJbK34uKBQ", "is_editable": false, "last_cancellation_date": 1506106800.0, "notes": "Join us for Happy Hour.", "reserve_url": "https://www.yelp.com/reservations/aeJKOHWHK-z9ALQVTZj_Jw/checkout/2017-09-23/1200/3?hold_id=23774490" } ``` - [Reservations](https://docs.developer.yelp.com/reference/v3_reservations.md): With this endpoint, you can place a physical reservation at a restaurant with all the information provided. This endpoint will take an optional hold id if the partner previously placed a hold. If the restaurant requires a credit card hold, you will not be able to place a reservation and the API will return an error. In this case, you should use the reserve_url provided in the hold endpoint or the opening endpoint to prompt the user for a reservation. Note: All parameters being sent into the reservations endpoint needs to be sent as form data inside of the request body. They will not work as query parameters. Additionally, you will receive an error if you don’t pass the exact same reservation time, date and covers values as you supplied to the Holds endpoint. **cURL example with OAuth authentication:** ```sh curl -X POST "https://api.yelp.com/v3/bookings/victors-french-bistro-test-listing-san-francisco/reservations" -H "authorization: Bearer {ACCESS_TOKEN}" -H "content-type: application/x-www-form-urlencoded" -d "covers=2&date=2017-12-30&time=18%3A00&unique_id={UNIQUE_ID}&hold_id={HOLD_ID}&first_name={FIRST_NAME}&last_name={LAST_NAME}&email={EMAIL}&phone={PHONE}¬es={NOTES}" ``` **Example 200 response:** ```json { "confirmation_url": "https://www.yelp.com/reservations/dorsia-san-francisco-6/confirmed/36dbba9e-14a9-43f3-942d-7fdeddda74fc?checkout_success=1&adjust_creative=CPEhJkVcrc5wVgsRVvhEZQ&utm_campaign=yelp_api_v3&utm_medium=api_v3_reservations&utm_source=CPEhJkVcrc5wVgsRVvhEZQ", "notes": "test notes", "reservation_id": "e33b40ef-f6b1-4f17-987c-d850892564b", } ``` - [Reservation Status](https://docs.developer.yelp.com/reference/v3_reservation_status.md): To check the status of an existing reservation, you can use this endpoint with the reservation ID. This endpoint will return the current status and details of the reservation. The response will include information such as whether the reservation is still active, the date, time, and number of covers for the reservation. **cURL example with OAuth authentication:** ```sh curl -X GET "https://api.yelp.com/v3/bookings/reservation/e33b40ef-f6b1-4f17-987c-d850892564b/status -H "authorization: Bearer {ACCESS_TOKEN}" ``` **Example 200 response:** ```json { "active": true, "date": "2017-12-30", "time": "11:00:00", "covers": 3 } ``` - [Reservation Cancel](https://docs.developer.yelp.com/reference/v3_reservation_cancel.md): The cancel endpoint allows you to cancel a reservation using a reservation_id. **cURL example with OAuth authentication:** ```sh curl -X POST "https://api.yelp.com/v3/bookings/reservation/e33b40ef-f6b1-4f17-987c-d850892564b/cancel" -H "authorization: Bearer {ACCESS_TOKEN}" ``` **Example 200 response:** ```json {} ``` ## Changelog - [Unmasked Phone Numbers](https://docs.developer.yelp.com/changelog/unmasked-phone-numbers.md) - [Fusion AI API: Reservation support fields added](https://docs.developer.yelp.com/changelog/fusion-ai-api-reservation-support-fields-added.md) - [AI-Assisted Reservations](https://docs.developer.yelp.com/changelog/ai-assisted-reservations.md) - [Fusion AI API enhanced: Smarter conversations & direct business questions](https://docs.developer.yelp.com/changelog/fusion-ai-api-enhancements-smarter-conversations-direct-business-questions.md) - [Natural Language Search API endpoint deprecated](https://docs.developer.yelp.com/changelog/natural-language-search-api-endpoint-deprecated.md)