sosedoff / opentable

Unofficial OpenTable API
http://opentable.herokuapp.com/
Other
145 stars 41 forks source link

OpenTable API

This project provides an unofficial json API interface to search OpenTable restaurant data. It eliminates the need to download, parse and import data from XLS file. Its an open-source project, hosted on Github.

Status: Project and API data are no longer maintained.

Overview

Project Status

API Reference

Get data stats

GET /api/stats

Returns response:

{
  "countries": 20,
  "cities": 2700,
  "restaurants": 25000
}

List all cities

GET /api/cities

Returns response:

{
  "count": 1234,
  "cities": [
    "Chicago",
    "San Francisco",
    "New York"
  ]
}

Find restaurants

GET /api/restaurants

Parameters: (at least one required)

Returns response:

{
  "count": 521,
  "per_page": 25,
  "current_page": 1,
  "restaurants": [ ... ]
}

Find a single restaurant

GET /api/restaurants/:id

Returns a single restaurant record, see reference for details. Example:

{
  "id": 107257,
  "name": "Las Tablas Colombian Steak House",
  "address": "2942 N Lincoln Ave",
  "city": "Chicago",
  "state": "IL",
  "area": "Chicago / Illinois",
  "postal_code": "60657",
  "country": "US",
  "phone": "7738712414",
  "lat": 41.935137,
  "lng": -87.662815,
  "price": 2,
  "reserve_url": "http://www.opentable.com/single.aspx?rid=107257",
  "mobile_reserve_url": "http://mobile.opentable.com/opentable/?restId=107257",
  "image_url": "https://www.opentable.com/img/restimages/107257.jpg"
}

Data Reference

Restaurant attributes:

{
  "id": 107257,
  "name": "Las Tablas Colombian Steak House",
  "address": "2942 N Lincoln Ave",
  "city": "Chicago",
  "state": "IL",
  "area": "Chicago / Illinois",
  "postal_code": "60657",
  "country": "US",
  "phone": "7738712414",
  "lat": 41.935137,
  "lng": -87.662815,
  "price": 2,
  "reserve_url": "http://www.opentable.com/single.aspx?rid=107257",
  "mobile_reserve_url": "http://mobile.opentable.com/opentable/?restId=107257",
  "image_url": "https://www.opentable.com/img/restimages/107257.jpg"
}

To generate a proper reservation link just ref parameter with your affiliate ID to reserve_url or mobile_reserve_url

Consuming API

You can use simple client library i wrote — https://gist.github.com/2504683

Example:

api = OpenTable::Client.new

# Find restaurants
resp = api.restaurants(:city => "Chicago")

# Process response
resp['count']       # => records found
resp['restaurants'] # => restaurant records

# Fetch a single record
api.restaurant(81169)

Disclaimer

Contact

Please DO NOT contact author about services and products not related to this project.

License

This software is distributed under MIT license