TheFork Restaurant Reviews Scraper - Multi-Language
Pricing
from $2.29 / 1,000 reviews
TheFork Restaurant Reviews Scraper - Multi-Language
Extract all reviews from any TheFork restaurant across 7 languages. Get ratings, review text, meal dates, reviewer details, photos, and restaurant replies. Automatic deduplication. Export as JSON, CSV, or Excel.
Pricing
from $2.29 / 1,000 reviews
Rating
0.0
(0)
Developer

ClearPath
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
19 hours ago
Last modified
Categories
Share
TheFork Review Scraper | All Reviews, All Languages (2026)
| Restaurant Scrapers ➤ | TheFork Scraper | TheFork Reviews | Resy Scraper |
|---|
Why This Actor?
The main TheFork Scraper returns reviews in the restaurant's default language only. Many restaurants have reviews in French, English, German, Italian, Spanish, Dutch, and Portuguese, but a single-language query misses most of them.
This actor solves that: it queries each language separately, collects all reviews, and deduplicates by review ID. One restaurant URL in, every review out.
Quick Start
All languages — just a URL, reviews from every language merged and deduplicated:
{"restaurantUrl": "https://www.thefork.com/restaurant/el-lago-r2406"}
Single language — filter to one language:
{"restaurantUrl": "https://www.thefork.fr/restaurant/el-lago-r2406","reviewLanguage": "fr","maxReviews": 200}
Pricing
| Apify Plan | Price per 1,000 Reviews |
| Free | $2.99 |
| Starter | $2.79 |
| Scale | $2.49 |
| Business | $2.29 |
Free Users
New users get 5 free runs with up to 50 reviews per run to test the actor before subscribing.
Use Cases
|
Sentiment Analysis Collect all reviews across languages for NLP analysis. Detect trends in food quality, service, and ambience over time. |
Competitor Monitoring Track what guests say about competing restaurants. Compare ratings, complaint patterns, and response rates. |
|
Reputation Management Export all reviews including restaurant replies. Identify unanswered negative reviews and response gaps. |
Market Research Analyze review volume and ratings across languages to understand tourist vs. local dining patterns. |
Parameters
| Parameter | Type | Description |
restaurantUrl | string | TheFork restaurant URL. Any domain works (.com, .fr, .de, .it, .es). |
reviewLanguage | string | "All languages" iterates every language and merges. Or pick one: en, fr, de, it, es, nl, pt. Default: all |
maxReviews | integer | Max reviews to collect across all languages. 0 = no limit. Default: 0 |
Output
Each review is a flat dataset item with 20 fields:
Review data — rating (1-10 scale), review text, meal date, creation date, status, restaurant reply, photos, likes
Reviewer data — first name, last name, username, avatar URL, total review count
Output Example
{"restaurant_id": "61beac0c-ba99-45d2-b7e5-70e067c86be7","restaurant_name": "El Lago","review_id": "ac9a66c7-25b1-11f0-b007-0e8af7bd4d53","created_at": "2025-04-30T10:55:48.569Z","updated_at": "2025-04-30T10:55:48.569Z","rating_value": 10,"meal_date": "2025-04-29T18:00:00.000Z","status": "PUBLISHED","review_body": "Love this place & the serenity, excellent food & amazing champagne/wine list","restaurant_reply_body": null,"restaurant_reply_status": null,"reviewer_id": "0be0b618-0202-4c66-ab88-da0067ce7f61","reviewer_first_name": "Jose","reviewer_last_name": "T.","reviewer_username": "Jose T.","reviewer_avatar_url": null,"reviewer_review_count": 2,"photos": [{"title": null,"description": null,"image_url": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_800,c_limit/customer/61beac0c.../a39a94be.jpg","preview_url": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,g_auto:subject,w_488,h_488,c_fill/customer/61beac0c.../a39a94be.jpg","created_ts": "2025-04-30T10:57:34.768Z","likes": 0}],"likes": 0,"language": "en"}
API Integration
Python
from apify_client import ApifyClientclient = ApifyClient("your_token")run = client.actor("clearpath/thefork-restaurant-reviews").call(run_input={"restaurantUrl": "https://www.thefork.com/restaurant/el-lago-r2406","reviewLanguage": "all","maxReviews": 500,})for review in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{review['language']} | {review['rating_value']} | {review['review_body'][:80]}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'your_token' });const run = await client.actor('clearpath/thefork-restaurant-reviews').call({restaurantUrl: 'https://www.thefork.com/restaurant/el-lago-r2406',reviewLanguage: 'all',maxReviews: 500,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`${items.length} reviews collected`);
Supported Languages
|
EN English |
FR French |
DE German |
IT Italian |
ES Spanish |
NL Dutch |
PT Portuguese |
The actor auto-detects which languages have reviews for each restaurant. Set reviewLanguage to "all" to iterate all of them, or pick a specific code.
Data Export
|
JSON NLP pipelines, APIs |
CSV Spreadsheets, reporting |
Excel Dashboards, presentations |
FAQ
How is this different from the main TheFork Scraper?
The main scraper returns reviews in one language per restaurant (the domain's default). This actor iterates all 7 languages separately, collecting reviews that only appear in non-default language buckets. It also deduplicates automatically.
Are reviews deduplicated?
Yes. The same review can appear in multiple language buckets. The actor tracks review IDs and skips duplicates.
Do I need a TheFork account?
No. All data is publicly available.
How many reviews can I extract?
No limit. Set maxReviews to 0 for all reviews. Restaurants typically have between 50 and 5,000 reviews across all languages.
Can I use any TheFork domain?
Yes. URLs from thefork.com, thefork.fr, thefork.de, thefork.it, and thefork.es all work.
Support
|
Need help? Email max@mapa.slmail.me or open an issue in the Issues tab. |
Legal Compliance
Extracts publicly available review data from TheFork. Users must comply with applicable data protection regulations (GDPR, CCPA) and TheFork's terms of service.
Built by Clearpath