Yelp Reviews API Documentation
The Yelp Reviews API returns review text, ratings, reviewer profiles, photos, reactions, and business replies when available.
Take the encoded place_id from local_results.place_id in Yelp Search API.
Reviews use text and iso_date; missing fields are omitted.
Follow pagination.next_page_token with the same filters to retrieve another page.
Text search uses Yelp's relevance matching: results need not contain the exact phrase, ordering can vary, and the reported total can be an estimate.
Recommended pages contain up to 49 reviews; non-recommended pages contain up to 10.
Non-recommended reviews use the selected Yelp domain and do not support language, rating, text, or sort filters.
API Parameters
Localization
-
- Name
-
yelp_domain - Required
- Optional
- Description
-
Yelp domain to request. Defaults to
yelp.com. See the supported domains below. Thewwwprefix is optional for www domains.
-
- Name
-
hl - Required
- Optional
- Description
-
Filter recommended reviews by a lowercase two- or three-letter language code. Defaults to the selected domain's language (
enon yelp.com). Available languages appear inreview_languages. Cannot be used withnot_recommended=true.
Sorting
-
- Name
-
sort_by - Required
- Optional
- Description
-
Review ordering. Supported values:
most_relevant,newest,oldest,highest_rating,lowest_rating,elites. Defaults tomost_relevant. Cannot be combined withqornot_recommended=true.
Filters
-
- Name
-
rating - Required
- Optional
- Description
-
Filter by one to five ratings from
1to5, separated by commas, such as4,5. All ratings are included when omitted. Cannot be combined withqornot_recommended=true.
-
- Name
-
not_recommended - Required
- Optional
- Description
-
Set to
trueto retrieve reviews Yelp does not recommend. Defaults tofalse. This mode does not supportq,sort_by,rating, orhl.
Pagination
-
- Name
-
num - Required
- Optional
- Description
-
Results per page, from
1to49; defaults to49. Non-recommended reviews use fixed ten-result pages; omit this parameter or use10in that mode.
-
- Name
-
next_page_token - Required
- Optional
- Description
-
Use
pagination.next_page_tokenfrom the preceding response and keep all other parameters unchanged. Applies to recommended and non-recommended reviews. Omit for the first page.
Engine
-
- Name
-
engine - Required
- Required
- Description
-
Parameter defines an engine that will be used to retrieve real-time data. It must be set to
yelp_reviews.
API key
-
- Name
-
api_key - Required
- Required
- Description
-
The
api_keyauthenticates your requests. Use it as a query parameter (https://www.searchapi.io/api/v1/search?api_key=YOUR_API_KEY) or in the Authorization header (Bearer YOUR_API_KEY).
Zero Data Retention
-
- Name
-
zero_retention - Enterprise Only
- Enterprise Only
- Required
- Optional
- Description
-
Set this parameter to
trueto disable all logging and persistent storage. No request parameters, HTML, or JSON responses are stored or logged. Suitable for high-compliance use cases. Debugging and support may be limited while enabled.
Supported Yelp domains
www.yelp.com, www.yelp.ca, fr.yelp.ca, www.yelp.co.uk, www.yelp.ie, www.yelp.com.au, www.yelp.co.nz, www.yelp.de, www.yelp.at, de.yelp.ch, en.yelp.ch, fr.yelp.ch, it.yelp.ch, www.yelp.fr, en.yelp.be, fr.yelp.be, nl.yelp.be, www.yelp.es, www.yelp.com.ar, www.yelp.cl, www.yelp.com.mx, www.yelp.it, www.yelp.nl, www.yelp.dk, www.yelp.no, www.yelp.se, fi.yelp.fi, sv.yelp.fi, www.yelp.pl, www.yelp.cz, www.yelp.pt, www.yelp.com.br, www.yelp.com.tr, www.yelp.co.jp, en.yelp.com.hk, zh.yelp.com.hk, www.yelp.com.tw, www.yelp.com.sg, en.yelp.my, ms.yelp.my, en.yelp.com.ph, fil.yelp.com.ph
API Examples
Full Response
This example returns recommended reviews, business details, available review languages, totals, and a pagination token. Reviews may include photos, reactions, and business replies.
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&place_id=YRA2VnhFLChIh1ZD31cXjg&yelp_domain=yelp.co.uk
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "yelp_reviews",
"place_id": "YRA2VnhFLChIh1ZD31cXjg",
"yelp_domain": "yelp.co.uk"
}
response = requests.get(url, params=params)
print(response.text)
{
"search_metadata": {
"id": "search_x7L8KlJ0oGB6TVqlg6Y1GkOE",
"status": "Success",
"created_at": "2026-10-01T17:59:59Z",
"request_time_taken": 3.55,
"parsing_time_taken": 0.01,
"total_time_taken": 3.57,
"request_url": "https://www.yelp.co.uk/biz/YRA2VnhFLChIh1ZD31cXjg?rl=en&sort_by=relevance_desc&start=0",
"html_url": "https://www.searchapi.io/api/v1/searches/search_x7L8KlJ0oGB6TVqlg6Y1GkOE.html",
"json_url": "https://www.searchapi.io/api/v1/searches/search_x7L8KlJ0oGB6TVqlg6Y1GkOE"
},
"search_parameters": {
"engine": "yelp_reviews",
"place_id": "YRA2VnhFLChIh1ZD31cXjg",
"yelp_domain": "yelp.co.uk"
},
"place_result": {
"place_id": "YRA2VnhFLChIh1ZD31cXjg",
"alias": "the-british-museum-london",
"title": "The British Museum",
"link": "https://www.yelp.co.uk/biz/the-british-museum-london",
"rating": 4.6,
"reviews": 1287
},
"search_information": {
"total_results": 1162
},
"review_languages": [
{
"hl": "en",
"count": 1162
},
...
],
"reviews": [
{
"position": 1,
"review_id": "diFdEkMO_YmCyvLuintRsw",
"link": "https://www.yelp.co.uk/biz/YRA2VnhFLChIh1ZD31cXjg?hrid=diFdEkMO_YmCyvLuintRsw",
"text": "Big! Giant! Huge Collection! I think that describes this museum. Be prepared to spend at least half day here. For fast pace like me, it takes us 3 hours. \n\nThis museum need reservations ahead of time. It is free to public. The museum is popular, if you try to get in at the day arrive, you have to hope not many reserve the ticket. \n\nThe museum has a lot room with different regions in the world. Many of the collection even the host country doesn't have it. The Egypt collection includes the many types of mummies. This collection not even the Egypt has it. \n\nThe entrance basically enter to the round section that connected to the different room. You may need a good leg to walk entire museum. They also have folding chairs that you can use and portable to open at the display.",
"language": "en",
"rating": 5,
"iso_date": "2026-08-20T20:26:05+01:00",
"user": {
"user_id": "fr1Hz2acAb3OaL3l6DyKNg",
"name": "Boon C.",
"link": "https://www.yelp.co.uk/user_details?userid=fr1Hz2acAb3OaL3l6DyKNg",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/photo/wkgmzVAY3dn3dagdH3eORQ/180s.jpg",
"address": "Tampa, United States",
"reviews": 4480,
"friends": 651,
"photos": 31881,
"elite_year": 26
},
"images": [
{
"original": "https://s3-media0.fl.yelpcdn.com/bphoto/FipC6F55Ak5kRX1HsXZ4sg/o.jpg",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/bphoto/FipC6F55Ak5kRX1HsXZ4sg/348s.jpg"
},
...
],
"reactions": [
{
"type": "helpful",
"title": "Helpful",
"count": 2
},
...
]
},
...
],
"pagination": {
"next_page_token": "eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoib2Zmc2V0Iiwib2Zmc2V0Ijo0OH0"
}
}
Rating Filter
Combine comma-separated ratings with sort_by. This example selects four- and five-star reviews and sorts by highest rating.
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&place_id=aSeldMKv9G6_8-gV0bjwvw&rating=4%2C5&sort_by=highest_rating
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "yelp_reviews",
"place_id": "aSeldMKv9G6_8-gV0bjwvw",
"rating": "4,5",
"sort_by": "highest_rating"
}
response = requests.get(url, params=params)
print(response.text)
{
"reviews": [
{
"position": 1,
"review_id": "ZRcjj6jAoAcuT4gUh6ipyQ",
"link": "https://www.yelp.com/biz/aSeldMKv9G6_8-gV0bjwvw?hrid=ZRcjj6jAoAcuT4gUh6ipyQ",
"text": "It had been a while since we last visited The Cheesecake Factory, so today felt like a special treat. We had a wonderful experience! The food was delicious, the portions were generous, and everything was served fresh and beautifully presented. The atmosphere was welcoming and comfortable, and the service was friendly, attentive, and professional.\n\nThere were so many great choices on the menu, making it hard to choose. Overall, it was a fantastic dining experience and a lovely way to treat ourselves. We'll definitely be coming back!",
"language": "en",
"rating": 5,
"iso_date": "2026-09-26T18:52:29-07:00",
"user": {
"user_id": "LNg37j-JwIRTa90BYlVZBQ",
"name": "Norman W.",
"link": "https://www.yelp.com/user_details?userid=LNg37j-JwIRTa90BYlVZBQ",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/photo/pqO-uCb_VLMr9FCLF5RDlw/180s.jpg",
"address": "San Bruno, CA",
"reviews": 7,
"friends": 6,
"photos": 11
},
"images": [
{
"title": "Spicy Crispy Chicken Sandwich with fries",
"original": "https://s3-media0.fl.yelpcdn.com/bphoto/KJ0b3Lg9-k8cao6L6dcQ1Q/o.jpg",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/bphoto/KJ0b3Lg9-k8cao6L6dcQ1Q/348s.jpg"
},
...
],
"reactions": [
{
"type": "helpful",
"title": "Helpful",
"count": 2
},
...
],
"response": {
"text": "Hi Norman, thank you for your review. We're so happy you enjoyed our delicious food, generous portion sizes, extensive menu options, great atmosphere, and excellent service. We hope to see you again soon. ",
"iso_date": "2026-09-28T16:23:30-07:00",
"user": {
"user_id": "x8-nFtfTVaymxlTGCAEMtQ",
"name": "Guest Services",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/buphoto/I4ryzhe6zviOSLb2z521zg/90s.jpg",
"role": "MANAGER"
}
}
},
...
]
}
Search Within Reviews
Use q to search review text. Yelp applies relevance matching, so results need not contain the exact phrase. Text search cannot be combined with rating or sort filters.
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&place_id=KgpOYAG-r_eDsQXFXt0nnQ&q=oysters
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "yelp_reviews",
"place_id": "KgpOYAG-r_eDsQXFXt0nnQ",
"q": "oysters"
}
response = requests.get(url, params=params)
print(response.text)
{
"reviews": [
{
"position": 1,
"review_id": "OX2z2Roah10_D94R6qeBSA",
"link": "https://www.yelp.com/biz/KgpOYAG-r_eDsQXFXt0nnQ?hrid=OX2z2Roah10_D94R6qeBSA",
"text": "I made reservations to celebrate the near end of summer and catch up with my cousin. From the time we entered Balthazar, we were enthralled. The hustle and bustle, the very New York \"scene,\" was everything I expected, wanted and needed. Fab! Our server was wonderful and the food: Balthazar salad, Wellfleet oysters, chef's burger and fries, trout over lentils and greens- was absolutely delicious. Did I mention the ice cold martinis?\nReturning soon.\nVery soon!\n\nNo notes.",
"text_highlighted_words": [
"oysters"
],
"language": "en",
"rating": 5,
"iso_date": "2026-08-30T04:17:12-04:00",
"user": {
"user_id": "RmzPVmYtVx3ESCbbVk5tJQ",
"name": "Christopher C.",
"link": "https://www.yelp.com/user_details?userid=RmzPVmYtVx3ESCbbVk5tJQ",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/photo/lXWoNZsHA3A9NMptLdJF5w/180s.jpg",
"address": "New York, NY",
"reviews": 11,
"friends": 0,
"photos": 7
},
"images": [
{
"title": "Balthazar for brunch.",
"original": "https://s3-media0.fl.yelpcdn.com/bphoto/pIIspDrj8_HeiP5x-sQU0w/o.jpg",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/bphoto/pIIspDrj8_HeiP5x-sQU0w/348s.jpg"
},
...
],
"reactions": [
{
"type": "helpful",
"title": "Helpful",
"count": 0
},
...
]
},
...
]
}
Review Language
Select a regional Yelp domain with yelp_domain and a review language with hl. This example returns French reviews from Yelp France.
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&hl=fr&place_id=YRA2VnhFLChIh1ZD31cXjg&yelp_domain=yelp.fr
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "yelp_reviews",
"place_id": "YRA2VnhFLChIh1ZD31cXjg",
"yelp_domain": "yelp.fr",
"hl": "fr"
}
response = requests.get(url, params=params)
print(response.text)
{
"reviews": [
{
"position": 1,
"review_id": "_hARMqjFiOdx0az-BhwNNg",
"link": "https://www.yelp.fr/biz/YRA2VnhFLChIh1ZD31cXjg?hrid=_hARMqjFiOdx0az-BhwNNg",
"text": "Mythique, passionnant et gratuit, ce qui ne gâche évidemment rien à ce monument historique, le British Museum est un must see pour tout amateur de culture qui se respecte. \n\nDifficile de trouver les mots pour décrire un musée de manière générale. La tâche est d'autant plus compliquée lorsqu'il s'agit de décrire l'expérience du BM. Lancez-vous et partez à l'assaut de l'espace consacré à l'Egypte avec ses impressionnantes momies, ses sarcophages, vases et autres vestiges restaurés et subliment mis en valeur. Ou faites un bond dans le temps pour revenir aux sources des civilisations grecque et romaine, qui n'auront plus de secret pour vous car les pièces sont organisées autour de différentes thématiques (médecine, croyances, commerce, art...). Libre à vous de vous balader dans le sens qui vous plaira et d'immortaliser ce qui retiendra votre attention.\n\nIdéalement, mieux vaut organiser un minimum sa visite en amont. Il vous en sera plus facile d'évaluer le temps nécessaire pour la visite. Comptez au minimum 2h pour une visite éclair et plus si affinités. Une petite offrande pécuniaire sera à votre discrétion en fin de visite si vous avez apprécié votre visite.",
"language": "fr",
"rating": 5,
"iso_date": "2015-03-16T12:34:57Z",
"user": {
"user_id": "airzHrguIRaGkjhYHhu4CQ",
"name": "Sarah D.",
"link": "https://www.yelp.fr/user_details?userid=airzHrguIRaGkjhYHhu4CQ",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/photo/FH6NFiiLxY-5M0NLpdo0Mg/180s.jpg",
"address": "Paris",
"reviews": 620,
"friends": 185,
"photos": 1131
},
"reactions": [
{
"type": "helpful",
"title": "Helpful",
"count": 2
},
...
]
},
...
]
}
Non-recommended Reviews
Set not_recommended=true to retrieve reviews Yelp excludes from its recommendation feed. These pages contain up to ten reviews and do not accept text, rating, language, or sort filters. Reviews removed by Yelp are excluded.
https://www.searchapi.io/api/v1/search?engine=yelp_reviews¬_recommended=true&place_id=KgpOYAG-r_eDsQXFXt0nnQ
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "yelp_reviews",
"place_id": "KgpOYAG-r_eDsQXFXt0nnQ",
"not_recommended": true
}
response = requests.get(url, params=params)
print(response.text)
{
"reviews": [
{
"position": 1,
"review_id": "cM45qY_-EOfM_67fVrN84Q",
"link": "https://www.yelp.com/biz/KgpOYAG-r_eDsQXFXt0nnQ?hrid=cM45qY_-EOfM_67fVrN84Q",
"text": "Balthazar is living off its reputation, and the reality is far less charming than the legend. The room is loud and frantic, the kind of place where you're treated like background noise unless you're a regular or a celebrity, and I'm far too old to play that game--divorced once, not desperate twice. The food is overpriced bistro routine dressed up as something special, heavy on butter and attitude, light on actual care. Service felt brisk to the point of dismissive, as if basic courtesy is optional when the place is packed. I walked out feeling swindled: a premium tab for a mediocre meal and a whole lot of smugness.",
"rating": 1,
"iso_date": "2026-01-25T21:21:26-05:00",
"user": {
"user_id": "nSrcq2Rboyedc6rJBfJdaQ",
"name": "Marianne S.",
"link": "https://www.yelp.com/user_details?userid=nSrcq2Rboyedc6rJBfJdaQ",
"address": "Scarsdale, NY",
"reviews": 5,
"friends": 0,
"photos": 0
}
},
...
]
}
Pagination
Pass pagination.next_page_token from the previous response and preserve the other parameters. Omission of the next token marks the last page. Source totals may be estimates, and relevance ordering may change between requests.
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&next_page_token=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoib2Zmc2V0Iiwib2Zmc2V0Ijo0OH0&place_id=YRA2VnhFLChIh1ZD31cXjg&yelp_domain=yelp.co.uk
- Python
- Node
- Ruby
- Java
- Go
- PHP
- Bash
- R
- Kotlin
- Swift
- C#
- C
- C++
- requests
import requests
url = "https://www.searchapi.io/api/v1/search"
params = {
"engine": "yelp_reviews",
"place_id": "YRA2VnhFLChIh1ZD31cXjg",
"yelp_domain": "yelp.co.uk",
"next_page_token": "eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoib2Zmc2V0Iiwib2Zmc2V0Ijo0OH0"
}
response = requests.get(url, params=params)
print(response.text)
{
"reviews": [
{
"position": 50,
"review_id": "Dru72dJ9FSwcqUbXH-UOWg",
"link": "https://www.yelp.co.uk/biz/YRA2VnhFLChIh1ZD31cXjg?hrid=Dru72dJ9FSwcqUbXH-UOWg",
"text": "WOW - what a museum. Our hotel was 2 blocks from the museum and, being so close, we were able to visit the museum on two different days.\n\nThis is one of the worlds top museums and is a definite \"must see\" attraction for anyone visiting London.\n\nOn our first visit, we saw all the traditional favorites - the Elgin marbles (which really aren't marbles), the Rosetta Stone and a few other traditional favorites on the main floor.\n\nOn our return visit the next morning, we started on one of the upper floors. Not only were they less crowded but we were better able to concentrate on many of the museum's fantastic exhibits.\n\nBe sure not to miss the historic reading room on the first floor.\n\nAnother hidden gem is the pizza cafe tucked in a corner of the main floor. It wasn't crowded and was a good place to catch a quick lunch away from the crowds.\n\nThis is a definite bucket list site for any visitor to London.",
"language": "en",
"rating": 5,
"iso_date": "2025-10-25T01:00:17+01:00",
"user": {
"user_id": "GHm-UbmlJtwhhIttR020Hw",
"name": "Jim H.",
"link": "https://www.yelp.co.uk/user_details?userid=GHm-UbmlJtwhhIttR020Hw",
"thumbnail": "https://s3-media0.fl.yelpcdn.com/photo/mY77OhagX9eMVc-QdGgbEQ/180s.jpg",
"address": "Westerville, United States",
"reviews": 1411,
"friends": 87,
"photos": 2732,
"elite_year": 26
},
"reactions": [
{
"type": "helpful",
"title": "Helpful",
"count": 1
},
...
]
},
...
],
"pagination": {
"next_page_token": "eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoib2Zmc2V0Iiwib2Zmc2V0Ijo5N30"
}
}