# OpenTable Scraper (`rigelbytes/opentable-scraper`) Actor

Scrape OpenTable restaurants by search query (with date/time/party size) or start URLs. Optional listing details and full restaurant reviews.

- **URL**: https://apify.com/rigelbytes/opentable-scraper.md
- **Developed by:** [Rigel Bytes](https://apify.com/rigelbytes) (community)
- **Categories:** MCP servers, Integrations, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.70 / 1,000 restaurants

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## OpenTable Scraper

**OpenTable Scraper** extracts restaurant listings, full profile details, and diner reviews from [OpenTable](https://www.opentable.com) — for just **$2 per 1,000 restaurants** (listing details $3 per 1,000, reviews $2 per 1,000). Search by city, cuisine, or map area, paste an OpenTable search URL, or scrape a specific restaurant profile — then download structured data via the Apify platform (API access, scheduling, integrations, proxy rotation, and run monitoring).

Use it to map local dining markets, track ratings and availability, enrich CRM or research datasets, or feed competitive-intelligence dashboards — without building your own Akamai-aware crawler.

***

### What can OpenTable Scraper do for you?

- 🗺️ **Map a city's dining scene** — Pull restaurant directories by location, cuisine, or map area with ratings, price band, and review counts.
- 🏆 **Competitive intelligence** — Capture hours, amenities, dress code, parking, websites, and social links from restaurant profiles.
- 💬 **Mine diner reviews** — Paginate reviews with overall/food/service/ambience/value scores, dates, and nicknames — capped per restaurant when you need it.
- ⏰ **Availability-aware search** — Set reservation date, time, and party size so search results reflect real availability.
- 🔁 **Automation-ready** — Schedule runs, trigger via API, or pipe results into Zapier / Make / webhooks.
- 🛡️ **Bot-resistant by design** — Stacks TLS impersonation, stealth browser, and paced GraphQL with residential proxies to get past OpenTable's Akamai Bot Manager.

### What data can you extract?

| Category | Fields |
|----------|--------|
| 🏷️ Identity | `restaurantId`, `name`, `url`, `searchQuery` |
| ⭐ Ratings | `rating`, `reviewCount`, `recentReservationCount` |
| 📍 Location | `neighborhood`, `city`, `state`, `postCode`, `country`, `address`, `latitude`, `longitude` |
| 🍽️ Offer | `cuisine`, `priceBand`, `currencySymbol`, `diningStyle`, `dressCode` |
| 📞 Contact | `phone`, `email`, `website`, `facebookUrl`, `orderOnlineLink` |
| 🕐 Profile extras | `hoursOfOperation`, `amenities`, `paymentOptions`, `parkingDetails`, `publicTransit`, `executiveChef`, `hasTakeout`, `hasDelivery`, `outdoorSeating`, `photos` |
| 💬 Reviews | `reviews[]` with `overall`, `food`, `service`, `ambience`, `value`, `text`, `submittedDateTime`, `nickname` |
| 🚩 Flags | `detailsFetched`, `reviewsFetched` |

### Why use this scraper?

- 📊 **Market research** — Understand restaurant supply, price bands, and rating distributions in any city.
- 🕵️ **Competitor monitoring** — Track how competitors' ratings, review counts, and hours change over time.
- 🤝 **Lead generation** — Build contact lists (phone, email, website) of restaurants for outreach or partnerships.
- ⚙️ **Automation** — Replace manual copy-paste with scheduled runs and API-driven data pipelines.
- 💰 **Pay only for results** — Per-event pricing means you never pay for empty or failed requests.

### Pricing

How much does it cost to scrape OpenTable?

Pricing is **pay-per-event** — you're charged only for what the Actor successfully produces:

| Event | What you get | No discount | Bronze (5% off) | Silver (10% off) | Gold (15% off) |
|-------|--------------|-------------|-----------------|------------------|----------------|
| `dataset-item` | Each restaurant pushed to the dataset | **$2.00 / 1,000** | $1.90 / 1,000 | $1.80 / 1,000 | $1.70 / 1,000 |
| `listing-details` | Each restaurant with full profile enrichment | **$3.00 / 1,000** | $2.90 / 1,000 | $2.80 / 1,000 | $2.70 / 1,000 |
| `restaurant-reviews` | Each restaurant with completed review extraction | **$2.00 / 1,000** | $1.90 / 1,000 | $1.80 / 1,000 | $1.70 / 1,000 |

- No hidden fees or limits on usage.
- Use `maxItems` and `maxReviews` to control spend exactly.
- You pay for Apify platform usage (compute + residential proxy traffic) separately on your Apify plan.

***

### How to use OpenTable Scraper

1. Create a free [Apify account](https://console.apify.com/) and open **OpenTable Scraper**.
2. Add **Start URLs** (search or `/r/...` profile links) and/or **Search Queries** (e.g. `Dresden`, `Italian in Berlin`).
3. Optionally set reservation **date**, **time**, and **party size**.
4. Enable **Scrape Listing Details** and/or **Scrape Restaurant Reviews** when you need them.
5. Keep **Residential** proxies enabled (recommended).
6. Click **Start**, then download the dataset as JSON, HTML, CSV, or Excel.

### Input

Configure these fields in the Input tab (or pass JSON via API):

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `startUrls` | array | No | OpenTable search or restaurant profile URLs (takes priority when provided) |
| `searchQueries` | string list | No | Location / restaurant terms resolved via OpenTable autocomplete |
| `date` | date | No | Reservation date `YYYY-MM-DD` (defaults to tomorrow) |
| `time` | string | No | Preferred time in `HH:MM` (default `19:00`) |
| `partySize` | integer | No | Number of diners 1–20 (default `2`) |
| `scrapeListingDetails` | boolean | No | Open each profile page and extract full details (charges a `listing-details` event per restaurant) |
| `scrapeReviews` | boolean | No | Paginate and extract reviews (charges a `restaurant-reviews` event per restaurant) |
| `maxReviews` | integer | No | Cap reviews per restaurant, `0` = all |
| `maxItems` | integer | No | Cap restaurants, `0` = unlimited |
| `proxyConfiguration` | object | No | Proxy settings — Apify **RESIDENTIAL** strongly recommended |

#### 📝 Copy for Use:

```json
{
  "startUrls": [
    {
      "url": "https://www.opentable.com/s?dateTime=2026-08-15T19%3A00%3A00&covers=2&latitude=51.052008&longitude=13.741322&areaId=geohash%3Au31f2twp&suggestedSearchName=Dresden&shouldUseLatLongSearch=true&showMap=true"
    }
  ],
  "scrapeListingDetails": true,
  "scrapeReviews": true,
  "maxReviews": 5,
  "maxItems": 2,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### Output

Each dataset item is one restaurant. You can download the dataset in JSON, HTML, CSV, or Excel from the Output tab.

```json
{
  "restaurantId": 227388,
  "name": "Peter Pane - Dresden",
  "url": "https://www.opentable.com/r/peter-pane-dresden-am-zwinger-dresden",
  "cuisine": "Burgers",
  "priceBand": "€30 and under",
  "rating": 4.5,
  "reviewCount": 515,
  "neighborhood": "Old Town",
  "city": "Dresden",
  "state": "SN",
  "postCode": "01067",
  "address": "Wilsdruffer Straße 14-16, Dresden, SN, 01067",
  "phone": "0351 48676840",
  "latitude": 51.0515654,
  "longitude": 13.7349184,
  "diningStyle": "Casual Dining",
  "hasTakeout": true,
  "searchQuery": "Dresden",
  "detailsFetched": true,
  "reviewsFetched": true,
  "reviews": [
    {
      "reviewId": 123,
      "text": "Great burgers...",
      "overall": 5,
      "food": 5,
      "service": 4,
      "ambience": 4,
      "value": 5,
      "nickname": "Diner123",
      "submittedDateTime": "2026-07-01T12:00:00"
    }
  ]
}
```

### Why Choose This Scraper?

- **Affordable**: Pay only **$2 per 1,000 restaurants** scraped — details at $3/1,000 and reviews at $2/1,000, with up to 15% off on higher Apify plans.
- **Comprehensive**: Listings, full profiles, and reviews in one run — 40+ fields per restaurant including hours, amenities, parking, and photos.
- **Easy to Use**: No code required. Paste a search URL or type a city name; the Input tab has sane defaults for everything else.
- **Reliable**: Purpose-built Akamai bypass (TLS impersonation → stealth browser → paced GraphQL) with sticky residential sessions, plus automatic retries for failed seeds.

### Recommended Proxy Providers

- ## **Shifter**

  - Reliable residential proxies all over the world.
  - Cheap rates
  - [Order Shifter Now](https://shifter.io/r/YoBB/order)
  - Get 10% Off any product, use coupan `rigelbytes-YoBB`.

- ## **OxyLabs**

  - **100M+ Proxies**
  - Fastest proxies in the market
  - Real profile, human-like Residential IPs
  - Quality assurance framework for most reliable IPs
  - [Get Proxies](https://oxylabs.go2cloud.org/aff_c?offer_id=7\&aff_id=1366\&url_id=7)

- ## **DataImpulse**

  - Covers **200+ Counties**
  - Reliable Residential Proxies for just $1/GB
  - [Get Residential Proxies](https://dataimpulse.com/?aff=89421)

### [![Learn More About Proxies](https://img.shields.io/badge/Learn_More-About_Proxies-blue?style=for-the-badge)](#understanding-proxies)

### 🙌 Why Buy Through Our Affiliate Link?

- Exclusive Deals: Some providers may offer special discounts or bonuses when you use our link.
- Support Our Work: Each purchase helps us maintain and improve the tools and services we provide.
- No Extra Cost: You pay the same price, but part of it goes to supporting our efforts.

#### Running via Apify Console

You can run this actor from the Apify Console by providing the necessary input parameters.

#### Running via API

You can trigger this actor using the Apify API, passing the required input in the request body.

#### Example (Python)

```shell
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run_input = {
    "searchQueries": ["Dresden"],
    "time": "19:00",
    "partySize": 2,
    "scrapeListingDetails": True,
    "scrapeReviews": True,
    "maxReviews": 5,
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

run = client.actor("rigelbytes/opentable-scraper").call(run_input=run_input)
dataset_items = client.dataset(run["defaultDatasetId"]).list_items().items
```

#### Example (JavaScript)

```shell
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_APIFY_TOKEN" });

const runInput = {
  searchQueries: ["Dresden"],
  time: "19:00",
  partySize: 2,
  scrapeListingDetails: true,
  scrapeReviews: true,
  maxReviews: 5,
  maxItems: 10,
  proxyConfiguration: {
    useApifyProxy: true,
    apifyProxyGroups: ["RESIDENTIAL"],
  },
};

const run = await client.actor("rigelbytes/opentable-scraper").call(runInput);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
```

#### Example (cURL)

```shell
curl -X POST \
  "https://api.apify.com/v2/acts/rigelbytes~opentable-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchQueries": ["Dresden"],
    "time": "19:00",
    "partySize": 2,
    "scrapeListingDetails": true,
    "scrapeReviews": true,
    "maxReviews": 5,
    "maxItems": 10,
    "proxyConfiguration": {
      "useApifyProxy": true,
      "apifyProxyGroups": ["RESIDENTIAL"]
    }
  }'
```

### Scheduling & Deduplication

- **Scheduling**: Restaurant ratings, review counts, and availability change daily — run a **daily schedule** for monitoring, or **weekly** for market research snapshots. With multiple `searchQueries`, create a separate schedule per query term (e.g. one per city) to keep datasets clean and focused. Set this up in the Apify Console **Scheduler** tab or via the [Actor API](https://docs.apify.com/api/v2#/reference/actors/schedule-actor-run/schedule-actor-run).
- **Deduplication**: The actor stops at the `maxItems` cap and each output item is keyed by its unique `restaurantId`. OpenTable itself doesn't expose a revision number, so repeated runs of the same query naturally re-emit the same restaurants. Deduplicate in your downstream pipeline by `restaurantId` — for example:

```python
import pandas as pd

df = pd.concat([pd.read_json(run1), pd.read_json(run2)])
deduped = df.drop_duplicates(subset="restaurantId", keep="last")
print(len(deduped))
```

- **Webhooks**: Trigger a webhook on run completion to feed your database, dashboard, or notification pipeline automatically.

### 🚀 Other Tools by Rigel Bytes

Explore **138** more scraping tools by Rigel Bytes, organized by use case:

#### 📱 Social Media

Scrape Instagram, TikTok, LinkedIn, and more for content research and marketing intelligence.

- **[Export Instagram Reels](https://apify.com/rigelbytes/export-instagram-reels)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Facebook Ads Scraper](https://apify.com/rigelbytes/facebook-ads-scraper)** — Extract posts, profiles, and engagement data from Facebook for content research, influencer tracking, and marketing analytics.
- **[Instagram Analytics Tool](https://apify.com/rigelbytes/instagram-analytics-tool)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Comment Scraper](https://apify.com/rigelbytes/instagram-comment-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Creator Stats](https://apify.com/rigelbytes/instagram-creator-stats)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Engagement Tool](https://apify.com/rigelbytes/instagram-engagement-tool)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Post Scraper](https://apify.com/rigelbytes/instagram-post-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[instagram-posts](https://apify.com/rigelbytes/instagram-posts)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Profile Scraper](https://apify.com/rigelbytes/instagram-profile-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Instagram Reel Scraper](https://apify.com/rigelbytes/instagram-reel-scraper)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[linkedin-company-details](https://apify.com/rigelbytes/linkedin-company-details)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[Linkedin Company Scraper](https://apify.com/rigelbytes/linkedin-company-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[LinkedIn Job Scraper](https://apify.com/rigelbytes/linkedin-job-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[LinkedIn Profile Scraper](https://apify.com/rigelbytes/linkedin-profile-scraper)** — Extract posts, profiles, and engagement data from LinkedIn for content research, influencer tracking, and marketing analytics.
- **[Reddit Comment Scraper](https://apify.com/rigelbytes/reddit-comment-scraper)** — Scrape comments from Reddit post URLs. Uses a stealth browser session with a sticky residential proxy — no Reddit...
- **[Reddit Profile Scraper](https://apify.com/rigelbytes/reddit-profile-scraper)** — Scrape Reddit user profiles — overview, posts, and comments. Uses CloakBrowser with a sticky residential proxy to...
- **[Reddit Community Scraper](https://apify.com/rigelbytes/reddit-scraper)** — Scrape posts from any Reddit community (subreddit). Bypasses captcha automatically and extracts post data including...
- **[Scrape Instagram Creators](https://apify.com/rigelbytes/scrape-instagram-creators)** — Extract posts, profiles, and engagement data from Instagram for content research, influencer tracking, and marketing analytics.
- **[Social Media Content Outlier Finder](https://apify.com/rigelbytes/social-media-content-outlier)** — Find unusually successful organic content across Instagram, TikTok, YouTube, Reddit, and LinkedIn by comparing each...
- **[Tiktok Comment Scraper](https://apify.com/rigelbytes/tiktok-comment-scraper)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[Tiktok Creator Stats](https://apify.com/rigelbytes/tiktok-creator-stats)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[Tiktok Engagement Rate](https://apify.com/rigelbytes/tiktok-engagement-rate)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[TikTok Profile Scraper](https://apify.com/rigelbytes/tiktok-profile-scraper)** — Extract posts, profiles, and engagement data from TikTok for content research, influencer tracking, and marketing analytics.
- **[Twitter X Profile Scraper](https://apify.com/rigelbytes/twitter-x-profile-scraper)** — Extract posts, profiles, and engagement data from Twitter/X for content research, influencer tracking, and marketing analytics.
- **[YouTube Channel Scraper](https://apify.com/rigelbytes/youtube-channel-scraper)** — Extract posts, profiles, and engagement data from YouTube for content research, influencer tracking, and marketing analytics.
- **[YouTube Comment Scraper](https://apify.com/rigelbytes/youtube-comment-scraper)** — Extract posts, profiles, and engagement data from YouTube for content research, influencer tracking, and marketing analytics.
- **[YouTube Transcript Export](https://apify.com/rigelbytes/youtube-transcript-export)** — Extract posts, profiles, and engagement data from YouTube for content research, influencer tracking, and marketing analytics.

#### 🏠 Real Estate

Extract property listings, prices, and agent data from top real estate platforms.

- **[Aengevelt Scraper — German Real Estate Property Listings](https://apify.com/rigelbytes/aengevelt-scraper)** — Extract property listings from Aengevelt Immobilien. Get pricing, location, contact data, and images from Germany's...
- **[Airbnb Address Finder](https://apify.com/rigelbytes/airbnb-address-finder)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Availability Calendar](https://apify.com/rigelbytes/airbnb-availability-calendar)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Detailed Scraper - Search & Listing Details](https://apify.com/rigelbytes/airbnb-detailed-scraper)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Images Downloader](https://apify.com/rigelbytes/airbnb-images-downloader)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Listing](https://apify.com/rigelbytes/airbnb-listing)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Listing Urls](https://apify.com/rigelbytes/airbnb-listing-urls)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Property Details](https://apify.com/rigelbytes/airbnb-property-details)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Reviews](https://apify.com/rigelbytes/airbnb-reviews)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Airbnb Scraper - Search & Listing Details](https://apify.com/rigelbytes/airbnb-scraper)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Apartments.com Scraper](https://apify.com/rigelbytes/apartments-scraper)** — Scrape rental listings from apartments.com by entering location search queries. Returns property details including...
- **[Aqar.fm Scraper — النسخة العربية](https://apify.com/rigelbytes/aqar-fm-scraper)** — Scrapes Saudi real estate listings from aqar.fm via Next.js RSC search API. Supports Arabic search paths, start...
- **[Asunnot Oikotie.fi Real Estate Scraper](https://apify.com/rigelbytes/asunnot-oikotie-fi)** — Scrape Finnish property listings from asunnot.oikotie.fi by location, filters, or search/listing URLs. Optionally...
- **[Bayut Scraper](https://apify.com/rigelbytes/bayut-scraper)** — Scrape property listings and market data from Bayut for market research, price monitoring, and investment analysis.
- **[BNP Paribas Real Estate Scraper](https://apify.com/rigelbytes/bnppre-scraper)** — Scrape commercial property listings from BNP Paribas Real Estate (bnppre.de) — offices, retail, industrial, and...
- **[Boliga Denmark Real Estate Scraper](https://apify.com/rigelbytes/boliga-dk-scraper)** — Scrape property listings from Boliga.dk (Denmark). Search by zip code, free text, or result URLs. Optionally fetch...
- **[Boligsiden.dk Scraper](https://apify.com/rigelbytes/boligsiden-dk-scraper)** — Scrape Danish real estate listings from Boligsiden.dk — for sale, sold, and rental properties with pricing, details,...
- **[CBRE Scraper — Extract German Commercial Property Listings](https://apify.com/rigelbytes/cbre-scraper)** — Scrape commercial real estate letting listings from CBRE Germany (cbre.de). Office & industrial property data for...
- **[Colliers Scraper — German Commercial Property Listings](https://apify.com/rigelbytes/colliers-scraper)** — Extract commercial property listings from Colliers.de — offices, industrial, retail & logistics with pricing, map...
- **[Crexi Scraper](https://apify.com/rigelbytes/crexi-scraper)** — Scrape Crexi.com commercial real estate listings for sale and lease with filters, search queries, URLs, and optional...
- **[Daft.ie Property Scraper](https://apify.com/rigelbytes/daft-ie-scraper)** — Scrapes property listings from Daft.ie including residential, rental, commercial, and new homes across Ireland.
- **[DAHLER Real Estate Scraper — German Property Listings API](https://apify.com/rigelbytes/dahler-scraper)** — Extract buy and rent property listings from DAHLER Immobilien across Germany, Austria, and Spain. Get prices,...
- **[dubai-listing-scraper](https://apify.com/rigelbytes/dubai-listing-scraper)** — Extract unlimited property listings from Bayut.com — the UAE’s largest real estate platform. Get detailed property...
- **[Etuovi.com Real Estate Scraper](https://apify.com/rigelbytes/etuovi-scraper)** — Scrape Finnish property listings from Etuovi.com by search location, filters, or search/listing URLs. Optionally...
- **[Export Airbnb Calendar](https://apify.com/rigelbytes/export-airbnb-calendar)** — Scrape property listings and market data from Airbnb for market research, price monitoring, and investment analysis.
- **[Funda Netherlands Real Estate Scraper](https://apify.com/rigelbytes/funda-nl-scraper)** — Scrape property listings from Funda.nl — the largest real estate platform in the Netherlands. Supports buy and rent,...
- **[Furnished Finder Fast](https://apify.com/rigelbytes/furnished-finder-fast)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[Extract Furnished Finder Hosts](https://apify.com/rigelbytes/furnished-finder-hosts)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[FurnishedFinder](https://apify.com/rigelbytes/furnishedfinder)** — Scrape property listings and market data from Furnished Finder for market research, price monitoring, and investment analysis.
- **[German Real Estate MCP](https://apify.com/rigelbytes/german-realestate-mcp)** — MCP server for German real estate — 14 Rigel Bytes scrapers (ImmoScout24, Immowelt, Kleinanzeigen, RE/MAX, CBRE,...
- **[GrandCityProperty Scraper — Extract German Rental Listings](https://apify.com/rigelbytes/grandcityproperty)** — Extract rental property listings from GrandCityProperty.de — prices, floor plans, energy data, and contact details....
- **[Grossmann Berger Scraper — German Real Estate Listings](https://apify.com/rigelbytes/grossmann-berger-scraper)** — Extract property listings, prices, agent contacts, and images from grossmann-berger.de. From $2/1,000 listings....
- **[Hemnet.se Scraper - Swedish Real Estate Listings](https://apify.com/rigelbytes/hemnet-se-scraper)** — Scrape property listings from Hemnet.se including for-sale, upcoming, and sold homes. Search by URL or location...
- **[home.dk Real Estate Scraper](https://apify.com/rigelbytes/home-dk-scraper)** — Scrape Danish property listings from home.dk by search location, filters, or search/listing URLs. Optionally enrich...
- **[HouseSigma Scraper](https://apify.com/rigelbytes/housesigma-scraper)** — Scrape HouseSigma for-sale and for-lease listings with filters or map/search start URLs. Returns listing cards and...
- **[Immobiliare Italy Real Estate Scraper](https://apify.com/rigelbytes/immobiliare-it-scraper)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immobilienscout24](https://apify.com/rigelbytes/immobilienscout24)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immobilienscout24-scraper](https://apify.com/rigelbytes/immobilienscout24-scraper)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Immoweb Scraper - Belgium Property Listings](https://apify.com/rigelbytes/immoweb-scraper)** — Scrapes property listings from Immoweb.be. Supports search result extraction with optional property detail enrichment.
- **[Immowelt Property Scraper](https://apify.com/rigelbytes/immowelt-property-scraper)** — The Immowelt Scraper helps you extract unlimited real estate listings from Immowelt with complete details including...
- **[Immowelt Scraper](https://apify.com/rigelbytes/immowelt-scraper)** — The Immowelt Scraper helps you extract unlimited real estate listings from Immowelt with complete details including...
- **[JLL Property Scraper — Extract Commercial  Investment Listings](https://apify.com/rigelbytes/jll-scraper)** — Scrape commercial and investment property data from JLL Germany (gewerbeimmobilien.jll.de and invest.jll.com)....
- **[Land.com Agents Scraper](https://apify.com/rigelbytes/landdotcom-agents)** — Scrape property listings and market data from Land.com for market research, price monitoring, and investment analysis.
- **[Land.com Scraper](https://apify.com/rigelbytes/landdotcom-scraper)** — Scrape property listings and market data from Land.com for market research, price monitoring, and investment analysis.
- **[Nybolig Denmark Real Estate Scraper](https://apify.com/rigelbytes/nybolig-dk-scraper)** — Scrape property listings from Nybolig.dk (Denmark). Search by zip code, free text, filters, or result/listing URLs....
- **[Outdoorsy Scraper](https://apify.com/rigelbytes/outdoorsy-scraper)** — Scrape property listings and market data from Outdoorsy for market research, price monitoring, and investment analysis.
- **[PropertyFinder Eygpt](https://apify.com/rigelbytes/propertyfinder-eygpt)** — Scrape property listings and market data from Property Finder for market research, price monitoring, and investment analysis.
- **[Propertyfinder Scraper](https://apify.com/rigelbytes/propertyfinder-scraper)** — Scrape property listings and market data from Property Finder for market research, price monitoring, and investment analysis.
- **[Realtor.com Agent Scraper](https://apify.com/rigelbytes/realtor-agent-scraper)** — Scrape real estate agents from Realtor.com by city or ZIP code. Optionally fetch full agent profiles and reviews via...
- **[Realtor.com Scraper](https://apify.com/rigelbytes/realtor-scraper)** — Scrape Realtor.com property listings with full search filters via GraphQL. Supports price, beds/baths, property...
- **[Redfin Scraper](https://apify.com/rigelbytes/redfin-scraper)** — Scrape property listings and market data from Redfin for market research, price monitoring, and investment analysis.
- **[RE/MAX Germany Scraper](https://apify.com/rigelbytes/remax-scraper)** — Scrapes residential and commercial real estate listings from remax.de by German Bundesland. Extracts prices, areas,...
- **[Rent.com Scraper](https://apify.com/rigelbytes/rent-com-scraper)** — Scrape rental listings from rent.com — search by location query or URL. Extracts property details, photos, floor...
- **[Rightmove Scraper](https://apify.com/rigelbytes/rightmove-scraper)** — Scrape property listings and market data from Rightmove for market research, price monitoring, and investment analysis.
- **[RVshare Scraper](https://apify.com/rigelbytes/rvshare-scraper)** — Scrape property listings and market data from RVshare for market research, price monitoring, and investment analysis.
- **[Savills Property Scraper — Extract Listings by Location](https://apify.com/rigelbytes/savills-scraper)** — Scrape residential and commercial property listings from Savills by city. Get prices, addresses, sizes, bedrooms,...
- **[Unlimited Redfin Scraper](https://apify.com/rigelbytes/unlimited-redfin-scraper)** — Scrape property listings and market data from Redfin for market research, price monitoring, and investment analysis.
- **[Wüstenrot Immobilien Scraper — German Property Listings API](https://apify.com/rigelbytes/wuestenrot-immobilien)** — Scrape property listings and market data from real estate portals for market research, price monitoring, and investment analysis.
- **[Zillow Detail Scraper](https://apify.com/rigelbytes/zillow-detail-scraper)** — Scrape property listings and market data from Zillow for market research, price monitoring, and investment analysis.
- **[Zillow Scraper](https://apify.com/rigelbytes/zillow-scraper)** — Scrape property listings and market data from Zillow for market research, price monitoring, and investment analysis.
- **[Zoopla Scraper](https://apify.com/rigelbytes/zoopla-scraper)** — Scrape property listings and market data from Zoopla for market research, price monitoring, and investment analysis.

#### ✈️ Travel & Hospitality

Monitor rentals, bookings, and travel listings at scale.

- **[Autotrader Scraper](https://apify.com/rigelbytes/autotrader-scraper)** — Scrapes car listings from Autotrader.com with advanced search filters, pagination, and detailed vehicle data.
- **[CarMax Scraper](https://apify.com/rigelbytes/carmax-scraper)** — Scrapes used car listings from CarMax.com with search URL, zip code filtering, and pagination support.
- **[Cars.com Scraper](https://apify.com/rigelbytes/cars-scraper)** — Scrapes car listings from Cars.com using their GraphQL API. Extracts detailed vehicle data including price, specs,...
- **[Cars & Bids Scraper](https://apify.com/rigelbytes/carsandbids-scraper)** — Scrape live, upcoming, and past car auctions from Cars & Bids. Extract vehicle details, bids, photos, comments, and...
- **[Ticketmaster Scraper](https://apify.com/rigelbytes/ticketmaster-scraper)** — Collect rental and travel listings from Ticketmaster for pricing intelligence and availability tracking.

#### 🛒 E-commerce

Scrape products, prices, and marketplace data for competitive research.

- **[Amazon Product Scraper](https://apify.com/rigelbytes/amazon-product-scraper)** — Scrape products, prices, and seller data from Amazon for competitor monitoring, pricing, and product research.
- **[Amazon Search Scraper](https://apify.com/rigelbytes/amazon-scraper)** — Scrape products, prices, and seller data from Amazon for competitor monitoring, pricing, and product research.
- **[AutoScout24 Scraper](https://apify.com/rigelbytes/autoscout24-scraper)** — Scrape car listings from AutoScout24 with full filter support. Extract makes, models, prices, mileage, seller info,...
- **[Best Buy Product Scraper](https://apify.com/rigelbytes/best-buy-scraper)** — Scrape Best Buy US and Canada products by search query, category URL, or SKU. Optionally enrich each item with full...
- **[Daraz](https://apify.com/rigelbytes/daraz)** — Scrape products, prices, and seller data from Daraz for competitor monitoring, pricing, and product research.
- **[Etsy Scraper](https://apify.com/rigelbytes/etsy-scraper)** — Scrape products, prices, and seller data from Etsy for competitor monitoring, pricing, and product research.
- **[Homedepot Scraper](https://apify.com/rigelbytes/homedepot-scraper)** — HomeDepot Products Scraper lets you extract product data from homedepot.com using a collection URL and delivery ZIP....
- **[Kleinanzeigen Scraper](https://apify.com/rigelbytes/kleinanzeigen-scraper)** — Scrape listings from kleinanzeigen.de — search results and detail pages for any category (electronics, vehicles,...
- **[Otodom Scraper - Polish Real Estate Listings](https://apify.com/rigelbytes/otodom-scraper)** — Scrapes property listings from Otodom.pl, Poland's leading real estate marketplace. Supports filters for transaction...
- **[Zalando Product Scraper](https://apify.com/rigelbytes/zalando-scraper)** — Scrape product listings and optional product details from Zalando category pages and search queries.

#### 💼 Jobs & Recruitment

Collect job listings and company hiring data for market analysis.

- **[Glassdoor Jobs Scraper](https://apify.com/rigelbytes/glassdoor-jobs-scraper)** — Scrape job listings from Glassdoor by search query and location, with optional job detail enrichment.
- **[StepStone Jobs Scraper — Extract German/DACH Job Listings](https://apify.com/rigelbytes/stepstone-jobs-scraper)** — Scrape thousands of job listings from StepStone (DE, AT, BE, NL) with salary, skills, remote status & more. From...
- **[Upwork Jobs Scraper](https://apify.com/rigelbytes/upwork-jobs-scraper)** — Scrapes Upwork freelance job listings by keyword with full search filters (sort, experience, job type, budget,...
- **[ZipRecruiter Job Scraper](https://apify.com/rigelbytes/ziprecruiter-scraper)** — Scrape job listings from ZipRecruiter with search queries, locations, and radius filters. Extracts title, company,...

#### 📩 Lead Generation

Find business contacts, leads, and company data for sales and outreach.

- **[Booli.se Scraper](https://apify.com/rigelbytes/booli-se-scraper)** — Scrapes Swedish real estate listings from Booli.se — for sale, sold prices, and new construction. Supports search...
- **[Company Service Finder](https://apify.com/rigelbytes/company-service-finder)** — The Company Service Finder uses AI to extract and analyze company services from Google Search & Maps. Get detailed...
- **[Doctify Scraper](https://apify.com/rigelbytes/doctify-scraper)** — Doctify Scraper lets you extract doctor and practice data from doctify.com using a search results URL. Collect...
- **[Doctolib Scraper](https://apify.com/rigelbytes/doctolib-scraper)** — Scrape doctor profiles, availability, and practice details from Doctolib.de — Germany's largest medical appointment...
- **[FindLaw Law Firm Scraper - Attorney & Law Firm Data Extraction](https://apify.com/rigelbytes/findlaw-scraper)** — Scrape law firm profiles from FindLaw.com. Extract detailed attorney and firm information including contact details,...
- **[Finn.no Real Estate Scraper](https://apify.com/rigelbytes/finn-no-scraper)** — Scrape Norwegian real-estate listings from Finn.no with search URL or filter-based discovery, optional full details...
- **[Google Maps Scraper](https://apify.com/rigelbytes/google-maps-scraper)** — Find business leads and contact details from Google Maps for outbound sales, prospecting, and CRM enrichment.
- **[Krogsveen.no Real Estate Scraper](https://apify.com/rigelbytes/krogsveen-no-scraper)** — Scrape Norwegian real-estate listings from Krogsveen.no with search URL or filter-based discovery, optional full...
- **[LeadRocks Scraper](https://apify.com/rigelbytes/leadrocks-scraper)** — Export filtered B2B leads from the LeadRocks dataset by category, state, job title, company, and industry. Free...
- **[Website Services Finder](https://apify.com/rigelbytes/website-services-finder)** — Automatically extract and analyze company services from any business website using advanced AI. Choose from 5 AI...
- **[Zillow Agents](https://apify.com/rigelbytes/zillow-agents)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.
- **[Zillow Agents Phone](https://apify.com/rigelbytes/zillow-agents-phone)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.
- **[Zillow Agents Vault](https://apify.com/rigelbytes/zillow-agents-vault)** — Find business leads and contact details from Zillow for outbound sales, prospecting, and CRM enrichment.

#### ⭐ Reviews & Ratings

Monitor reviews and reputation data across review platforms.

- **[Airbnb Listing Reviews](https://apify.com/rigelbytes/airbnb-listing-reviews)** — Collect reviews and ratings from Airbnb for reputation monitoring and customer insights.
- **[BBB Scraper](https://apify.com/rigelbytes/bbb-scraper)** — Collect reviews and ratings from BBB for reputation monitoring and customer insights.
- **[Costco Product Scraper](https://apify.com/rigelbytes/costco-scraper)** — Scrapes product data from Costco.com including prices, descriptions, ratings, and availability. Supports search...
- **[HRS Hotel Reviews Scraper](https://apify.com/rigelbytes/hrs-hotel-reviews-scraper)** — Extract hotel details, room offers, and guest reviews from HRS hotel URLs.
- **[HRS Hotel Scraper](https://apify.com/rigelbytes/hrs-scraper)** — Scrapes hotel listings, prices, ratings, and amenities from HRS (hrs.com) by location and travel dates.
- **[Google Play Store App Reviews Scraper](https://apify.com/rigelbytes/playstore-app-reviews)** — Scrape Google Play Store app reviews by app ID or Play Store URL. Supports multiple apps, sorting, score filters,...
- **[Rottentomatoes Reviews Scraper](https://apify.com/rigelbytes/rottentomatoes-reviews-scraper)** — Collect reviews and ratings from Rotten Tomatoes for reputation monitoring and customer insights.
- **[TripAdvisor Reviews Scraper](https://apify.com/rigelbytes/tripadvisor-reviews-scraper)** — Scrape reviews from TripAdvisor hotel pages using GraphQL API with DataDome protection bypass.
- **[Trustpilot Reviews Scraper](https://apify.com/rigelbytes/trustpilot-reviews)** — Collect reviews and ratings from Trustpilot for reputation monitoring and customer insights.
- **[Yelp Scraper](https://apify.com/rigelbytes/yelp-scraper)** — Scrape Yelp business listings by search term, category, location, or URL. Optional full business details with phone,...

#### 🍔 Food & Delivery

Extract restaurant, grocery, and delivery platform data.

- **[Instacart Scraper](https://apify.com/rigelbytes/instacart-scraper)** — Scrape menus, stores, and delivery data from Instacart for data-driven research and automation.
- **[Lidl Product Scraper](https://apify.com/rigelbytes/lidl-scraper)** — Scrape Lidl supermarket products across Europe by search query or category/product URL. Optionally enrich each item...
- **[Publix Scraper](https://apify.com/rigelbytes/publix-scraper)** — Scrape menus, stores, and delivery data from Publix for data-driven research and automation.

#### 📰 News & Media

Scrape news, articles, and media content for research.

- **[BizBuySell Scraper](https://apify.com/rigelbytes/bizbuysell-scraper)** — Scrape BizBuySell business-for-sale listings via search URLs or structured filters, with optional full listing details.
- **[SEC IPO Event Intelligence](https://apify.com/rigelbytes/ipo-events-api)** — Monitors SEC EDGAR for IPO filings and converts them into structured business events, with optional AI company...
- **[SEC Filings Scraper](https://apify.com/rigelbytes/sec-filings-intelligence)** — Retrieve clean, normalized SEC EDGAR filing data by ticker, CIK, or company name — with document links, optional...

#### 🛠️ Developer Tools

General-purpose scraping and automation tools.

- **[EU Tenders Scraper](https://apify.com/rigelbytes/eu-tenders-scraper)** — Scrape EU public procurement notices from TED (Tenders Electronic Daily) with advanced search filters,...
- **[Web Crawler](https://apify.com/rigelbytes/webcrawler)** — This web crawler is designed to provide users with complete flexibility by allowing them to use their \*\*own...

### Understanding Proxies:

When scraping data or browsing anonymously, proxies are essential. They act as intermediaries, masking your original IP address and allowing you to send requests from another location.

#### Why Use Proxies?

- Avoid IP Blocks: By routing requests through proxies, you prevent the target website from recognizing your IP as a scraper or spammer.
- Access Geo-restricted Content: Proxies let you access content or websites restricted by location.
- Enhance Anonymity: Hide your actual IP, ensuring privacy while scraping or browsing.

#### Types of Proxies

1. Residential Proxies
   - Real IP addresses provided by ISPs to home users.
   - They mimic regular users, making them harder to detect.
   - Best for: Long-term, undetectable scraping, and avoiding blocks.
2. Data Center Proxies
   - IP addresses from servers in data centers.
   - Faster and cheaper than residential proxies but easier to detect and block.
   - Best for: High-speed scraping, but with a higher risk of detection.
3. Mobile Proxies
   - IPs provided by mobile carriers (3G/4G/5G networks).
   - Very difficult to detect, as they appear as regular mobile users.
   - Best for: Mobile-related scraping or avoiding sophisticated blocks.

#### Rotating Proxies vs. Straight Proxies

- Rotating Proxies: Every request you send goes through a different proxy, making it harder for websites to detect patterns.
- Straight Proxies: All requests are sent through the same proxy, making it easier to track your IP.

### FAQs & Troubleshooting

#### Q: Why did my run return zero restaurants?

OpenTable is protected by Akamai Bot Manager (`_abck` / `ak_bmsc` cookies), and datacenter IPs are frequently blocked with "Access Denied". Make sure `proxyConfiguration` uses the Apify **RESIDENTIAL** proxy group, and retry with a slightly different query or date — the Actor retries failed seeds once with a fresh proxy session.

#### Q: What counts as one "result" for pricing?

Pricing is per event: `dataset-item` charges once per restaurant pushed to the dataset, `listing-details` once per restaurant with successful profile enrichment, and `restaurant-reviews` once per restaurant with a completed review extraction. Restaurants scraped as plain listings with no details or reviews enabled only trigger `dataset-item`.

#### Q: Can I scrape just the reviews for a single restaurant?

Yes — put the restaurant profile URL (`https://www.opentable.com/r/...`) in `startUrls`, set `scrapeReviews: true`, and optionally cap with `maxReviews`. Only that restaurant's reviews will be paginated.

#### Q: What's the difference between `startUrls` and `searchQueries`?

`startUrls` take priority and accept exact OpenTable search URLs (`/s?...` — useful when you need a specific date/time or map area) or profile URLs. `searchQueries` are free-text terms (e.g. `Dresden`, `Italian in Berlin`) resolved through OpenTable's autocomplete when `startUrls` is empty.

#### Q: How do I control my spending on a run?

Use `maxItems` to cap the number of restaurants and `maxReviews` to cap reviews per restaurant. Leave `scrapeListingDetails` and `scrapeReviews` off for cheap listing-only runs, and enable them only for the restaurants you need enriched. Each event also honors the run-level spending limit you set in Apify.

#### Q: Why is the availability/date information just a snapshot?

Reservation slots change constantly. The Actor captures availability at run time; treat `date`, `time`, and any availability-oriented signals as a point-in-time snapshot. For monitoring, schedule recurring runs (e.g. daily) rather than relying on a single scrape.

### About Rigel Bytes

Rigel Bytes specializes in web scraping, automation, and data analytics. We help businesses extract and leverage valuable data for informed decision-making.

### Contact Us

Ready to unlock the power of data? Reach out to us at (contact@rigelbytes.com) or [book an appointment](https://cal.com/faizanali/appointments) with us to learn more about how we can help you achieve your data goals.

### Detailed Data

Below are two example records from a real run — full JSON is available in the dataset.

```json
[
  {
    "restaurantId": 227388,
    "name": "Peter Pane - Dresden",
    "url": "https://www.opentable.com/r/peter-pane-dresden-am-zwinger-dresden",
    "cuisine": "Burgers",
    "priceBand": "€30 and under",
    "currencySymbol": "€",
    "rating": 4.5,
    "reviewCount": 515,
    "recentReservationCount": 21,
    "neighborhood": "Old Town",
    "city": "Dresden",
    "state": "SN",
    "postCode": "01067",
    "address": "Wilsdruffer Straße 14-16, Dresden, SN, 01067",
    "addressLine1": "Wilsdruffer Straße 14-16",
    "latitude": 51.0515654,
    "longitude": 13.7349184,
    "phone": "0351 48676840",
    "diningStyle": "Casual Dining",
    "hasTakeout": true,
    "outdoorSeating": false,
    "photoUrl": "https://resizer.otstatic.com/v3/photos/92048640-2?width=320&height=320&webp=true",
    "photos": [
      "https://resizer.otstatic.com/v4/photos/92048640-2?width=640&height=360",
      "https://resizer.otstatic.com/v4/photos/32441351-3?width=640&height=360"
    ],
    "searchQuery": "Dresden",
    "detailsFetched": false,
    "reviewsFetched": false,
    "reviews": null
  },
  {
    "restaurantId": 158685,
    "name": "Ayers Rock",
    "url": "https://www.opentable.com/r/ayers-rock-dresden",
    "cuisine": "Australian",
    "priceBand": "€30 and under",
    "currencySymbol": "€",
    "rating": 4.8,
    "reviewCount": 898,
    "recentReservationCount": 11,
    "neighborhood": "Old Town",
    "city": "Dresden",
    "state": "SN",
    "postCode": "01067",
    "address": "Münzgasse 8, Dresden, SN, 01067",
    "addressLine1": "Münzgasse 8",
    "latitude": 51.0529291,
    "longitude": 13.741416,
    "phone": "0351 4901188",
    "diningStyle": "Casual Dining",
    "hasTakeout": false,
    "outdoorSeating": false,
    "photoUrl": "https://resizer.otstatic.com/v3/photos/25341929-1?width=320&height=320&webp=true",
    "photos": [
      "https://resizer.otstatic.com/v4/photos/25341929-1?width=640&height=360",
      "https://resizer.otstatic.com/v4/photos/29522160-4?width=640&height=360"
    ],
    "searchQuery": "Dresden",
    "detailsFetched": false,
    "reviewsFetched": false,
    "reviews": null
  }
]
```

# Actor input Schema

## `startUrls` (type: `array`):

OpenTable search URLs (https://www.opentable.com/s?...) or restaurant profile URLs (https://www.opentable.com/r/...). Takes priority when provided.

## `searchQueries` (type: `array`):

Location or restaurant search terms (e.g. Dresden, New York, Italian in Berlin). Used when startUrls are empty. Resolved via OpenTable autocomplete.

## `date` (type: `string`):

Date for availability search (YYYY-MM-DD). Defaults to tomorrow when omitted. Also used when parsing searchQueries.

## `time` (type: `string`):

Preferred dining time in 24h HH:MM format (e.g. 19:00).

## `partySize` (type: `integer`):

Number of diners (covers) for the search.

## `scrapeListingDetails` (type: `boolean`):

When enabled, opens each restaurant profile page and extracts full details (hours, dress code, website, amenities, photos, etc.). Charges a listing-details event per restaurant.

## `scrapeReviews` (type: `boolean`):

When enabled, paginates and extracts reviews for each restaurant. Charges a restaurant-reviews event per restaurant. Nested under the reviews field on each dataset item.

## `maxReviews` (type: `integer`):

Maximum reviews to extract per restaurant when scrapeReviews is enabled (0 = all reviews).

## `maxItems` (type: `integer`):

Maximum number of restaurants to scrape (0 = unlimited).

## `proxyConfiguration` (type: `object`):

Proxy settings. Residential proxies are strongly recommended — OpenTable uses Akamai Bot Manager and blocks most datacenter IPs.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.opentable.com/s?dateTime=2026-08-15T19%3A00%3A00&covers=2&latitude=51.052008&longitude=13.741322&areaId=geohash%3Au31f2twp&suggestedSearchName=Dresden&shouldUseLatLongSearch=true&showMap=true"
    }
  ],
  "searchQueries": [
    "Dresden"
  ],
  "time": "19:00",
  "partySize": 2,
  "scrapeListingDetails": false,
  "scrapeReviews": false,
  "maxReviews": 10,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

JSON array of scraped restaurants at {{links.apiDefaultDatasetUrl}}/items

## `runStats` (type: `string`):

Aggregate scrape stats (counts, timestamps)

## `run` (type: `string`):

Apify Console link to inspect this run

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.opentable.com/s?dateTime=2026-08-15T19%3A00%3A00&covers=2&latitude=51.052008&longitude=13.741322&areaId=geohash%3Au31f2twp&suggestedSearchName=Dresden&shouldUseLatLongSearch=true&showMap=true"
        }
    ],
    "searchQueries": [
        "Dresden"
    ],
    "time": "19:00",
    "scrapeListingDetails": false,
    "scrapeReviews": false,
    "maxReviews": 10,
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rigelbytes/opentable-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [{ "url": "https://www.opentable.com/s?dateTime=2026-08-15T19%3A00%3A00&covers=2&latitude=51.052008&longitude=13.741322&areaId=geohash%3Au31f2twp&suggestedSearchName=Dresden&shouldUseLatLongSearch=true&showMap=true" }],
    "searchQueries": ["Dresden"],
    "time": "19:00",
    "scrapeListingDetails": False,
    "scrapeReviews": False,
    "maxReviews": 10,
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("rigelbytes/opentable-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.opentable.com/s?dateTime=2026-08-15T19%3A00%3A00&covers=2&latitude=51.052008&longitude=13.741322&areaId=geohash%3Au31f2twp&suggestedSearchName=Dresden&shouldUseLatLongSearch=true&showMap=true"
    }
  ],
  "searchQueries": [
    "Dresden"
  ],
  "time": "19:00",
  "scrapeListingDetails": false,
  "scrapeReviews": false,
  "maxReviews": 10,
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call rigelbytes/opentable-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rigelbytes/opentable-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/xgcdqRwdjOVel3HSG/builds/SsANv8HBdZelAydmp/openapi.json
