TheFork Scraper [$1.5/1k💰] | Restaurant Leads & Reviews
Pricing
from $1.40 / 1,000 restaurants
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
Maintained by CommunityActor 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
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array | No | London city page | TheFork 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). |
scrapeDetails | boolean | No | false | Also fetch each restaurant's detail data: description, chef name, phone, menus (sections + items + prices), review texts, TripAdvisor ratings, bookable slots, photo gallery. |
scrapeReviews | boolean | No | false | Also store each review as its own row in a separate reviews dataset (implies scrapeDetails). Each review is a pay-per-event charge. |
maxReviewsPerRestaurant | integer | No | 50 | Cap on reviews fetched per restaurant (1–500), applied whenever details are on. API returns 25 reviews/page, paginated automatically. |
maxItems | integer | No | 100 | Hard cap on restaurant rows for the whole run (max 5000). |
maxItemsPerSearch | integer | No | 200 | Cap 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).
Restaurant row (search)
{"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)
| Field | Description |
|---|---|
restaurantName, restaurantUrl | Parent restaurant identity |
rating | Review score (0–10) |
text | Review body |
mealDate | Date of the meal |
reviewerUsername, reviewerReviewCount | Reviewer profile data |
likes | Up-vote count |
restaurantReply | Owner reply text |
publicationStatus | e.g. PUBLISHED |
photos | Images 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.
Related Actors
- TheFork Scraper - Restaurants, Reviews & Menus — clearpath's TheFork scraper (100+ fields, cluster leading user count).
- TheFork Restaurant Intelligence Scrapper — enterprise-grade TheFork extraction across 11 EU countries.
- TheFork Restaurant Reviews Scraper - Multi-Language — dedicated multi-language TheFork review extraction.
- TheFork Restaurant Scraper - Reviews, Prices & Menus — paste-a-URL TheFork restaurant scraper.
- TheFork Scraper — European Restaurant Listings & Prices — city-based TheFork listing scraper.
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?
- clearpath/thefork-scraper — 100+ fields, more expensive ($0.0055/restaurant).
- jdtpnjtp/thefork-restaurant-scraper-advanced — 11-country enterprise TheFork data.
- memo23/thefork-restaurant-scraper — similar paste-a-URL approach.
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
scrapeDetailsis 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 adddescription,chefName,foodRequirements,paymentAccepted,openingHours,menus,reviews,tripadvisorRating,tripadvisorReviewCount. Separately:reviewsdataset rows (restaurantName,rating,text,mealDate,reviewerUsername,likes,publicationStatus...).
Behaviors an agent should know:
startUrlsaccept both city/search pages (paginated, 25/page) and single restaurant pages (one full row).scrapeReviewsimpliesscrapeDetails; each review row in the separate dataset is an extra pay-per-event charge.maxItemsis the hard cap for the whole run (max 5000);maxItemsPerSearchcaps 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.
Legal & Compliance Disclaimer
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