Yelp data, ready when you are.
Businesses, search and reviews from Yelp.
- See the price before every call
- Pay only for records that come back
- No subscription. Your balance never expires
What you can get.
- $0.000225per recordTry it →
Businesses
Full profiles for up to ten businesses by URL or slug. Address, phone, website, rating and star breakdown, review insights by topic, popular dishes, attributes, hours, health inspections.
- $0.000225per recordTry it →
Search
Businesses for a place and keyword, with Yelp's own sort, price levels and feature filters. Every hit a full profile.
- $0.000225per recordTry it →
Reviews
Reviews for up to ten businesses. Text, rating, date, reactions, reviewer profile, owner reply.
What the data looks like.
| businessName | address | city | state | phone | rating | totalReviews | yearEstablished | hoursToday | businessSlug | businessUrl | menuUrl | photos | details |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Brewlab Coffee | 210 Congress Ave | Austin | TX | (512) 555-0142 | 4.6 | 812 | 2018 | 7:00 AM - 6:00 PM | brewlab-coffee | https://www.yelp.com/brewlab-coffee-1000 | https://www.yelp.com/brewlab-coffee-1000 |
|
|
| Casa Lumen Tacos | 88 Harbor Dr | San Diego | CA | (619) 555-0190 | 4.4 | 1,290 | 2011 | 11:00 AM - 10:00 PM | casa-lumen-tacos | https://www.yelp.com/casa-lumen-tacos-1001 | https://www.yelp.com/casa-lumen-tacos-1001 |
|
|
| Northfold Books | 15 NW 23rd Ave | Portland | OR | (503) 555-0117 | 4.8 | 342 | 2005 | 10:00 AM - 8:00 PM | northfold-books | https://www.yelp.com/northfold-books-1002 | https://www.yelp.com/northfold-books-1002 |
|
|
For developers
API reference.
One endpoint, POST /v1/yelp. Open an operation to see its fields.
Businessesbusinesses
Full profiles for up to ten businesses by URL or slug. Address, phone, website, rating and star breakdown, review insights by topic, popular dishes, attributes, hours, health inspections.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | yelp.com/biz/ URLs or their slugs. |
Response fields, each row of data
| 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 |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. 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.
curl -X POST https://apiforagents.dev/v1/yelp \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"businesses","subjects":["katzs-delicatessen-new-york"]}'Example response rows
[
{
"businessName": "Brewlab Coffee",
"address": "210 Congress Ave",
"city": "Austin",
"state": "TX",
"phone": "(512) 555-0142",
"rating": 4.6,
"totalReviews": 812,
"yearEstablished": 2018,
"hoursToday": "7:00 AM - 6:00 PM",
"businessSlug": "brewlab-coffee",
"businessUrl": "https://www.yelp.com/brewlab-coffee-1000",
"menuUrl": "https://www.yelp.com/brewlab-coffee-1000",
"photos": [
"https://img.yelp.com/brewlab-coffee.jpg"
],
"details": {}
},
{
"businessName": "Casa Lumen Tacos",
"address": "88 Harbor Dr",
"city": "San Diego",
"state": "CA",
"phone": "(619) 555-0190",
"rating": 4.4,
"totalReviews": 1290,
"yearEstablished": 2011,
"hoursToday": "11:00 AM - 10:00 PM",
"businessSlug": "casa-lumen-tacos",
"businessUrl": "https://www.yelp.com/casa-lumen-tacos-1001",
"menuUrl": "https://www.yelp.com/casa-lumen-tacos-1001",
"photos": [
"https://img.yelp.com/casa-lumen-tacos.jpg"
],
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Searchsearch
Businesses for a place and keyword, with Yelp's own sort, price levels and feature filters. Every hit a full profile.
| Field | Type | Meaning |
|---|---|---|
| query * | string · ≤300 chars | |
| location * | string · ≤120 chars | |
| sort | enum | relevance · rating_high · most_reviewed |
| priceLevels | list of enum | Yelp's dollar-sign tiers, "1" ($) to "4" ($$$$). Any listed tier matches; empty = every price level.1 · 2 · 3 · 4 |
| features | list of string · each ≤40 chars | Yelp's own feature slugs, e.g. "outdoor_seating", "delivery". |
| limit | integer · 1-100 |
Response fields, each row of data
| 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 |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. 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.
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}'Example response rows
[
{
"businessName": "Taqueria Sol",
"address": "402 Market St",
"city": "San Diego",
"state": "CA",
"phone": "(619) 555-0133",
"rating": 4.7,
"totalReviews": 2210,
"yearEstablished": 2009,
"hoursToday": "10:00 AM - 11:00 PM",
"businessSlug": "taqueria-sol",
"businessUrl": "https://www.yelp.com/taqueria-sol-1000",
"menuUrl": "https://www.yelp.com/taqueria-sol-1000",
"photos": [
"https://img.yelp.com/taqueria-sol.jpg"
],
"details": {}
},
{
"businessName": "Casa Lumen Tacos",
"address": "88 Harbor Dr",
"city": "San Diego",
"state": "CA",
"phone": "(619) 555-0190",
"rating": 4.4,
"totalReviews": 1290,
"yearEstablished": 2011,
"hoursToday": "11:00 AM - 10:00 PM",
"businessSlug": "casa-lumen-tacos",
"businessUrl": "https://www.yelp.com/casa-lumen-tacos-1001",
"menuUrl": "https://www.yelp.com/casa-lumen-tacos-1001",
"photos": [
"https://img.yelp.com/casa-lumen-tacos.jpg"
],
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Reviewsreviews
Reviews for up to ten businesses. Text, rating, date, reactions, reviewer profile, owner reply.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | yelp.com/biz/ URLs or their slugs. |
| limit | integer · 1-100 |
Response fields, each row of data
| Field | Type |
|---|---|
| reviewId | string |
| rating | number |
| reviewText | string |
| reviewDate | string |
| reviewUrl | string |
| language | string |
| translatedText | string |
| publicReply | string |
| photos | list of string |
| photoCaption | any |
| videos | list of string |
| totalReactions | integer |
| reactions | any |
| firstReviewer | boolean |
| reviewer | any |
| reviewerName | string |
| details | object |
Every field is present on every row: a value the source had nothing for is null, an empty list is []. 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.
curl -X POST https://apiforagents.dev/v1/yelp \
-H "Authorization: Bearer $AFA_KEY" \
-H "Content-Type: application/json" \
-d '{"op":"reviews","subjects":["katzs-delicatessen-new-york"],"limit":25}'Example response rows
[
{
"reviewerName": "Jess T.",
"rating": 5,
"reviewText": "Best cortado in town and the staff remember your name.",
"reviewDate": "2026-10-11",
"totalReactions": 14,
"firstReviewer": false,
"publicReply": null,
"reviewId": "3697697196",
"reviewUrl": "https://www.yelp.com/jess-t-1000",
"photos": [
"https://img.yelp.com/jess-t.jpg"
],
"details": {}
},
{
"reviewerName": "Mike R.",
"rating": 4,
"reviewText": "Great coffee, seating fills up fast.",
"reviewDate": "2026-10-04",
"totalReactions": 6,
"firstReviewer": false,
"publicReply": null,
"reviewId": "4115864571",
"reviewUrl": "https://www.yelp.com/mike-r-1001",
"photos": [
"https://img.yelp.com/mike-r.jpg"
],
"details": {}
}
]An example to show the shape. The rows show the most used fields; a live row carries every field in the table above.
Historyhistoryfree
Stored rating/review-count series of businesses already held. Free.
| Field | Type | Meaning |
|---|---|---|
| subjects * | list of string · 1-10 items | |
| metric | enum | rating · total_reviews |
| days | integer · 1-730 |