Yelp currently has over 115 million reviews. Even better? You can access them programmatically. Today, we’re profiling Yelp’s Fusion API in our #12DaysOfAPIs series. We talked to the API tech lead, Tomer Elmalem, to get the inside scoop.
Using Yelp’s Fusion API, you can search local businesses and pull reviews, phone numbers and accepted transaction types (ex. food delivery and pick-up). The Yelp Fusion API actually is made up of multiple APIs, but we combined them all into a single package that lets you make calls straight from your browser. You can also export the code snippet directly into your script.
Although we do always love a good nom, Yelp’s API isn’t just for restaurant reviews.
Source: Imgur
In fact, we were surprised to learn that restaurants aren’t even the most popular category on Yelp. You can export data from any local business with a Yelp page, from dentist offices to dog washers.
We’ll show you how to use the Yelp API using the steps below:
Step 1: Get the Yelp API Credentials
In order to use the Yelp API, you’ll need to register for a Yelp account and get the appId
and appSecret
. Here’s how to get them:
appId
and appSecret
on this page.Step 2: Make a call with RapidAPI
Now that you have the appId
and appSecret
, head over to RapidAPI’s Yelp package page. Use the getAccessToken
endpoint to (you guessed it!) generate an access token for the app.
After generating an access token, you can start to pull information from the API. Here’s a yelp fusion api example call of the getBusinesses
endpoint searching for ramen in San Francisco.
Check out the package for yourself here to make a test call.
You could build a lot with this data. One of our favorite integrations is this map of San Francisco by Katie Hempenius.
Source: Katie Hempenius
Some of the coolest integrations though, are from combining the Yelp API with other APIs. Since RapidAPI lets you call multiple APIs through one abstraction layer, the process doesn’t involve spending all your time digging through docs. Here are some project ideas that you could build with multiple APIs:
Let us know what you build in the comments below! We’d love to see your projects.
One thing we love about Yelp is their commitment to providing developers with as many tools and as much data as possible. Yes, the Yelp Fusion API uses the exact same search and autocomplete functions that the Yelp website uses. But the company also provides a robust open source platform with over 76 projects, including their Python PaaSTA (platform as a service) platform.
In addition to the Fusion API and open source platform, Yelp also offers a more comprehensive knowledge platform with deeper data, including sentiment analysis. The reviews giant also puts on an annual data set student challenge with a cash prize. Overall, Yelp seems pretty committed to inviting developers involved–they even have a $15,000 bug bounty program.
After speaking with Tomer, we learned more about Yelp’s commitment to APIs internally. They have a great content series explaining the technical challenges of moving from one giant monolith to multiple microservices. Here’s a quick overview from one article:
In 2011, Yelp had more than a million lines of code in a single monolithic repo, “yelp-main”. We decided to break the monolith apart into a service oriented architecture (SOA), and by 2014 had more than 150 production services, with over 100 services owning data. Breaking apart “yelp-main” allowed Yelp to scale both development and the application, especially when coupled with our platform-as-a-service, PaaSTA.
We also had the pleasure of hearing Infrastructure Tech Lead John Billings speak at API World in 2016. He explained that, while the monolith still exists (with 3M lines of code), Yelp has been able to move 891K lines, or 22% of its code base, into microservices. Here’s a slide he showed demonstrating how quickly the Yelp team embraced microservices over the years.
The code base is primarily in Python, so if this kind of work interests you and you write in Python, check out their openings.
We still have a few more API profiles to go, so follow along on Twitter (@rapid_api), Facebook or our blog.
Looking for other mapping APIs? Click here to see more related APIs.
From https://www.yelp.com/developers/faq:
The Yelp Fusion API gives developers access to Yelp’s wealth of high quality, local content across 50 million businesses
across our 32 international markets. Check out our
announcement on the Yelp
Engineering Blog.
You’ll need to register with a Yelp user account. If you don't already have one, please visit
https://www.yelp.com/signup to sign up for one now. If you are a Yelp Business Owner
Account user, please note this is different from a regular Yelp user account and you must be logged out of your
Yelp Business Owner Account in order to sign up for the API.
Once you have a Yelp user account and have signed in, you can go to the
Manage App page to create an app with Yelp. Then, you'll get your API Key, which
you can use to call our API. The detail instructions are at
Get started with Yelp Fusion API. Please make sure you fully agree with
our
API Terms of Use and
Display Requirements.
Let's first explain GraphQL – it is a query language for APIs that places emphasis on being able to query for exactly
the data you want. GraphQL gives you the ultimate flexibility in being able to specify in your API requests specifically what
data you need, and get back exactly that. The Yelp GraphQL API will allow you to customize the request and responses when
retrieving Yelp data.
For more information, check out our
blog post and
GraphQL Intro page.
GraphQL is part of the Yelp Developer Beta program which grants developers early access to new and experimental features. To
sign up for the Developer Beta program, goto the
Manage App page and click the Join button.
Just open issues at
https://github.com/Yelp/yelp-fusion/issues.
By default, you’ll receive 5,000 calls per day. Any call you make after that in the same day will get back a response with
status code 429 (Too Many Requests). Daily limits are reset every midnight UTC time.
You can view your remaining calls by visiting the
Manage App page or checking the header of each response. Please see the
Fusion API Rate Limiting documentation for more details.
The API is open and free for default access with additional rate limit volumes provided case-by-case. See instructions for
requesting a higher access limit at
Rate Limiting.
Yes, although with great power comes great responsibility. You may cache Yelp API content for up a maximum of 24 hours.
Business ids can be stored indefinitely.
For years, we’ve provided access to a subset of rich Yelp content through our academic dataset. Jump in and participate in
our
Dataset Challenge if you’re up to the task! Please also feel free to reach out to
api@yelp.com if you have an interesting research project in mind. We’d love
to hear from you.
The Yelp API supports 42 locales using the locale parameter.
Here is the list of supported locales.
Yelp API 2.0 will be discontinued on June 30, 2018. Please check out
our announcement on the Yelp
Engineering Blog.
We only return business info for business that have Yelp user-generated content added to them. Specifically, they must have
at least one review.
The Yelp API does not return full review text. Three review excerpts of 160 characters are provided by default.
In order to maintain a consistent Yelp experience across all platforms, the Yelp API uses a variety of factors to determine
and return a business’s top review excerpts. The sort order is determined by recency, user voting, and other review quality
factors to help consumers make informed decisions. The Yelp API cannot be configured to return alternative or hand-picked
review excerpts.
Yes, the large majority of businesses returned by our API will have coordinates (latitude and longitude).
The Yelp API returns results from all geographies where Yelp is available. To filter results to a specific city, make sure
you use the location parameter when using
search API.
We currently return all US-based businesses on Yelp which support food delivery through Yelp Eat24 and partners like
ChowNow, EatStreet, and Delivery.com.
We offer a few options for business matching based what data you have to match. If you know the business name and address
information, you can use the
business match API. If you have a phone number, you can use the
phone search API. You can also use
autocomplete API to provide suggestions for businesses, keywords and
categories.
Display Requirements is your friend.
The API can only return up to 1,000 results at this time. The API doesn't allow more than 50 per request. You need to
use the offset parameter to get the next page of results. (For using offset, give it any number. If you have limit=50, that
means you're getting results 1-50, so give it offset=51 and you'll get 51-100.)
By default, we return the original full-sized resolution; we use 'o' for business photos from the Business Details
endpoint and 'o' for user profile photos (image_url) in the Reviews endpoint. Here are the different resolutions we
currently provide:
That said, do keep in mind that sizing is not always consistent because users upload images at different resolutions.
Every Yelp business has both a unique ID, such as
4kMBvIEWPxWkWKFN__8SxQ, as well as a unique alias, such as
yelp-san-francisco. Both are returned for every business in any endpoint that returns business information. Generally,
business ID and business alias are interchangeable methods of identifying a Yelp Business.
The business alias is more human-readable, but often longer, than the business ID. The business alias may also contain
unicode characters, so it is recommended to use the business ID whenever possible.
Yelp's success is built on our first class data for local businesses, so we are careful with which data fields we expose
via our API. If you are building an app that would make awesome use of additional Yelp data, please apply for the
Fusion VIP program and share with us what additonal data you need to succeed.
If you think there is some piece of Yelp data not currently exposed via our API that we should consider adding to Fusion API
responses for everyone, please open an issue on our
Yelp Fusion GitHub page and make your case!
We're thrilled to announce the latest update to the Rapid Enterprise API Hub (version 2024.3)!…
Are you curious about what your API consumers are searching for? Is your Hub effectively…
The RapidAPI team is excited to announce the February 2024 update (version 2024.2) for the…
This January's release brings exciting features and improvements designed to empower you and your developers.…
Rapid API is committed to providing its users with the best possible experience, and the…
In today's fast-paced digital world, APIs (Application Programming Interfaces) have become the backbone of modern…
View Comments
Actually, I hope you can tell me how to use yelp search api for filtering results with "order pickup or delivery" , "good for groups" , "free wifi"
Hope you can help me.
thanx
I am ios developer and now i can't find how to filter search results with "order pickup or delivery", "good for gropus" ,"happy hour" and "free wifi."
Of coures, those functions are on yelp.com but I can't find how to do them using yelp v3.0 api search function.
I hope you can help me.
Thanx.
Hey Michale!
You can definitely query your search results by "order for pickup", "happy hour", or "free wifi". Head over to the getBusinesses endpoint. You will notice that the api call can receive an attributes parameter. Here you can pass a string with all your required business attributes separated by commas (happy hour,free wifi). Let me know if you have any other questions!
Dave
the link that you put in the blog for creating an app is wrong. It should be https://www.yelp.com/developers/v3/manage_app
Can all of the endpoints on Yelp Fusion's documentation be used?
This is no longer working. Any chance of fixing it?