John Cole

Aug 11, 2026 • 3 min read

How to pull a full Yelp business profile by place ID with one API

The Yelp Business API turns any Yelp place ID into a full business profile as JSON: hours, amenities, popular dishes, and optional full menus.

The problem

Yelp business pages are dense with structured detail: hours, price tier, amenities, popular dishes, sometimes a full menu. Getting that out programmatically is the annoying part, because the official developer API trims most of it away and scripting the page yourself means fighting JavaScript rendering and anti-bot measures. I wanted the whole profile back as one clean record, which is why this Actor exists.

What the Yelp Business API is

The Yelp Business API takes a Yelp place ID and returns the full public business profile as structured JSON, one item per place.

What it returns

  • name, rating, review count, and price tier

  • categories, phone, address, and website

  • operation_hours per weekday

  • features (amenities) as structured flags like "Offers Delivery"

  • popular_items (dishes) with mention counts

  • full_menu_results when full_menu is enabled and the business publishes a menu

Run it in three steps

Grab the slug after /biz/ in any Yelp business URL, that is the place ID. Open the Yelp Business API and click Try for free. Paste one or more place IDs, run it, and export the dataset as JSON, CSV, or Excel.

Use it as a REST API

Start a run over REST with a POST to the Actor's run endpoint:

POST /v2/acts/johnvc~Yelp-Place-API/runs
Authorization: Bearer YOUR_APIFY_TOKEN
Content-Type: application/json

{ "place_ids": ["maman-new-york-22"], "full_menu": false }

The run lifecycle is in the Apify API docs.

Wire it into Claude with MCP

Through the Apify MCP server the Actor becomes a callable tool in Claude, Claude Code, and Cursor. Ask "pull the profile for maman-new-york-22 and summarize the amenities" and it runs a live fetch, no code.

What people build with it

Competitor profiles across a neighborhood, lead lists enriched with phone and hours, restaurant-menu data instead of screenshots, and scheduled diffs of ratings and amenities over time. The runnable versions live on the examples page, and the full listing is the Peerlist project.

FAQ about scraping Yelp business data

What does the Yelp business scraper cost per profile?

Pricing is pay per event: $0.02 to start a run and $0.02 per place processed, so one business is about $0.04 and ten in a batch about $0.22. New Apify accounts include free platform credit.

How do I call the scraper as an API?

POST a place_ids array to the Actor's run endpoint with your Apify token, then read the dataset as JSON, CSV, or Excel. One JSON item comes back per place ID.

Can Claude call this Yelp scraper through MCP?

Yes. Connect the Apify MCP server and the Actor appears as a callable tool in Claude, Claude Code, and Cursor, with results returned into the conversation.

Can an AI agent pay for this scraper in USDC with x402?

Yes. The Yelp Business API supports agentic payments via the x402 protocol, so AI agents and MCP clients can pay for runs in USDC on Base with no Apify account or API token. Point your agent at the Apify MCP server and it can discover, pay for, and run the scraper autonomously; the Apify x402 announcement has the details.

One honest caveat

Menus only come back when a business publishes one on Yelp; a requested menu that does not exist returns a profile with menu_returned set to false rather than invented data.

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

0

0