# Yotpo App Developer API > REST API for third-party apps (Yotpo technology partners) that merchants install from Yotpo. After a merchant installs your app through OAuth 2.0, you read and write that store's reviews, Q&A, products, orders, fulfillments, customers and loyalty data, and subscribe to review, loyalty and app webhook events. For your own store's integration (not a public app), use the Core API instead: https://core-api.yotpo.com/llms.txt. Every link below is the Markdown version of a page. Endpoint entries start with the HTTP method and full URL. ## Key facts - **Base URL.** `https://developers.yotpo.com` for everything that needs your app's token. Storefront endpoints live on their own hosts, shown in each entry, and don't use your app's token: Reviews Storefront on `https://api-cdn.yotpo.com` (public); Product Potential Points on `https://storefront.yotpo.com/loyalty` (public; the authenticated variant needs a customer token built from the merchant's Loyalty API key); Q&A for a product, Q&A bottom line, Photos by album and Product images on `https://api.yotpo.com` (public; Vote on answers there needs a UGC API token). - **Install flow (OAuth 2.0).** The merchant installs your app; Yotpo redirects to your redirect URL with a one-time `code` and the store's `app_key`. Exchange the code with `POST https://developers.yotpo.com/v2/oauth2/token` and JSON `{"grant_type": "authorization_code", "client_id": "", "client_secret": "", "redirect_uri": "", "code": ""}`. The response has `access_token`. Wrong client credentials return `400 {"error": "invalid_client"}`. - **Tokens are per store.** One token covers the one store the merchant installed your app on. A merchant with several Yotpo stores installs your app on each. - **Authentication.** Send the token in the `X-Yotpo-Token` header on every call. `Authorization: Bearer` is not supported: a request that sends the token only that way gets `401 {"error": "invalid_request", "error_description": "The access token is missing"}`. An unknown, revoked or expired token gets `401 {"error": "invalid_token"}`. The token is also read from an `access_token` query parameter, but URLs end up in logs, so use the header. Store tokens from `api.yotpo.com` are not accepted here. - **Store ID.** The store's `app_key` (also called store ID or `account_id`) goes in the path: `/core/v3/stores/{store_id}/...` or `/v2/{account_id}/...`. - **Pagination.** `/core/v3` endpoints use `limit` (1 to 100, default 100) and `page_info`; pass `pagination.next_page_info` from the response as `page_info`. `/v2` endpoints use `page` and `count`. - **Errors.** A path or method the gateway doesn't serve returns `404 {"message": "no Route matched with those values", "request_id": "..."}`, not `405`. Token endpoint errors are `400` with a body that isn't valid JSON (search it for `invalid_client`). Storefront endpoints return `200` with no reviews for an unknown product ID, and `404` plain text `Account not found` for an unknown store. Full list: https://develop.yotpo.com/docs/errors.md. There's no sandbox: see https://develop.yotpo.com/docs/testing-your-integration.md. Use HTTPS: `http://` gets a `301` redirect. - **Rate limits.** Per app per store: 5 requests per second on `/core/v3` endpoints; 100 per minute and 6,000 per hour on `/loyalty/v3` and the token endpoints; 20,000 per minute on other `/v2` endpoints. Responses carry `RateLimit-Limit`, `RateLimit-Remaining` and `RateLimit-Reset`; a `429` returns `{"message": "API rate limit exceeded", "request_id": "..."}` with `Retry-After` (seconds). - **Webhooks.** Create a target (your `https://` URL) and a filter (event topics) once for your app, then a subscription. In webhook paths, `application_id` is your app's client ID (32 characters), not the numeric app ID, which returns `403 {"message": "Forbidden"}`. Store-level subscriptions (`/core/v3/applications/{application_id}/stores/{store_id}/webhooks/subscriptions`) are per store; app-level ones cover app events such as `integrations.applications.disconnected.v3` (uninstall). Deduplicate deliveries on the `WebhookMessageIdPerTarget` header, and read the event name from `X-Yotpo-Webhooks-Event-Type`. - **Uninstalls.** Support both: your own uninstall button calls `DELETE https://developers.yotpo.com/v2/{account_id}/access_tokens/{access_token}`, and an uninstall from Yotpo sends the app uninstall event. - **Related APIs.** Reviews and UGC for a merchant's own integration: https://apidocs.yotpo.com/llms.txt. Store data sync (Core API): https://core-api.yotpo.com/llms.txt. Loyalty and referrals programs: https://loyaltyapi.yotpo.com/llms.txt. ## Guides · Getting Started - [Welcome](https://develop.yotpo.com/docs/welcome.md): Welcome to Yotpo's Developer Toolkit for Technology Partners! :rocket: :rocket: :rocket: - [What you can build](https://develop.yotpo.com/docs/what-you-can-build.md): Pick what your app does and follow the path. Each one links the recipe, guide and reference pages you need next. - [Applying to become a Yotpo partner](https://develop.yotpo.com/docs/applying-to-become-a-yotpo-partner.md): To build an integration on top of Yotpo’s technology partner APIs, you’ll need to first apply to become a technology partner. - [Registering your integration & opening a test account](https://develop.yotpo.com/docs/registering-a-new-app.md): If you applied to become a technology partner and received approval from our team, you can now register your app/s and get credentials to use the technology partner APIs. - [Authenticating with OAuth 2.0](https://develop.yotpo.com/docs/authenticating.md): Whenever a shared merchant installs your integration (app) for the first time, a standard OAuth 2.0 flow will be initiated, in which: - [Working with entity identifiers](https://develop.yotpo.com/docs/working-with-entity-identifiers.md): Orders, products and product variants already have their own IDs in the merchant's eCommerce platform. In Yotpo, each of them has two IDs: - [Errors](https://develop.yotpo.com/docs/errors.md): The status codes and error bodies the App Developer API returns, and how to handle each one. - [Testing your integration](https://develop.yotpo.com/docs/testing-your-integration.md): There's no sandbox, so every call reaches a real Yotpo store. How to test your app without emailing shoppers or changing live data. - [Certifying and launching your integration](https://develop.yotpo.com/docs/certifying-and-launching-your-integration.md): To certify and launch your integration officially in Yotpo, you will be asked to fill out a form with information about your company and the integration for our GTM and tech stakeholders to be able to drive success with… - [Ongoing Partnership & FAQ](https://develop.yotpo.com/docs/ongoing-partnership-faq.md): Once your integration was certified and officially released, we try to provide our official tech partners with the following ongoing benefits: - [Yotpo Postman Collection](https://develop.yotpo.com/docs/yotpo-postman-collection-1.md): Integrating with a new API can be challenging, but we're here to make it easier. Our Postman collection allows you to explore and interact with our API visually, accelerating your development process. ## Guides · Common Objects - [About common objects](https://develop.yotpo.com/docs/common-objects.md): Objects that appear in several endpoints: addresses, line items, customer checkout info and GTINs. - [Address](https://develop.yotpo.com/docs/address.md) - [Customer checkout information](https://develop.yotpo.com/docs/customer-checkout-info.md): This information relates to the customer object used within the orders endpoints. It is not related to the customers endpoints. - [GTIN](https://develop.yotpo.com/docs/gtin.md): GTINs (Global trade item numbers, often called barcodes) are used to match products with external sources. A main use case for this is syndicating product reviews to other platforms or Google PLA. - [Line item](https://develop.yotpo.com/docs/line-item.md) ## Guides · Best Practice Guides - [Email Marketing & Communications](https://develop.yotpo.com/docs/email-marketing-communications.md): This guide details the most popular use cases for integrating reviews, visual user-generated content (UGC), and loyalty and referrals with your marketing communications platform. - [BI, Analytics, and CDP Best Practice Guide](https://develop.yotpo.com/docs/bi-analytics-and-cdp-best-practice-guide.md): This toolkit details how to integrate Yotpo’s products with your BI & Analytics or Customer Data Platform (CDP) to analyze and suggest insightful actions for merchants on both platforms. - [Search & Merchandising](https://develop.yotpo.com/docs/search-integration.md): This guide details how you can incorporate star ratings and top reviews into product results and search results to increase click-through rates and engagement. - [Service Desk & CRM Integrations](https://develop.yotpo.com/docs/service-desk-crm-integrations.md): This guide details the main integration use cases and APIs for Service Desk and CRM partners with Yotpo Reviews and Yotpo Loyalty. - [On-site Engagement & Lead Capture](https://develop.yotpo.com/docs/on-site-engagement-lead-capture.md): This guide details how you can integrate Yotpo Reviews and Yotpo Loyalty & Referrals with your On-site Engagement platform to allow merchants to create truly personalized consumer experiences and fully benefit from both… - [Product Recommendations](https://develop.yotpo.com/docs/product-recommendations.md): This guide details how you can integrate Yotpo Reviews and Yotpo Visual UGC with your Product Recommendation platform or features to add social proof to your experience and increase user engagement for shared merchants. - [Mobile Apps](https://develop.yotpo.com/docs/mobile-apps.md): This guide details the main integration use cases for mobile app integrations. - [Influencer & Affiliate Marketing](https://develop.yotpo.com/docs/influencer-affiliate-marketing.md): This guide details how you can integrate Yotpo Loyalty & Referrals and Yotpo Reviews with your influencer or affiliate marketing platform to ensure you’re engaging with the top tier of your customer base in a more… - [Shipping & Returns Best Practice Guide](https://develop.yotpo.com/docs/shipping-returns-best-practice-guide.md): This toolkit details how you can integrate Yotpo Reviews and Yotpo Loyalty & Referrals with your shipping or returns platform to create seamless consumer experiences that allow merchants to fully benefit from both… ## Recipes - [Display product reviews on a product page](https://develop.yotpo.com/recipes/display-product-reviews-on-a-product-page.md): Fetch a product's reviews and star-rating summary with no authentication: everything a product page needs in two calls. - [Search and filter reviews](https://develop.yotpo.com/recipes/search-and-filter-reviews.md): Free-text search plus score and photo filters to power a review-search UI on a product page. - [Show star ratings across a category page](https://develop.yotpo.com/recipes/show-star-ratings-across-a-category-page.md): Fetch rating bottom lines for the whole catalog in bulk: one public call powers every product card. - [Show an AI review summary and smart topics](https://develop.yotpo.com/recipes/show-an-ai-review-summary-and-smart-topics.md): Display Yotpo's AI-generated review summary and topic chips on a product page, and let shoppers filter reviews by topic. - [Show a featured reviews carousel](https://develop.yotpo.com/recipes/show-a-featured-reviews-carousel.md): Pull Yotpo's top reviews for a product or your whole store to power a carousel on a product page or home page. - [Add review content for AI crawlers](https://develop.yotpo.com/recipes/add-review-content-for-ai-crawlers.md): Inject Yotpo's ready-made review markup into your product page HTML so search and AI crawlers can read it from the page source. - [Show loyalty points on a product page](https://develop.yotpo.com/recipes/show-loyalty-points-on-a-product-page.md): Show shoppers how many loyalty points each variant earns, in one public call with no token. ## API reference · App Developer API - [Getting Started](https://develop.yotpo.com/reference/getting-started-1.md): Welcome to Yotpo's App Developer API reference. :wave: - [Table of Contents](https://develop.yotpo.com/reference/table-of-contents.md): Endpoints are conveniently organized by section - Products, Reviews, and Webhook requests. - [Guidelines and Conventions](https://develop.yotpo.com/reference/guidelines-and-conventions.md): Before you start using the API, we recommend you review these guidelines. - [Changelog](https://develop.yotpo.com/reference/changelog.md): See the API changelog for the latest changes and updates to Yotpo APIs. - [Generate Access Token](https://develop.yotpo.com/reference/generate-a-token.md): `POST https://developers.yotpo.com/v2/oauth2/token` Exchange the temporary code from the merchant's install for an access token. See Authenticating with OAuth 2.0. - [Retrieve Token Info](https://develop.yotpo.com/reference/retrieve-token-info.md): `GET https://developers.yotpo.com/v2/{account_id}/info` Returns the store your access token is for and the scopes your app was granted. Use it to check a token before you call other endpoints. - [Remove Application](https://develop.yotpo.com/reference/remove-application.md): `DELETE https://developers.yotpo.com/v2/{account_id}/access_tokens/{access_token}` Use this endpoint to delete an existing access token and remove authorization to the Yotpo account. We recommend you use this call each time you uninstall an app. Once confirmed, this operation cannot be undone. - [Yotpo Postman Collection](https://develop.yotpo.com/reference/yotpo-postman-collection.md): Integrating with a new API can be challenging, but we're here to make it easier. Our Postman collection allows you to explore and interact with our API visually, accelerating your development process. ## API reference · Orders and Fulfillments - [Introduction to Orders and Fulfillments](https://develop.yotpo.com/reference/introduction-to-orders-and-fulfillments.md): Use Orders and fulfillments endpoints to sync orders and fulfilments to Yotpo. - [Retrieve Orders](https://develop.yotpo.com/reference/retrieve-orders2.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/orders` Retrieve a list of all available orders. - [Retrieve order by ID](https://develop.yotpo.com/reference/retrieve-order-by-id.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/orders/{yotpo_order_id}` Retrieves all of the details of a specific order using its Yotpo ID. - [Retrieve Order Fulfillments](https://develop.yotpo.com/reference/retrieve-order-fulfillments.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/orders/{yotpo_order_id}/fulfillments` Retrieve a list of fulfillments for an order. - [Retrieve fulfillment by ID](https://develop.yotpo.com/reference/retrieve-fulfillment-by-id.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/orders/{yotpo_order_id}/fulfillments/{yotpo_fulfillment_id}` Retrieves all fulfillments for a specific order using its Yotpo ID. - [Update Order Fulfillment](https://develop.yotpo.com/reference/update-order-fulfillment.md): `PATCH https://developers.yotpo.com/core/v3/stores/{store_id}/orders/{yotpo_order_id}/fulfillments/{yotpo_fulfillment_id}` Update an order fulfillment. - [Retrieve Orders per Account](https://develop.yotpo.com/reference/retrieve-orders.md): `GET https://developers.yotpo.com/v2/{account_id}/orders` Retrieves the orders Yotpo holds for the store, newest first by `order_date`. ## API reference · Products - [Introduction to Products](https://develop.yotpo.com/reference/introduction-to-products.md): Use Products endpoints to retrieve data on products including product star-ratings, promoted products, product reviews, and more. - [All Products](https://develop.yotpo.com/reference/all-products.md): `GET https://developers.yotpo.com/v2/{account_id}/products` Retrieve paginated product data for your entire product catalog by `account_id`. - [Product Data](https://develop.yotpo.com/reference/product-data.md): `GET https://developers.yotpo.com/v2/{account_id}/products/{external_product_id}` Retrieve product data by `product_id`. This call returns product data such as product identifiers, average score, total review count, and more. - [Promoted Products](https://develop.yotpo.com/reference/promoted-products.md): `GET https://developers.yotpo.com/v2/{account_id}/promoted_products` Yotpo's smart algorithm automatically promotes your most popular products by purchase date, star rating, number of reviews, and manually selected products. - [Retrieve Products](https://develop.yotpo.com/reference/retrieve-products.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/products` Retrieves a list of all of the store's products. You can use this endpoint to resolve the Yotpo product ID in order to update it. - [Retrieve product by ID](https://develop.yotpo.com/reference/retrieve-product-by-id.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/products/{yotpo_product_id}` Retrieves all product information for a specific product using its Yotpo ID. - [Retrieve product variants](https://develop.yotpo.com/reference/retrieve-product-variants.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/products/{yotpo_product_id}/variants` Retrieves a list of product variants within your product catalog. - [Retrieve product variant by ID](https://develop.yotpo.com/reference/retrieve-product-variant-by-id.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/products/{yotpo_product_id}/variants/{yotpo_variant_id}` Retrieves a product variant by store ID, product ID, and product variant ID. ## API reference · Reviews - [Introduction to Reviews](https://develop.yotpo.com/reference/introduction-to-reviews.md): Use Reviews endpoints to retrieve reviews data including top reviews, reviews by review ID, and more. - [All Reviews](https://develop.yotpo.com/reference/all-reviews.md): `GET https://developers.yotpo.com/v2/{account_id}/reviews` Retrieve reviews data per account as a paginated response. This call will return reviews metrics such as review `id`, star-ratings `score`, `votes_up` or `votes_down`, review `content`, product identifiers, and more. - [Product Reviews](https://develop.yotpo.com/reference/product-review.md): `GET https://developers.yotpo.com/v2/{account_id}/products/{external_product_id}/reviews` Retrieve product reviews for a specific product using the `external_product_id`. - [Product Star Rating](https://develop.yotpo.com/reference/bottomline.md): `GET https://developers.yotpo.com/v2/{account_id}/star_rating/products/{external_product_id}` Retrieve the average star-rating and review count for a specific product by `external_product_id`. - [Review by Review ID](https://develop.yotpo.com/reference/reviews-id.md): `GET https://developers.yotpo.com/v2/{account_id}/reviews/{review_id}` Retrieve a specific review by `review_id`. - [Top Reviews](https://develop.yotpo.com/reference/top-reviews.md): `GET https://developers.yotpo.com/v2/{account_id}/top_reviews` This endpoint automatically retrieves the top reviews from your Yotpo reviews based on the star rating. - [Best Reviews](https://develop.yotpo.com/reference/best-reviews.md): `POST https://developers.yotpo.com/v2/{account_id}/best_reviews` Leveraging Yotpo's Insights engine, 'Best reviews' are identified, parsed, and extracted based on the number of distinct positive topics and opinions within your reviews. - [Best Sentences](https://develop.yotpo.com/reference/best-sentences.md): `POST https://developers.yotpo.com/v2/{account_id}/best_sentences` This endpoint automatically retrieves the very best sentences from your Yotpo reviews, so you can leverage the social proof of top customer testimonials at key conversion points throughout the buyer journey! You define… - [Publish/Unpublish Reviews](https://develop.yotpo.com/reference/publishunpublish-reviews.md): `POST https://developers.yotpo.com/v2/{store_id}/moderation/reviews` This API allows you to publish or reject one or multiple reviews to the onsite widgets. ## API reference · Reviews Storefront - [Retrieve product reviews](https://develop.yotpo.com/reference/storefront-product-reviews.md): `GET https://api-cdn.yotpo.com/v3/storefront/store/{storeId}/product/{productId}/reviews` Retrieves storefront reviews for a specific product. - [Search product reviews](https://develop.yotpo.com/reference/storefront-product-reviews-search.md): `POST https://api-cdn.yotpo.com/v3/storefront/store/{storeId}/product/{productId}/reviews` Search or filter storefront reviews for a specific product. - [Retrieve product filters](https://develop.yotpo.com/reference/storefront-product-filters.md): `GET https://api-cdn.yotpo.com/v3/storefront/store/{storeId}/product/{productId}/productFilters` Retrieves product-level filters used for storefront review experiences. - [Retrieve product data](https://develop.yotpo.com/reference/storefront-product-data.md): `GET https://api-cdn.yotpo.com/v3/storefront/stores/{storeId}/products/{productId}/productData` Retrieves product-level data used for storefront review experiences. - [Retrieve reviews media](https://develop.yotpo.com/reference/storefront-reviews-media.md): `GET https://api-cdn.yotpo.com/v3/storefront/stores/{storeId}/products/{productId}/reviewsMedia` Retrieve media assets associated with product reviews. - [Retrieve top product reviews](https://develop.yotpo.com/reference/storefront-top-reviews.md): `GET https://api-cdn.yotpo.com/v3/storefront/store/{storeId}/product/{productId}/top_reviews` Retrieves top reviews for a product. - [Retrieve top store reviews](https://develop.yotpo.com/reference/storefront-store-top-reviews.md): `GET https://api-cdn.yotpo.com/v3/storefront/store/{storeId}/top_reviews` Retrieves top reviews for a store. - [Retrieve store reviews](https://develop.yotpo.com/reference/storefront-store-reviews.md): `GET https://api-cdn.yotpo.com/v3/storefront/store/{storeId}/reviews` Retrieves storefront reviews for a specific store. - [Search store reviews](https://develop.yotpo.com/reference/storefront-store-reviews-search.md): `POST https://api-cdn.yotpo.com/v3/storefront/store/{storeId}/reviews` Search or filter storefront reviews for a specific store. - [Retrieve bottomline scores](https://develop.yotpo.com/reference/storefront-all-bottomlines.md): `GET https://api-cdn.yotpo.com/v3/storefront/stores/{storeId}/ratings` Retrieve bottomline scores for each product in a store. - [Retrieve product rating bottomline](https://develop.yotpo.com/reference/storefront-product-ratings.md): `GET https://api-cdn.yotpo.com/v3/storefront/store/{storeId}/product/{productId}/ratings` Retrieves rating bottomline information for a specific product. ## API reference · Customers - [Create or Update Customer](https://develop.yotpo.com/reference/create-or-update-customer.md): `PATCH https://developers.yotpo.com/core/v3/stores/{store_id}/customers` Create or update customer in the Yotpo platform - [Retrieve Customers](https://develop.yotpo.com/reference/retrieve-customers.md): `GET https://developers.yotpo.com/core/v3/stores/{store_id}/customers` Retrieve a list of past and existing customers as they appear in Yotpo. - [Retrieve Loyalty Customer Details by Email](https://develop.yotpo.com/reference/retrieve-loyalty-customer-details-by-email.md): `POST https://developers.yotpo.com/loyalty/v3/stores/{store_id}/customers` Retrieve a customer record from Yotpo Loyalty & Referrals (updated in real-time). - [Introduction to Customers](https://develop.yotpo.com/reference/introduction-to-customers.md): Use Customers endpoints to sync store customers to Yotpo. You can sync information such as contact details, order history, and whether the customer agreed to receive marketing messaging. ## API reference · Loyalty & Referrals - [Retrieve Earning Rules](https://develop.yotpo.com/reference/retrieve-earning-rules.md): `GET https://developers.yotpo.com/loyalty/v3/stores/{store_id}/earning_rules` Lists the store's loyalty earning rules: the ways customers earn points, such as making a purchase, creating an account or completing a custom action. - [Adjust Loyalty Customer Points](https://develop.yotpo.com/reference/adjust-loyalty-customer-points.md): `POST https://developers.yotpo.com/loyalty/v3/stores/{store_id}/points/adjust` Adds or removes points from a customer's balance outside of normal campaign earning: for goodwill credits, support resolutions, or corrections. The adjustment appears in the customer's points history. - [Record Loyalty Customer Action](https://develop.yotpo.com/reference/record-loyalty-customer-action.md): `POST https://developers.yotpo.com/loyalty/v3/stores/{store_id}/custom_actions` This endpoint records an action performed by a customer. It will apply the action to all active custom action campaigns and award the necessary points and/or discounts. - [Authenticated Product Potential Points](https://develop.yotpo.com/reference/getcustomerproductpotentialpoints-1.md): `POST https://storefront.yotpo.com/loyalty/v3/stores/{store_id}/customer_product_potential_points` Calculates the potential points an authenticated customer can earn for a product and its variants. Requires customer authentication headers. Includes customer-specific multipliers (e.g. - [Product Potential Points](https://develop.yotpo.com/reference/getproductpotentialpoints-1.md): `POST https://storefront.yotpo.com/loyalty/v3/stores/{store_id}/product_potential_points` Calculates the potential points a customer can earn for a product and its variants. Does not require customer authentication. Returns points based on general earning rules. ## API reference · Comments for Reviews - [Create New Comment](https://develop.yotpo.com/reference/comment-on-a-review.md): `POST https://developers.yotpo.com/v2/{account_id}/reviews/{review_id}/comment` Use this call to create a new comment on a published review by `review_id`. The `review_id` can be found using All Reviews. - [Retrieve Existing Comment](https://develop.yotpo.com/reference/get-comment-by-review-id.md): `GET https://developers.yotpo.com/v2/{account_id}/reviews/{review_id}/comment` Use this endpoint to retrieve a comment and its related metadata by `review_id`. The `review_id` can be found using All Reviews. - [Update Existing Comment](https://develop.yotpo.com/reference/update-a-comment-on-a-review-1.md): `PUT https://developers.yotpo.com/v2/{account_id}/reviews/{review_id}/comment` Use this call to update (edit) an existing comment on a published review. You can find the `review_id` using the All Reviews endpoint. - [Delete Comment](https://develop.yotpo.com/reference/delete-a-comment-on-a-review.md): `DELETE https://developers.yotpo.com/v2/{account_id}/reviews/{review_id}/comment` Use this endpoint to delete an existing comment on a published review. ## API reference · Static HTML - [Retrieve the Reviews Payload in HTML](https://develop.yotpo.com/reference/retrieve-the-reviews-payload-in-html.md): The methods parameter is an array of methods. Each method is a hash containing the method and parameters, which is an hash of the parameters for the method. ## API reference · Q&A - [Retrieve All Questions](https://develop.yotpo.com/reference/all-questions.md): `GET https://developers.yotpo.com/v2/{account_id}/questions` Returns all Q&A questions and their answers for the `account_id` specified. - [Retrieve Questions and Answers for a Product](https://develop.yotpo.com/reference/retrieve-questions-and-answers-for-a-product.md): `GET https://api.yotpo.com/products/{store_id}/{sku}/questions` Retrieve questions and public answers for a given product using the product SKU. - [Retrieve the Bottom Line for Questions and Answers](https://develop.yotpo.com/reference/retrieve-the-bottom-line-for-questions-and-answers.md): `GET https://api.yotpo.com/products/{store_id}/{sku}/qna_bottomline` Retrieve the total number of questions and answers for a product, using the product SKU. - [Vote on Answers](https://develop.yotpo.com/reference/vote-on-answers.md): `POST https://api.yotpo.com/answers/{answer_id}/vote/{vote_type}` Vote up or down on an answer to a question, by answer_id. - [Create an Answer](https://develop.yotpo.com/reference/create-an-answer.md): `POST https://developers.yotpo.com/v2/{account_id}/questions/{question_id}/answers` Posts the store's answer to a question by `question_id`. A question takes one answer from the store: if it already has one, the call returns `400`. - [Retrieve Q&A by Question ID](https://develop.yotpo.com/reference/retrieve-qa-by-question-id.md): `GET https://developers.yotpo.com/v2/{account_id}/questions/{question_id}` Retrieve a specific Q&A question and its answers by `question_id`. - [Delete an Answer](https://develop.yotpo.com/reference/delete-an-answer.md): `DELETE https://developers.yotpo.com/v2/{account_id}/questions/{question_id}/answers/{answer_id}` Use this endpoint to delete an answer to a specific question by `question_id`. ## API reference · Visual UGC - [Photos by Album](https://develop.yotpo.com/reference/photos-by-album.md): `GET https://api.yotpo.com/v1/widget/{store_id}/albums/by_name` Returns the images, tags, names and IDs of every custom album in the store. - [Product Images](https://develop.yotpo.com/reference/product-images.md): `GET https://api.yotpo.com/v1/widget/{store_id}/albums/product/{product_id}` Retrieve the images curated to a product album. ## API reference · Yotpo Webhooks - [About Webhooks](https://develop.yotpo.com/reference/about-webhooks.md): Use webhooks to receive notifications about events taking place in Yotpo products. - [Webhook events](https://develop.yotpo.com/reference/yotpo-events.md): Each event is characterized by a tenant type, which signifies the proprietor of the event data. - [Create target](https://develop.yotpo.com/reference/create-target.md): `POST https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/targets` Creates a webhook target or callback URL for listening to events. The webhook target can be used to listen to multiple events from multiple accounts. - [Retrieve targets](https://develop.yotpo.com/reference/retrieve-targets.md): `GET https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/targets` Retrieves a list of all of your webhook targets. - [Retrieve target by ID](https://develop.yotpo.com/reference/retrieve-target-by-id.md): `GET https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/targets/{yotpo_target_id}` Retrieves a webhook target using its Yotpo ID. - [Update target](https://develop.yotpo.com/reference/update-target.md): `PATCH https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/targets/{yotpo_target_id}` Updates a webhook target. This webhook target can be used for listening to multiple events from multiple accounts. - [Delete target](https://develop.yotpo.com/reference/delete-target.md): `DELETE https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/targets/{yotpo_target_id}` Deletes a webhook target. This webhook target can be used for listening to multiple events from multiple accounts, and so only unused webhook targets can be deleted. - [Create filter](https://develop.yotpo.com/reference/create-filter.md): `POST https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/filters` Create a webhook filter. This webhook filter can be used with multiple webhook targets. An event type cannot be used twice in the same webhook filter. - [Retrieve filters](https://develop.yotpo.com/reference/retrieve-filters.md): `GET https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/filters` Retrieves a list of all of your webhook filters. - [Retrieve filter by ID](https://develop.yotpo.com/reference/retrieve-filter-by-id.md): `GET https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/filters/{yotpo_filter_id}` Retrieves a webhook filter using its Yotpo ID. - [Update filter](https://develop.yotpo.com/reference/update-filter.md): `PATCH https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/filters/{yotpo_filter_id}` Updates a webhook filter. This webhook filter can be used with multiple webhook targets. - [Delete filter](https://develop.yotpo.com/reference/delete-filter.md): `DELETE https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/filters/{yotpo_filter_id}` Deletes a webhook filter. This webhook filter can be used with multiple webhook targets, so only unused webhook filters can be deleted. - [App Disconnected](https://develop.yotpo.com/reference/app-disconnected.md): `WEBHOOK integrations.applications.disconnected.v3` Sent when a merchant disconnects your app: they click Disconnect on the integration page in Yotpo, or they uninstall it in your product and you delete the access token with Remove application. - [Create app subscription](https://develop.yotpo.com/reference/create-app-subscription.md): `POST https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/subscriptions` Create an app webhook subscription - [Delete app subscription](https://develop.yotpo.com/reference/delete-app-subscription.md): `DELETE https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/subscriptions/{yotpo_subscription_id}` Deletes a webhook subscription per account. - [App-level webhook subscriptions](https://develop.yotpo.com/reference/app-level-webhooks.md): Each event is characterized by a tenant type that signifies the proprietor of the event data: - [Retrieve app subscription by ID](https://develop.yotpo.com/reference/retrieve-app-subscription-by-id.md): `GET https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/subscriptions/{yotpo_subscription_id}` Retrieve an app webhook subscription using its Yotpo ID - [Retrieve app subscriptions](https://develop.yotpo.com/reference/retrieve-app-subscriptions.md): `GET https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/subscriptions` Retrieve a list of all of your app webhook subscriptions - [Update app subscription](https://develop.yotpo.com/reference/update-app-subscription.md): `PATCH https://developers.yotpo.com/core/v3/applications/{application_id}/webhooks/subscriptions/{yotpo_subscription_id}` Update an app webhook subscription. - [Create store subscription](https://develop.yotpo.com/reference/create-subscription.md): `POST https://developers.yotpo.com/core/v3/applications/{application_id}/stores/{store_id}/webhooks/subscriptions` Create a unique store subscription per account, using each merchant’s specific access token and store id. Combine the target and filter to create a subscription - [Delete store subscription](https://develop.yotpo.com/reference/delete-subscription-1.md): `DELETE https://developers.yotpo.com/core/v3/applications/{application_id}/stores/{store_id}/webhooks/subscriptions/{yotpo_subscription_id}` Deletes a webhook subscription per account. - [Store-level webhook subscriptions](https://develop.yotpo.com/reference/store-level-webhooks.md): Each event is characterized by a tenant type that signifies the proprietor of the event data. - [Retrieve store subscription by ID](https://develop.yotpo.com/reference/retrieve-subscription-by-id.md): `GET https://developers.yotpo.com/core/v3/applications/{application_id}/stores/{store_id}/webhooks/subscriptions/{yotpo_subscription_id}` Retrieves a webhook subscription using its Yotpo ID. - [Retrieve store subscriptions](https://develop.yotpo.com/reference/retrieve-subscriptions.md): `GET https://developers.yotpo.com/core/v3/applications/{application_id}/stores/{store_id}/webhooks/subscriptions` Retrieves a list of all of the webhook subscriptions per account. - [Update store subscription](https://develop.yotpo.com/reference/update-subscription.md): `PATCH https://developers.yotpo.com/core/v3/applications/{application_id}/stores/{store_id}/webhooks/subscriptions/{yotpo_subscription_id}` Updates a webhook subscription per account. ## API reference · Reviews Webhooks - [Review Created](https://develop.yotpo.com/reference/review-create.md): `WEBHOOK review_create` Sent when a new review is created. To receive it, add `review_create` to `events` when you create a filter, then create a store subscription for each store that installed your app. - [Review Updated](https://develop.yotpo.com/reference/review-updated.md): `WEBHOOK review_updated` Sent when: - A review is published. - A review is unpublished (rejected). - A reviewer verifies their email (for reviews written in the PDP Reviews Widget), and the review changes from anonymous to *verified reviewer*. - [Review Request Eligible on Fulfillment](https://develop.yotpo.com/reference/review-request-eligible-on-fulfillment.md): `WEBHOOK review_request.eligible.on_fulfillment` Sent when an order becomes eligible for a review request after it is fulfilled. Use it to send review requests from your own messaging platform. - [Review Request Eligible on Delivery](https://develop.yotpo.com/reference/review-request-eligible-on-delivery.md): `WEBHOOK review_request.eligible.on_delivery` Sent when an order becomes eligible for a review request after it is delivered. Use it to send review requests from your own messaging platform. ## API reference · Loyalty & Referrals Webhooks - [Introduction to Loyalty Events](https://develop.yotpo.com/reference/intro-to-webhook-events.md): Yotpo can publish Loyalty & Referrals events to a webhook URL or directly to one of our partner integrations. - [Coupon Earned](https://develop.yotpo.com/reference/coupon-earned.md): `WEBHOOK swell/redemption/created` Sent when a customer gets a coupon code, either by completing a campaign (for example a newsletter signup) or by redeeming points. Use it to email the coupon code to the customer. - [Custom Reward Redeemed](https://develop.yotpo.com/reference/custom-reward-redeemed.md): `WEBHOOK loyalty/custom/reward/created` Sent when a customer redeems points for a custom reward, or gets a custom reward for completing a campaign. - [Customer Birthday](https://develop.yotpo.com/reference/customer-birthday.md): `WEBHOOK swell/customer/birthday` Sent on a customer's birthday. Use it to send a birthday email and tell the customer about any points or coupon from your Birthday campaign. - [Customer Birthday Captured](https://develop.yotpo.com/reference/customer-birthday-captured.md): `WEBHOOK swell/birthday/captured` Sent when a customer sets their birthday on your storefront, or when it's updated in Yotpo Loyalty. - [Customer Anniversary](https://develop.yotpo.com/reference/customer-anniversary.md): `WEBHOOK swell/customer/anniversary` Sent on a customer's anniversary. Use it to send an anniversary email and tell the customer about any points or coupon from your Anniversary campaign. - [Customer Anniversary Captured](https://develop.yotpo.com/reference/customer-anniversary-captured.md): `WEBHOOK swell/anniversary/captured` Sent when a customer sets their anniversary on your storefront. - [Donation Created](https://develop.yotpo.com/reference/donation-created.md): `WEBHOOK loyalty/donation/created` Sent when a customer redeems points for a donation to a nonprofit through the Shopping Gives integration. - [Account Created](https://develop.yotpo.com/reference/account-created.md): `WEBHOOK swell/account/created` Sent when a customer gets the reward for the New Member Reward earning rule. Use it to send a loyalty welcome email. - [Loyalty Opt In](https://develop.yotpo.com/reference/loyalty-opt-in.md): `WEBHOOK loyalty/opt_in` Sent when a customer opts in to the loyalty program. Opted-in customers can earn and redeem points and join tiers. - [Loyalty Opt Out](https://develop.yotpo.com/reference/loyalty-opt-out.md): `WEBHOOK loyalty/opt_out` Sent when a customer opts out of the loyalty program. Opted-out customers can't take part in any loyalty activity. - [Points Changed](https://develop.yotpo.com/reference/points-changed.md): `WEBHOOK swell/points/changed` Sent every time a customer's points balance changes, with the balance before and after. Use it to keep a points balance in another system in sync. - [Points Earned](https://develop.yotpo.com/reference/points-earned.md): `WEBHOOK swell/points/earned` Sent when a customer earns points. Use it to keep the customer's points balance up to date in your CRM or email platform. - [Points Reminder](https://develop.yotpo.com/reference/points-reminder.md): `WEBHOOK swell/points/reminder` Sent after a set number of days of inactivity, when the customer is close to earning a reward. Use it to remind them. - [Points Expiration Reminder](https://develop.yotpo.com/reference/points-expiration-reminder.md): `WEBHOOK loyalty/expiration/reminder` Sent when a customer's points are about to expire. Use it to remind them to use their points. - [Redemption Below Threshold](https://develop.yotpo.com/reference/redemption-below-threshold.md): `WEBHOOK swell/redemption_code/below_threshold` Sent when a Custom Coupon reward is running low on uploaded codes: when the unused codes reach the reward's threshold, then half, a quarter and an eighth of it, and 0. - [Redemption Cancellation Request](https://develop.yotpo.com/reference/redemption-cancellation-request.md): `WEBHOOK swell/point_redemption/cancellation_request` Sent when a customer asks to cancel a redemption and get their points back. The points are returned only after you approve the cancellation through the API. - [Redemption Reminder](https://develop.yotpo.com/reference/redemption-reminder.md): `WEBHOOK swell/redemption/reminder` Sent after a set number of days of inactivity, when the customer has enough points for a reward. Use it to remind them. - [Referral Link Share](https://develop.yotpo.com/reference/referral-link-share.md): `WEBHOOK swell/referral/share` Sent when a customer shares their referral link with friends. Use it to tell the friend that someone they know likes your store. - [Referral Link Share (2.0)](https://develop.yotpo.com/reference/referral-link-share-new.md): `WEBHOOK yotpo/referral/shared` Sent when a customer shares their referral link with friends. Use it to tell the friend that someone they know likes your store. - [Referral Share Reminder](https://develop.yotpo.com/reference/referral-share-reminder.md): `WEBHOOK swell/referral/share/reminder` Sent when a referred friend hasn't made a purchase after a set number of days. Use it to remind them to use the referral link, so both customers get a reward. - [Referral Product Share Link](https://develop.yotpo.com/reference/referral-product-share-link.md): `WEBHOOK loyalty/referral/product_share` Sent when a customer shares a product referral link. Use it to send the product share email from your own email platform. - [Referral Product Share Reminder](https://develop.yotpo.com/reference/referral-product-share-reminder.md): `WEBHOOK loyalty/referral/product_share/reminder` Sent when a referred friend hasn't made a purchase after a set number of days. Use it to remind them to use the product referral link, so both customers get a reward. - [Referral Completed](https://develop.yotpo.com/reference/referral-completed.md): `WEBHOOK swell/referral/completed` Sent when a customer refers a friend who meets your referral program's requirements. Use it to thank the customer for the referral. - [Referral Completed (2.0)](https://develop.yotpo.com/reference/referral-completed-new.md): `WEBHOOK yotpo/referral/completed` Sent when a customer refers a friend who meets your referral program's requirements. Use it to thank the customer for the referral. - [Tier Earned](https://develop.yotpo.com/reference/vip-tier-earned.md): `WEBHOOK swell/tier/earned` Sent when a customer meets the requirements for a new tier. Use it to congratulate them on their new status. - [Tier Lost](https://develop.yotpo.com/reference/vip-tier-lost.md): `WEBHOOK swell/tier/lost` Sent when a customer no longer meets the requirements for their tier at the end of the period, or when they opt out of the loyalty program. - [Tier Status Changed](https://develop.yotpo.com/reference/vip-tier-status-changed.md): `WEBHOOK swell/tier/status/changed` Sent when a customer gets closer to or farther from keeping their current tier or reaching the next one. - [Tier Expiration Reminder](https://develop.yotpo.com/reference/vip-tier-expiration-reminder.md): `WEBHOOK yotpo/tier/expiration/reminder` Sent when a customer is at risk of losing their tier: 30, 14 and 7 days before it expires, depending on your settings, and only if they haven't met the requirements to keep it. Each reminder is sent once. - [CommerceCloud Integration Disabled](https://develop.yotpo.com/reference/commerce-cloud-integration-disabled.md): `WEBHOOK loyalty/integrations/integration_disabled` Sent when the Salesforce Commerce Cloud integration is disabled because of authorization errors.