Michael Arrington reported today how Yelp has released their API , allowing developers to dynamically query and display their yellow pages listings, reviews and content for display on any websites. The terms are fairly generous, allowing developers to have up to 10k of queries per day, and relatively few restrictions on display.
This is a really cool thing for an IYP site to do…
Not only does it attract interest and devotion from the development community, but more importantly to the bottom line it gets other people to increase your content distribution for you for free, and it can sometimes get you more backlinks to your site, depending upon how you design it. Most yellow pages companies have something of an old-world mentality about holding their data really close to the vest, not wanting anyone else to be able to derive benefit from it without paying — and/or they have limits on how they can allow distribution of the data as imposed by their data providers like InfoUSA. Also, YP companies are extremely sensitive about how customer listings may be displayed, since they’re dependent upon the goodwill of business advertisers.
But, leveraging the work of a development community through public APIs of this sort is the wave of the future. It increases distribution, making the service more attractive to advertisers. It helps developers segue into becoming beneficial partners. It allows for innovative mashups that no one has anticipated. And, it can help with a YP site’s natural search optimization efforts. This sort of thing helped drive Amazon.com’s affiliate system, and helped promote Google Maps.
Yelp’s API  does have a few oddities, I see. The process is RESTful , which I approve of, but the output format seems a bit kludgy or eccentric to me – why not have it in XML format? I suppose they opted for the data delimitation to be less-verbose than XML, but the tradeoff seems to result in a less-intuitive data schema, and I think it might actually be a bit harder to interpret during setup of an application since there are a number of off-the-shelf XML parsers out there. If they were going for reduced verbosity, I think they should’ve left the data labels out of the output entirely, just providing a schema diagram separately from the data output. They’ve tried to go for the best of both worlds here, and the result is just a bit alien.
Want one compelling reason for Yelp to allow aggregation with other data sources and mashups on the ratings/reviews piece? With more sites displaying Yelp data, it introduces an issue of duplication for the purposes of search engine optimization. Suddenly, all these other sites out there may start displaying the same identical content found on the Yelp site. If developers are allowed to make the listings to be more unique for their sites, it would help differentiate the listing data between that of the Yelp core site and that of their developers using the API. This would further help rankings and distribution of those pages through search engines.
But, these are all relatively minor criticisms – what Yelp has done in opening up this API is very cool, and kudos to them for having the guts to do it!