TheFork Europe Restaurant Directory & Review Scraper avatar

TheFork Europe Restaurant Directory & Review Scraper

Pricing

from $1.60 / 1,000 record scrapeds

Go to Apify Store
TheFork Europe Restaurant Directory & Review Scraper

TheFork Europe Restaurant Directory & Review Scraper

Extract restaurant listings and diner reviews from TheFork across European markets. Get venue details (address, cuisine, price band, Michelin distinctions, opening hours, menu, promotions) and full review history (ratings, text, dates, replies), joined by restaurant ID.

Pricing

from $1.60 / 1,000 record scrapeds

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

TheFork Restaurant Directory & Review Scraper

Scrape restaurant listings and diner reviews from TheFork, the dominant reservation platform in France, Spain and Italy. Returns venue details — address, cuisine, price band, Michelin distinctions, opening hours, menu items, active promotions — and full review history, joined by restaurant ID in one dataset.


TheFork Scraper Features

  • Covers restaurants across TheFork's European markets — France, Spain, Italy, the UK, Germany, and more, no city or country filter required.
  • Returns 28 fields per record, split across two row types: restaurant venue rows and diner review rows.
  • Joins reviews to their restaurant via restaurant_id, so a distributor prospecting a city gets the venue list and its review volume in one run, not two datasets to reconcile.
  • Extracts active promotions (promo_offer) and live booking availability (booking_slots_available) — the signals that tell you which venue is trying to fill covers.
  • Pulls Michelin distinctions, average price band, full opening hours by day, and the venue's menu with item-level pricing.
  • Reviews carry rating, text, visit date, reviewer alias, and the restaurant's own reply when it left one.

Who Uses TheFork Restaurant Data?

  • POS and restaurant-tech vendors — build a prospect list of venues by cuisine, price band, and city, then prioritize outreach using promotion activity as a buying signal.
  • Food-service distributors — map accounts across a market and cross-reference review volume against your existing customer list.
  • Reputation-management agencies — pull a venue's full review history to pitch a response strategy, backed by actual numbers instead of a screenshot.
  • Market researchers — track price bands, cuisine mix, and Michelin distribution across a city or country over time.
  • Beverage and hospitality brands — identify venues by cuisine and price tier for account mapping, or just to see who's discounting and why.

How TheFork Scraper Works

  1. Set maxItems — the maximum number of records (restaurant + review rows combined) you want back. Leave everything else alone; the scraper covers TheFork's full European catalog by default.
  2. The scraper walks TheFork's restaurant catalog and visits each venue's page, pulling address, cuisine, pricing, hours, menu, and Michelin status.
  3. For every restaurant, it also pages through that venue's diner reviews — rating, text, visit date, and any management reply — up to 400 reviews per venue.
  4. Records land in your dataset as they're found. Stop the run early and you keep everything collected so far.

Input

{
"maxItems": 500
}
FieldTypeDefaultDescription
maxItemsinteger10Maximum number of records to save (restaurant + review rows combined). Restaurants are discovered from the full TheFork European catalog, so a small value still spans many cities and countries. Set to 0 for no cap.

TheFork Scraper Output Fields

Restaurant rows

{
"restaurant_id": "717120",
"name": "Mâche",
"cuisine_types": ["French"],
"street": "61 Rue de Chabrol",
"postal_code": "75010",
"city": "Paris",
"city_id": "415144",
"country": "France",
"latitude": 48.8769636,
"longitude": 2.3509406,
"price_band": "80.00 EUR",
"michelin_distinction": "MICHELIN",
"rating_avg": 9.6,
"rating_count": 655,
"opening_hours": {
"mon": [],
"tue": [{ "opens": "19:00", "closes": "21:00" }]
},
"booking_slots_available": true,
"promo_offer": "-20%",
"menu_items": [
{ "name": "Menu memphis - 4 temps", "description": null, "price": 80, "currency": "EUR" }
],
"photos": ["https://cdn.thefork.com/tf-lab/image/upload/restaurant/.../photo.jpg"],
"restaurant_url": "https://www.thefork.com/restaurant/mache-r717120"
}
FieldTypeDescription
restaurant_idstringTheFork's numeric venue ID — the r<id> in the restaurant URL, and the join key to review rows.
namestringRestaurant name.
cuisine_typesarrayCuisine types the venue serves.
streetstringStreet address.
postal_codestringPostal code.
citystringCity name.
city_idstringTheFork's numeric city ID.
countrystringCountry name.
latitude / longitudenumberVenue coordinates.
price_bandstringAverage price, formatted with currency (e.g. "80.00 EUR").
michelin_distinctionstring"MICHELIN" when the venue carries a Michelin distinction, otherwise absent.
rating_avgnumberAverage diner rating (0-10 scale).
rating_countintegerTotal number of ratings behind rating_avg.
opening_hoursobjectOpening intervals by day (mon-sun), each an array of {opens, closes} in 24-hour time.
booking_slots_availablebooleanWhether the venue currently shows live booking availability.
promo_offerstringActive discount, e.g. "-20%", when the venue is running one.
menu_itemsarrayMenu items with name, description, price, and currency.
photosarrayVenue photo URLs.
restaurant_urlstringCanonical TheFork URL for the venue.

Review rows

{
"review_id": "0c217ddf-57de-40f6-87f2-ac1dbcc79f79",
"review_restaurant_id": "717120",
"review_rating": 10,
"review_text": "Excellent",
"review_date": "2026-08-15T18:30:00.000Z",
"review_author_alias": "Flavien D.",
"review_management_reply": "Thank you so much for your nice review"
}
FieldTypeDescription
review_idstringTheFork's review ID.
review_restaurant_idstringMatches restaurant_id on the venue row — the join key.
review_ratingnumberDiner's rating for this visit (0-10 scale).
review_textstringReview text.
review_datestringVisit date (ISO 8601).
review_author_aliasstringReviewer's display name as shown on TheFork.
review_management_replystringThe restaurant's reply to the review, when it left one.

Every record also carries a scraped_at timestamp.


FAQ

How do I scrape TheFork restaurant data?

Set maxItems and run. TheFork Scraper pulls venue details and review history from TheFork's full European catalog — no city, country, or search term required to get started.

What data can I get from TheFork?

Restaurant details (address, cuisine, price band, Michelin status, hours, menu) and diner reviews (rating, text, date, reviewer alias, management replies), joined by restaurant ID. Both row types land in the same dataset.

Does this cover restaurants outside France?

Yes. TheFork operates across France, Spain, Italy, the UK, Germany, Switzerland, Belgium, the Netherlands, Portugal, and Sweden, and this scraper walks the full catalog by default — it isn't scoped to one country.

Can I limit how many reviews come back per restaurant?

Not per-restaurant, but the scraper caps review pagination at 400 per venue on its own, so one heavily-reviewed restaurant can't crowd out the rest of a run. Set maxItems to control the total record count across the run.

Do I need an account or API key for TheFork?

No. TheFork Scraper works from restaurant and review pages that are publicly visible — no login required.


Need More Features?

Need a different field, a filtered subset, or another region prioritized? File an issue or get in touch.

Why Use TheFork Scraper?

  • One dataset, not two — venue details and review history joined by restaurant_id, so you're not reconciling a separate restaurants export against a separate reviews export.
  • Full catalog by default — most alternatives scope you to one city or search term; this one walks TheFork's European catalog out of the box, and a small maxItems still spans many cities.
  • Demand signals includedpromo_offer and booking_slots_available tell you which venues are actively discounting or showing open tables, not just their static listing details.