Thefork Restaurants Search Scraper avatar

Thefork Restaurants Search Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
Thefork Restaurants Search Scraper

Thefork Restaurants Search Scraper

Scrape restaurant listings from TheFork.com search pages with ease. Collect names, ratings, cuisine types, pricing, photos, geolocation, booking availability, and 20+ fields per restaurant — perfect for market research and food industry analytics.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Stealth mode

Stealth mode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

TheFork.com Restaurant Scraper: Extract Search & Listing Data


What Is TheFork.com?

TheFork (formerly LaFourchette) is one of Europe's leading restaurant discovery and reservation platforms, covering thousands of venues across France, Spain, Italy, and beyond. It aggregates user reviews, pricing, cuisine types, and real-time booking availability — making it a valuable data source for hospitality analysts, food tech developers, and market researchers. Manually collecting this data at scale is impractical; the TheFork Restaurant Scraper automates the entire process.


Overview

The TheFork.com Restaurants Search Scraper crawls restaurant listing pages — such as city or cuisine search results — and extracts structured data for each venue. It is designed for:

  • Market researchers analyzing restaurant density, pricing, or cuisine trends by city
  • Food tech developers building recommendation engines or aggregator tools
  • Hospitality consultants benchmarking competitors in specific markets
  • Data analysts studying review patterns and loyalty program adoption

Key features include configurable item limits, multi-URL support, and resilient error handling via ignore_url_failures.


Input Format

The scraper accepts a simple JSON configuration:

{
"ignore_url_failures": true,
"max_items_per_url": 200,
"urls": [
"https://www.thefork.com/restaurants/paris-c415144?p=2"
]
}
FieldTypeDefaultDescription
urlsarrayOne or more TheFork restaurant search/listing page URLs to scrape. Supports city pages, cuisine filters, and paginated results (e.g., ?p=2). Add URLs one by one or via bulk edit.
max_items_per_urlinteger20Maximum number of restaurant records to collect per URL. Increase up to the page's available listings (e.g., 200 for large city pages).
ignore_url_failuresbooleantrueIf true, the scraper skips failed URLs and continues instead of stopping the entire run. Recommended for bulk jobs.

Tip: To scrape multiple pages of a city, add each paginated URL separately — e.g., ?p=1, ?p=2, ?p=3.


Output Format

Sample output

{
"address": {
"__typename": "RestaurantAddress",
"country": "France",
"locality": "Paris",
"street": "15 Rue de la Villette",
"zip_code": "75019"
},
"reviews_summary": null,
"aggregate_ratings": {
"__typename": "RestaurantAggregateRatings",
"thefork": {
"__typename": "RestaurantAggregateRatingsValues",
"rating_value": 9.5,
"review_count": 1536
}
},
"attributes": {
"__typename": "Attributes",
"deals": [
{
"__typename": "Deal",
"description": null,
"label": "Up to -30%",
"short_label": "-30%",
"type": "CLASSIC_OFFER"
},
{
"__typename": "Deal",
"description": null,
"label": "Yums x2",
"short_label": null,
"type": "SUPER_YUMS"
}
],
"distance_from_geolocation": null,
"distinctions": [
{
"__typename": "TopHostDistinction",
"label": "TOPHOST"
}
],
"formatted_address": "15 Rue de la Villette, 75019, Paris",
"formatted_short_address": "75019, Paris",
"partnership": []
},
"geolocation": {
"__typename": "Coordinate",
"latitude": 48.8754732,
"longitude": 2.3873058
},
"has_loyalty_program": false,
"tags": [
{
"__typename": "RestaurantTag",
"id": "311",
"name": "American Express",
"category": {
"__typename": "RestaurantTagCategory",
"id": "5"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "314",
"name": "Mastercard",
"category": {
"__typename": "RestaurantTagCategory",
"id": "5"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "4367",
"name": "TheFork Pay",
"category": {
"__typename": "RestaurantTagCategory",
"id": "5"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2699",
"name": "UnionPay",
"category": {
"__typename": "RestaurantTagCategory",
"id": "5"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "315",
"name": "Visa",
"category": {
"__typename": "RestaurantTagCategory",
"id": "5"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "545",
"name": "Paris 19th",
"category": {
"__typename": "RestaurantTagCategory",
"id": "19"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "1505",
"name": "LP boost",
"category": {
"__typename": "RestaurantTagCategory",
"id": "14"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "644",
"name": "Trip Advisor",
"category": {
"__typename": "RestaurantTagCategory",
"id": "14"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "457",
"name": "Mexican",
"category": {
"__typename": "RestaurantTagCategory",
"id": "12"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "452",
"name": "South American",
"category": {
"__typename": "RestaurantTagCategory",
"id": "12"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "336",
"name": "Gluten free",
"category": {
"__typename": "RestaurantTagCategory",
"id": "8"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2155",
"name": "Lactose intolerance",
"category": {
"__typename": "RestaurantTagCategory",
"id": "8"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2107",
"name": "Vegan dishes",
"category": {
"__typename": "RestaurantTagCategory",
"id": "8"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "470",
"name": "Vegetarian dishes",
"category": {
"__typename": "RestaurantTagCategory",
"id": "8"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2565",
"name": "Burrito",
"category": {
"__typename": "RestaurantTagCategory",
"id": "6"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "658",
"name": "Ceviche",
"category": {
"__typename": "RestaurantTagCategory",
"id": "6"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2284",
"name": "Chicken",
"category": {
"__typename": "RestaurantTagCategory",
"id": "6"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "999",
"name": "Salad",
"category": {
"__typename": "RestaurantTagCategory",
"id": "6"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2613",
"name": "Tacos",
"category": {
"__typename": "RestaurantTagCategory",
"id": "6"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "4337",
"name": "Super YUMS",
"category": {
"__typename": "RestaurantTagCategory",
"id": "16"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "4339",
"name": "YUMS x2",
"category": {
"__typename": "RestaurantTagCategory",
"id": "16"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "56",
"name": "Buttes Chaumont - Belleville",
"category": {
"__typename": "RestaurantTagCategory",
"id": "4"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "86",
"name": "Père Lachaise - Ménilmontant",
"category": {
"__typename": "RestaurantTagCategory",
"id": "4"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5859",
"name": "France",
"category": {
"__typename": "RestaurantTagCategory",
"id": "20"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "1752",
"name": "Ile-de-France",
"category": {
"__typename": "RestaurantTagCategory",
"id": "20"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "350",
"name": "Bar",
"category": {
"__typename": "RestaurantTagCategory",
"id": "10"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2591",
"name": "Cocktail",
"category": {
"__typename": "RestaurantTagCategory",
"id": "10"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "348",
"name": "Dog-Friendly",
"category": {
"__typename": "RestaurantTagCategory",
"id": "10"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "359",
"name": "English spoken",
"category": {
"__typename": "RestaurantTagCategory",
"id": "10"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2133",
"name": "Open in August",
"category": {
"__typename": "RestaurantTagCategory",
"id": "10"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "897",
"name": "Open sunday",
"category": {
"__typename": "RestaurantTagCategory",
"id": "10"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2287",
"name": "Spanish spoken",
"category": {
"__typename": "RestaurantTagCategory",
"id": "10"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "375",
"name": "Wifi",
"category": {
"__typename": "RestaurantTagCategory",
"id": "10"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5349",
"name": "Card payments accepted",
"category": {
"__typename": "RestaurantTagCategory",
"id": "23"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5337",
"name": "Contactless, digital or single use menus",
"category": {
"__typename": "RestaurantTagCategory",
"id": "23"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5347",
"name": "Extra cleaning services implemented at the tables, toilets and kitchen",
"category": {
"__typename": "RestaurantTagCategory",
"id": "23"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5353",
"name": "Food served only at the table",
"category": {
"__typename": "RestaurantTagCategory",
"id": "23"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5325",
"name": "Guest spacing 1m",
"category": {
"__typename": "RestaurantTagCategory",
"id": "23"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5331",
"name": "Hand sanitizer for customers",
"category": {
"__typename": "RestaurantTagCategory",
"id": "23"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5333",
"name": "Staff wearing masks & gloves",
"category": {
"__typename": "RestaurantTagCategory",
"id": "23"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2293",
"name": "Cosy",
"category": {
"__typename": "RestaurantTagCategory",
"id": "11"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5779",
"name": "Gift cards",
"category": {
"__typename": "RestaurantTagCategory",
"id": "11"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "1",
"name": "Good for families",
"category": {
"__typename": "RestaurantTagCategory",
"id": "11"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "1467",
"name": "Homemade cuisine",
"category": {
"__typename": "RestaurantTagCategory",
"id": "11"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5777",
"name": "Lunch",
"category": {
"__typename": "RestaurantTagCategory",
"id": "11"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "5",
"name": "Romantic",
"category": {
"__typename": "RestaurantTagCategory",
"id": "11"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "6246",
"name": "Top Host",
"category": {
"__typename": "RestaurantTagCategory",
"id": "9"
},
"is_published": true
},
{
"__typename": "RestaurantTag",
"id": "2051",
"name": "Valentine's Day",
"category": {
"__typename": "RestaurantTagCategory",
"id": "9"
},
"is_published": true
}
],
"id": "739f155b-81d4-4fe9-b66b-5140c50de150",
"is_bookable": true,
"is_start_package": false,
"legacy_id": 515549,
"main_photo_url": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/25fc1e29-128d-4fb8-920c-1466194f36c1.jpg",
"name": "Barrio Meshica Village Jourdain",
"photos": [
{
"__typename": "RestaurantPhoto",
"alt": null,
"id": "25fc1e29-128d-4fb8-920c-1466194f36c1",
"src": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/25fc1e29-128d-4fb8-920c-1466194f36c1.jpg"
},
{
"__typename": "RestaurantPhoto",
"alt": null,
"id": "9bf3acb3-21ad-47df-b99a-0695755e3717",
"src": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/9bf3acb3-21ad-47df-b99a-0695755e3717.jpg"
},
{
"__typename": "RestaurantPhoto",
"alt": null,
"id": "5518f3ba-382d-44ed-931c-f2351ae7d390",
"src": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/5518f3ba-382d-44ed-931c-f2351ae7d390.jpg"
},
{
"__typename": "RestaurantPhoto",
"alt": null,
"id": "65e37238-e3ff-46b8-97aa-2b42d716c74a",
"src": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/65e37238-e3ff-46b8-97aa-2b42d716c74a.jpg"
},
{
"__typename": "RestaurantPhoto",
"alt": null,
"id": "2501575d-4914-4508-b3fe-6c388785e363",
"src": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/2501575d-4914-4508-b3fe-6c388785e363.jpg"
},
{
"__typename": "RestaurantPhoto",
"alt": null,
"id": "7de46f91-8fc6-4b10-a543-554d8f614cca",
"src": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/7de46f91-8fc6-4b10-a543-554d8f614cca.jpg"
},
{
"__typename": "RestaurantPhoto",
"alt": null,
"id": "2f6934c2-ad2c-4928-b377-470b4e293cb3",
"src": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/2f6934c2-ad2c-4928-b377-470b4e293cb3.jpg"
},
{
"__typename": "RestaurantPhoto",
"alt": null,
"id": "62ecd9d1-de43-423b-8b1b-66fdcb6731e4",
"src": "https://cdn.thefork.com/tf-lab/image/upload/restaurant/739f155b-81d4-4fe9-b66b-5140c50de150/62ecd9d1-de43-423b-8b1b-66fdcb6731e4.jpg"
}
],
"payment_accepted": [
"American Express",
"Mastercard",
"TheFork Pay",
"UnionPay",
"Visa"
],
"price_range_level": 2,
"avg_price": {
"__typename": "Money",
"currency": {
"__typename": "Currency",
"decimal_position": 2,
"iso_currency": "EUR"
},
"value": 2300
},
"serves_cuisine": "Mexican",
"slug": "barrio-meshica-village-jourdain",
"top_chart": null,
"has_reservations": {
"__typename": "RestaurantReservationHistory",
"today": 0
},
"from_url": "https://www.thefork.com/restaurants/paris-c415144?p=2"
}

Each restaurant returns a record with 21 fields:

Identity & Discovery

FieldMeaning
IDUnique TheFork internal identifier for the restaurant
Legacy IDOlder identifier retained for backward compatibility
NameRestaurant display name as shown on the platform
SlugURL-friendly version of the restaurant name used in permalinks

Location & Contact

FieldMeaning
AddressFull street address of the restaurant
GeolocationLatitude and longitude coordinates — useful for map-based analysis

Ratings & Reviews

FieldMeaning
Reviews SummaryAggregated review counts and score breakdown (e.g., total reviews, score distribution)
Aggregate RatingsOverall rating score (typically on a scale used by TheFork, e.g., out of 10)
Top ChartWhether the restaurant appears in TheFork's curated top charts or rankings

Cuisine & Dining

FieldMeaning
Serves CuisineCuisine type(s) offered (e.g., French, Italian, Sushi)
TagsDescriptive tags associated with the restaurant (e.g., "romantic", "business lunch", "terrace")
AttributesAdditional dining attributes such as ambiance, features, or awards
Price Range LevelNumeric price tier indicator (e.g., 1–4, from budget to luxury)
Average PriceEstimated average spend per person in local currency
Payment AcceptedAccepted payment methods (e.g., card types, cash)

Media

FieldMeaning
Main Photo URLPrimary listing image URL
PhotosArray of additional photo URLs for the venue

Booking & Program Flags

FieldMeaning
Is BookableWhether the restaurant accepts online reservations via TheFork
Has ReservationsWhether reservation data is available/active for this listing
Has Loyalty ProgramWhether the restaurant participates in TheFork's loyalty/points program
Is Start PackageIndicates if the restaurant is on TheFork's entry-level subscription package

How to Use

  1. Find target pages — Search for restaurants by city or cuisine on TheFork.com. Copy the search results URL (e.g., https://www.thefork.com/restaurants/paris-c415144).
  2. Add pagination if needed — Append ?p=2, ?p=3, etc. for additional pages, adding each as a separate URL entry.
  3. Configure the input — Set max_items_per_url to match how many results you need. The default is 20; set higher (e.g., 200) for large city pages.
  4. Enable ignore_url_failures — Keeps bulk runs from stopping on a single bad URL.
  5. Run and export — Download results as JSON, CSV, or Excel.

Common issues:

  • Ensure URLs point to search/listing pages, not individual restaurant profile pages.
  • If results are fewer than expected, the page may have fewer listings than max_items_per_url — this is normal.

Use Cases & Business Value

  • City-level restaurant mapping: Extract full venue lists with coordinates for geographic analysis
  • Pricing intelligence: Compare average spend and price tiers across cuisines or neighborhoods
  • Review benchmarking: Track aggregate ratings to identify market leaders
  • Booking trend analysis: Filter bookable vs. non-bookable venues by region
  • Loyalty program research: Identify adoption rates of TheFork's loyalty scheme across markets

Conclusion

The TheFork.com Restaurants Search Scraper delivers structured, analysis-ready restaurant data from one of Europe's top dining platforms. With 21 output fields spanning location, ratings, pricing, media, and booking status, it provides everything needed to power market research, competitive analysis, or data-driven hospitality products. Configure your target city, set your item limit, and start extracting in minutes.