Restaurants

HTTP Location

{API BASE}/restaurants/{ID}
 

Example

http://api.opendining.net/restaurants/4b96f1bafc9f100ca79231ef
 

Properties

PROPERTY NAME TYPE REQUIRED DESCRIPTION
id String (MongoDB ID) Yes The ID of the restaurant.
name String Yes The name of the restaurant.
address String Yes The restaurant’s street address.
city String Yes The city where the restaurant is physicallylocated.
state String Yes The state where the restaurant is physically located.
zip String Yes The zip/postal code of the restaurant’s address.
country String Yes Either “US” or “CA” for the USA or Canada.
loc Array (of Decimal) Yes An array of two decimal numbers representing the restaurant’s latitude and longitude.
org String (MongoDB ID) No The organization that a restaurant belongs to. Organization support is currently in development.
tags Array No An array of tag strings for the restaurant.
description String No A full description of the restaurant.
brief_description String No A short bit of text describing the restaurant.
website String No A URL to the restaurant’s web site.
image_url String No A URL to an image for the restaurant.
phone String No A phone number for the restaurant.
accepts Array (of String) Yes An array of the payment options accepted by the restaurant. Possible values: “pip” for pay-in-person, “amazon” for Amazon Payments.
can_order Boolean Yes True if the restaurant is currently accepting orders; false otherwise.
hours Object Yes An object listing the restaurant’s business hours.
tz String Yes Time zone (see http://php.net/manual/en/timezones.php)
takeout Boolean Yes True if the restaurant accepts takeout.
delivery Boolean Yes True if the restaurant accepts delivery orders.
delivery_fee Decimal No A fee applied to delivery orders.
free_delivery_min Decimal No If orders are above this amount, the delivery fee is not applied (delivery is free).
delivery_radius Integer No The delivery radius, in miles.
cuisine String No The primary type of cuisine offered by the restaurant.
currency String Yes The currency accepted by the restaurant. Currently, either “USD” or “CAD”
source String No If the data is provided by a third party, that party’s ID will be listed here. See our Terms of Service for applicable information about using this data.
omf String No If the restaurant has an OpenMenu file, the OpenMenu URL will be listed here.
unverified Boolean No If the restaurant is unverified, this will be true. See the Unverified Restaurants section for more information.
 

Hours

A restaurant’s hours are provided in an object with the following properties:
 

PROPERTY NAME DESCRIPTION
m_open Monday’s opening time
m_close Monday’s closing time
t_open Tuesday’s opening time
t_close Tuesday’s closing time
w_open Wednesday’s opening time
w_close Wednesday’s closing time
th_open Thursday’s opening time
th_close Thursday’s closing time
f_open Friday’s opening time
f_close Friday’s closing time
s_open Saturday’s opening time
s_close Saturday’s closing time
su_open Sunday’s opening time
su_close Sunday’s closing time
 

Each value is an integer which represents the time, in minutes elapsed from midnight on the start of the given day. We employ a 30-hour day to easily handle restaurants that stay open past midnight. Thus, the possible values for each hour range from 0 (midnight) to 1800 (6 AM the following day). The times in the “hours” property are in the restaurant’s natural time zone (also specified in the “tz” property); the times in the “hours_gmt” property are in GMT.
 

So if f_open is 480 and f_close is 1560, the restaurant’s hours are 8:00 AM Friday to 2:00 AM Saturday.
 

Show me an example!

OK, here’s what an hours object could look like, in JSON:
 

  {       "m_open" : 480,       "m_close" : 1560,       "t_open" : 480,       "t_close" : 1560,       "w_open" : 480,       "w_close" : 1560,       "th_open" : 480,       "th_close" : 1560,       "f_open" : 480,       "f_close" : 1560,       "s_open" : 480,       "s_close" : 1560,       "su_open" : 480,       "su_close" : 1560  }    

HTTP Methods

Currently, we only support GET on the restaurants collection (to support consumer-facing applications). PUT/POST/DELETE will be added in future API versions. If you need this support immediately, please contact us and we’ll get you set up.
 

Unverified Restaurants

Some of our information is provided by the user community and is not confirmed by the restaurant. This data is provided on a best-effort basis: we cannot guarantee its accuracy, but we feel that it may still have value.
 

It is important to warn users when they are placing orders with unverified data. We use a big red notification bar at the top of each unverified menu.
 

Orders placed to unverified restaurants may be declined, as we do not have a contract in place with these establishments to send them orders. Orders are sent on a best-effort basis in these cases.