Get Yelp Business Reviews

View all Yelp Business, Reviews & Restaurant Data endpoints →

Retrieve a page of reviews for one Yelp business using its alias, 22-character business ID or Yelp business URL. Combine optional keyword, star-rating and original-language filters; choose from six documented sort orders, or request an additional translation using a two-letter language code. Pagination defaults to page 1 with 20 reviews per page; documented ranges are pages 1–1000 and page sizes 1–49. Saved successful responses contain count, per_page, current_page, total_pages, next, previous, business and reviews. The business object includes id, alias, name, link, rating, review_count, rating_distribution and languages, whose entries contain language and count. Observed review rows include id, link, rating, text, language, translated_text, created_at, date, author, reactions and photos. Author fields include identity, profile link, location, photo link, contribution counts and elite-status fields. Reactions include helpful, thanks, love_this and oh_no. Photo entries include identity, image links, dimensions, upload time, like_count and uploaded_by; caption and tags can be null. Rows also carry is_updated, is_first_review, check_in_count, made_reservation, paid_through_yelp and was_appreciated_by_business. Fields such as videos, owner_reply, previous_reviews, review_of_the_day and expert_badge were null in the observed rows, so their populated structures are not established. A saved newest-sort observation returned three reviews with text, ratings, authors and dates. A separate saved request containing a synthetic keyword returned reviews=[] and count=null, with null navigation values. This observation does not establish why the response was empty; a null count is unknown, not a confirmed zero. translated_text was null in the observed rows. The other sort orders, rating and language filters, and translation behavior are documented capabilities rather than independently verified results. Do not assume complete historical coverage or treat newest ordering as a guaranteed incremental feed.

API Features

Branch-scoped review records Resolve one business by alias, business ID or Yelp URL and work with observed review IDs, text, ratings, dates and author details rather than a city-wide review feed.
Star, keyword and language selection Documented inputs narrow reviews by a keyword, comma-separated star ratings or original language. A saved request containing a synthetic keyword returned an empty reviews array; the cause of that response is not established.
Six documented review orderings Choose relevance, newest, oldest, highest_rated, lowest_rated or elites. Newest was exercised in a saved observation; the other orderings have not been independently verified.
Nullable page-count diagnostics Use per_page, current_page, total_pages and navigation fields alongside the returned rows, preserving an unknown count instead of converting null to zero.
Original text and translation separation Keep text and language distinct from translated_text. A translation target is documented, but translated_text was null in the observed unrequested-translation response.

Live API Demo

GET /api/project/yelp/business-reviews

Request cost is temporarily unavailable. No price is assumed.

View pricing

API Response (JSON)

{}
curl -X GET 'https://api.opendata-api.com/api/project/yelp/business-reviews?key=<API_KEY>&business=gary-danko-san-francisco&page=1&page_size=20&sort_by=relevance'
📢
Need Help?
If you encounter API issues or need other API requirements, please contact us.
Contact Us

Use Cases

Frequently asked questions

What can I pass as the business identifier?

Pass a Yelp business alias such as gary-danko-san-francisco, a 22-character business ID, or a Yelp business URL. The request targets one business, not a location-wide search.

How do review pagination and page-size limits work?

page defaults to 1 and accepts documented values from 1 to 1000. page_size defaults to 20 and accepts 1 to 49. Responses observed per_page, current_page, total_pages, next and previous, but those limits do not guarantee that every historical review is accessible.

Can I combine keyword and star-rating filters?

The documented contract provides query for a review keyword, rating for comma-separated star ratings such as 1,2, and language for the original review language. These optional inputs can be supplied together. A saved request containing a synthetic keyword returned an empty response, without establishing its cause; combined filters and rating filtering were not independently tested.

How is language different from translate_to?

language filters reviews by their original two-letter language code. translate_to requests an additional translation into a two-letter target code. Keep text and language separate from translated_text, which was null in the saved rows without a translation request; translated output was not verified.

Does reviews=[] with count=null mean the business has no reviews?

No. A saved request containing a synthetic keyword returned an empty reviews array and an unknown count for a business that also returned genuine reviews in another observation. These observations do not establish the cause of the empty response. Preserve null as unknown and inspect the requested filters and page; do not interpret it as the business having zero reviews.

Which review sort orders are available?

The documented values are relevance, newest, oldest, highest_rated, lowest_rated and elites, with relevance as the default. A saved request using newest returned three dated reviews. Other sort orders were not independently verified, and ordering does not establish a guaranteed change feed.

Are replies, videos and translations always populated?

No. translated_text, videos, owner_reply, previous_reviews and several optional badge fields were null in the observed review rows. Treat them as optional; the saved responses do not establish their populated formats or availability for other businesses.

Related operations

Guides

View Subscription Plans →