Yelp Reviews API and MCP
Scrape Yelp reviews by place ID - rating, full review text, date, reviewer name and stats, photos, owner replies, and helpful votes. Sort by date or rating, filter by stars, search within reviews, and paginate.
MEDIAN LAGon demand
PARAMETERS7
TOTAL USERS12
MONTHLY ACTIVE10
TOTAL RUNS339
RUNS SUCCEEDED100.0%
RATING4.06 (4)
Input parameters
| PARAMETER | TYPE | REQ | DEFAULT | DESCRIPTION |
|---|---|---|---|---|
| place_id | string | yes | — | Set the Yelp place ID to fetch reviews for. |
| sort_by | enum | no | — | Order the reviews. |
| rating | string | no | — | Restrict to specific star ratings, 1 to 5. |
| q | string | no | — | Keep only reviews mentioning this keyword or phrase (e.g. 'cheesecake', 'service'). |
| hl | string | no | — | Set the two-letter language code for the reviews interface (e.g. 'en', 'es', 'fr'). |
| not_recommended | boolean | no | False | Set true to return Yelp's not-recommended (filtered) reviews instead of the recommended ones. |
| max_pages | integer | no | 1 | Set the maximum number of review pages to fetch (about 49 reviews per page). — drives your bill |
Worked examples
{
"place_id": "ED7A7vDdg8yLNKJTSVHHmg"
}
Coverage
6
sort by — relevance_desc date_desc date_asc rating_desc rating_asc +1
Tasks
Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.
Code
curl
curl -X POST "https://api.apify.com/v2/acts/johnvc~Yelp-Reviews-API/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"place_id": "ED7A7vDdg8yLNKJTSVHHmg"}'
Python
from apify_client import ApifyClient
client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/Yelp-Reviews-API").call(
run_input={'place_id': 'ED7A7vDdg8yLNKJTSVHHmg'}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item)