Tag Archives: Places

CityGrid, Google, Yelp Places API Comparison: Request Structure

I’m spending time diving into 11 of the places data APIs to see how CityGrid stacks up, but also to learn the inner workings of all of them. CityGrid has a great attitude towards the space, and looks to play with all of them. This is another segment in that series.

In this segment I’m looking specifically at the API request structure for CityGrid, Google and Yelp. I recently built an interactive places API comparison tool, and to do so I had to harmonize the requests across all three APIs, and here is what I learned.

CityGrid offers two endpoints:

  • What – A single keyword or phrase providing the topical filtering.
  • Where – A textual search allowing you to search by cities, neighborhoods, zip codes, metro areas, addresses and intersections.
  • Latitude / Longitude – A longitude / latitude based search that can use two points or bounding boxes.

You can further refine searches with a radius and sort by distance, alphabetically, highestrated, mostreviewed, top matches and offers.

Google, you can accomplish the same thing, but they go about it a little differently. Every search has two sides:

  • What – A keyword filter to apply the topic your searching for.
  • Where – A location which is two point or bounding box longitude and latitude.

At first glance it seems limiting, but you can use the Google Geocoding API to convert any textual location in a longitude and latitude location. Once you have geocoded your location, you can use the Places API to search for places, and apply a radius to limit or expand the search. I don’t see any sort criteria currently.

Yelp is similar to the CityGrid approach in that they provide three ways to provide the “where” for a places search:

  • Term - A single keyword or phrase providing the topical filtering.
  • Bounding Box – A four point latitude and longitude search for NE and SW lat /long.
  • Geo Coordinates – A two point latitude and longitude search which includes accuracy and altitude settings.
  • Textual – Location by neighborhood, address, or by city.

All three leading places API provide robust interfaces allowing you to find businesses and other places via an API through textual or latitude and longitude searches. Of course I’m biased because I work for CityGrid, but CityGrid seems the most robust in the amount of controls over your request. I’d put Yelp second, then Google. But Google is, in their own lable in Beta. So I’m sure there is more coming down the pipes.

Stay tuned for more in my places data API comparison, next up responses.

Location Photos from Foursquare, Instagram and Flickr

I was playing around with the Instagram API yesterday to see how many of the images on the popular photo sharing platform actually had geo coordinates associated with the pictures.

It was about 50%, and I will definitely be using more in local sites I’m building.

This morning CityGrid Publisher, Explore.to pointed out their innovative usage of photos from multiple sources.

On their places detail pages, Explore.to doesn’t just use the default images for a place, they also pull in geo tagged photos from Foursquare, Instagram and Flickr.

Explore.to is a great example of the power of APIs, and mashing up geo content from multiple sources to make your places search and detail pages much richer and localized by the people who actually have been to these places.

More Control Over CityGrid Review API Requests

I had a CityGrid developer post on the forum today, that they were concerned about the age of some of the reviews they were getting back with API requests.

When they did a search for the Old Spaghetti Factory in Portland, OR–one of the reviews was nine years old.

When making a detail request against the CityGrid Places API you get reviews back with the business listing, without much control over how many, or which reviews when making the request.

Alternatively you can make a request against the CityGrid Reviews API, requesting a broad “where” or longtitue/latitude search for reviews, or specifically request the reviews for a specific places ID.

Three of the primary request fields you can adjust when making a CityGrid Reviews API request are:

  • rating – minimal rating for reviews
  • days – maximum age i days for the reviews
  • rpp – number of results to be returned

Using the CityGrid Reviews API you can get more granular level control over the reviews you display for a city, neighborhood, zip code, specific categories and for specific businesses you are profiling.

Make sure and think about how you will handle reviews for your web or mobile application, and better deliver business reviews for your users, using the CityGrid Reviews API in addition to the CityGrid Places API.