# Tablecheck Restaurants Search Scraper (`stealth_mode/tablecheck-restaurants-search-scraper`) Actor

Scrape TableCheck.com restaurant search results to collect venue names, cuisines, availability, budget info, geocoordinates, images, and 35+ structured fields. Perfect for food tech platforms, travel apps, and hospitality researchers.

- **URL**: https://apify.com/stealth\_mode/tablecheck-restaurants-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, Travel
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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 a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## TableCheck Restaurant Search Scraper: Extract Paris & Global Dining Data

---

### What Is TableCheck.com?

TableCheck is a restaurant reservation and table management platform operating across Asia, Europe, and beyond. Its search interface surfaces restaurants by location, date, party size, and sorting criteria — making it a rich source of structured dining data. Manually collecting this information is impractical at scale; the **TableCheck Restaurant Search Scraper** automates extraction from any TableCheck search results page.

---

### Overview

The **TableCheck Search Scraper** processes paginated restaurant search result URLs and returns clean, structured records per venue. It is suited for:

- **Travel & food platforms** aggregating dining options by city
- **Market researchers** analyzing restaurant density, cuisine diversity, and pricing
- **Hospitality analysts** benchmarking reservation availability and venue rankings
- **Developers** building recommendation engines or dining apps

---

### Input Format

The scraper accepts a simple JSON object with three parameters:

```json
{
  "ignore_url_failures": true,
  "max_items_per_url": 200,
  "urls": [
    "https://www.tablecheck.com/s?dateTime=2026-05-28T19%3A00%3A00&covers=2&latitude=48.86182320277778&longitude=2.336352640046296&searchedLocationName=Paris&shouldUseLatLongSearch=true&originCorrelationId=ec23bce4-acb8-4be7-9e1b-b02a4dbe3f15&corrid=3403c841-8265-4547-99f0-54fa84193d81&metroId=3408&queryUnderstandingType=none&showMap=true&sortBy=web_conversion"
  ]
}
````

| Field | Type | Description |
|---|---|---|
| `urls` | `array` | One or more TableCheck search result URLs. Each URL should represent a filtered search (location, date, party size, sort order). Paste URLs one by one or use Bulk edit. |
| `max_items_per_url` | `integer` | Maximum number of restaurant records to collect per URL. Default: `20`. Set higher (e.g., `200`) for comprehensive city-level extraction. |
| `ignore_url_failures` | `boolean` | If `true`, the run continues even if individual URLs fail. Recommended for bulk runs. Default: `true`. |

#### Building a Valid Search URL

Navigate to `tablecheck.com/s` and apply your filters — location, date/time, covers, sort order. Key URL parameters to understand:

| Parameter | Meaning |
|---|---|
| `dateTime` | Target reservation date/time (ISO 8601, URL-encoded) |
| `covers` | Party size |
| `latitude` / `longitude` | Coordinates for geo-based search |
| `searchedLocationName` | Human-readable location label (e.g., `Paris`) |
| `metroId` | TableCheck internal metro area identifier |
| `sortBy` | Sort order — e.g., `web_conversion`, `distance` |
| `showMap` | Whether map view is active (does not affect scraper output) |

***

### Output Format

**Sample output**

```json
{
  "result_idx": 0,
  "id": "1",
  "budget_avg": "10000.0",
  "budget_dinner_avg": "10000.0",
  "budget_lunch_avg": "10000.0",
  "geocode": {
    "lat": 35.6477509,
    "lon": 139.7414155
  },
  "images": [
    {
      "id": "691ad10a4c0fcb7ec51e9ef6",
      "original": "https://cdn3.tablecheck.com/images/691ad10a4c0fcb7ec51e9ef6/images/xl/9e9ee7b7.jpg?1763365131",
      "thumbnail": "https://cdn3.tablecheck.com/images/691ad10a4c0fcb7ec51e9ef6/images/xl/9e9ee7b7.jpg?1763365131"
    },
    {
      "id": "691ad117eabf0257ad4bb41c",
      "original": "https://cdn3.tablecheck.com/images/691ad117eabf0257ad4bb41c/images/xl/3ed142dc.jpg?1763365143",
      "thumbnail": "https://cdn3.tablecheck.com/images/691ad117eabf0257ad4bb41c/images/xl/3ed142dc.jpg?1763365143"
    },
    {
      "id": "691ad120e940872138c7959b",
      "original": "https://cdn3.tablecheck.com/images/691ad120e940872138c7959b/images/xl/cf83af12.jpg?1763365152",
      "thumbnail": "https://cdn3.tablecheck.com/images/691ad120e940872138c7959b/images/xl/cf83af12.jpg?1763365152"
    }
  ],
  "booking_page_mode": "v2",
  "external_booking_providers": [],
  "locale": "ja",
  "cuisines": [
    "sushi"
  ],
  "service_modes": [
    "dining"
  ],
  "service_mode": "dining",
  "tag_line_translations": [],
  "time_zone": "Asia/Tokyo",
  "rank_fusion_score": 0.0,
  "distance": 207.40765788132325,
  "vector_distance": null,
  "availability_created_min": "2026-05-27T16:32:45.657+09:00",
  "availability_created_max": "2026-05-29T18:31:59.984+09:00",
  "venue_name": "Sushi Mikata",
  "is_tc_shop": true,
  "is_smartpay": false,
  "phone": "+817083404141",
  "emb_str": "鮨 三か田, Sushi Mikata, スシ ミカタ\n\nふらっと気軽に楽しむ、こだわりの贅沢立ち食い寿司\n\n「鮨 三か田」は、高級感あふれる空間で立ち食いスタイルの寿司を気軽に楽しめるお店です。一貫から注文できるので、ふらっと立ち寄って本格寿司を堪能可能。さらに、日本酒も充実しており、寿司とのペアリングを楽しむことができます。熟練の職人が握る握りは、素材の旨味と香りが広がり、落ち着いた空間で特別なひとときをお過ごしいただけます。\n\nCuisines: sushi\n\n三田4-1-4, 城南ビルディング 1 階A, 港区, 東京都, JP",
  "content_body_translations": [
    {
      "locale": "ja",
      "translation": "「鮨 三か田」は、高級感あふれる空間で立ち食いスタイルの寿司を気軽に楽しめるお店です。一貫から注文できるので、ふらっと立ち寄って本格寿司を堪能可能。さらに、日本酒も充実しており、寿司とのペアリングを楽しむことができます。熟練の職人が握る握りは、素材の旨味と香りが広がり、落ち着いた空間で特別なひとときをお過ごしいただけます。"
    }
  ],
  "slug": "sushimikata",
  "location_name_translations": [],
  "tags": [],
  "availability_tc_points": {
    "2026-05-29": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-05-30": {
      "is_available": true,
      "tc_points_rate": null
    },
    "2026-05-31": {
      "is_available": true,
      "tc_points_rate": null
    },
    "2026-06-01": {
      "is_available": true,
      "tc_points_rate": null
    },
    "2026-06-02": {
      "is_available": true,
      "tc_points_rate": null
    },
    "2026-06-03": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-04": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-05": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-06": {
      "is_available": true,
      "tc_points_rate": null
    },
    "2026-06-07": {
      "is_available": true,
      "tc_points_rate": null
    },
    "2026-06-08": {
      "is_available": true,
      "tc_points_rate": null
    },
    "2026-06-09": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-10": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-11": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-12": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-13": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-14": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-15": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-16": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-17": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-18": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-19": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-20": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-21": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-22": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-23": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-24": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-25": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-26": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-27": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-28": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-29": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-06-30": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-01": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-02": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-03": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-04": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-05": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-06": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-07": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-08": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-09": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-10": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-11": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-12": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-13": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-14": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-15": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-16": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-17": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-18": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-19": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-20": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-21": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-22": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-23": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-24": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-25": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-26": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-27": {
      "is_available": false,
      "tc_points_rate": null
    },
    "2026-07-28": {
      "is_available": false,
      "tc_points_rate": null
    }
  },
  "currency": "JPY",
  "search_image": "https://cdn0.tablecheck.com/images/691ad10a4c0fcb7ec51e9ef6/images/lg/9e9ee7b7.jpg?1763365131",
  "geo_location": [
    35.6477509,
    139.7414155
  ],
  "availability": [
    "2026-05-30",
    "2026-05-31",
    "2026-06-01",
    "2026-06-02",
    "2026-06-06",
    "2026-06-07",
    "2026-06-08"
  ],
  "content_title_translations": [
    {
      "locale": "ja",
      "translation": "ふらっと気軽に楽しむ、こだわりの贅沢立ち食い寿司"
    }
  ],
  "name_translations": [
    {
      "locale": "ja",
      "translation": "鮨 三か田"
    },
    {
      "locale": "en",
      "translation": "Sushi Mikata"
    }
  ],
  "from_url": "https://www.tablecheck.com/en/japan/search?service_mode=dining&sort_by=relevance&venue_type=tc&geo_longitude=139.74541383382513&geo_latitude=35.65860374437126&search_text=tokyo"
}
```

Each restaurant record contains 35+ fields:

#### Identification

| Field | Meaning |
|---|---|
| `Result Idx` | Position of the venue in the search results list |
| `ID` | TableCheck internal venue identifier |
| `_ID` | Secondary unique identifier (database record ID) |
| `Slug` | URL-friendly venue identifier used in booking links |
| `Emb Str` | Embeddable string reference for the venue widget |

#### Venue Names & Content

| Field | Meaning |
|---|---|
| `Venue Name` | Primary display name of the restaurant |
| `Name Translations` | Venue name in multiple locales (e.g., EN, FR, JA) |
| `Tag Line Translations` | Short marketing tagline per locale |
| `Content Title Translations` | Section title of the venue's content block, per locale |
| `Content Body Translations` | Full venue description text, per locale |
| `Location Name Translations` | Neighborhood or district name, per locale |
| `Locale` | Default locale of the listing |

#### Location & Geography

| Field | Meaning |
|---|---|
| `Geocode` | Latitude/longitude coordinate object |
| `Geo Location` | GeoJSON-format location data |
| `Distance` | Distance from the search's reference point (in meters or km) |
| `Time Zone` | Venue's local time zone (e.g., `Europe/Paris`) |

#### Cuisine & Category

| Field | Meaning |
|---|---|
| `Cuisines` | List of cuisine types (e.g., French, Italian) |
| `Tags` | Additional classification tags applied to the venue |
| `Service Modes` | Array of available service modes |
| `Service Mode` | Primary service mode (e.g., dine-in, takeout) |

#### Pricing

| Field | Meaning |
|---|---|
| `Budget Avg` | Average spend per person across all meals |
| `Budget Dinner Avg` | Average dinner spend per person |
| `Budget Lunch Avg` | Average lunch spend per person |
| `Currency` | Currency code for budget fields (e.g., `EUR`, `JPY`) |

#### Availability

| Field | Meaning |
|---|---|
| `Availability` | Available reservation time slots for the searched date/covers |
| `Availability Created Min` | Earliest availability slot timestamp |
| `Availability Created Max` | Latest availability slot timestamp |
| `Availability TC Points` | TableCheck loyalty points applicable to bookings |

#### Booking & Payments

| Field | Meaning |
|---|---|
| `Booking Page Mode` | How bookings are handled (e.g., native TC, external redirect) |
| `External Booking Providers` | Third-party booking providers linked to the venue |
| `Is TC Shop` | Whether the venue uses TableCheck's in-app shop features |
| `Is Smartpay` | Whether TableCheck Smartpay (cashless payment) is enabled |
| `Phone` | Venue contact phone number |

#### Media

| Field | Meaning |
|---|---|
| `Images` | Array of venue image URLs |
| `Search Image` | Primary thumbnail image used in search results |

#### Ranking

| Field | Meaning |
|---|---|
| `Rank Fusion Score` | Combined ranking score used for search ordering |
| `Vector Distance` | Semantic/vector similarity score used in ranking |

***

### How to Use

1. **Generate your search URL** — Go to `tablecheck.com/s`, set your location, date, party size, and sort preference. Copy the full URL from the browser.
2. **Configure input** — Paste into `urls`. Adjust `max_items_per_url` (up to `200` is typical for a city search).
3. **Run the scraper** — Start the actor. Progress is visible in the run log.
4. **Export** — Download results as JSON, CSV, or Excel.

**Tips:**

- For city-wide coverage, try multiple searches with different `sortBy` values (`web_conversion`, `distance`) and merge results.
- If a URL returns 0 results, verify the `dateTime` parameter is a future date and `covers` is valid.
- `ignore_url_failures: true` is recommended when running multiple URLs simultaneously.

***

### Use Cases & Business Value

- **Dining aggregators:** Build up-to-date restaurant directories for any TableCheck-covered city
- **Travel apps:** Surface bookable restaurants by geo-proximity and cuisine for trip planners
- **Price intelligence:** Compare average lunch/dinner budgets across neighborhoods or cities
- **Availability analytics:** Track reservation slot patterns by day, time, or venue type
- **Localization research:** Use `Name Translations` and `Content Body Translations` to study multi-language venue positioning

***

### Conclusion

The **TableCheck Restaurant Search Scraper** delivers comprehensive, structured venue data directly from live search results — covering everything from geocoordinates and cuisine tags to real-time availability slots and pricing averages. Whether you're building a dining app or conducting hospitality market research, this scraper turns TableCheck's rich search index into an immediately usable dataset.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the restaurants list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.tablecheck.com/s?dateTime=2026-05-28T19%3A00%3A00&covers=2&latitude=48.86182320277778&longitude=2.336352640046296&searchedLocationName=Paris&shouldUseLatLongSearch=true&originCorrelationId=ec23bce4-acb8-4be7-9e1b-b02a4dbe3f15&corrid=3403c841-8265-4547-99f0-54fa84193d81&metroId=3408&queryUnderstandingType=none&showMap=true&sortBy=web_conversion"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://www.tablecheck.com/s?dateTime=2026-05-28T19%3A00%3A00&covers=2&latitude=48.86182320277778&longitude=2.336352640046296&searchedLocationName=Paris&shouldUseLatLongSearch=true&originCorrelationId=ec23bce4-acb8-4be7-9e1b-b02a4dbe3f15&corrid=3403c841-8265-4547-99f0-54fa84193d81&metroId=3408&queryUnderstandingType=none&showMap=true&sortBy=web_conversion"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/tablecheck-restaurants-search-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 = {
    "urls": ["https://www.tablecheck.com/s?dateTime=2026-05-28T19%3A00%3A00&covers=2&latitude=48.86182320277778&longitude=2.336352640046296&searchedLocationName=Paris&shouldUseLatLongSearch=true&originCorrelationId=ec23bce4-acb8-4be7-9e1b-b02a4dbe3f15&corrid=3403c841-8265-4547-99f0-54fa84193d81&metroId=3408&queryUnderstandingType=none&showMap=true&sortBy=web_conversion"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/tablecheck-restaurants-search-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.tablecheck.com/s?dateTime=2026-05-28T19%3A00%3A00&covers=2&latitude=48.86182320277778&longitude=2.336352640046296&searchedLocationName=Paris&shouldUseLatLongSearch=true&originCorrelationId=ec23bce4-acb8-4be7-9e1b-b02a4dbe3f15&corrid=3403c841-8265-4547-99f0-54fa84193d81&metroId=3408&queryUnderstandingType=none&showMap=true&sortBy=web_conversion"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/tablecheck-restaurants-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/tablecheck-restaurants-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Tablecheck Restaurants Search Scraper",
        "description": "Scrape TableCheck.com restaurant search results to collect venue names, cuisines, availability, budget info, geocoordinates, images, and 35+ structured fields. Perfect for food tech platforms, travel apps, and hospitality researchers.",
        "version": "0.0",
        "x-build-id": "LckQgNajXVNefOVPM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/stealth_mode~tablecheck-restaurants-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-stealth_mode-tablecheck-restaurants-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/stealth_mode~tablecheck-restaurants-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-stealth_mode-tablecheck-restaurants-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/stealth_mode~tablecheck-restaurants-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-stealth_mode-tablecheck-restaurants-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the restaurants list urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the restaurants list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "ignore_url_failures": {
                        "title": "Continue running even if some URLs fail to be scraped",
                        "type": "boolean",
                        "description": "If true, the scraper will continue running even if some URLs fail to be scraped."
                    },
                    "max_items_per_url": {
                        "title": "Max items per URL",
                        "type": "integer",
                        "description": "The maximum number of items to scrape per URL."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
