Yelp
Yelp business records, search by term and location, and business reviews, read from Yelp's GraphQL API.
Call these actions with your String API key; see Authentication. Every call answers with the envelope described in Responses & errors, whose data holds the rows below.
- Site:
yelp - Version:
1.0.0 - Reads from:
yelp.com
| Action | Description | Listed price |
|---|---|---|
business | Read Yelp business records by id, alias or URL: address, coordinates, phone, categories, rating, review counts, price range, opening hours, ordering partners and the newest review. | 1.05× its requests |
search | Search Yelp by term and location, 10 organic results a page, each with its rating, review count, price range, categories and coordinates. | 1.05× its requests |
reviews | Read a Yelp business's reviews, 49 a page, newest or oldest first: text, rating, date, the author's standing, and check-in and payment tags. | 1.05× its requests |
business
Read Yelp business records by id, alias or URL: address, coordinates, phone, categories, rating, review counts, price range, opening hours, ordering partners and the newest review.
POST https://request.usestring.ai/v1/integrations/yelp/businessInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
items | string[] | Required. Yelp business ids (encid), aliases, or yelp.com/biz/ URLs. 1 to 300 entries. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
encid | string | — |
alias | string | null | — |
name | string | null | — |
url | string | null | — |
addressLine1 | string | null | — |
addressLine2 | string | null | — |
addressLine3 | string | null | — |
city | string | null | — |
postalCode | string | null | — |
regionCode | string | null | — |
countryCode | string | null | — |
latitude | number | null | — |
longitude | number | null | — |
locationEncid | string | null | — |
neighborhoods | string[] | — |
phone | string | null | — |
categories | object[] | — |
categories[].alias | string | null | — |
categories[].encid | string | null | — |
categories[].title | string | null | — |
categories[].rootAlias | string | null | — |
categories[].rootEncid | string | null | — |
rating | number | null | — |
reviewCount | integer | null | — |
reviewCountsByRating | integer[] | Review counts for 1 to 5 stars, in that order. |
reviewCountsByLanguage | object[] | — |
reviewCountsByLanguage[].language | string | — |
reviewCountsByLanguage[].count | integer | — |
priceRange | string | null | $ to $$$$. |
isClosed | boolean | null | — |
isClosedToday | boolean | null | — |
isCurrentlyOpen | boolean | null | Open when the call ran. |
hasSpecialHoursToday | boolean | null | — |
todayDayIndex | integer | null | — |
hours | object[] | — |
hours[].dayShort | string | null | — |
hours[].hours | string[] | null | Intervals such as 12:00 PM - 10:00 PM. |
hoursRaw | object[] | — |
hoursRaw[].dayShort | string | null | — |
hoursRaw[].intervalsMinutesOfWeek | integer[][] | null | — |
primaryPhotoEncid | string | null | — |
primaryPhotoUrl | string | null | — |
partnerCtaType | string | null | The ordering partner call to action, such as food_ordering. |
partnerName | string | null | — |
partnerDeliveryUrl | string | null | — |
partnerPickupUrl | string | null | — |
newestReview | object | null | — |
newestReview.encid | string | null | — |
newestReview.rating | integer | null | — |
newestReview.text | string | null | — |
newestReview.language | string | null | — |
newestReview.dateLocal | string | null | ISO 8601, in the business's time zone. |
newestReview.authorEncid | string | null | — |
newestReview.authorDisplayName | string | null | — |
newestReview.authorEliteYear | string | null | — |
newestReview.authorReviewCount | integer | null | — |
newestReview.authorFriendCount | integer | null | — |
newestReview.checkInCount | integer | null | — |
newestReview.isFirstReviewer | boolean | null | — |
newestReview.hasPaidThroughYelp | boolean | null | — |
Example
curl https://request.usestring.ai/v1/integrations/yelp/business \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": ["mSMZJj2pFvttWLpcDmgrEA", "https://www.yelp.com/biz/pink-onion-san-francisco"]
}'data starts with these rows:
[
{
"encid": "mSMZJj2pFvttWLpcDmgrEA",
"alias": "tonys-pizza-napoletana-san-francisco",
"name": "Tony's Pizza Napoletana",
"url": "https://www.yelp.com/biz/tonys-pizza-napoletana-san-francisco",
"addressLine1": "1570 Stockton St",
"addressLine2": null,
"addressLine3": null,
"city": "San Francisco",
"postalCode": "94133",
"regionCode": "CA",
"countryCode": "US",
"latitude": 37.80038939,
"longitude": -122.40903343,
"locationEncid": "mSMZJj2pFvttWLpcDmgrEA",
"neighborhoods": ["North Beach/Telegraph Hill"],
"phone": "(415) 835-9888",
"categories": [
{
"alias": "pizza",
"encid": "DfJmebdT8pOtdHPRcg00eQ",
"title": "Pizza",
"rootAlias": "restaurants",
"rootEncid": "787jnoKe7bybdgxyBxiCfA"
},
{
"alias": "italian",
"encid": "0cY_o1NfhMim_RKHMM9fww",
"title": "Italian",
"rootAlias": "restaurants",
"rootEncid": "787jnoKe7bybdgxyBxiCfA"
},
{
"alias": "cocktailbars",
"encid": "FIW3O50FJ6hyqdvrHxTa0g",
"title": "Cocktail Bars",
"rootAlias": "nightlife",
"rootEncid": "-Wdg7PAPC7AO84BVq3d6zA"
}
],
"rating": 4.2,
"reviewCount": 9011,
"reviewCountsByRating": [637, 402, 708, 1782, 5485],
"reviewCountsByLanguage": [
{
"language": "en",
"count": 8949
},
{
"language": "it",
"count": 12
},
{
"language": "fr",
"count": 13
},
{
"language": "tr",
"count": 2
},
{
"language": "es",
"count": 20
},
{
"language": "de",
"count": 7
},
{
"language": "nl",
"count": 2
},
{
"language": "zh",
"count": 2
},
{
"language": "pt",
"count": 4
},
{
"language": "pl",
"count": 1
},
{
"language": "ja",
"count": 1
},
{
"language": "sv",
"count": 1
}
],
"priceRange": "$$",
"isClosed": null,
"isClosedToday": false,
"isCurrentlyOpen": true,
"hasSpecialHoursToday": false,
"todayDayIndex": 0,
"hours": [
{
"dayShort": "Mon",
"hours": ["12:00 PM - 10:00 PM"]
},
{
"dayShort": "Tue",
"hours": ["12:00 PM - 10:00 PM"]
},
{
"dayShort": "Wed",
"hours": ["12:00 PM - 10:00 PM"]
},
{
"dayShort": "Thu",
"hours": ["12:00 PM - 10:00 PM"]
},
{
"dayShort": "Fri",
"hours": ["12:00 PM - 11:00 PM"]
},
{
"dayShort": "Sat",
"hours": ["12:00 PM - 11:00 PM"]
},
{
"dayShort": "Sun",
"hours": ["12:00 PM - 11:00 PM"]
}
],
"hoursRaw": [
{
"dayShort": "Mon",
"intervalsMinutesOfWeek": [
[720, 1320]
]
},
{
"dayShort": "Tue",
"intervalsMinutesOfWeek": [
[2160, 2760]
]
},
{
"dayShort": "Wed",
"intervalsMinutesOfWeek": [
[3600, 4200]
]
},
{
"dayShort": "Thu",
"intervalsMinutesOfWeek": [
[5040, 5640]
]
},
{
"dayShort": "Fri",
"intervalsMinutesOfWeek": [
[6480, 7140]
]
},
{
"dayShort": "Sat",
"intervalsMinutesOfWeek": [
[7920, 8580]
]
},
{
"dayShort": "Sun",
"intervalsMinutesOfWeek": [
[9360, 10020]
]
}
],
"primaryPhotoEncid": "ptCPOJoqVokZW7GmQ5F4NQ",
"primaryPhotoUrl": "https://s3-media0.fl.yelpcdn.com/bphoto/ptCPOJoqVokZW7GmQ5F4NQ/l.jpg",
"partnerCtaType": "food_ordering",
"partnerName": "DOORDASH",
"partnerDeliveryUrl": "https://doordash.com/store/401987?src=yp&delivery=true&utm_source_id=dcc0e339-cfb0-431f-9942-297d274307f5",
"partnerPickupUrl": "https://doordash.com/store/401987?src=yp&pickup=true&utm_source_id=dcc0e339-cfb0-431f-9942-297d274307f5",
"newestReview": {
"encid": "9a2b6eWMnrFQfKXljSEAhA",
"rating": 5,
"text": "Stopped by this little pizza shop with my friend Kevin for a casual dinner. The crust had a fantastic bake to it, and the cheese was hot and stretchy. We had a great time talking over a warm meal.",
"language": "en",
"dateLocal": "2026-09-28T09:34:23-07:00",
"authorEncid": "n8KOutpRR8ydAZVsnoglyA",
"authorDisplayName": "Kinley W.",
"authorEliteYear": null,
"authorReviewCount": 3,
"authorFriendCount": 0,
"checkInCount": 0,
"isFirstReviewer": false,
"hasPaidThroughYelp": false
}
}
]Requests and billing
- Requests: 1–2 Web Access requests per entry in
items. - Billing: Listed as
multiplier, 1.05× the cost of the requests it makes, billed as one charge. This is the listed default; your plan can set its own price. Per-action pricing isn't live yet: until it is, a call bills as its requests. See Billing.
search
Search Yelp by term and location, 10 organic results a page, each with its rating, review count, price range, categories and coordinates.
POST https://request.usestring.ai/v1/integrations/yelp/searchInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
query | string | What to search for, such as pizza or plumbers; empty lists every business near location. |
location | string | Required. Where to search: a city, neighborhood, address or ZIP code, such as San Francisco, CA. At least 1 character. |
pages | integer | How many pages of 10 results to read, from 1. Yelp serves at most 24. From 1 to 24. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
encid | string | — |
alias | string | null | — |
name | string | null | — |
url | string | null | — |
ranking | integer | null | Position among the query's organic results, from 1. |
rating | number | null | — |
reviewCount | integer | null | — |
priceRange | string | null | $ to $$$$. |
categories | object[] | — |
categories[].alias | string | null | — |
categories[].encid | string | null | — |
categories[].title | string | null | — |
categories[].rootAlias | string | null | — |
categories[].rootEncid | string | null | — |
latitude | number | null | — |
longitude | number | null | — |
primaryPhotoUrl | string | null | — |
snippetText | string | null | The review excerpt on the result, with the query's matches between [[HIGHLIGHT]] and [[ENDHIGHLIGHT]]. |
snippetReadMoreUrl | string | null | — |
Example
curl https://request.usestring.ai/v1/integrations/yelp/search \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "pizza",
"location": "San Francisco, CA",
"pages": 2
}'data starts with these rows:
[
{
"encid": "mSMZJj2pFvttWLpcDmgrEA",
"alias": "tonys-pizza-napoletana-san-francisco",
"name": "Tony's Pizza Napoletana",
"url": "https://www.yelp.com/biz/tonys-pizza-napoletana-san-francisco",
"ranking": 1,
"rating": 4.2,
"reviewCount": 9011,
"priceRange": "$$",
"categories": [
{
"alias": "pizza",
"encid": "DfJmebdT8pOtdHPRcg00eQ",
"title": "Pizza",
"rootAlias": "restaurants",
"rootEncid": "787jnoKe7bybdgxyBxiCfA"
},
{
"alias": "italian",
"encid": "0cY_o1NfhMim_RKHMM9fww",
"title": "Italian",
"rootAlias": "restaurants",
"rootEncid": "787jnoKe7bybdgxyBxiCfA"
},
{
"alias": "cocktailbars",
"encid": "FIW3O50FJ6hyqdvrHxTa0g",
"title": "Cocktail Bars",
"rootAlias": "nightlife",
"rootEncid": "-Wdg7PAPC7AO84BVq3d6zA"
}
],
"latitude": 37.80038939,
"longitude": -122.40903343,
"primaryPhotoUrl": "https://s3-media0.fl.yelpcdn.com/bphoto/ptCPOJoqVokZW7GmQ5F4NQ/ls.jpg",
"snippetText": "Perfect for grabbing a slice to-go, finding a bench across the street, and enjoying [[HIGHLIGHT]]delicious pizza[[ENDHIGHLIGHT]]...",
"snippetReadMoreUrl": "/biz/tonys-pizza-napoletana-san-francisco?hrid=6hPFVRqzTw-wfKYQ4q5cxw&osq=pizza"
},
{
"encid": "IxDRIBkKtP-f24sr5zHAhQ",
"alias": "pink-onion-san-francisco",
"name": "Pink Onion",
"url": "https://www.yelp.com/biz/pink-onion-san-francisco",
"ranking": 2,
"rating": 4.5,
"reviewCount": 1439,
"priceRange": "$$",
"categories": [
{
"alias": "pizza",
"encid": "DfJmebdT8pOtdHPRcg00eQ",
"title": "Pizza",
"rootAlias": "restaurants",
"rootEncid": "787jnoKe7bybdgxyBxiCfA"
},
{
"alias": "italian",
"encid": "0cY_o1NfhMim_RKHMM9fww",
"title": "Italian",
"rootAlias": "restaurants",
"rootEncid": "787jnoKe7bybdgxyBxiCfA"
},
{
"alias": "gastropubs",
"encid": "P3GSgNPUBIVmkGJTil5Wwg",
"title": "Gastropubs",
"rootAlias": "restaurants",
"rootEncid": "787jnoKe7bybdgxyBxiCfA"
}
],
"latitude": 37.7687698,
"longitude": -122.414829,
"primaryPhotoUrl": "https://s3-media0.fl.yelpcdn.com/bphoto/8GtQUJi_GHlrng88Mv9TOQ/ls.jpg",
"snippetText": "A little and cozy place, great team and [[HIGHLIGHT]]delicious pizzas[[ENDHIGHLIGHT]], pastas and salads.",
"snippetReadMoreUrl": "/biz/pink-onion-san-francisco?hrid=0iccxcHnPg499CiUHTpK1Q&osq=pizza"
}
]Requests and billing
- Requests: 1–2 Web Access requests per result page.
- Billing: Listed as
multiplier, 1.05× the cost of the requests it makes, billed as one charge. This is the listed default; your plan can set its own price. Per-action pricing isn't live yet: until it is, a call bills as its requests. See Billing.
reviews
Read a Yelp business's reviews, 49 a page, newest or oldest first: text, rating, date, the author's standing, and check-in and payment tags.
POST https://request.usestring.ai/v1/integrations/yelp/reviewsInput
Unknown fields are rejected.
| Field | Type | Description |
|---|---|---|
business | string | Required. A Yelp business id (encid), alias, or yelp.com/biz/ URL. At least 1 character. |
pages | integer | How many pages of up to 49 reviews to read, from 1. From 1 to 20. |
sort | newest oldest | newest (the default) or oldest first. Oldest first keeps pages stable while reviews arrive, so an offset resumes a crawl exactly. |
offset | integer | How many reviews, in this sort order, to skip before the first page. At least 0. |
Output
data is an array of rows, one per result. Each row has:
| Field | Type | Description |
|---|---|---|
businessEncid | string | — |
businessAlias | string | null | — |
businessName | string | null | — |
businessRating | number | null | — |
businessReviewCount | integer | null | — |
businessCity | string | null | — |
businessRegionCode | string | null | — |
reviewEncid | string | — |
offset | integer | The review's position in this sort order, from 0. |
reviewText | string | null | — |
reviewLanguage | string | null | — |
rating | integer | null | — |
reviewDateLocal | string | null | ISO 8601, in the business's time zone. |
authorEncid | string | null | — |
authorDisplayName | string | null | — |
authorDisplayLocation | string | null | — |
authorEliteYear | string | null | The last two digits of the author's latest Elite year. |
authorIsEliteAllStar | boolean | null | — |
authorReviewCount | integer | null | — |
authorFriendCount | integer | null | — |
authorBusinessPhotoCount | integer | null | — |
checkInCount | integer | null | — |
isFirstReviewer | boolean | null | — |
hasPaidThroughYelp | boolean | null | — |
hasPurchasedDeal | boolean | null | — |
hasPlacedReservation | boolean | null | — |
reservationProvider | string | null | — |
reviewTotalCount | integer | null | The business's review total on the page this review came from. |
Example
curl https://request.usestring.ai/v1/integrations/yelp/reviews \
-H "Authorization: Bearer $STRING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"business": "https://www.yelp.com/biz/pink-onion-san-francisco",
"pages": 2,
"sort": "oldest"
}'data starts with these rows:
[
{
"businessEncid": "IxDRIBkKtP-f24sr5zHAhQ",
"businessAlias": "pink-onion-san-francisco",
"businessName": "Pink Onion",
"businessRating": 4.5,
"businessReviewCount": 1439,
"businessCity": "San Francisco",
"businessRegionCode": "CA",
"reviewEncid": "ngTU0uCy49AuBlrc-oSfdg",
"offset": 0,
"reviewText": "So excited for a reasonable Italian spot in my neighborhood. Bread is fresh baked, owners are amazing, and a solid beer and wine selection. Can't wait to come back!",
"reviewLanguage": "en",
"rating": 5,
"reviewDateLocal": "2017-03-11T14:01:10-08:00",
"authorEncid": "7iWaUgXFcGP3fTYtgHWD0A",
"authorDisplayName": "Doug H.",
"authorDisplayLocation": "San Francisco, CA",
"authorEliteYear": null,
"authorIsEliteAllStar": null,
"authorReviewCount": 6,
"authorFriendCount": 21,
"authorBusinessPhotoCount": 0,
"checkInCount": 0,
"isFirstReviewer": false,
"hasPaidThroughYelp": false,
"hasPurchasedDeal": false,
"hasPlacedReservation": false,
"reservationProvider": null,
"reviewTotalCount": 1435
},
{
"businessEncid": "IxDRIBkKtP-f24sr5zHAhQ",
"businessAlias": "pink-onion-san-francisco",
"businessName": "Pink Onion",
"businessRating": 4.5,
"businessReviewCount": 1439,
"businessCity": "San Francisco",
"businessRegionCode": "CA",
"reviewEncid": "nw0IaN8wLdYzON_qpQV7gw",
"offset": 1,
"reviewText": "Found this little gem on yelp and I'm so glad I did! Owner is super nice and offered us complimentary vermouth when we got there. To start we got their GS salad which was really refreshing and had a really nice citrus dressing. Next we had the bruschetta which was on point and the fire starter pizza which was served w a chili oil that had the perfect amount of spice. Every bite was amazing and you know what was the icing on the cake? Literally cake. Actually tiramisu. Melt in your mouth good, and again another sweet treat from the awesome owner! Can't wait to go back.",
"reviewLanguage": "en",
"rating": 5,
"reviewDateLocal": "2017-03-12T23:10:18-07:00",
"authorEncid": "xMxxfjgaAqY5wX0masiQJQ",
"authorDisplayName": "Purvi D.",
"authorDisplayLocation": "San Francisco, CA",
"authorEliteYear": null,
"authorIsEliteAllStar": null,
"authorReviewCount": 22,
"authorFriendCount": 14,
"authorBusinessPhotoCount": 1,
"checkInCount": 0,
"isFirstReviewer": false,
"hasPaidThroughYelp": false,
"hasPurchasedDeal": false,
"hasPlacedReservation": false,
"reservationProvider": null,
"reviewTotalCount": 1435
}
]Requests and billing
- Requests: 1 Web Access request per result page, plus up to 1 setup request per call.
- Billing: Listed as
multiplier, 1.05× the cost of the requests it makes, billed as one charge. This is the listed default; your plan can set its own price. Per-action pricing isn't live yet: until it is, a call bills as its requests. See Billing.