TheFork Scraper [$1.5/1k💰] | Restaurant Leads & Reviews avatar

TheFork Scraper [$1.5/1k💰] | Restaurant Leads & Reviews

Pricing

from $1.40 / 1,000 restaurants

Go to Apify Store
TheFork Scraper [$1.5/1k💰] | Restaurant Leads & Reviews

TheFork Scraper [$1.5/1k💰] | Restaurant Leads & Reviews

Scrape restaurants, reviews, menus and prices from TheFork.com (TripAdvisor's European reservation platform): name, cuisine, price, rating, review text, geolocation and bookability for restaurant lead generation and hospitality market research.

Pricing

from $1.40 / 1,000 restaurants

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 hours ago

Last modified

Categories

Share

TheFork Restaurant Scraper

Scrape restaurants, reviews, menus & prices from TheFork.com — TripAdvisor's European restaurant-reservation platform — for restaurant lead generation and hospitality market research across France, Italy, Spain, UK, Germany and more. Paste a city page or a restaurant page; get structured JSON/CSV/Excel rows. No login required.

Main Use Cases

  • Restaurant lead generation — build clean lists of restaurants per European city with address, geo-coordinates, cuisine, price level and bookability.
  • Hospitality market research — track TheFork ratings (0–10), review counts and price positioning across cities and countries (EU-heavy: France, Italy, Spain, UK, Germany...).
  • Restaurant review monitoring — capture review texts, reviewer names, ratings and meal dates for reputation monitoring and sentiment analysis.
  • Menu & price benchmarking — scrape menus with sections and items, average prices and price-range levels for competitive restaurant analysis.
  • Export for SaaS & dashboards — pipe reviews into a review-monitoring product or a hospitality dataset via the Apify API.

How It Works

TheFork's HTML site sits behind DataDome anti-bot — but its mobile apps talk to an open GraphQL API (api.thefork.com/graphql) that returns fully structured restaurant data. This actor speaks that API directly: city/search pages are resolved through searchRestaurant (25 restaurants per page, server-side pagination), and restaurant details (description, chef, phone, menus, TripAdvisor ratings, photo gallery, bookable time slots) plus full review texts come from the same proxy-free API. No browser, no HTML parsing, no proxy needed — fast and cheap.

Build European Restaurant Lead Lists Without an Official TheFork API

TheFork has no public API for restaurant listings. This actor returns the full structured dataset instead: name, address (street/locality/zip/country), geolocation, cuisine, price range, average price, TheFork rating & review count, tags, photos, bookability — every field a hospitality lead-gen or analytics pipeline needs, from a single city URL.

Track Restaurant Reviews & Ratings Across Cities

Detail rows include the full review list (reviews: text, rating, reviewer, meal date) and TripAdvisor scores — and with scrapeReviews on, each review is also written as its own row to a separate reviews dataset for bulk sentiment analysis. Schedule weekly runs to monitor rating changes and new reviews for the restaurants that matter to you.

Input

FieldTypeRequiredDefaultNotes
startUrlsarrayNoLondon city pageTheFork city/search pages (e.g. https://www.thefork.com/restaurants/london-c665790) and/or restaurant pages (e.g. https://www.thefork.com/restaurant/the-lanesborough-grill-r597933). Cuisine/area/tag pages under /restaurants/... also work. City pages paginate automatically (25/page).
scrapeDetailsbooleanNofalseAlso fetch each restaurant's detail data: description, chef name, phone, menus (sections + items + prices), review texts, TripAdvisor ratings, bookable slots, photo gallery.
scrapeReviewsbooleanNofalseAlso store each review as its own row in a separate reviews dataset (implies scrapeDetails). Each review is a pay-per-event charge.
maxReviewsPerRestaurantintegerNo50Cap on reviews fetched per restaurant (1–500), applied whenever details are on. API returns 25 reviews/page, paginated automatically.
maxItemsintegerNo100Hard cap on restaurant rows for the whole run (max 5000).
maxItemsPerSearchintegerNo200Cap per city/search URL.

Example Input

{
"startUrls": [{ "url": "https://www.thefork.com/restaurants/london-c665790" }],
"scrapeDetails": true,
"scrapeReviews": true,
"maxReviewsPerRestaurant": 50,
"maxItems": 100
}

Output

Two datasets: restaurants (default) and reviews (separate, when scrapeReviews is on).

{
"name": "Hans' Bar and Grill",
"url": "https://www.thefork.com/restaurant/hans-bar-and-grill-r815695",
"cuisine": "British",
"priceRange": "€€",
"priceRangeLevel": 2,
"avgPrice": 30,
"currency": "GBP",
"rating": 9.4,
"reviewCount": 591,
"address": { "street": "11 Cadogan Gardens", "locality": "London", "zipCode": "SW3 2RJ", "country": "United Kingdom" },
"geolocation": { "latitude": 51.49357, "longitude": -0.15922 },
"isBookable": true,
"tags": ["American Express", "Visa", "British", "Chelsea"],
"photos": ["https://cdn.thefork.com/tf-lab/image/upload/restaurant/..."],
"source": "search",
"sourceUrl": "https://www.thefork.com/restaurants/london-c665790",
"scrapedAt": "2026-09-21T09:28:00.000Z"
}

Detail rows (source: "detail") additionally include description, chefName, foodRequirements, paymentAccepted, openingHours, menus (sections + items + prices), reviews (text, rating, reviewer, date) and the full photo gallery.

Dataset schema (default dataset — overview view)

name, cuisine, priceRange, avgPrice, rating, reviewCount, address, geolocation, url, source

Review row (reviews dataset)

FieldDescription
restaurantName, restaurantUrlParent restaurant identity
ratingReview score (0–10)
textReview body
mealDateDate of the meal
reviewerUsername, reviewerReviewCountReviewer profile data
likesUp-vote count
restaurantReplyOwner reply text
publicationStatuse.g. PUBLISHED
photosImages attached to the review
{
"restaurantId": "6c1651d7-0442-4117-98a0-529d1ca06220",
"restaurantName": "Hans' Bar and Grill",
"reviewId": "fad91300-6a64-40d2-830b-06890675a086",
"rating": 9,
"mealDate": "2026-09-17T18:45:00.000Z",
"text": "Nice experience in a very luxurious restaurant's hotel.",
"publicationStatus": "PUBLISHED",
"reviewerUsername": "Davide T."
}

Download either dataset as JSON, HTML, CSV or Excel.

Scrape Restaurant Menus & Prices for Competitive Benchmarking

Detail rows carry menus (sections → items) and the budget signal from avgPrice + priceRange (€…€€€€). Compare price positioning and menu structure across an entire city or cuisine segment — the dataset a hospitality consultancy would pay for.

Integrations & Automation

  • Apify API — feed restaurant/review rows into your CRM, SaaS or dashboard.
  • Webhooks — get notified when a monitored scraped run finishes.
  • Scheduling — weekly rating/review monitoring, monthly market snapshots.
  • Export — JSON, CSV, HTML, Excel.

Recommended schedule: weekly for review/rating monitoring; monthly for full market research sweeps.

FAQ

Why use this actor instead of the official TheFork API?

There is no public TheFork API. This actor calls the open mobile GraphQL endpoint (api.thefork.com/graphql) that powers the TheFork mobile apps — so you get fully structured restaurant and review data (name, cuisine, rating, menu, geo, photos) without a browser, HTML parsing, or API credentials.

What are alternatives to this actor / restaurant data for Europe?

How can I get all restaurants in a city?

Paste the city page URL (e.g. https://www.thefork.com/restaurants/paris-c415144) into startUrls and set maxItems up to 5000. The actor paginates automatically (25/page) through the whole result set.

What is the best way to monitor restaurant reviews over time?

Run weekly with scrapeReviews: true and maxReviewsPerRestaurant capped (e.g. 25). Review rows land in the separate reviews dataset with meal dates, so you can diff for new reviews and rating changes.

Does this actor need a proxy?

No. Both the search and detail paths run proxy-free against TheFork's mobile GraphQL API (which even bypasses the DataDome challenge — no browser, no HTML).

For AI Agents & LLM Apps

  • Purpose: returns one structured restaurant record per TheFork city/search/restaurant page (name, address, geolocation, cuisine, price range, average price, rating, review count, bookability — plus menus, review texts and TripAdvisor scores when scrapeDetails is on).
  • Minimal input:
{ "startUrls": [{ "url": "https://www.thefork.com/restaurants/london-c665790" }], "maxItems": 50 }
  • Variant — full details + reviews:
{
"startUrls": [{ "url": "https://www.thefork.com/restaurants/paris-c415144" }],
"scrapeDetails": true,
"scrapeReviews": true,
"maxReviewsPerRestaurant": 25,
"maxItems": 100
}
  • Output field list (default dataset): name, url, cuisine, priceRange, priceRangeLevel, avgPrice, currency, rating, reviewCount, address, geolocation, isBookable, tags, highlightedTags, photos, source, sourceUrl, scrapedAt. Detail rows add description, chefName, foodRequirements, paymentAccepted, openingHours, menus, reviews, tripadvisorRating, tripadvisorReviewCount. Separately: reviews dataset rows (restaurantName, rating, text, mealDate, reviewerUsername, likes, publicationStatus...).

Behaviors an agent should know:

  • startUrls accept both city/search pages (paginated, 25/page) and single restaurant pages (one full row).
  • scrapeReviews implies scrapeDetails; each review row in the separate dataset is an extra pay-per-event charge.
  • maxItems is the hard cap for the whole run (max 5000); maxItemsPerSearch caps per city URL.
  • No proxy input exists — the actor is inherently proxy-free (mobile GraphQL API); do not pass proxy config.
  • Menu item row includes per-item names, but a single per-preset price is what the API exposes (per-item prices are not available).
  • Billing: pay-per-event — restaurant $0.0015/row, additional data $0.001 (contact + extra details), review $0.0015/row.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by TheFork, TripAdvisor, or La Fourchette SAS. It reads only publicly available restaurant and review data from TheFork's public pages and open mobile API — no login bypass. Users are responsible for complying with TheFork's Terms of Service and applicable data-protection law (e.g. GDPR for EU restaurant and reviewer data). Contact details returned (phone where published) should not be used for unsolicited commercial outreach in violation of applicable anti-spam rules.

SEO Keywords

thefork scraper, restaurant data europe, restaurant scraping, thefork api alternative, restaurant lead generation, hospitality market research, restaurant reviews data, thefork reviews, restaurant price data, restaurant menu scraping, tripadvisor thefork data, restaurant database, restaurant ratings data, thefork restaurants paris, thefork restaurants london, restaurant market intelligence, restaurant sentiment analysis, european restaurant data, restaurant geolocation data, restaurant booking data