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.