# Yelp Search API. Pay per record.

> Search Yelp for a keyword in a place, with price and feature filters. Businesses with rating and phone as JSON. From $0.000225 each.

Canonical: https://apiforagents.dev/platforms/yelp/search-api · Updated 2026-10-21

Search Yelp for a keyword in a place, with Yelp's own sort, price levels and feature filters. Every hit comes back as a full business profile.

- Price: $0.000225 / business
- Billed: Per record
- Free to start: $0.10
- Endpoint: POST /v1/yelp

## What people build with the Yelp Search API

- **Local lead lists.** Every plumber or bakery in a city, with phone, address and rating, ready for a prospect list.
- **Find the best rated.** Sort by rating or by most reviewed to see which places lead a category in a neighbourhood.
- **Filter by what matters.** Keep only the price levels you want, or places with features such as outdoor seating or delivery.

## Quote it, then run it

1. free quote: the exact price, nothing charged:

```bash
curl -X POST https://apiforagents.dev/v1/yelp \
  -H "Authorization: Bearer $AFA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"op":"search","query":"ramen","location":"San Francisco, CA","sort":"rating_high","priceLevels":["1","2"],"limit":20,"estimateOnly":true}'
```

2. the same call, run:

```bash
curl -X POST https://apiforagents.dev/v1/yelp \
  -H "Authorization: Bearer $AFA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"op":"search","query":"ramen","location":"San Francisco, CA","sort":"rating_high","priceLevels":["1","2"],"limit":20}'
```

## Inputs

Everything you can send in one search call. Required inputs first.

| Input | Type | What it does |
|---|---|---|
| query * | string | ≤300 chars |
| location * | string | ≤120 chars |
| sort | enum |  |
| priceLevels | enum list | Yelp's dollar-sign tiers, "1" ($) to "4" ($$$$). Any listed tier matches; empty = every price level. |
| features | text list | Yelp's own feature slugs, e.g. "outdoor_seating", "delivery". each ≤40 chars |
| limit | integer | 1-100 |

## What comes back

The fields of every row, always present. Nothing is guessed: a value that could not be measured is null, and the answer's coverage says why.

| Field | Type |
|---|---|
| businessSlug | string |
| businessName | string |
| businessUrl | string |
| address | any |
| city | string |
| state | string |
| neighborhoods | list of string |
| latitude | number |
| longitude | number |
| phone | string |
| website | string |
| menuUrl | string |
| rating | number |
| totalReviews | integer |
| starBreakdown | any |
| reviewInsights | any |
| reviewHighlights | any |
| popularDishes | any |
| attributes | any |
| specialties | string |
| summary | string |
| yearEstablished | integer |
| history | string |
| photos | list of string |
| healthInspections | any |
| hoursToday | list of string |
| qaCount | integer |
| qaContent | any |
| details | object |

details is always the last field: everything else the source sent for that row, under our own field names. Its keys depend on the source that answered, so read them defensively; it is {} when there is nothing more.

## A sample answer

Made-up names and values in the real field names, so you can see the shape before you spend anything.

| businessName | address | city | state | phone | rating |
|---|---|---|---|---|---|
| Taqueria Sol | 402 Market St | San Diego | CA | (619) 555-0133 | 4.7 |
| Casa Lumen Tacos | 88 Harbor Dr | San Diego | CA | (619) 555-0190 | 4.4 |
| El Faro Fish Tacos | 9 Ocean Blvd | San Diego | CA | (619) 555-0177 | 4.5 |

## Pricing

Pay as you go, in US dollars, per record. No subscription, nothing expires, $5 first top-up, and every new agent starts with $0.10 free.

| Request | Records | At the list price |
|---|---|---|
| One business | 1 | $0.000225 |
| 10 businesses | 10 | $0.0022 |
| A full page | 100 | $0.022 |

These are per-record list prices. Some calls also carry a minimum, such as a page of search results, so a small request can cost more than the table shows. The quote ("estimateOnly": true) is free, gives the most your exact request can cost, and the charge then settles to what came back. Records that do not come back are refunded.

## Try it without writing code

- [Open the Yelp Search API in the playground](https://apiforagents.dev/dashboard/run?platform=yelp&op=search): The playground runs any endpoint by hand: pick a platform and what you want from it, fill a short form named in plain words (or press Use sample input), see the free quote on the Run button, run it, then read the answer as a table or JSON and download it as CSV or JSON. The same call is written out as cURL, Python and Node while you type.

## Why this one, and not a scraper you run yourself

- No login, no Yelp account, no cookies, no proxies, no browser to babysit.
- When the site changes its pages, your request stays the same: keeping the reads working is our job, not yours.
- A fetch that fails costs nothing: it is named in the answer with a reason, and the quote says the most a call can cost before it runs.

## Use it from your tools

- [Yelp in n8n](https://apiforagents.dev/integrations/n8n/yelp)
- [Yelp in Make](https://apiforagents.dev/integrations/make/yelp)
- [Yelp in Zapier](https://apiforagents.dev/integrations/zapier/yelp)
- [Yelp in Python](https://apiforagents.dev/integrations/python/yelp)
- [Yelp in LangChain](https://apiforagents.dev/integrations/langchain/yelp)
- [Yelp in Claude Code](https://apiforagents.dev/integrations/claude-code/yelp)

## Questions

### What does the Yelp Search API return?

One row per business: name, address, city, state, phone, rating, total reviews, year established, today's hours, the business slug and URL, the menu URL and photos.

### What do I pass in?

A keyword query and a location are required. Optional: sort (relevance, rating_high or most_reviewed), price levels 1 to 4, Yelp's own feature slugs such as outdoor_seating or delivery, and a limit of 1 to 100.

### How much does it cost?

$0.000225 per business at the list price. A small call can carry a minimum, so quote first with "estimateOnly": true, which is free and is the most the call can cost. You pay for what comes back.

## Why API for Agents

- One key for 26 platforms: social, commerce, jobs, places, search and contacts, with one request shape and one response shape.
- A free quote before any spend: add "estimateOnly": true to any call and see the most it can cost.
- Pay per record in US dollars. No subscription, nothing expires, top-ups from $5.
- $0.10 free to try, no card. An AI agent can sign itself up in one request; a person claims it later.
- Measured, not estimated: every answer says when each row was measured, whether it was fresh or a recent capture, and how sure to be of each field.
- Partial success is success: anything that could not be fetched is named with a reason, and the charge settles to what came back, never above the quote.
- Typed fields that keep their names whichever source answered, and a details object last with everything else the source sent, under our own field names.
- Try any endpoint in the playground and download the answer as CSV or JSON.

## Start

The playground runs any endpoint by hand: pick a platform and what you want from it, fill a short form named in plain words (or press Use sample input), see the free quote on the Run button, run it, then read the answer as a table or JSON and download it as CSV or JSON. The same call is written out as cURL, Python and Node while you type. Open it at https://apiforagents.dev/dashboard/run?platform=yelp&op=search (sign in first).

Agents register at https://apiforagents.dev/auth.md (one POST, $0.10 free). People: https://apiforagents.dev/docs#start. Prices: https://apiforagents.dev/pricing.md
