Introduction
The U.S. Restaurant table contains Factual's core places attributes in addition to 43 extended attributes on 800,000+ restaurants, bars, and casual eateries including datatypes such as cuisine, ratings, hours of operations, and price. Explore the data through our interactive workbench. |
Syntax and Examples
API Access to the Restaurants table is available from /t/restaurants-us:
Calls to this endpoint will return all attributes with non-null values from the schema below. Using syntax identical to Factual's Core API read call, you can query US restaurants data using lat/lng based geo filters, parametric search using row filters, and full-text search.
Free text search is dead-easy: the following query searches on Peets and coffee (run this query):
Combine the above free text search with a geographic filter on San Francisco, CA (run this query):
Here we are using a free-text search across all fields and restricting results to those in San Francisco, CA only.
Search for Italian cuisine by long/lat (run this query):
Cuisines are stored as a series of comma-delineated tags, so we use the search operator to employ a free-text search in against that field only.
Responses
The response includes our code places attributes in addition to all non-null values:
The Schema
The schema for our Restaurants Table can be accessed programmatically here. The Restaurants Table includes all core places attributes in addition to a further 43 attributes specific to restaurants:
| Attribute | Type | Description |
|---|---|---|
| cuisine | Tag Bag | zero or more comma-delineated strings describing, very loosely, the food served. A detailed list is provided below |
| price | Int | A price metric between one and five; we've used the following scale as an extremely coarse guide:
Usually represented by dollar symbols or the local currency equivalent. This short lookup is available as formatted JSON. |
| rating | Real | A rating between 1 and 5, rounded to nearest half. Usually represented graphically by stars. |
| payment_cashonly | Bool | Only accepts cash |
| reservations | Bool | Accepts reservations |
| hours | JSON | An escaped JSON-formatted string detailing the opening hours. The structure of the format and examples are provided below. Note that hours cannot be filtered via the query: results must be processed post-call to determine which of the query results are open at any given time.
|
| 24_7 | Bool | Open 24x7 |
| founded | Int | Year founded |
| attire | Enum | A single value from an enumerated list:
This wordlist is available as formatted JSON. |
| attire_required | Tag Bag | Gotta have this to get in. One or more strings from the following list:
This wordlist is available as formatted JSON. |
| attire_prohibited | Tag Bag | Can't get in if you are sporting this. One or more strings from the following list:
This wordlist is available as formatted JSON. |
| parking | Bool | Some kind of parking is available; this will be true when any other parking attributes are true |
| parking_valet | Bool | Valet parking is available |
| parking_garage | Bool | Garage parking is available |
| parking_street | Bool | Parking on-street |
| parking_lot | Bool | Parking lot, not necessarily dedicated to this place |
| parking_validated | Bool | Validated parking is available |
| parking_free | Bool | Free parking is available. This is common in most civilized places, but unheard of in LA |
| smoking | Bool | This place allows smoking somewhere |
| meal_breakfast | Bool | Breakfast is served |
| meal_lunch | Bool | Serves lunch |
| meal_dinner | Bool | Serves dinner |
| meal_deliver | Bool | Makes deliveries |
| meal_takeout | Bool | Provides take-out |
| meal_cater | Bool | Provides catering |
| alcohol | Bool | Alcohol is served or can be consumed on the premesis; this will be true when any other alcohol attributes are true |
| alcohol_bar | Bool | Has a full bar |
| alcohol_beerwine | Bool | Serves beer and wine only |
| alcohol_byob | Bool | Bring Your Own Bottle |
| kids_goodfor | Bool | Noted as being good for kids |
| kids_menu | Bool | Had a kids menu |
| groups_goodfor | Bool | Noted as being good for groups |
| accessible_wheelchair | Bool | Premesis are accessible by wheelchair |
| seating_outdoor | Bool | Outdoor seating is available |
| wifi | Bool | Wifi is provided by the establishment |
| owner | String | The owner(s) name(s) |
| room_private | Bool | A room is available for private functions |
| options_vegetarian | Bool | Vegetarian dishes are served |
| options_vegan | Bool | Vegan dishes are available |
| options_glutenfree | Bool | gluten free dishes or items are available |
| options_lowfat | Bool | Low-fat food is available |
| options_organic | Bool | Organic food is served |
| options_healthy | Bool | Healthy dishes are available |
Opening Hours JSON
Hours of operation are structured as a JSON hash where each day of the week is indexed by an integer cf. ISO-8601: 1 = Monday through 7 = Sunday. Each day of the week a business is open is represented individually: time is represented on a 24hr clock (24-hour businesses are open 00:00-24:00) and a business may have multipe opening times during the day. Opening times are represented by two required string elements: a start time followed by an end time; the third array element is an optional string descriptor or qualifier ("happy hour", "closed after memorial day", etc.).This example represents a business that is open Mon-Fri, closed for an hour at lunch, has a two hour happy-hour on Mon & Thurs, and is closed on weekend:
{ 1:{ ["9:00","12:00"], ["13:00","17:00"], ["15:00","17:00","Happy Hour"] }, 2:{ ["9:00","12:00"], ["13:00","17:00"] }, 3:{ ["9:00","12:00"], ["13:00","17:00"] }, 4:{ ["9:00","12:00"], ["13:00","17:00"], ["15:00","17:00","Happy Hour"] }, 5:{ ["9:00","12:00"], ["13:00","17:00"] } } |
Estimated Opening Hours
For a small number of rows we may not have specific opening times, but rather know that the establishment serves a specific meal (and therefore is open when that meal is served). In these few instances we include default values for estimated times, and note the meal, e.g.:
7: { ["12:00","14:30","Lunch Daily"], ["18:00","22:00","Dinner Daily"]} |
We appreciate that our canonicalization may not be getting the times spot-on correct, but believe that the inferred times add value so long as they are qualified. Values used for canonicalization are as follows:
| Breakfast | 7:00-11:00 |
| Brunch | 11:00-14:00 |
| Lunch | 12:00-14:30 |
| Dinner | 18:00-22:00 |
Cuisines
We use the word 'cuisine' in an extremely loose sense: at times to describe the cultural tenor of the food ("French", "Italian"), other times to list sometime to list menu items ("Burgers", "Wings"), and in a few places to describe the joint where it is served ("Deli", "Hookah Bar"). While not specifically a cuisine in the most formal sense, each cusine tag brings with it a number of cuisine and menu connotations that should be helpful to the user. The list of cuisines is available in JSON format here. We're currently employing ~135:
- Afghan
- American
- Argentine
- Asian
- Austrian
- Bagels
- Bakery
- Barbecue
- Belgian
- Bistro
- Brazilian
- British
- Buffet
- Burgers
- Cafe
- Cajun
- Californian
- Calzones
- Cambodian
- Caribbean
- Catering
- Cheesesteaks
- Chicken
- Chinese
- Chowder
- Coffee
- Colombian
- Contemporary
- Continental
- Creole
- Crepes
- Cuban
- Cuban
- Czech
- Deli
- Dim Sum
- Diner
- Dominican
- Donuts
- Eastern European
- Eclectic
- English
- Ethiopian
- European
- Fast Food
- Filipino
- Fish and Chips
- Fondue
- French
- Frozen Yogurt
- Fusion
- Gastropub
- German
- Greek
- Grill
- Gyros
- Haitian
- Halal
- Hawaiian
- Healthy
- Hookah Bar
- Hot Dogs
- Ice Cream
- Indian
- Indonesian
- International
- Irish
- Israeli
- Italian
- Japanese
- Juices
- Korean
- Korean Barbeque
- Kosher
- Latin
- Latin American
- Lebanese
- Malaysian
- Mediterranean
- Mexican
- Middle Eastern
- Mongolian
- Moroccan
- Nepalese
- Noodle Bar
- Norwegian
- Organic
- Oysters
- Pacific Rim
- Pakistani
- Pan Asian
- Pasta
- Pasteries
- Persian
- Peruvian
- Pho
- Pizza
- Polish
- Polynesian
- Portuguese
- Pub Food
- Puerto Rican
- Ribs
- Salad
- Salvadoran
- Sandwiches
- Seafood
- Singaporean
- Smoothies
- Soul Food
- Soup
- South American
- South Pacific
- Southern
- Southwestern
- Spanish
- Steak
- Subs
- Sushi
- Taiwanese
- Tapas
- Tea
- Tex Mex
- Thai
- Tibetan
- Traditional
- Turkish
- Ukrainian
- Vegan
- Vegetarian
- Venezuelan
- Venusian
- Vietnamese
- Wings
- Wraps
