TheFork Restaurant Intelligence Scrapper
Pricing
Pay per event
TheFork Restaurant Intelligence Scrapper
Comprehensive restaurant intelligence from TheFork platform. Get detailed venue data, pricing, reviews, ratings, and availability across 11 European countries. Enterprise-grade reliability with 99.9 % success rate.
Pricing
Pay per event
Rating
3.3
(2)
Developer

Data Collector
Actor stats
1
Bookmarked
44
Total users
9
Monthly active users
1 days
Issues response
4 hours ago
Last modified
Categories
Share
TheFork Restaurant Intelligence Scraper
The most comprehensive TheFork data extraction tool on Apify. Get complete restaurant profiles, full menus with prices, and detailed customer reviews from Europe's #1 restaurant booking platform.
Why This Scraper?
| Feature | This Scraper | Others |
|---|---|---|
| Proxy costs | $0 - included | $5-50/month |
| Data completeness | 100% - all fields | 30-60% |
| Menu extraction | Full menus with prices | Not available |
| Photo extraction | Food + Customer photos | Not available |
| Success rate | 99%+ | 70-90% |
Pay only for results, not infrastructure. No proxy setup, no maintenance, no hidden fees.
Performance Benchmark
| Data Type | Speed | Notes |
|---|---|---|
| Restaurants | 1,500/min | From city pages |
| Reviews | 3,000/min | From restaurant pages |
| Menus | 3,000/min | With restaurant extraction |
Benchmarks measured with optimal proxy pool. Actual speeds may vary based on TheFork server load.
What You Get
From City Pages (/restaurants/paris-c415144)
Extract complete restaurant profiles including:
- Basic info (name, address, coordinates, contact)
- Ratings & review counts
- Full pricing data (average price, price level)
- Complete tag system (cuisine, atmosphere, dietary, payment methods)
- Current promotions & discounts
- Booking availability & timeslots
- Full menus with all dishes and prices (optional)
- Photos - professional food shots & customer uploads (optional)
- FAQ data
- Michelin stars, Gault & Millau ratings
From Restaurant Pages (/restaurant/name-r123456)
Extract detailed customer reviews including:
- Rating value (0-10 scale)
- Full review text
- Meal date & time
- Reviewer profile (name, avatar, total reviews)
- Restaurant replies
- Likes count
- Filter by language, occasion, date range
Setup
This Actor requires an API key to access the ForkData backend.
- Get your API key from fork-data.io
- In the Apify Console, go to your Actor Settings → Environment Variables
- Add:
FORKDATA_API_KEY=your_api_key_here
Without a valid API key, the Actor will fail to start.
Quick Start
Extract 100 Restaurants from Paris
{"urls": ["https://www.thefork.com/restaurants/paris-c415144"],"maxRestaurants": 100}
Cost: ~$1.01
Extract Reviews from a Restaurant
{"urls": ["https://www.thefork.com/restaurant/le-jules-verne-r58649"],"maxReviews": 200,"reviewsTimeframe": "1m"}
Cost: ~$0.21
Full Data Package (Restaurants + Menus + Reviews)
{"urls": ["https://www.thefork.com/restaurants/lisbon-c522301"],"maxRestaurants": 50,"includeMenu": true,"includeReviewsForRestaurants": true,"maxReviewsPerRestaurant": 20}
Cost: ~$1.66
Input Parameters
URLs (Required)
| Parameter | Type | Description |
|---|---|---|
urls | array | TheFork URLs to scrape (1-10). Mix city and restaurant URLs freely. The scraper auto-detects URL type. |
Example URLs:
- City:
https://www.thefork.com/restaurants/paris-c415144 - Restaurant:
https://www.thefork.com/restaurant/le-jules-verne-r58649
Restaurant Extraction Settings
Applied when scraping city pages
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
maxRestaurants | integer | 100 | 1-1000 | Restaurants per city URL |
includeMenu | boolean | false | - | Extract full menu data |
includeReviewsForRestaurants | boolean | false | - | Fetch reviews for each restaurant |
maxReviewsPerRestaurant | integer | 50 | 1-500 | Reviews limit per restaurant |
reviewsTimeframe | select | 7d | - | Time filter for reviews (also applies to restaurant reviews) |
Photo Extraction (Cost Warning)
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
includeFoodPhotos | boolean | false | - | Professional food photos. Adds cost! |
maxFoodPhotos | integer | 30 | 1-100 | Limit food photos per restaurant |
includeCustomerPhotos | boolean | false | - | Customer-uploaded photos. Adds cost! |
maxCustomerPhotos | integer | 30 | 1-100 | Limit customer photos per restaurant |
Cost tip: Photos are billed per batch of 10. Set maxFoodPhotos: 10 to minimize costs while still getting samples.
Review Extraction Settings
Applied when scraping restaurant pages
| Parameter | Type | Default | Description |
|---|---|---|---|
maxReviews | integer | 100 | Max reviews per restaurant (1-5000) |
reviewsTimeframe | select | 7d | Time filter for reviews |
Timeframe options:
1d- Last 24 hours7d- Last week1m- Last month6m- Last 6 months1y- Last yearall- All time
Review Filters
Fine-tune which reviews to extract
| Parameter | Type | Default | Options |
|---|---|---|---|
reviewsWithText | select | WITH_REVIEW | ALL (all ratings), WITH_REVIEW (text only) |
reviewsOrderBy | select | MEAL_DATE | MEAL_DATE (newest), RATING (highest) |
reviewsSortDirection | select | DESC | DESC, ASC |
reviewsLanguage | text | all | all or language code (en, fr, de, es, it, pt, nl) |
reviewsOccasion | select | - | BUSINESS, FRIENDS, ROMANTIC, FAMILY, ALONE |
Pricing (Pay Per Event)
You only pay for extracted data. No proxy fees. No platform fees.
Extraction Events
| Event | Price | When Charged |
|---|---|---|
| Actor Start | $0.005 | Once per run |
| Restaurant | $0.01 | Per restaurant extracted |
| Menu | $0.003 | Per restaurant with menu data |
| Photos (batch) | $0.001 | Per 10 photos (food or customer) |
| Review | $0.001 | Per review extracted |
Webhook Monitoring (Coming Soon)
| Plan | Price | Included |
|---|---|---|
| Base | $20/month | Up to 3 monitored URLs |
| Additional URL | $5/month | Per extra URL beyond 3 |
Example: Monitoring 5 URLs = $20 + (2 × $5) = $30/month
Cost Examples
| Scenario | Breakdown | Total |
|---|---|---|
| 100 restaurants (basic) | $0.005 + 100 × $0.01 | $1.01 |
| 100 restaurants + menus | $0.005 + 100 × $0.01 + 100 × $0.003 | $1.31 |
| 100 restaurants + menus + 30 photos each | $1.31 + 100 × 3 × $0.001 | $1.61 |
| 500 reviews | $0.005 + 500 × $0.001 | $0.51 |
| 50 restaurants + 20 reviews each | $0.005 + 50 × $0.01 + 50 × $0.003 + 1000 × $0.001 | $1.66 |
Cost Control Tips
- Start small - Test with
maxRestaurants: 10first - Skip photos initially - Add them only if needed
- Use timeframe filters -
reviewsTimeframe: "1m"reduces review volume - Set photo limits -
maxFoodPhotos: 10gives samples without high costs
Output Data
Restaurant Object (Complete)
{"_type": "restaurant","id": "26201","uuid": "e3a4ef96-0b29-46b5-8ac6-66788a4c4435","name": "Restaurant Auguste - Gael Orieux","url": "https://www.thefork.com/restaurant/restaurant-auguste-gael-orieux-r26201","address": {"street": "54, rue de Bourgogne","zip_code": "75007","locality": "Paris","country": "France"},"geolocation": {"latitude": 48.85616,"longitude": 2.31712},"rating": {"score": 9.5,"review_count": 3626},"cuisine": "French","price_level": 4,"avg_price": {"value": 10000,"currency": "EUR","formatted": "100.00 EUR"},"is_bookable": true,"tags": {"payment": ["Credit Card", "Mastercard", "Visa", "TheFork Pay"],"features": ["Lobster", "Seafood platter", "Wifi", "Air-conditioning", "Sommelier"],"cuisine": ["French", "European"],"atmosphere": ["Cosy", "Fine Dining", "Romantic", "Good for a business lunch"],"dietary": ["Gluten free", "Peanut allergy"],"other": ["1 star MICHELIN", "INSIDER", "Gault & Millau 2020", "Top Chefs"]},"main_photo": {"url": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/..."},"photos_count": 45,"has_offer": true,"promo": {"id": "12f8dc16-4c43-4595-81aa-02df6f550566","discount_percentage": 30,"label": "-30% on the menu"},"can_burn_yums": true,"timeslots": [{"time": 1140, "has_availability": true, "can_burn_yums": false},{"time": 1200, "has_availability": true, "can_burn_yums": true}],"menu": {"a_la_carte": {"id": "306c6a62-74f6-444d-9f3f-6e5ac6a780ca","updated_at": "2026-01-12T09:46:17.848Z","sections": [{"name": "Starter","items": [{"id": "ada40e83-195f-4526-967a-b757d39fb801","name": "Escargots et chantilly des sous-bois","description": "Soupe d'oignons roses de Roscoff","price": {"value": 3900, "currency": "EUR", "formatted": "39.00 EUR"},"is_main_dish": false}]},{"name": "Main course","items": [{"name": "Homard bleu roti, aigre douce de carotte","description": "Pulpe fruitee","price": {"formatted": "79.00 EUR"},"is_main_dish": true}]}]},"preset_menus": [{"id": "22d930e4-fec0-4501-ad25-8cf83c9cb750","name": "Menu Instant Michelin","price": {"value": 9600, "formatted": "96.00 EUR"},"description": "Appetizer + Fish + Meat + Dessert","is_bookable": true,"valid_date_start": "2023-01-05","valid_date_end": "2030-12-31"}]},"photos": {"header_photo": "https://cdn.thefork.com/...","food_photos": [{"url": "https://cdn.thefork.com/...", "title": "Signature dish"}],"customer_photos": [{"url": "https://cdn.thefork.com/...", "title": "Customer photo"}]},"faq": [{"question": "Does Restaurant Auguste have special offers?","answer": "Yes, Restaurant Auguste is offering 30% off the menu!"},{"question": "Does Restaurant Auguste have vegetarian options?","answer": "Yes, vegetarian options are available on the menu."}],"scraped_at": "2026-01-19T20:55:13.912457","_source_url": "https://www.thefork.com/restaurants/paris-c415144"}
Review Object (Complete)
{"_type": "review","id": "205eb51c-ebdd-4d37-92be-fa171c41ee56","restaurant_id": "1567","restaurant_name": "Antigua","rating_value": 10,"meal_date": "2026-01-16T17:30:00.000Z","review_body": "Excellent experience! The seafood paella was perfectly seasoned, generous portions, and the service was impeccable. Will definitely return.","likes": 5,"reviewer": {"id": "3120af53-78ec-44a1-b1a7-a3c4629b720c","first_name": "Marie","last_name": "D.","name": "Marie D.","avatar_url": "https://lh3.googleusercontent.com/a/ACg8ocI...","review_count": 28},"scraped_at": "2026-01-19T20:56:36.268699","_source_url": "https://www.thefork.com/restaurant/antigua-r1567"}
Field Reference
Restaurant Fields
| Field | Type | Description |
|---|---|---|
id | string | TheFork restaurant ID |
uuid | string | Unique identifier |
name | string | Restaurant name |
url | string | TheFork page URL |
address | object | Street, zip_code, locality, country |
geolocation | object | Latitude, longitude |
rating | object | Score (0-10), review_count |
cuisine | string | Primary cuisine type |
price_level | integer | 1-4 ($ to $$$$) |
avg_price | object | Value (cents), currency, formatted |
is_bookable | boolean | Currently accepting bookings |
tags | object | payment, features, cuisine, atmosphere, dietary, other |
main_photo | object | Primary image URL |
photos_count | integer | Total photos available |
has_offer | boolean | Active promotion |
promo | object | Discount details if active |
timeslots | array | Available booking times |
menu | object | Full menu data (if enabled) |
photos | object | header_photo, food_photos, customer_photos (if enabled) |
faq | array | Restaurant FAQ |
scraped_at | string | Extraction timestamp |
Review Fields
| Field | Type | Description |
|---|---|---|
id | string | Review unique ID |
restaurant_id | string | Parent restaurant ID |
restaurant_name | string | Restaurant name |
rating_value | integer | Rating 0-10 |
meal_date | string | When the meal occurred |
review_body | string | Review text content |
likes | integer | Community likes |
reviewer | object | Reviewer profile details |
scraped_at | string | Extraction timestamp |
Use Cases
Market Research & Competitive Analysis
- Map restaurant landscape in target cities
- Track competitor pricing and menu changes
- Identify market gaps and opportunities
Business Intelligence
- Monitor customer sentiment trends
- Analyze review patterns by time/occasion
- Track promotional activity
Investment & Due Diligence
- Evaluate restaurant performance metrics
- Identify high-growth establishments
- Assess market saturation
Menu & Pricing Analytics
- Compare pricing across cuisines/locations
- Track menu item popularity
- Analyze price-to-rating correlations
Webhooks
Apify Platform Webhooks (Free)
Receive results automatically via Apify webhooks:
- Go to Integrations in your Apify account
- Create webhook for
ACTOR.RUN.SUCCEEDED - Enter your endpoint URL
- Receive complete dataset on every run
This is a standard Apify feature - no additional cost.
Built-in Real-Time Monitoring (Coming Soon)
Automated monitoring webhooks for continuous tracking:
Features:
- Restaurant change detection (rating, pricing, menu updates)
- New review alerts as they're posted
- Promotion & discount notifications
- Configurable check intervals (hourly to monthly)
Pricing:
| Plan | Monthly Cost | What's Included |
|---|---|---|
| Base Subscription | $20 | Monitor up to 3 URLs |
| Additional URLs | +$5 each | Per URL beyond the first 3 |
Examples:
- Monitor 1 restaurant: $20/month
- Monitor 3 restaurants: $20/month
- Monitor 5 restaurants: $20 + (2 × $5) = $30/month
- Monitor 10 restaurants: $20 + (7 × $5) = $55/month
How it works:
- Enable webhook monitoring in input
- Specify URLs to monitor and your webhook endpoint
- Receive automatic notifications when data changes
- Billed monthly via PPE events
This feature is under development. Configure webhookUrl to be notified when it launches.
Coverage
TheFork operates in 12 European countries with 55,000+ restaurants:
France, Italy, Spain, Belgium, Netherlands, Switzerland, Portugal, Austria, Sweden, Denmark, Czech Republic, United Kingdom
FAQ
Do I need proxies? No. Our infrastructure handles everything. You pay only for results.
What's the maximum URLs per run? 10 URLs. For larger volumes, schedule multiple runs.
How fresh is the data? Real-time extraction directly from TheFork.
Can I mix city and restaurant URLs? Yes. The scraper auto-detects and processes both types.
How do I control costs?
- Use lower limits (
maxRestaurants,maxReviews) - Disable photos unless needed
- Use
reviewsTimeframeto limit review volume
Support
Issues or questions? Create a ticket in the Apify console.
Legal Disclaimer
This scraper is an independent product and is not affiliated with, endorsed by, sponsored by, or in any way officially connected with TheFork SAS, TripAdvisor LLC, or any of their subsidiaries or affiliates.
The name "TheFork" and related trademarks are the property of their respective owners. This tool is provided for legitimate data collection purposes such as market research, competitive analysis, and business intelligence.
Users are solely responsible for:
- Ensuring their use complies with applicable laws and regulations
- Respecting TheFork's Terms of Service and robots.txt
- Using extracted data ethically and legally
- Any consequences arising from the use of this tool
The developer assumes no liability for misuse of this software or any damages resulting from its use.
License: Apache 2.0