Skip to end of metadata
Go to start of metadata

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:

JSON Response

 

 

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:

AttributeTypeDescription
cuisineTag Bagzero or more comma-delineated strings describing, very loosely, the food served. A detailed list is provided below
priceInt

A price metric between one and five; we've used the following scale as an extremely coarse guide:

    • 1: -$15
    • 2: $15-30
    • 3: $30-50
    • 4: $50-75
    • 5: $75+

Usually represented by dollar symbols or the local currency equivalent. This short lookup is available as formatted JSON.

ratingRealA rating between 1 and 5, rounded to nearest half. Usually represented graphically by stars.
payment_cashonlyBoolOnly accepts cash
reservationsBoolAccepts reservations
hoursJSON

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_7BoolOpen 24x7
foundedIntYear founded
attireEnum

A single value from an enumerated list:

    • streetwear
    • casual
    • business casual
    • smart casual

    • formal

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:

    • shirt with collar
    • shirt
    • shoes
    • jacket
    • tie 

This wordlist is available as formatted JSON.

attire_prohibitedTag Bag

Can't get in if you are sporting this. One or more strings from the following list:

    • denim
    • cuttoffs
    • tank tops
    • sneakers
    • flipflops
    • sandals
    • hats
    • athletic wear
    • sports wear
    • boots

This wordlist is available as formatted JSON.

parkingBoolSome kind of parking is available; this will be true when any other parking attributes are true
parking_valetBoolValet parking is available
parking_garageBoolGarage parking is available
parking_streetBoolParking on-street
parking_lotBoolParking lot, not necessarily dedicated to this place
parking_validatedBoolValidated parking is available
parking_freeBoolFree parking is available. This is common in most civilized places, but unheard of in LA
smokingBoolThis place allows smoking somewhere
meal_breakfastBoolBreakfast is served
meal_lunchBoolServes lunch
meal_dinnerBoolServes dinner
meal_deliverBoolMakes deliveries
meal_takeoutBoolProvides take-out
meal_caterBoolProvides catering
alcoholBoolAlcohol is served or can be consumed on the premesis; this will be true when any other alcohol attributes are true
alcohol_barBoolHas a full bar
alcohol_beerwineBoolServes beer and wine only
alcohol_byobBoolBring Your Own Bottle
kids_goodforBoolNoted as being good for kids
kids_menuBoolHad a kids menu
groups_goodforBoolNoted as being good for groups
accessible_wheelchairBoolPremesis are accessible by wheelchair
seating_outdoorBoolOutdoor seating is available
wifiBoolWifi is provided by the establishment
ownerStringThe owner(s) name(s)
room_privateBoolA room is available for private functions
options_vegetarianBoolVegetarian dishes are served
options_veganBoolVegan dishes are available
options_glutenfreeBoolgluten free dishes or items are available
options_lowfatBoolLow-fat food is available
options_organicBoolOrganic food is served
options_healthyBoolHealthy 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:

 

Breakfast7:00-11:00
Brunch11:00-14:00
Lunch12:00-14:30
Dinner18: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
Labels: