Fetch Yelp search, a business, and its customer reviews as structured JSON with one SocialCrawl API key. Shared place and review schema. Reads are priced in credits.
5 active endpoints. Search, suggestions, business info, then reviews.
GET /v1/yelp/search
GET /v1/yelp/search/full
GET /v1/yelp/search/suggestions
GET /v1/yelp/business/info
GET /v1/yelp/business/reviews
What Yelp endpoints does SocialCrawl ship?
Five live read endpoints for Yelp. Search by term and location, autocomplete, look up a business by its encid, then page reviews 10 at a time. Alias slugs are not found.
Search Yelp businesses by query and location. Optional sort (recommended, rating, review_count), ads, and cursor. PlaceList. Standard tier (1 credit). If the provider reports a non-zero total with no rows, the call fails and is refunded.
Typeahead rows for a query in a location: category, common, chain, and business suggestions. Business rows carry alias URLs, which do not resolve on business/info. Standard tier (1 credit).
One Yelp business by 22-character encid. Name, unrounded rating, exact review count, price level, address, coordinates, categories, photos, timezone. Alias URLs return 404 and are not billed. Standard tier (1 credit).
Customer reviews for that encid. 10 per page with a cursor, owner replies, photos, language, and HELPFUL votes. Page 2 does not overlap page 1. Advanced tier (5 credits).
Returns one Yelp business by its 22-character encid: name, unrounded rating, review count, price level, address, coordinates, categories, photos, and timezone.
Use it when you already have a Yelp encid. Alias slugs return not found. GET /v1/yelp/search finds businesses by term and location.
// Running this live needs your own API key. Hit "Try it" to see an example response
How the Yelp API works
Yelp is a normal SocialCrawl data surface. You call GET /v1/yelp/… with an API key, spend credits on live misses, and get a single JSON envelope back.
Authenticate every call
Send your key in the x-api-key header. No Yelp OAuth app for public reads. The same key works across SocialCrawl platforms.
GET with query params
Every Yelp route is GET. Search takes query and location, plus optional sort, ads, and cursor. Info and reviews take id (the encid) or a /biz/{encid} URL. We validate formats before charging.
Pay in credits, not seats
search, search/full, search/suggestions, and business/info cost 1 credit. business/reviews costs 5 credits. Cache hits cost 0. Empty or hard failures refund.
Read one JSON envelope
Every response is the same shape: success, data, credits_used, credits_remaining, request_id, cached. Review lists carry next_cursor when another page exists.
The usual integration chain
Search a city, confirm the encid, then page reviews.
01Search
GET /v1/yelp/search?query=…&location=…
PlaceList for a query in a location
Finds businesses before you spend on reviews.
02Business info
GET /v1/yelp/business/info?id=…
Place with rating, address, coordinates, photos
Confirms the encid before you spend on reviews.
03Reviews
GET /v1/yelp/business/reviews?id=…
ReviewList of 10 reviews
Customer language plus owner replies.
04Next page
GET /v1/yelp/business/reviews?id=…&cursor=…
The next 10 reviews, no overlap
cursor from the previous page.
request
GET /v1/yelp/search?query=Pizza&location=New+York,+NY
Host: www.socialcrawl.dev
x-api-key: sc_your_api_key_here
GET /v1/yelp/business/info?id=zj8Lq1T8KIC5zwFief15jg
GET /v1/yelp/business/reviews?id=zj8Lq1T8KIC5zwFief15jg
items[] with text, rating, author, responses[], images, published_at
Review page 2reviews page 2
next_cursor, 10 new ids, zero overlap
Inside the gateway
Same request lifecycle as every other /v1 platform endpoint. Yelp is not a sidecar.
01
Edge receives the call
Next.js catch-all routes into the Hono social API. We mint a request_id, authenticate the key, then enforce rate limit (600/min) and concurrency (50 in flight per key).
02
Validate, then debit
Registry lookup finds the Yelp resource. Required params and format checks run first. Invalid input returns 400 with no charge. Valid calls debit the tier cost atomically before upstream work.
03
Cache or fetch
A deterministic cache key is built from platform + resource + params. Hit: return immediately, credits_used = 0. Miss: we fetch, retry on 5xx/network, and trip a circuit breaker if the source is unhealthy.
04
Normalize and return
Upstream JSON is mapped to Place, PlaceList, and ReviewList, validated against the canonical Zod schema, then wrapped in the success envelope and logged for billing audit.
Callers search a city, confirm the encid, then page reviews. Yelp search, Place, and ReviewList on the same schema as Tripadvisor, keyed by encid, with a 5-credit review page after 1-credit lookups.
Live misses are typically under two seconds for info and a few seconds for a review page.
Use case examples
Common ways teams put this data to work, and the stack each one tends to run.
Local SEO
Python, Sheets
business/info for rating and review count, reviews for recent language.
VoC research
Node, notebooks
page reviews with cursor and keep owner replies.
Competitive intel
BI loads
same Place schema as Tripadvisor for a restaurant set.
Call it in two lines
Search and info are 1 credit. Reviews are 5. Cache hits are free.
Every endpoint returns structured JSON in a unified envelope. Computed fields such as engagement rate and content category are included only where the endpoint supports them and the required source inputs are present.
There are 5 endpoints: business info, business reviews, search, search/full (the same search with the same fields on every business) and search suggestions. Businesses, reviews and search results come back as unified Place, ReviewList and PlaceList JSON, shared with the other 68 platforms.
How do I find the ID of a Yelp business?
Call GET /v1/yelp/search with a term and a location, for example Pizza in New York, NY. Each business carries its 22-character encid as place.id, and you pass that id to the business info and reviews endpoints.
Why does a Yelp alias URL return not found?
The business endpoints accept the 22-character encid, not alias slugs like prince-street-pizza-new-york-2. An alias or alias URL returns not found, and the call is refunded automatically. Use search to turn a name into an encid.
Can I sort Yelp search results by rating?
No. Search results are served in Yelp's recommended order, and sort=rating or sort=review_count is refused with a free 400. To rank by rating or review count, sort the returned items by place.rating.value or place.reviews_count yourself.
How do Yelp reviews paginate?
GET /v1/yelp/business/reviews returns 10 reviews a page with a cursor for the next page. Each review carries an ISO timestamp, owner reply, photo URLs, language and HELPFUL vote counts, and page 2 does not overlap page 1.
What happens when a Yelp business has no results?
A location Yelp does not cover returns an empty list, and a business with no reviews returns an empty page. Neither is billed, and a business that does not exist returns a 404 that is refunded automatically.
How much does the Yelp API cost?
Yelp endpoints are billed per call in credits: standard endpoints cost 1 credit, advanced 5, and premium 10. On Yelp that works out to between 1 and 5 credits per call. Every account starts with 100 free credits, and there is no subscription. You only pay for the calls you make.
Is scraping Yelp data legal?
SocialCrawl returns publicly available Yelp data and does not access private or login-gated content. Whether scraping fits your project depends on your use case and jurisdiction. You are responsible for complying with Yelp's terms of service and applicable data-protection laws such as GDPR and CCPA. This is general information, not legal advice.
Yelp scraping API vs the official Yelp API: what's the difference?
With SocialCrawl there is no app review or approval queue. Sign up and call Yelp endpoints immediately with a single x-api-key. Responses share one unified schema with every other SocialCrawl platform, and credit-based pricing replaces per-platform quotas. Official APIs are still the right choice for posting and other write actions: SocialCrawl is read-only data.