Yelp Reviews API Documentation

GET   /api/v1/search?engine=yelp_reviews

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

Search Query

  • Name
    place_id
    Required
    Required
    Description

    Encoded 22-character Yelp business ID from yelp_search.local_results.place_id. Aliases are not supported.

  • Name
    q
    Required
    Optional
    Description

    Search within reviews, up to 2,000 characters. Cannot be combined with sort_by, rating, or not_recommended=true.

Localization

  • Name
    yelp_domain
    Required
    Optional
    Description

    Yelp domain to request. Defaults to yelp.com. See the supported domains below. The www prefix 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 (en on yelp.com). Available languages appear in review_languages. Cannot be used with not_recommended=true.

Sorting

  • Name
    sort_by
    Required
    Optional
    Description

    Review ordering. Supported values: most_relevant, newest, oldest, highest_rating, lowest_rating, elites. Defaults to most_relevant. Cannot be combined with q or not_recommended=true.

Filters

  • Name
    rating
    Required
    Optional
    Description

    Filter by one to five ratings from 1 to 5, separated by commas, such as 4,5. All ratings are included when omitted. Cannot be combined with q or not_recommended=true.

Pagination

  • Name
    num
    Required
    Optional
    Description

    Results per page, from 1 to 49; defaults to 49. Non-recommended reviews use fixed ten-result pages; omit this parameter or use 10 in that mode.

  • Name
    next_page_token
    Required
    Optional
    Description

    Use pagination.next_page_token from 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_key authenticates 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 true to 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

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.

GET
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&place_id=YRA2VnhFLChIh1ZD31cXjg&yelp_domain=yelp.co.uk
Request
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)
Response
{
  "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.

GET
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&place_id=aSeldMKv9G6_8-gV0bjwvw&rating=4%2C5&sort_by=highest_rating
Request
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)
Response
{
  "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

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.

GET
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&place_id=KgpOYAG-r_eDsQXFXt0nnQ&q=oysters
Request
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)
Response
{
  "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

Review Language

Select a regional Yelp domain with yelp_domain and a review language with hl. This example returns French reviews from Yelp France.

GET
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&hl=fr&place_id=YRA2VnhFLChIh1ZD31cXjg&yelp_domain=yelp.fr
Request
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)
Response
{
  "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.

GET
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&not_recommended=true&place_id=KgpOYAG-r_eDsQXFXt0nnQ
Request
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)
Response
{
  "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.

GET
https://www.searchapi.io/api/v1/search?engine=yelp_reviews&next_page_token=eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoib2Zmc2V0Iiwib2Zmc2V0Ijo0OH0&place_id=YRA2VnhFLChIh1ZD31cXjg&yelp_domain=yelp.co.uk
Request
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)
Response
{
  "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"
  }
}