We’ve been rummaging through a few REST APIs recently – trying to integrate and match up data from various providers with the aim of improving the overall experience on a website (and accompanying mobile apps) and the quality of search results.
Here are some findings from using the FourSquare API –
Things which are good :
- References don’t change with time (they do with the Google Places API)
- Caching the data is allowed (for up to ~30 days)
- FourSquare appears to have more accurate geo-locational data than our ‘default’ provider (where postcode lookups are probably being used most of the time).
Things which aren’t so good :
- We have to manually match premises (as there is no shared identifier available), so we need to try and work with miss-spellings, incomplete information and so on.
- Foursquare venues often provide a Reservations URL which resolves to OpenTable/TopTable – but there’s no incentive for us [as developers] to expose that to our end users. There’s also a distinct lack of documentation on the FourSquare site and combined with the fact they appear to have deleted a blog post about the integration we wonder if the reservation links will be soon dropped.
Things which are potentially interesting :
- The API appears to allow us to submit updates to it – so it’s tempting to submit post codes and addresses if we’re very sure about the strength of the match (perhaps a combination of close proximity and exact name for example); however we’re not sure what foursquare will think about us if we submit thousands of updates.
- As mentioned above, our current dataset has geo-coordinates, but these are often based on the postcode, and therefore not that accurate – especially in rural areas. If we have a good match with foursquare’s data, it’s tempting to use their geo-coordinates instead (from experience we know rural postcodes often have a large catchment area).
- The correlation between a premises popularity and hygiene rating is quite strong – so it’s an interesting thought to leave a ‘tip‘ if there is a significant discrepancy (lots of likes/checkins and a poor rating) .
Having said the above, submitting bulk updates is potentially a can of worms.