OpenTable | Meta | Menu | Reviews | Availability | Offers... avatar
OpenTable | Meta | Menu | Reviews | Availability | Offers...

Pricing

$11.00/month + usage

Go to Apify Store
OpenTable | Meta | Menu | Reviews | Availability | Offers...

OpenTable | Meta | Menu | Reviews | Availability | Offers...

Developed by

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Extract complete OpenTable restaurant intelligence: detailed info, full menus with prices, comprehensive reviews & ratings, real-time availability, VIP offers, loyalty programs, photos, and operational data. Get everything in one scrape for market research and business analysis.

0.0 (0)

Pricing

$11.00/month + usage

1

9

6

Last modified

3 hours ago

OpenTable | Restaurant | Menu | Reviews | Availability | Offers | Loyalty | Complete Intelligence | Scraper (Richest output)

How it works

This actor is designed to extract comprehensive restaurant data from OpenTable restaurant listings. The scraper captures detailed information including restaurant details, reviews, availability, menu information, experiences, and much more, providing a complete picture of each restaurant for in-depth analysis.

Features

This actor offers the following comprehensive data extraction features:

  • Complete Restaurant Information: Captures detailed restaurant data including name, address, description, hours, dress code, dining style, and cuisines
  • Comprehensive Review Extraction: Collects detailed review information including ratings, text, dates, and reviewer details with full statistics
  • Real-time Availability Data: Extracts current availability, timeslots, and reservation information
  • Menu & Experiences: Gathers information about special experiences, VIP lounges, and dining programs
  • Loyalty & Offers: Captures loyalty program details, points rewards, and current offers
  • Restaurant Features: Extracts supported features like reservations, direct messaging, and AI capabilities
  • Pagination Support: Automatically handles pagination to collect all available data
  • Structured Data Output: Provides clean, structured data in JSON format for easy analysis
  • Proxy Support: Built-in support for proxies to avoid blocking and improve reliability
  • Customizable Configuration: Adjust settings like concurrency, retries, and item limits

How to Use

  1. Set Up: Ensure you have an Apify account and access to the Apify platform.
  2. Input Restaurant URLs: Specify one or more OpenTable restaurant URLs to scrape comprehensive data from, e.g.:
    • https://www.opentable.com/r/jays-fort-lauderdale
    • https://www.opentable.com/r/restaurant-name-new-york
  3. Configure Settings (Optional):
    • Set maxItems to limit the number of restaurants to scrape
    • Adjust concurrency settings if needed
    • Configure proxy settings if required
  4. Run the Actor: Start the actor and monitor its progress.
  5. Download Results: Export the scraped data in your preferred format (JSON, CSV, etc.).

Supported URL Formats

The scraper supports the following URL formats:

  1. Restaurant Profile Pages
    • Example: https://www.opentable.com/r/restaurant-name-new-york
    • Example: https://www.opentable.com/restaurant/profile/1234567
    • Scrapes all available restaurant data including reviews, availability, and details

Input Data

Here's an example input for scraping comprehensive restaurant data from OpenTable:

{
"startUrls": [
{
"url": "https://www.opentable.com/r/restaurant-name-new-york"
},
{
"url": "https://www.opentable.com/restaurant/profile/1234567"
}
],
"maxItems": 100,
"maxConcurrency": 10,
"minConcurrency": 1,
"maxRequestRetries": 30
}

Input Parameters

ParameterTypeDefaultDescription
startUrlsArrayRequiredList of URLs to start scraping from
maxItemsInteger100Maximum number of items to scrape
maxConcurrencyInteger100Maximum concurrent requests
minConcurrencyInteger1Minimum concurrent requests
maxRequestRetriesInteger30Number of retries for failed requests

Output Structure

The scraper returns comprehensive restaurant data objects containing detailed information about each restaurant. Here's the complete data structure:

Complete Restaurant Data Example

{
"image": "https://resizer.otstatic.com/v3/photos/77921967-7",
"id": "1426036",
"name": "Jay's",
"line1": "441 NE 3rd Ave",
"state": "FL",
"postalCode": "33301-3233",
"city": "Fort Lauderdale",
"country": "United States",
"description": "Jay’s is a modern take on the classic steakhouse. It is the embodiment of a bold yet intimate experience—where modern architecture, a nostalgia-evoking soundtrack, and white-glove service form an unforgettable emotional journey. Every detail, from the music selection to the waitstaff’s every movement, is meticulously orchestrated to immerse guests in a living theater. It’s a place of entertainment and camaraderie where every chair feels like the best seat in the house, and every conversation feels like a private exchange in a grand, candlelit salon.\n\nGuests are encouraged to dress for the occasion. The dress code is business casual. Jackets are not required, no flip flops please. | $35 Corkage Fee",
"diningStyle": "Casual Elegant",
"dressCode": "Business Casual",
"hours": "Tue–Thu, Sun 5:00 pm–12:00 am\nFri, Sat 5:00 pm–1:00 am",
"cuisines": [
{
"id": "029cd931-4a83-4572-b87a-2b0ce7abcb1e",
"name": "Steakhouse",
"primary": true
},
{
"id": "0735c10c-6ab6-46f6-87aa-8fe54397744d",
"name": "Seafood",
"primary": false
},
{
"id": "ee2e9855-7067-4056-b51c-c09b2e89548a",
"name": "Prime Rib",
"primary": false
}
],
"networkListingStatus": true,
"type": "GuestCenter",
"features": [
"RESERVATION",
"DIRECT_MESSAGING",
"DINER_AI"
],
"privilegedAccessDiningPrograms": [],
"partnershipPrograms": [],
"recommended": false,
"customMessagesRefresh": {
"NoTimesExist": {
"isDefault": false,
"message": "At the moment, there’s no online availability within 2.5 hours of [ResoTime]."
},
"BelowMinPartySize": {
"isDefault": true,
"message": "Unfortunately, your party is too small to make an online reservation at [RestaurantName]. We recommend contacting the restaurant directly."
},
"AboveMaxPartySize": {
"isDefault": true,
"message": "Unfortunately, your party is too large to make an online reservation at [RestaurantName]. We recommend contacting the restaurant directly."
},
"TooFarInAdvance": {
"isDefault": true,
"message": "Unfortunately, [RestaurantName] doesn’t take online reservations that far in advance. Have another time in mind?"
},
"SameDayCutoff": {
"isDefault": true,
"message": "Unfortunately, [RestaurantName] doesn’t take same-day online reservations after [CutoffTime]. Have another time in mind?"
},
"BlockedDay": {
"isDefault": true,
"message": "Please accept our apologies, there is no availability with OpenTable on this date."
},
"EarlyCutoff": {
"isDefault": true,
"message": "[RestaurantName] does not allow reservations to be made within [EarlyCutoffDays] days of the reservation date."
},
"NotFarEnoughInAdvance": {
"isDefault": true,
"message": "[RestaurantName] requires more advanced notice for online reservations. Have another time in mind?"
},
"CreditCardPrefixMessage": {
"isDefault": true,
"message": ""
},
"CreditCardSuffixMessage": {
"isDefault": true,
"message": ""
},
"WaitListAfterCutOff": {
"isDefault": true,
"message": "Search within the next 90 minutes to join the waitlist."
},
"WaitListNoTimesMessage": {
"isDefault": true,
"message": "The waitlist is currently unavailable."
},
"WaitListPartySizeTooBig": {
"isDefault": true,
"message": "Only parties of [WaitListMaxPartySize] or less can join the waitlist."
},
"WaitListPartySizeTooSmall": {
"isDefault": true,
"message": "Only parties of [WaitListMinPartySize] or more can join the waitlist."
},
"DirectMessageResponseExpectation": {
"isDefault": true,
"message": "Restaurant staff will respond when available."
}
},
"availability": {
"dateTime": "2025-08-03T22:15",
"experienceList": {
"results": []
},
"availability": {
"dateTime": "2025-08-03T22:15",
"noTimesReasons": [],
"minPartySize": 1,
"maxPartySize": 8,
"maxDaysInAdvance": 304,
"id": "1426036",
"timeslots": [
{
"dateTime": "2025-08-03T18:45",
"available": true,
"requiresCreditCard": true,
"redemptionTier": "DineAnywhere",
"diningAreas": [
{
"id": "1",
"isDefaultArea": true,
"environment": "INDOOR",
"availableAttributes": [
"default"
],
"privilegedAccessRulesByAttributes": {}
}
],
"token": "eyJ2IjoyLCJtIjowLCJwIjowLCJjIjo2LCJzIjowLCJuIjowfQ",
"slotHash": "2652798736",
"points": 100,
"type": "Standard",
"attributes": [
"default"
],
"priceAmount": 0,
"creditCardPolicyType": "HOLD"
},
{
"dateTime": "2025-08-03T19:00",
"available": true,
"requiresCreditCard": true,
"redemptionTier": "DineAnywhere",
"diningAreas": [
{
"id": "1",
"isDefaultArea": true,
"environment": "INDOOR",
"availableAttributes": [
"default"
],
"privilegedAccessRulesByAttributes": {}
}
],
"token": "eyJ2IjoyLCJtIjowLCJwIjowLCJjIjo2LCJzIjowLCJuIjowfQ",
"slotHash": "101890375",
"points": 100,
"type": "Standard",
"attributes": [
"default"
],
"priceAmount": 0,
"creditCardPolicyType": "HOLD"
},
{
"dateTime": "2025-08-03T19:15",
"available": true,
"requiresCreditCard": true,
"redemptionTier": "DineAnywhere",
"diningAreas": [
{
"id": "1",
"isDefaultArea": true,
"environment": "INDOOR",
"availableAttributes": [
"default"
],
"privilegedAccessRulesByAttributes": {}
}
],
"token": "eyJ2IjoyLCJtIjowLCJwIjowLCJjIjo2LCJzIjowLCJuIjowfQ",
"slotHash": "52959074",
"points": 100,
"type": "Standard",
"attributes": [
"default"
],
"priceAmount": 0,
"creditCardPolicyType": "HOLD"
},
...
],
"dateMessages": [
{
"message": "We have a 15 minute grace period. Please call us if you are running later than 15 minutes after your reservation time.\n\nWe may contact you about this reservation, so please ensure your email and phone number are up to date.",
"type": "policies"
},
{
"message": "For dress code, guests are encouraged to dress for the occasion. The dress code is business casual. Jackets are not required. We do not allow shorts, baseball caps, tank-tops, flip flops, sweatpants, or swimwear.\n\nPlease call ahead at 954-999-0855. Arrangements for decorations can be made in advance for private parties and events.",
"type": "custom_policies"
}
],
"token": "eyJ2IjoyLCJtIjowLCJwIjowLCJzIjowLCJuIjowfQ",
"availabilityToken": "eyJ2IjoyLCJtIjowLCJwIjowLCJzIjowLCJuIjowfQ"
}
},
"isUserFavorite": false,
"offers": [
{
"id": "494358",
"name": "VIP LOUNGE",
"description": "The Ultimate VIP Experience at Jay’s Member’s Lounge.\n\nStep into a world of exclusivity at Jay’s Member’s Lounge, our private upstairs retreat designed for those who want to elevate their night out in Fort Lauderdale. Tucked above the main dining room, this intimate space offers lounge-style seating — sleek, cozy tables perfect for cocktails and conversation, rather than formal steakhouse dining — where you and your guests can relax, sip, and savor while overlooking the vibrant energy of Jay’s below.\n\nFor a $500 experience fee, guests receive:\n✨ Two bottles of Veuve Clicquot Champagne — a perfect start to an unforgettable evening.\n✨ Access to our members-only upstairs seating — reserved exclusively for VIP guests, ensuring privacy and luxury in every detail.\n✨ Prime “See and Be Seen” placement — from your elevated perch, take in the full view of the stunning restaurant while being part of the night’s most glamorous scene.\n✨ Dedicated service — enjoy the attention of a private server and bartender, catering solely to you and your party’s needs all night long.\n✨ Personal welcome from Jay, the owner — when available, Jay himself will greet you upstairs to make your evening even more memorable.\n\nPlease note: all additional food and beverage beyond the two bottles of Veuve Clicquot are sold separately.\n\nThis is more than a reservation — it’s a statement. Whether you’re celebrating a special occasion, impressing out-of-town guests, or simply indulging in the best Jay’s has to offer, the Member’s Lounge delivers a one-of-a-kind experience you won’t find anywhere else in Fort Lauderdale.\n\nReserve your VIP table now and make it a night to remember.",
"isMandatory": false,
"isBookable": true,
"type": "PRIX_FIXE",
"priceDetails": {
"experiencePriceType": "PER_PARTY",
"prePaymentRequired": true,
"priceTypes": [
{
"id": "761308",
"title": "VIP LOUNGE",
"basePrice": 100000,
"divisor": 100,
"currencyCode": "USD",
"includesTaxesAndFees": true
}
]
},
"experienceVersionId": "2",
"addOnsSummary": {
"count": 0,
"available": "NONE"
},
"schedules": [
{
"dayOfWeek": "FRIDAY",
"schedule": [
{
"first": "17:00",
"last": "01:00"
}
]
},
{
"dayOfWeek": "SATURDAY",
"schedule": [
{
"first": "17:00",
"last": "01:00"
}
]
}
],
"summaryPhoto": {
"id": "78241214",
"assetId": "78241214-1",
"rid": "1426036",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-06-02T19:44:10Z",
"origin": "none"
},
"minPartySize": 1,
"maxPartySize": 8,
"isVisaEvent": false
}
],
"pointsReward": {
"countries": [
{
"countryName": "US",
"loyaltyTiers": {
"DineAnywhere": {
"Levels": {
"2000": {
"Name": "$16",
"Value": 16,
"Currency": "USD",
"RequiredPoints": 2000
},
"5000": {
"Name": "$40",
"Value": 40,
"Currency": "USD",
"RequiredPoints": 5000
},
"10000": {
"Name": "$80",
"Value": 80,
"Currency": "USD",
"RequiredPoints": 10000
},
"20000": {
"Name": "$160",
"Value": 160,
"Currency": "USD",
"RequiredPoints": 20000
}
}
},
"GreatDeal": {
"Levels": {
"2000": {
"Name": "$16",
"Value": 16,
"Currency": "USD",
"RequiredPoints": 2000
},
"5000": {
"Name": "$40",
"Value": 40,
"Currency": "USD",
"RequiredPoints": 5000
},
"10000": {
"Name": "$80",
"Value": 80,
"Currency": "USD",
"RequiredPoints": 10000
},
"20000": {
"Name": "$160",
"Value": 160,
"Currency": "USD",
"RequiredPoints": 20000
}
}
},
"BestDeal": {
"Levels": {
"2000": {
"Name": "$16",
"Value": 16,
"Currency": "USD",
"RequiredPoints": 2000
},
"5000": {
"Name": "$40",
"Value": 40,
"Currency": "USD",
"RequiredPoints": 5000
},
"10000": {
"Name": "$80",
"Value": 80,
"Currency": "USD",
"RequiredPoints": 10000
},
"20000": {
"Name": "$160",
"Value": 160,
"Currency": "USD",
"RequiredPoints": 20000
}
}
}
}
}
]
},
"priceBand": {
"band": "4",
"label": "$50 and over"
},
"reviews": {
"count": 240,
"overallRating": 4.3,
"food": 4.3,
"service": 4.4,
"ambience": 4.6,
"value": 4.1,
"noise": 2,
"reviewCount": 118,
"distribution": [
{
"value": 1,
"count": 12
},
{
"value": 2,
"count": 10
},
{
"value": 3,
"count": 25
},
{
"value": 4,
"count": 30
},
{
"value": 5,
"count": 163
}
],
"dinerRecommendation": {
"total": 50,
"recommend": 50,
"dontRecommend": 0
},
"ratingBasedOn": "RecentReviews",
"items": [
{
"id": "OT-1426036-3042-160082355226",
"reservationDate": "2025-08-02T22:00",
"postedDate": "2025-08-03T15:27",
"author": "emma",
"authorMetro": "West Palm Beach",
"review": "Such a great experience for a birthday!! thank you guys",
"recommended": true,
"statistics": {
"overallRating": 5,
"food": 5,
"service": 5,
"ambience": 5,
"value": 5,
"noise": 2
},
"positiveFeedback": 0,
"negativeFeedback": 0,
"photos": [],
"authorDetails": {
"initials": "e",
"publicProfileColor": "PUMPKIN",
"approvedTextReviews": 0,
"approvedRatingOnlyReviews": 0,
"dinerIsVIP": false
}
},
...
]
},
"top3Reviews": [
{
"id": "OT-1426036-3042-160082355226",
"reservationDate": "2025-08-02T22:00",
"postedDate": "2025-08-03T15:27",
"author": "emma",
"authorMetro": "West Palm Beach",
"review": "Such a great experience for a birthday!! thank you guys",
"recommended": true,
"statistics": {
"overallRating": 5,
"food": 5,
"service": 5,
"ambience": 5,
"value": 5,
"noise": 2
},
"positiveFeedback": 0,
"negativeFeedback": 0,
"photos": [],
"authorDetails": {
"initials": "e",
"publicProfileColor": "PUMPKIN",
"approvedTextReviews": 0,
"approvedRatingOnlyReviews": 0,
"dinerIsVIP": false
}
},
{
"id": "OT-1426036-3782-190021330539",
"reservationDate": "2025-08-02T00:15",
"postedDate": "2025-08-02T18:58",
"author": "Keith",
"authorMetro": "Fort Lauderdale",
"review": "Everything was fantastic from beginning to end! The cocktails, the food, the service and the live entertainment! Please don’t stop providing the live entertainment. The DJ was fine, but it’s nice to be able to have a place in FTL that finally has live music (especially jazz & blues) that doesn’t require going out to a late night club. A great change in the style and atmosphere of when it was Holly Blue",
"statistics": {
"overallRating": 5,
"food": 5,
"service": 5,
"ambience": 5,
"value": 3,
"noise": 3
},
"positiveFeedback": 0,
"negativeFeedback": 0,
"authorDetails": {
"initials": "K",
"publicProfileColor": "PLUM",
"approvedTextReviews": 5,
"approvedRatingOnlyReviews": 0,
"dinerIsVIP": false
}
},
{
"id": "OT-1426036-3206-110137414991",
"reservationDate": "2025-07-31T23:00",
"postedDate": "2025-08-01T18:55",
"author": "Ronny",
"authorMetro": "Fort Lauderdale",
"review": "Everything about our experience was amazing however, when I called to make the reservation, because we were such a large party, I asked not to be seated by the stage, and we were seated one table away from the stage. Again, we were too big of a party to move so we had to shout to each other just to communicate. I understand that music is part of the vibe. But it also can be a little too much when you have a large party",
"statistics": {
"overallRating": 4,
"food": 5,
"service": 5,
"ambience": 5,
"value": 4,
"noise": 3
},
"positiveFeedback": 0,
"negativeFeedback": 0,
"photos": [],
"authorDetails": {
"initials": "R",
"publicProfileColor": "PLUM",
"approvedTextReviews": 5,
"approvedRatingOnlyReviews": 0,
"dinerIsVIP": false
}
}
],
"reviewSummary": "Jay's offers a stunning dining experience in a beautifully repurposed church, featuring an inviting atmosphere with live music. Highlights include \"amazing food and impeccable service,\" particularly the steaks and creative cocktails. While some service aspects need refining, the \"ambiance and decor\" make it a standout choice for a special occasion.",
"photosCount": 55,
"photoCategories": [
{
"position": 0,
"id": "all",
"count": 55,
"name": "All"
},
{
"position": 1,
"id": "food",
"count": 47,
"name": "Food"
},
{
"position": 2,
"id": "drink",
"count": 7,
"name": "Drinks"
},
{
"position": 5,
"id": "exterior",
"count": 1,
"name": "Exterior"
}
],
"profilePhoto": {
"id": "77921967",
"assetId": "77921967-7",
"rid": "1426036",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"origin": "none"
},
"profilePhotoWide": {
"id": "77921967",
"assetId": "77921967-7",
"rid": "1426036",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"origin": "none"
},
"website": "https://www.jaysfortlauderdale.com/",
"nonNaturalUrl": "https://www.opentable.com/restaurant/profile/1426036",
"latitude": 26.127714,
"longitude": -80.1410511,
"metroId": "3481",
"neighborhoodId": "21077",
"neighborhoodName": "Lauderdale Manors",
"region": "NA",
"diningAreas": [],
"defaultDiningAreaId": "1",
"defaultDiningAreaHasOutdoor": false,
"popularDishes": [],
"paymentOptions": [
"AMEX",
"Mastercard",
"Visa"
],
"publicTransit": "",
"parkingInfo": "None",
"countryCode": "US",
"maxPartySize": 8,
"maxAdvanceDays": 304,
"currencyCode": "USD",
"currencySymbol": "$",
"phoneNumber": "9549990855",
"formattedPhoneNumber": "(954) 999-0855",
"bookingStatistics": {
"resosInLastDay": 17
},
"domain": "COM",
"accessibilityDetails": [
"Gender Neutral Restroom",
"Wheelchair Access"
],
"hasGenderNeutralRestroom": true,
"isTakeoutEnabled": false,
"deliveryPartners": [],
"availabilityAlerts": [],
"isGroceryStore": false,
"tableAttributes": [
"default",
"bar",
"outdoor"
],
"directDelivery": {
"callForDelivery": false
},
"openTableWallet": {
"disabled": false
},
"isInPremiumMarketplace": false,
"availabilityToken": "eyJ2IjoyLCJtIjowLCJwIjowLCJzIjowLCJuIjowfQ",
"sightings": [
{
"id": "77921967",
"assetId": "77921967-7",
"rid": "1426036",
"name": "JAY'S EXTERIOR",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-22T22:26:12Z",
"origin": "restaurant"
},
{
"id": "77199245",
"assetId": "77199245-1",
"rid": "1426036",
"name": "Burrata",
"lovesCount": 1,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:06:06Z",
"origin": "restaurant"
},
{
"id": "77199212",
"assetId": "77199212-1",
"rid": "1426036",
"name": "Rock Shrimp Tempura",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:46Z",
"origin": "restaurant"
},
{
"id": "77199213",
"assetId": "77199213-2",
"rid": "1426036",
"name": "Ora King Salmon",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:46Z",
"origin": "restaurant"
},
{
"id": "77199222",
"assetId": "77199222-1",
"rid": "1426036",
"name": "30 Month Aged Prosciutto",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:55Z",
"origin": "restaurant"
},
{
"id": "77229971",
"assetId": "77229971-3",
"rid": "1426036",
"name": "Smoked Scallops",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T23:15:00Z",
"origin": "restaurant"
},
{
"id": "77199227",
"assetId": "77199227-2",
"rid": "1426036",
"name": "Paccheri",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:57Z",
"origin": "restaurant"
},
{
"id": "77199210",
"assetId": "77199210-1",
"rid": "1426036",
"name": "Beverly Hills",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:41Z",
"origin": "restaurant"
},
{
"id": "77199232",
"assetId": "77199232-1",
"rid": "1426036",
"name": "Prime Rib King Cut",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:59Z",
"origin": "restaurant"
},
{
"id": "77199206",
"assetId": "77199206-1",
"rid": "1426036",
"name": "Salmon Crudo",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:39Z",
"origin": "restaurant"
},
{
"id": "77199216",
"assetId": "77199216-2",
"rid": "1426036",
"name": "Crisp Romaine",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:51Z",
"origin": "restaurant"
},
{
"id": "77199244",
"assetId": "77199244-1",
"rid": "1426036",
"name": "Gratitude Mushrooms",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:06:05Z",
"origin": "restaurant"
},
{
"id": "77199231",
"assetId": "77199231-1",
"rid": "1426036",
"name": "Prime Rib ",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:59Z",
"origin": "restaurant"
},
{
"id": "77199226",
"assetId": "77199226-1",
"rid": "1426036",
"name": "Lobster Tail ",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:57Z",
"origin": "restaurant"
},
{
"id": "77199207",
"assetId": "77199207-1",
"rid": "1426036",
"name": "Gratitude Mushrooms",
"lovesCount": 0,
"reviewsCount": 0,
"greatShotsCount": 0,
"spotted": "2025-05-01T17:05:39Z",
"origin": "restaurant"
}
],
"hasMenu": true,
"hasAffiliatedRestaurants": true,
"menus": [
{
"title": "Main Menu",
"level": "menu",
"currency": "US$",
"sections": [
{
"title": "Starters",
"level": "section",
"items": [
{
"title": "Rock Shrimp Tempura",
"price": "18.00",
"level": "item",
"desc": "saffron/sriracha aioli/meyer lemon",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Bone Marrow",
"price": "23.00",
"level": "item",
"desc": "crispy bread/chimichurri/sherry gastrique",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Duck Fat Fries",
"price": "18.00",
"level": "item",
"desc": "rosemary aioli/parmesan reggiano/black truffle",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Wagyu Steak Tartare",
"price": "26.00",
"level": "item",
"desc": "japanese dijonnaise/caper/scallion/cornichon/togarashi cured egg yolk/wasabi",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Lamb Chop Lollipops",
"price": "26.00",
"level": "item",
"desc": "almonds/harissa/torn mint",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Foie Gras Grilled Cheese",
"price": "21.00",
"level": "item",
"desc": "hudson valley foie gras/gruyère/fig/truffle kewpie",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Lobster Oreganata",
"price": "24.00",
"level": "item",
"desc": "maine lobster/roasted garlic butter/oreganata",
"additionGroups": [],
"variationGroups": []
}
]
},
...
],
"provider": {
"name": "OpenTable",
"linkUrl": "https://www.opentable.com/",
"requiredAttribution": {
"image": false
}
}
},
{
"title": "Drinks Menu",
"level": "menu",
"currency": "US$",
"sections": [
{
"title": "Specialty Cocktails",
"level": "section",
"items": [
{
"title": "Flying Private",
"price": "29.00",
"level": "item",
"desc": "diplomatico exclusiva rum/select apertivo/nonino/mango/citrus rhubarb bitters/champagne",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Easy Street",
"price": "17.00",
"level": "item",
"desc": "tito’s handmade vodka/elderflower/lemon/cucumber/mint",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Brunch in South Beach",
"price": "19.00",
"level": "item",
"desc": "sagamore bourbon/cointreau/citrus/clover honey/blackberries",
"additionGroups": [],
"variationGroups": []
},
{
"title": "2 Hours to Cancun",
"price": "18.00",
"level": "item",
"desc": "herradura silver/lime/spicy agave nectar/volcanic black salt/dragon fruit",
"additionGroups": [],
"variationGroups": []
},
{
"title": "F*** Around & Find Out",
"price": "17.00",
"level": "item",
"desc": "ford's gin/italicus/lemon/liquid alchemist orgeat/pey'schaud's bitters/mint",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Cars, Sex, & a Rolex",
"price": "20.00",
"level": "item",
"desc": "monkey shoulder/montenegro amaro/lo-fi sweet vermouth cointreau infused wood smoke",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Comme Ci, Comme Ça",
"price": "22.00",
"level": "item",
"desc": "su casa mezcal/belle de brillet pear brandy/pink guava/lime/agave/ginger beer",
"additionGroups": [],
"variationGroups": []
},
{
"title": "All Grown Up Orange Julius",
"price": "15.00",
"level": "item",
"desc": "stoli orange vodka/jameson orange/fresh orange juice/cream/french vanilla",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Latin Medicine",
"price": "19.00",
"level": "item",
"desc": "don fulano tequila/lemon/ginger/clover honey/su casa mezcal",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Monkey Slide",
"price": "17.00",
"level": "item",
"desc": "howler head banana bourbon/caffè borghetti/banana cream/cocoa float",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Jay’s Tequila Espresso Martini",
"price": "18.00",
"level": "item",
"desc": "herradura reposado/caffè borghetti/fresh espresso/french vanilla",
"additionGroups": [],
"variationGroups": []
}
]
},
...
],
"provider": {
"name": "OpenTable",
"linkUrl": "https://www.opentable.com/",
"requiredAttribution": {
"image": false
}
}
},
{
"title": "Signature Champagne Program",
"level": "menu",
"currency": "US$",
"sections": [
{
"title": "750ml",
"level": "section",
"items": [
{
"title": "Veuve Clicquot Brut",
"price": "135.00",
"level": "item",
"desc": "Signature yellow label, bright, dry, golden apple, toasted brioche, creamy finish, a house favorite for any celebration",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Piper-Heidsieck Brut Rosé",
"price": "120.00",
"level": "item",
"desc": "Crisp, dry, with wild strawberry, citrus, & elegant bubbles",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Ruinart Blanc de Blancs",
"price": "165.00",
"level": "item",
"desc": "100% chardonnay, refined floral, white peach, citrus blossom, chalky minerality, exceptionally balanced",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Billecart-Salmon Brut Rosé",
"price": "160.00",
"level": "item",
"desc": "Delicately pink, red currant, raspberry, rose petals, elegant, dry, precise rosé",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Dom Pérignon",
"price": "375.00",
"level": "item",
"desc": "Legendary cuvée, complex, silky, toasted almond, stone fruit, lemon cream, long, layered finish",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Krug “Grande Cuvée”",
"price": "425.00",
"level": "item",
"desc": "Crafted from 120+ wines, rich, powerful, toasted hazelnut, citrus marmalade, baking spice, for connoisseurs",
"additionGroups": [],
"variationGroups": []
}
]
},
{
"title": "Fine Sips",
"level": "section",
"description": "EXCLUSIVE RARE SPIRITS, CURATED FOR THE REFINED PALATE | 1.5 oz POUR",
"items": [
{
"title": "Pappy Van Winkle’s Family Reserve 15 Year",
"price": "150.00",
"level": "item",
"desc": "Renowned for its incredibly smooth, caramel-laden palate & long, sweet finish",
"additionGroups": [],
"variationGroups": []
},
{
"title": "The Macallan 25 Year",
"price": "250.00",
"level": "item",
"desc": "Luxurious sherry-cask depth with notes of dried fruit, spice, & a long, velvety finish",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Glenfiddich 14 Year",
"price": "22.00",
"level": "item",
"desc": "American oak-matured with hints of toasted oak, orchard fruit, & creamy toffee",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Glenfiddich 18 Year",
"price": "40.00",
"level": "item",
"desc": "Rich & elegant with baked apple, cinnamon, & oak spice",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Glenfiddich 21 Year",
"price": "65.00",
"level": "item",
"desc": "Rum cask-finished – layered with fig, banana, & warm spice complexity",
"additionGroups": [],
"variationGroups": []
},
{
"title": "The Dalmore 12 Year",
"price": "24.00",
"level": "item",
"desc": "Bold & balanced – orange zest, chocolate, & elegant spice",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Eagle Rare 10 Year",
"price": "20.00",
"level": "item",
"desc": "Classic Kentucky bourbon – smooth with honey, toasted oak, & ripe cherry",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Blanton’s Single Barrel",
"price": "38.00",
"level": "item",
"desc": "Highly sought-after, offering warm vanilla, caramel, & citrus spice",
"additionGroups": [],
"variationGroups": []
},
{
"title": "The Balvenie 15 Year Single Barrel Scotch",
"price": "50.00",
"level": "item",
"desc": "Exquisitely hand-selected – full-bodied with honey, oak, & gentle spice",
"additionGroups": [],
"variationGroups": []
},
{
"title": "Louis XIII by Rémy Martin Cognac",
"level": "item",
"desc": "A showstopper served from a baccarat crystal decanter – layered with rare florals, fruit, & aged spice",
"additionGroups": [],
"variationGroups": [
{
"title": "For the Curious",
"items": [
{
"title": "½ oz",
"price": "120.00",
"level": "variation"
}
]
},
{
"title": "For the Passionate",
"items": [
{
"title": "2 oz",
"price": "480.00",
"level": "variation"
}
]
}
]
}
]
},
{
"title": "JAY’S RESERVE BOTTLE ROTATING SELECTION OF ULTRA-PREMIUM SPIRITS",
"level": "section",
"description": "ask your server for today's feature",
"items": []
}
],
"provider": {
"name": "OpenTable",
"linkUrl": "https://www.opentable.com/",
"requiredAttribution": {
"image": false
}
}
}
]
}

Data Fields Reference

Basic Restaurant Information

FieldTypeDescription
idStringUnique restaurant identifier
nameStringRestaurant name
imageStringMain restaurant image URL
line1StringStreet address
cityStringCity name
stateStringState/province
postalCodeStringPostal/ZIP code
countryStringCountry name
descriptionStringRestaurant description and policies
diningStyleStringType of dining experience (e.g., "Casual Elegant")
dressCodeStringDress code requirements
hoursStringOperating hours
websiteStringRestaurant's official website URL
phoneNumberStringRestaurant phone number (digits only)
formattedPhoneNumberStringFormatted phone number with parentheses and dashes

Location & Geographic Data

FieldTypeDescription
latitudeNumberGeographic latitude coordinate
longitudeNumberGeographic longitude coordinate
metroIdStringMetro area identifier
neighborhoodIdStringNeighborhood identifier
neighborhoodNameStringNeighborhood name
regionStringGeographic region code
countryCodeStringISO country code
nonNaturalUrlStringOpenTable profile URL

Cuisines & Features

FieldTypeDescription
cuisinesArrayList of cuisine types with IDs and primary designation
cuisines[].idStringUnique cuisine identifier
cuisines[].nameStringCuisine name (e.g., "Steakhouse", "Seafood")
cuisines[].primaryBooleanWhether this is the primary cuisine type
featuresArrayAvailable platform features (RESERVATION, DIRECT_MESSAGING, etc.)
networkListingStatusBooleanWhether restaurant is active on OpenTable network
typeStringRestaurant classification (e.g., "GuestCenter")
privilegedAccessDiningProgramsArraySpecial dining programs available
partnershipProgramsArrayPartnership program memberships
recommendedBooleanWhether restaurant is recommended by OpenTable

Availability & Reservations

FieldTypeDescription
availability.dateTimeStringQuery date/time for availability check
availability.experienceListObjectAvailable experiences for booking
availability.availability.minPartySizeNumberMinimum party size accepted
availability.availability.maxPartySizeNumberMaximum party size accepted
availability.availability.maxDaysInAdvanceNumberMaximum days in advance for reservations
availability.availability.timeslotsArrayAvailable reservation time slots
availability.availability.timeslots[].dateTimeStringAvailable reservation time
availability.availability.timeslots[].availableBooleanWhether slot is available
availability.availability.timeslots[].requiresCreditCardBooleanWhether credit card is required
availability.availability.timeslots[].redemptionTierStringLoyalty tier for redemption
availability.availability.timeslots[].pointsNumberPoints earned for this reservation
availability.availability.timeslots[].typeStringReservation type (e.g., "Standard")
availability.availability.timeslots[].priceAmountNumberAdditional cost for reservation
availability.availability.timeslots[].creditCardPolicyTypeStringCredit card policy (e.g., "HOLD")
availability.availability.dateMessagesArrayPolicy messages for the date
availability.availability.dateMessages[].messageStringPolicy message text
availability.availability.dateMessages[].typeStringMessage type (policies, custom_policies)

Dining Areas & Table Attributes

FieldTypeDescription
diningAreasArrayAvailable dining areas
defaultDiningAreaIdStringDefault dining area identifier
defaultDiningAreaHasOutdoorBooleanWhether default area has outdoor seating
tableAttributesArrayAvailable table attributes (default, bar, outdoor)
timeslots[].diningAreasArrayDining areas available for specific timeslot
timeslots[].diningAreas[].idStringDining area identifier
timeslots[].diningAreas[].isDefaultAreaBooleanWhether this is the default area
timeslots[].diningAreas[].environmentStringEnvironment type (INDOOR, OUTDOOR)
timeslots[].diningAreas[].availableAttributesArrayAvailable attributes for this area

Custom Messages & Policies

FieldTypeDescription
customMessagesRefreshObjectCustom messages for various reservation scenarios
customMessagesRefresh.NoTimesExistObjectMessage when no times are available
customMessagesRefresh.BelowMinPartySizeObjectMessage for parties too small
customMessagesRefresh.AboveMaxPartySizeObjectMessage for parties too large
customMessagesRefresh.TooFarInAdvanceObjectMessage for reservations too far ahead
customMessagesRefresh.SameDayCutoffObjectMessage for same-day reservation cutoff
customMessagesRefresh.BlockedDayObjectMessage for blocked dates
customMessagesRefresh.EarlyCutoffObjectMessage for early reservation cutoff
customMessagesRefresh.NotFarEnoughInAdvanceObjectMessage for reservations not far enough in advance
customMessagesRefresh.CreditCardPrefixMessageObjectMessage for credit card prefix
customMessagesRefresh.CreditCardSuffixMessageObjectMessage for credit card suffix
customMessagesRefresh.WaitListAfterCutOffObjectWaitlist availability message
customMessagesRefresh.WaitListNoTimesMessageObjectWaitlist no times message
customMessagesRefresh.WaitListPartySizeTooBigObjectWaitlist party size too big message
customMessagesRefresh.WaitListPartySizeTooSmallObjectWaitlist party size too small message
customMessagesRefresh.DirectMessageResponseExpectationObjectDirect messaging response time

Offers & Experiences

FieldTypeDescription
offersArrayAvailable promotional offers and experiences
offers[].idStringUnique offer identifier
offers[].nameStringOffer name (e.g., "VIP LOUNGE")
offers[].descriptionStringDetailed offer description
offers[].isMandatoryBooleanWhether offer is mandatory
offers[].isBookableBooleanWhether offer can be booked
offers[].typeStringOffer type (e.g., "PRIX_FIXE")
offers[].minPartySizeNumberMinimum party size for offer
offers[].maxPartySizeNumberMaximum party size for offer
offers[].isVisaEventBooleanWhether it's a Visa-sponsored event
offers[].priceDetailsObjectPricing information for the offer
offers[].priceDetails.experiencePriceTypeStringPricing type (PER_PARTY, PER_PERSON)
offers[].priceDetails.prePaymentRequiredBooleanWhether prepayment is required
offers[].priceDetails.priceTypes[].basePriceNumberBase price in cents
offers[].priceDetails.priceTypes[].divisorNumberDivisor to convert to currency units
offers[].priceDetails.priceTypes[].currencyCodeStringCurrency code
offers[].schedulesArrayAvailable days and times for the offer
offers[].schedules[].dayOfWeekStringDay of week (FRIDAY, SATURDAY, etc.)
offers[].schedules[].schedule[].firstStringStart time
offers[].schedules[].schedule[].lastStringEnd time

Loyalty & Points System

FieldTypeDescription
pointsRewardObjectLoyalty program information
pointsReward.countriesArrayCountries where loyalty program is available
pointsReward.countries[].countryNameStringCountry name
pointsReward.countries[].loyaltyTiersObjectAvailable loyalty tiers
pointsReward.countries[].loyaltyTiers.DineAnywhereObjectDineAnywhere tier rewards
pointsReward.countries[].loyaltyTiers.GreatDealObjectGreatDeal tier rewards
pointsReward.countries[].loyaltyTiers.BestDealObjectBestDeal tier rewards
loyaltyTiers.*.Levels.*ObjectReward levels within each tier
loyaltyTiers.*.Levels.*.NameStringReward name (e.g., "$16")
loyaltyTiers.*.Levels.*.ValueNumberReward value in currency
loyaltyTiers.*.Levels.*.CurrencyStringCurrency code
loyaltyTiers.*.Levels.*.RequiredPointsNumberPoints required for this reward

Price Information

FieldTypeDescription
priceBandObjectRestaurant price range information
priceBand.bandStringPrice band level (1-4)
priceBand.labelStringPrice range description (e.g., "$50 and over")
currencyCodeStringCurrency code used by restaurant
currencySymbolStringCurrency symbol

Reviews & Ratings Summary

FieldTypeDescription
reviews.countNumberTotal number of reviews
reviews.overallRatingNumberOverall rating (1-5)
reviews.foodNumberFood rating (1-5)
reviews.serviceNumberService rating (1-5)
reviews.ambienceNumberAmbience rating (1-5)
reviews.valueNumberValue rating (1-5)
reviews.noiseNumberNoise level (1-5, where 1=Quiet, 5=Very Noisy)
reviews.reviewCountNumberCount of text reviews
reviews.distributionArrayRating distribution breakdown
reviews.distribution[].valueNumberRating value (1-5)
reviews.distribution[].countNumberNumber of reviews with this rating
reviews.dinerRecommendationObjectRecommendation statistics
reviews.dinerRecommendation.totalNumberTotal recommendation responses
reviews.dinerRecommendation.recommendNumberNumber who recommend
reviews.dinerRecommendation.dontRecommendNumberNumber who don't recommend
reviews.ratingBasedOnStringWhat ratings are based on (e.g., "RecentReviews")

Individual Review Data

FieldTypeDescription
reviews.itemsArrayIndividual review objects
reviews.items[].idStringUnique review identifier
reviews.items[].reservationDateStringDate of restaurant visit
reviews.items[].postedDateStringDate review was posted
reviews.items[].authorStringReviewer name
reviews.items[].authorMetroStringReviewer's metro area
reviews.items[].reviewStringReview text content
reviews.items[].recommendedBooleanWhether reviewer recommends restaurant
reviews.items[].statistics.overallRatingNumberOverall rating (1-5)
reviews.items[].statistics.foodNumberFood rating (1-5)
reviews.items[].statistics.serviceNumberService rating (1-5)
reviews.items[].statistics.ambienceNumberAmbience rating (1-5)
reviews.items[].statistics.valueNumberValue rating (1-5)
reviews.items[].statistics.noiseNumberNoise level rating (1-5)
reviews.items[].positiveFeedbackNumberPositive feedback count
reviews.items[].negativeFeedbackNumberNegative feedback count
reviews.items[].photosArrayPhotos attached to review

Top Reviews & Summary

FieldTypeDescription
top3ReviewsArrayTop 3 featured reviews
reviewSummaryStringAI-generated summary of reviews

Author Details

FieldTypeDescription
authorDetails.initialsStringAuthor's initials
authorDetails.publicProfileColorStringProfile color theme
authorDetails.approvedTextReviewsNumberNumber of approved text reviews
authorDetails.approvedRatingOnlyReviewsNumberNumber of approved rating-only reviews
authorDetails.dinerIsVIPBooleanWhether reviewer has VIP status

Photos & Media

FieldTypeDescription
photosCountNumberTotal number of photos
photoCategoriesArrayPhoto categories with counts
photoCategories[].positionNumberCategory display position
photoCategories[].idStringCategory identifier
photoCategories[].countNumberNumber of photos in category
photoCategories[].nameStringCategory name (All, Food, Drinks, Exterior)
profilePhotoObjectMain profile photo information
profilePhotoWideObjectWide profile photo information
sightingsArrayFood and venue photos with metadata
sightings[].idStringPhoto identifier
sightings[].nameStringPhoto subject name
sightings[].lovesCountNumberNumber of loves received
sightings[].spottedStringDate photo was taken
sightings[].originStringPhoto source (restaurant, user)
FieldTypeDescription
hasMenuBooleanWhether restaurant has menu data
menusArrayComplete menu information
menus[].titleStringMenu name (Main Menu, Drinks Menu, etc.)
menus[].levelStringMenu level identifier
menus[].currencyStringCurrency used in menu
menus[].sectionsArrayMenu sections
menus[].sections[].titleStringSection name (Starters, Specialty Cocktails, etc.)
menus[].sections[].levelStringSection level identifier
menus[].sections[].descriptionStringSection description (optional)
menus[].sections[].itemsArrayMenu items in this section
menus[].sections[].items[].titleStringItem name
menus[].sections[].items[].priceStringItem price
menus[].sections[].items[].descStringItem description
menus[].sections[].items[].levelStringItem level identifier
menus[].sections[].items[].additionGroupsArrayAvailable additions/modifications
menus[].sections[].items[].variationGroupsArraySize/portion variations
menus[].providerObjectMenu data provider information

Operational Details

FieldTypeDescription
maxPartySizeNumberMaximum party size accepted
maxAdvanceDaysNumberMaximum days in advance for reservations
paymentOptionsArrayAccepted payment methods (AMEX, Mastercard, Visa)
publicTransitStringPublic transportation information
parkingInfoStringParking availability information
popularDishesArrayPopular dishes at the restaurant
bookingStatisticsObjectRecent booking activity
bookingStatistics.resosInLastDayNumberReservations made in last 24 hours

Accessibility & Services

FieldTypeDescription
accessibilityDetailsArrayAccessibility features available
hasGenderNeutralRestroomBooleanWhether gender neutral restroom is available
isTakeoutEnabledBooleanWhether takeout is available
deliveryPartnersArrayDelivery service partners
isGroceryStoreBooleanWhether location is a grocery store
tableAttributesArrayAvailable table attributes (default, bar, outdoor)
directDeliveryObjectDirect delivery options
openTableWalletObjectOpenTable wallet integration status
isInPremiumMarketplaceBooleanWhether restaurant is in premium marketplace

Technical & System Fields

FieldTypeDescription
isUserFavoriteBooleanWhether restaurant is in user's favorites
availabilityTokenStringToken for availability queries
domainStringOpenTable domain (COM, etc.)
isInPremiumMarketplaceBooleanWhether restaurant is in premium marketplace
openTableWalletObjectOpenTable wallet integration status
directDeliveryObjectDirect delivery options
availabilityAlertsArrayAvailability alert settings
isGroceryStoreBooleanWhether location is a grocery store
tableAttributesArrayAvailable table attributes (default, bar, outdoor)