Yelp Search API

Scrape Yelp search results - ranked local business listings with rating, reviews, price, categories, phone, and neighborhood. Filter by category, sort by rating or review count, paginate, and get the place IDs to pull full details and reviews.

MEDIAN LAGon demand
PARAMETERS8
TOTAL USERS13
MONTHLY ACTIVE11
TOTAL RUNS771
RUNS SUCCEEDED100.0%
RATING5.0 (3)

Input parameters

PARAMETERTYPEREQDEFAULTDESCRIPTION
location string yes Set the geographic location to search in (the Yelp 'find_loc' box).
search_term string no Set the Yelp search query (the 'find_desc' box).
category_filter string no Restrict results to a Yelp category alias (the 'cflt' value).
sort_by enum no Order the results. 'recommended' is the Yelp default; 'rating' sorts by highest rated; 'review_count' sorts by most reviewed.
attrs string no Refine results by price and feature attributes (the 'attrs' value).
radius_filter string no Narrow results to a distance radius or a neighborhood (the 'l' value).
yelp_domain string no Choose which regional Yelp domain to query (e.g. 'yelp.com', 'yelp.co.uk', 'yelp.fr', 'yelp.de').
max_pages integer no 1 Set the maximum number of result pages to fetch (1-indexed). — drives your bill

Worked examples

Basic — the required input, with the schema's own example values
{
  "location": "New York, NY"
}

Tasks

Saved runs with the inputs already filled in — each one a standalone page and a working configuration example.

Request a task →

Code

curl

curl -X POST "https://api.apify.com/v2/acts/johnvc~yelp-search-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"location": "New York, NY"}'

Python

from apify_client import ApifyClient

client = ApifyClient("APIFY_TOKEN")
run = client.actor("johnvc/yelp-search-api").call(
    run_input={'location': 'New York, NY'}
)
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)