John Cole

Jul 26, 2026 • 4 min read

How to Build a Local Lead List From Yelp With One API

Pull ranked Yelp business listings with ratings, review counts, and phone numbers as JSON, then export a local lead list without a Fusion API key.

  • I do a lot of local B2B outreach, and the slow part was never the pitch. It was building a clean list of the right businesses in the right city, with a phone number attached to each one. Yelp has that data on its ranked search pages, but those pages are built to be read by people, not parsed by scripts. So I built an API that does the parsing for me.

    The Yelp Search API is a Yelp scraper you call like an API: give it a search term and a location, and it returns the ranked local business listings as structured JSON, which is exactly what local lead generation work needs.

    What the Yelp Search API returns

    Each run gives you one row per business:

    • Business name, as ranked on the page

    • Star rating and review count, a proxy for how established a business is

    • Price tier and Yelp category aliases

    • Phone number and neighborhood

    • The place ID you need to pull full details or reviews later

    Every result also carries the valid category, price, feature, and neighborhood filters for that search, so you can refine the search without guessing the parameters.

    Run it in three steps

    Open the Actor and click Try for free. Set a location (city, address, or ZIP) and an optional search term. Run it, then export the listings as JSON or CSV. Pricing is pay per page: about a cent per results page (roughly 10 businesses) plus a one-cent setup fee, so a 100-listing pull costs about eleven cents. New Apify accounts include free platform credit that covers early runs.

    Use it as a REST API

    Every run is a standard Apify API call, so you can trigger it from any language. Send the input to the run endpoint:

    POST /v2/acts/johnvc~yelp-search-api/runs
    { "search_term": "dentists", "location": "Brooklyn, NY", "sort_by": "rating", "max_pages": 2 }

    The run writes its results to a dataset you read back as JSON or CSV. Twenty listings, sorted by rating, with phone numbers attached, is a cold-call sheet in a single call.

    Wire it into Claude with MCP

    Through Apify's MCP server, the Actor is a callable tool inside Claude, Claude Code, and Cursor. Ask "find the ten highest-rated plumbers in Chicago and give me their phone numbers" and the agent runs a real search instead of inventing plausible-sounding businesses. You can read about Claude and start a free trial through my referral.

    What people build with it

    The five runnable examples on the project examples page cover the main plays: build B2B lists by ZIP code, target one borough or metro at a time, cover the trades where review count doubles as a longevity signal, and rank the best restaurants in a city for a market snapshot. Each one is a saved task you clone for your own niche and city, then run on demand. The full project is on Peerlist.

    FAQ About the Yelp Scraper

    Is the Yelp scraper free to run?

    The Yelp scraper bills about one cent per results page (roughly 10 businesses) plus a one-cent setup fee, so a 100-listing pull is about eleven cents. New Apify accounts ship with free platform credit that covers early runs, so you can test it at no cost.

    How do I call the Yelp scraper as an API?

    Send a POST to the Actor's run endpoint with a JSON body holding your search term, location, sort order, and page count. The Yelp scraper writes one row per business to a dataset you read back as JSON or CSV, so it drops into any language or cron job.

    Can Claude use the Yelp scraper through MCP?

    Yes. Registered as an MCP tool, the Yelp scraper works from Claude, Claude Code, and Cursor, returning the same structured listings a direct run produces. No code is needed; you ask in plain language and the agent runs the search.

    What will the Yelp scraper not return?

    Whatever the search results page does not show: no email addresses, no full review text, and no hours. The Yelp scraper returns place IDs precisely so you can chain a details or reviews step for the businesses that matter.

    I keep an eye on the issues tab and usually reply within a day.

Join John on Peerlist!

Join amazing folks like John and thousands of other builders on Peerlist.

peerlist.io/

It’s available... this username is available! 😃

Claim your username before it's too late!

This username is already taken, you’re a little late.😐

0

1

0