OpenTable Scraper
Extract restaurant listings, reservation availability, reviews, and menu data from OpenTable. Powered by spider-browser .
Extract data in minutes
import { SpiderBrowser } from "spider-browser";
const spider = new SpiderBrowser({
apiKey: process.env.SPIDER_API_KEY!,
stealth: 2,
});
await spider.connect();
const page = spider.page!;
await page.goto("https://www.opentable.com/s?covers=2&dateTime=2026-04-01T19%3A00&metroId=4");
await page.content(10000);
const data = await page.evaluate(`(() => {
const restaurants = [];
document.querySelectorAll("[data-test='restaurant-card']").forEach(el => {
const name = el.querySelector("[data-test='restaurant-name']")?.textContent?.trim();
const rating = el.querySelector("[data-test='restaurant-rating']")?.textContent?.trim();
const cuisine = el.querySelector("[data-test='restaurant-cuisine']")?.textContent?.trim();
const price = el.querySelector("[data-test='restaurant-price']")?.textContent?.trim();
if (name) restaurants.push({ name, rating, cuisine, price });
});
return JSON.stringify({ total: restaurants.length, restaurants: restaurants.slice(0, 10) });
})()`);
console.log(JSON.parse(data));
await spider.close(); Structured data endpoint
Extract structured JSON from opentable.com with a single POST request. AI-configured selectors, cached for fast repeat calls.
/fetch/opentable.com/ curl -X POST https://api.spider.cloud/fetch/opentable.com/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"return_format": "json"}' import requests
resp = requests.post(
"https://api.spider.cloud/fetch/opentable.com/",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
json={"return_format": "json"},
)
print(resp.json()) const resp = await fetch("https://api.spider.cloud/fetch/opentable.com/", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ return_format: "json" }),
});
const data = await resp.json();
console.log(data); Data you can extract
Menu & restaurant data
Extract menus, prices, ratings, and delivery info from opentable.com.
Location targeting
Access location-specific menus and availability with geo-targeted proxies.
Dynamic content
Handle lazy-loaded menus, infinite scroll, and interactive search results.
More Food scrapers
Extract restaurant listings, menu items, pricing, and delivery info from DoorDash.
Extract restaurant listings, menu data, pricing, and delivery options from Uber Eats.
Extract recipes, ingredients, nutritional info, and user reviews from Allrecipes.
Start scraping opentable.com
Get your API key and start extracting data in minutes.