TheFork Scraper - Restaurants, Reviews & Menus avatar

TheFork Scraper - Restaurants, Reviews & Menus

Pricing

from $3.99 / 1,000 restaurants

Go to Apify Store
TheFork Scraper - Restaurants, Reviews & Menus

TheFork Scraper - Restaurants, Reviews & Menus

Extract restaurant data, reviews, menus with prices, and photos from TheFork. Get ratings, Michelin stars, TripAdvisor scores, contact details, booking availability, and 100+ fields. Supports 5 languages. Export as JSON, CSV, Excel.

Pricing

from $3.99 / 1,000 restaurants

Rating

5.0

(1)

Developer

ClearPath

ClearPath

Maintained by Community

Actor stats

2

Bookmarked

165

Total users

17

Monthly active users

9 hours ago

Last modified

Share

TheFork Scraper | Restaurant Data, Reviews, Menus & Photos (2026)

Restaurant and review tools
TheFork Places  TheFork Places
➤ You are here
TheFork Reviews  TheFork Reviews
Restaurant reviews by language
Place Aggregator  Place Aggregator
5 platforms, one export
Resy  Resy
Restaurants and availability

For Google Maps, Yelp and Tripadvisor feedback about the restaurant, use Place Review Aggregator. Collect TheFork reviews here as a separate dataset.  

Demo

Extract complete restaurant data from TheFork across France, Germany, Italy, Spain, and the UK. Phone numbers, emails, addresses, full menus with dish prices, all reviews, photos, Michelin stars, TripAdvisor ratings, and booking availability. 100+ fields per restaurant.

thefork-restaurant-scraper-demo.png

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

clearpath/thefork-scraper on Apify. Call: ApifyClient("TOKEN").actor("clearpath/thefork-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: startUrls (array), searchLocation (string), maxRestaurants (integer). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~thefork-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: PPE $5.99/1k restaurants, $3.99/1k reviews (beyond 100 included per restaurant). Get token: https://console.apify.com/account/integrations

Quick Start

Basic — Scrape restaurants in a city

{
"searchLocation": "Paris"
}

URL input — Scrape specific pages

{
"startUrls": [
"https://www.thefork.com/restaurant/l-imperatif-r660609",
"https://www.thefork.com/restaurants/paris-c415144"
]
}

Advanced — Filtered search with limits

{
"searchLocation": "Barcelona",
"language": "es",
"cuisineTagIds": ["436", "452"],
"minRating": 8,
"maxPrice": 40,
"promotionsOnly": true,
"sort": "avgRate",
"maxRestaurants": 200,
"maxReviews": 500,
"maxPhotos": 50
}

Input Parameters

ParameterTypeDescriptionDefault
startUrlsarrayTheFork URLs to scrape. Supports restaurant, city, and search pages.
searchLocationstringCity, neighborhood, or address to search. Typos and non-English names work.
searchRadiusKmintegerRadius (km) around searchLocation. Only applies when the location is a small town/village without a TheFork city profile (large cities use their own polygon).10
languagestringOutput language and TheFork domain. Options: en, fr, de, it, es.en
reviewLanguagestringFilter reviews by language. all returns default domain language. Options: all, en, fr, de, it, es, nl, pt.all
sortstringSort order for location searches. Options: popularity, avgRate, quality, promotion, newRestaurant, price, lastMonthAvg, lastMonthReservation.popularity
bestRatedbooleanOnly return top-rated restaurants.false
promotionsOnlybooleanOnly return restaurants with active promotions.false
minPriceintegerMinimum average price per person (EUR).
maxPriceintegerMaximum average price per person (EUR).
minRatingnumberMinimum TheFork rating (1-10).
maxRatingnumberMaximum TheFork rating (1-10).
cuisineTagIdsarrayFilter by cuisine type. 32 options including French, Italian, Japanese, Vegan, Seafood, etc.all
maxRestaurantsintegerMax restaurants to scrape. Set 0 for unlimited.100
maxReviewsintegerReviews per restaurant, newest first. Set 0 to skip reviews entirely. For unlimited reviews from a single restaurant, use TheFork Reviews.100
maxPhotosintegerCustomer photos per restaurant. Official photos always included. Set 0 to skip customer photos.20

Output

Each restaurant is one dataset item with 104 fields:

Identity (6 fields) — TheFork ID, legacy ID, slug, canonical URL, and name.

Cuisine and highlights (9 fields) — Cuisine type, description, chef, tags, dietary options, and the feature list shown on the listing.

Contact and location (14 fields) — Phone, email, website, full postal address, coordinates, parking, and transport directions.

Ratings (11 fields) — TheFork and TripAdvisor scores with review counts, the food, service and ambience breakdown, and the split of reviews by language.

Reviews (17 fields) — The full review list, plus the highlighted and best-rated reviews with their authors.

Awards and guides (14 fields) — Michelin stars, distinctions and review text, TheFork awards, Insider status, and top-chart position.

Prices and menus (14 fields) — Average price and currency, every menu with its dishes and prices, accepted payment methods, and the loyalty scheme.

Booking and availability (8 fields) — Bookability, live availability, upcoming booking slots, current offers, and vacation status.

Photos (8 fields) — Header, restaurant and customer photo lists with their counts.

Legal (3 fields) — Company register details and privacy URL, where the restaurant publishes them.

Output Example

{
"id": "d878352e-a8c6-4483-9e99-f74a59b68078",
"legacy_id": 35146,
"slug": "l-atelier-de-joel-robuchon-etoile-champs-elysees",
"url": "https://www.thefork.com/restaurant/l-atelier-de-joel-robuchon-etoile-champs-elysees-r35146",
"name": "L'Atelier de Joël Robuchon Etoile - Champs Elysées",
"cuisine": "French",
"description": null,
"chef_name": "Éric Bouchenoire ",
"phone": "+33147237575",
"is_bookable": true,
"is_test": false,
"is_new": false,
"has_stock": true,
"vacation": null,
"has_available_offers": false,
"main_photo_url": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_664,h_374,c_fill/restaurant/d878352e-a8c6-4483-9e99-f74a59b68078/6e4e9b01-6174-4f6b-b379-d4afdbdaf15d.jpg",
"food_requirements": [
"Gluten free",
"Locally produced",
"Organic food",
"Vegetarian dishes"
],
"payment_accepted": [
"American Express",
"Apple Pay",
"Mastercard",
"MobilePay",
"Visa"
],
"rate_distinction": "Fabulous",
"avg_price": 97,
"avg_price_currency": "EUR",
"thefork_rating": 8.9,
"thefork_review_count": 2104,
"tripadvisor_rating": 4,
"tripadvisor_review_count": 1673,
"country": "France",
"locality": "Paris",
"street": "30 Rue Vernet",
"zip_code": "75008",
"latitude": 48.8723858,
"longitude": 2.2970681,
"parking": "Service voiturier",
"transport": "Métro Charles de Gaulle- Etoile (M1, M9, RER A)",
"additional_information": null,
"michelin": {
"stars": 1,
"link": "https://guide.michelin.com/en/ile-de-france/paris/restaurant/l-atelier-de-joel-robuchon-etoile",
"review": "With no less than two establishments in the French capital, Joël Robuchon’s renowned Ateliers are literally making their way around the world. The ..."
},
"is_insider": true,
"is_top_host": false,
"tf_awards_year": null,
"top_chart_rank": null,
"top_chart_size": null,
"top_chart_location_type": null,
"top_chart_location_id": null,
"top_chart_location_name": null,
"reviews_summary_content": null,
"reviews_summary_last_update": null,
"highlighted_review_id": "abb80b5d-df01-447e-ba27-984cb36d6bcc",
"highlighted_review_created_ts": "2026-08-22T11:18:54.622Z",
"highlighted_review_rating": 10,
"highlighted_review_content": "We had a wonderful lunch today. The team explained every dish clearly, which made the whole experience feel thoughtful and welcoming. A great moment and a great lunch ove...",
"highlighted_review_reviewer_id": "f5270981-71ad-4cc1-ad75-9e93bc8b27d8",
"highlighted_review_reviewer_name": "Hiu C.",
"highlighted_review_reviewer_avatar": null,
"header_photos": [
{
"id": "6e4e9b01-6174-4f6b-b379-d4afdbdaf15d",
"resizedImageUrls": {
"url664x374": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_664,h_374,c_fill/restaurant/d878352e-a8c6-4483-9e99-f74a59b68078/6e4e9b01-6174-4f6b-b379-d4afdbdaf15d.jpg",
"url1080x": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_1080,c_fill/restaurant/d878352e-a8c6-4483-9e99-f74a59b68078/6e4e9b01-6174-4f6b-b379-d4afdbdaf15d.jpg"
}
},
// ... 8 more
],
"header_photos_additional_count": 767,
"customer_photos_total": 762,
"menu_photos_total": 0,
"food_photos_total": 649,
"has_reservations_today": 1,
"tags": [
{
"id": "311",
"name": "American Express"
},
{
"id": "2473",
"name": "Apple Pay"
},
{
"id": "314",
"name": "Mastercard"
},
{
"id": "1671",
"name": "MobilePay"
},
// ... 58 more
],
"highlighted_tag": [
{
"text": "INSIDER",
"highlightType": "INSIDER"
},
{
"text": "MICHELIN",
"highlightType": "MICHELIN_1_star"
},
// ... 2 more
],
"yums_is_super": false,
"yums_description": null,
"yums_count": 100,
"available_menus": [],
"bookable_intervals": [
{
"date": "2026-09-09",
"isToday": true,
"intervals": [
{
"start": 720,
"end": 915
},
{
"start": 1140,
"end": 1290
}
]
},
// ... 6 more
],
"top_features": [],
"feature_categories": [
{
"name": "Features",
"category": "ESSENTIALS",
"features": [
{
"name": "Air-conditioning"
},
{
"name": "Dog-Friendly"
},
{
"name": "Wheelchair Accessible"
},
// ... 2 more
]
},
// ... 3 more
],
"legal_privacy_url": null,
"legal_register_name": null,
"legal_register_number": null,
"legal_website": "http://www.joel-robuchon.com/",
"legal_email": "reservationetoile@atelierjr.fr",
"pay_at_table_enabled": false,
"pay_at_table_mastercard_yums": null,
"use_your_yums": null,
"earn_double_yums_count": null,
"exchange_rates": [
{
"yumsCost": 1000,
"discountMoney": {
"value": 2000,
"currency": {
"isoCurrency": "EUR"
}
}
},
// ... 1 more
],
"marketing_offer": null,
"formatted_address": "30 Rue Vernet, 75008, Paris",
"formatted_short_address": "75008, Paris",
"insider_description": null,
"insider_tips": null,
"michelin_distinctions": [
{
"value": "MICHELIN_1_star",
"description": "One MICHELIN Star: High quality cooking, worth a stop!"
}
],
"michelin_review": "With no less than two establishments in the French capital, Joël Robuchon’s renowned Ateliers are literally making their way around the world. The ...",
"michelin_link": "https://guide.michelin.com/en/ile-de-france/paris/restaurant/l-atelier-de-joel-robuchon-etoile",
"best_rating_value": 10,
"best_rating_created_at": "2026-08-22T11:18:54.622Z",
"best_rating_review_body": "We had a wonderful lunch today. The team explained every dish clearly, which made the whole experience feel thoughtful and welcoming. A great moment and a great lunch ove...",
"best_rating_reviewer_name": "Hiu C.",
"best_rating_reviewer_avatar": null,
"best_rating_reviewer_review_count": 17,
"best_rating_reviewer_username": "Hiu C.",
"menus": [
{
"offer_uuid": null,
"name": "À la carte",
"raw_name": "À la carte",
"price": null,
"price_currency": null,
"exclusion": null,
"footer": null,
"is_bookable": false,
"has_stock": false,
"menu_type": "A_LA_CARTE",
"description": null,
"updated_ts": "2026-03-10T15:00:49.438Z",
"sections": [
{
"name": "Starter",
"items": [
{
"name": "Le pâte en croûte (en veau, au foie gras de canard et pistaches)",
"description": "en duo de pomme et avocat, aux pousses de salades, sorbet à la moutarde verte",
"price": 42,
"is_main_dish": false
},
{
"name": "LE HOMARD ",
"description": "sur des feuilles de romaine, mozzarella et avocat à l’huile d’olive au curcuma",
"price": 52,
"is_main_dish": false
},
{
"name": "LA BRESAOLA DE BŒUF WAGYU",
"description": "escortée de pain toasté à la tomate",
"price": 59,
"is_main_dish": false
},
// ... 3 more
]
},
{
"name": "Main course",
"items": [
{
"name": "La burger (foie gras d canard,aux poivrons arlequins verjuté)",
"description": "au homard européen ou au caviard impérial de Sologne",
"price": 69,
"is_main_dish": true
},
{
"name": "LE HOMARD «FRITE »",
"description": "rôti au beurre demi-sel ravigoté d’une émulsion épicée aux aromates",
"price": 89,
"is_main_dish": true
},
{
"name": "LA SOLE ",
"description": "entière de petit bateau, « Belle Meunière »",
"price": 79,
"is_main_dish": true
},
// ... 9 more
]
},
{
"name": "LES PLATS EN PETITES PORTIONS DÉGUSTATION",
"items": [
{
"name": "LA DAURADE ROYALE",
"description": "en carpaccio, au citron et à la fleur de sel, \"Neige Grand Cru de Batz\"",
"price": 39,
"is_main_dish": false
},
{
"name": "LA FAMEUSE GELÉE DE CAVIAR DE JOËL ROBUCHON",
"description": "à la crème de chou-fleur",
"price": 49,
"is_main_dish": false
},
{
"name": "LE FOIE GRAS ",
"description": "frais de canard au nature, pain de campagne toasté",
"price": 39,
"is_main_dish": false
},
// ... 16 more
]
},
// ... 3 more
]
},
// ... 5 more
],
"highlighted_menu_items": [],
"pros": [],
"food_rating": 9.2,
"service_rating": 8.7,
"ambience_rating": 8.6,
"rating_count": 2104,
"review_count": 823,
"language_stats": {
"all": 823,
"de": 5,
"en": 199,
"es": 24,
"fr": 546,
"it": 13,
"pt": 19,
"zh": 3,
"null": 14
},
"restaurant_photos": [
{
"id": "6e4e9b01-6174-4f6b-b379-d4afdbdaf15d",
"src": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_664,h_374,c_fill/restaurant/d878352e-a8c6-4483-9e99-f74a59b68078/6e4e9b01-6174-4f6b-b379-d4afdbdaf15d.jpg",
"title": null,
"created_ts": "2020-10-08T08:34:15.938Z",
"url_664x374": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_664,h_374,c_fill/restaurant/d878352e-a8c6-4483-9e99-f74a59b68078/6e4e9b01-6174-4f6b-b379-d4afdbdaf15d.jpg",
"url_1080x": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_1080,c_fill/restaurant/d878352e-a8c6-4483-9e99-f74a59b68078/6e4e9b01-6174-4f6b-b379-d4afdbdaf15d.jpg"
},
// ... 13 more
],
"customer_photos": [
{
"id": "dea29fa7-6f8b-4f69-9762-98e348dc2263",
"image_url": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_800,c_limit/customer/d878352e-a8c6-4483-9e99-f74a59b68078/dea29fa7-6f8b-4f69-9762-98e348dc2263.jpg",
"title": "IMG_0557.jpeg",
"description": null
},
// ... 4 more
],
"reviews": [
{
"id": "f5eb5f4c-f246-49ba-b1a8-dd682b86a6cb",
"created_at": "2026-08-11T08:35:59.687Z",
"updated_at": "2026-08-11T08:35:59.687Z",
"rating_value": 10,
"meal_date": "2026-08-09T10:30:00.000Z",
"status": "PUBLISHED",
"occasion": "FRIENDS",
"review_body": "Every dish is delicious and the portion is so big",
"restaurant_reply_body": "Dear Angelina Zhou,\n\nThank you so much for this perfect 10/10 review and your wonderful feedback! \n\nWe are delighted to hear that you thoroughly enjoyed our dishes and ap...",
"restaurant_reply_status": "PUBLISHED",
"reviewer_id": "c725ec36-7098-4d45-a1dd-0fed94a230e2",
"reviewer_first_name": "Angelina",
"reviewer_last_name": "Z.",
"reviewer_username": "Angelina Z.",
"reviewer_avatar_url": null,
"reviewer_review_count": 1,
"reviewer_member_since": "2026-07-23T08:13:57.306Z",
"photos": [
{
"id": "4622988e-85dd-4d25-b73c-78b785bca67d",
"title": null,
"description": null,
"image_url": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_800,c_limit/customer/d878352e-a8c6-4483-9e99-f74a59b68078/4622988e-85dd-4d25-b73c-78b785bca67d.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/d878352e-a8c6-4483-9e99-f74a59b68078/4622988e-85dd-4d25-b73c-78b785bca67d.jpg",
"created_ts": "2026-08-11T08:37:20.708Z",
"likes": 0
},
{
"id": "21532a7a-3559-400b-a42c-2e5621ce0c1b",
"title": null,
"description": null,
"image_url": "https://cdn.thefork.com/tf-lab/image/upload/f_auto,q_auto,w_800,c_limit/customer/d878352e-a8c6-4483-9e99-f74a59b68078/21532a7a-3559-400b-a42c-2e5621ce0c1b.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/d878352e-a8c6-4483-9e99-f74a59b68078/21532a7a-3559-400b-a42c-2e5621ce0c1b.jpg",
"created_ts": "2026-08-11T08:37:19.567Z",
"likes": 0
},
// ... 6 more
],
"likes": 0
},
// ... up to 2,104 more reviews
]
}

Pricing — Pay Per Event (PPE)

Two billable events:

  1. Restaurant scraped — charged per restaurant extracted (includes the first 100 reviews)
  2. Review scraped — charged per review beyond the 100 included with each restaurant
TierPer 1,000 restaurantsPer 1,000 reviews (beyond 100)
Regular$5.99$3.99
Bronze$5.33$3.49
Silver$4.66$2.99
Gold$3.99$2.49

Free Usage

Free plan includes 10 runs with up to 50 restaurants per run (and a sample of reviews per restaurant) — enough to evaluate the output before committing. Upgrade your plan for unlimited results.

How to Scrape TheFork Restaurant Data

Using URLs

Paste any TheFork URL directly:

  • Restaurant pagehttps://www.thefork.com/restaurant/l-imperatif-r660609
  • City pagehttps://www.thefork.com/restaurants/paris-c415144
  • Search URL — Copy a filtered search URL from TheFork, filters are preserved

Mix URL types freely. Each is processed independently.

Enter any location name in searchLocation. Accepts cities, neighborhoods, addresses, landmarks. Typos and non-English names are handled automatically:

  • "Paris", "Barclona", "Milano", "Montmartre", "Champs-Elysees"

Combine with filters (cuisineTagIds, minPrice, maxPrice, minRating, bestRated, promotionsOnly, sort) to narrow results.

Small towns and villages. Large cities have their own TheFork profile and return tightly-scoped results. Smaller places (no TheFork city profile) fall back to coordinate-based search and return restaurants from a wider area. Use searchRadiusKm to control this — defaults to 10 km, set tighter (e.g. 3) for village-only results or wider (e.g. 50) for the surrounding region. Ignored for large cities.

{
"searchLocation": "Saint-Tropez",
"language": "fr",
"searchRadiusKm": 5
}

Combining Both

Use startUrls and searchLocation together. URLs are processed first, then location search adds more results.

API Integration

Python

from apify_client import ApifyClient
client = ApifyClient("your_token")
run = client.actor("YOUR_ACTOR_ID").call(run_input={
"searchLocation": "Paris",
"language": "fr",
"maxRestaurants": 50,
"maxReviews": 200,
})
for restaurant in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{restaurant['name']}{restaurant['thefork_rating']}/10 — {restaurant['avg_price']}€")
for review in restaurant.get("reviews", []):
print(f" [{review['rating_value']}/10] {review['review_body'][:80]}")

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'your_token' });
const run = await client.actor('YOUR_ACTOR_ID').call({
searchLocation: 'Rome',
language: 'it',
cuisineTagIds: ['436'],
maxRestaurants: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} Italian restaurants in Rome`);

Advanced Usage

Scrape Italian restaurants in Barcelona with promotions

{
"searchLocation": "Barcelona",
"language": "es",
"cuisineTagIds": ["436"],
"promotionsOnly": true,
"sort": "promotion",
"maxRestaurants": 200
}

Extract many reviews for specific restaurants

{
"startUrls": [
"https://www.thefork.com/restaurant/l-imperatif-r660609"
],
"maxReviews": 500,
"reviewLanguage": "fr"
}

Need every review for one restaurant? Use TheFork Reviews — it's purpose-built for unlimited single-restaurant review extraction.

Budget-friendly restaurants in Berlin

{
"searchLocation": "Berlin",
"language": "de",
"maxPrice": 25,
"bestRated": true,
"sort": "avgRate",
"maxRestaurants": 100
}

Restaurant data only, no reviews

{
"searchLocation": "London",
"maxReviews": 0,
"maxRestaurants": 500
}

High-volume city export with minimal reviews

{
"searchLocation": "London",
"maxRestaurants": 2000,
"maxReviews": 10,
"maxPhotos": 0
}

Data Export

Results are available in multiple formats:

  • JSON — Nested structures (menus, reviews, photos) fully preserved
  • CSV — Flat fields, arrays serialized
  • Excel — Spreadsheet-ready

Automation

  • Scheduled runs — Daily, weekly, or monthly data refreshes
  • Webhooks — Get notified when a run completes
  • API — Integrate into your data pipeline programmatically

FAQ

Q: What data does TheFork Scraper extract? A: Everything visible on a TheFork restaurant listing: name, contact info (phone, email), full menus with dish prices, all customer reviews, photos, ratings (TheFork + TripAdvisor), Michelin data, booking availability, promotions, tags, and more. Over 100 fields per restaurant.

Q: How many restaurants can I scrape? A: No hard limit. Set maxRestaurants to control how many results come back from search/city pages. Direct restaurant URLs are always processed regardless of this limit.

Q: How fast is it? A: Approximately 1,000 restaurants in under 60 seconds for basic data. Deep review extraction (hundreds of reviews per restaurant) adds only a few seconds.

Q: Do I need a TheFork account? A: No. The scraper works without any login or authentication.

Q: Which countries are supported? A: All countries where TheFork operates: France, Germany, Italy, Spain, UK, Belgium, Netherlands, Portugal, Switzerland, Austria, and others. Set the language parameter to match your target market.

Q: Can I filter reviews by language? A: Yes. Use reviewLanguage to get reviews in English, French, German, Italian, Spanish, Dutch, or Portuguese. Default returns reviews matching your selected domain language.

Q: How are reviews sorted? A: Reviews are returned newest first. Set maxReviews to control how many you get per restaurant. Set 0 to skip reviews entirely. For unlimited reviews from a single restaurant, use the dedicated TheFork Reviews actor.

Q: What about Michelin restaurants? A: Michelin data is included when available: star distinctions, Michelin review text, and a link to the Michelin Guide page.

Q: Can I get full menu prices? A: Yes. The output includes complete a la carte menus and preset/fixed menus with every dish name, description, price, and section (starters, mains, desserts, wine list).

Q: Is there a free trial? A: Yes. Free plan includes 10 runs with up to 50 restaurants per run (with a sample of reviews per restaurant). Enough to evaluate the data quality and format before upgrading.

Q: How does the pricing work for reviews? A: The first 100 reviews per restaurant are included in the restaurant scrape cost. Reviews beyond 100 are charged separately. If you only need recent reviews, keep the default maxReviews: 100 and pay nothing extra.

Getting Started

1. Try it free

  1. Sign up for Apify — no credit card required
  2. Open TheFork Scraper
  3. Enter a city name or paste a TheFork URL
  4. Click Start and inspect the results

2. Configure

  1. Input — Paste URLs or enter a search location
  2. Filters — Set cuisine, price range, rating, promotions
  3. Limits — Control restaurants, reviews, and photos per run
  4. Language — Pick your target locale

3. Scale

  1. Use the API for programmatic access
  2. Schedule recurring runs for fresh data
  3. Set up webhooks for pipeline automation

More Zen Studio & Clearpath review scrapers

🔗 Review aggregators

📍 Individual review sources

This scraper extracts publicly available data from TheFork listings. Users are responsible for complying with TheFork's terms of service and applicable data protection regulations (GDPR, CCPA). Use extracted data responsibly and in accordance with local laws.

Contact data: Phone numbers and email addresses are included when publicly listed. Comply with anti-spam regulations when using contact information.

Support


Start Scraping TheFork Restaurants Now


Complete restaurant intelligence from Europe's largest dining platform.