Tabelog Japan Restaurant Scraper avatar

Tabelog Japan Restaurant Scraper

Pricing

from $2.10 / 1,000 results

Go to Apify Store
Tabelog Japan Restaurant Scraper

Tabelog Japan Restaurant Scraper

Scrape Tabelog (食べログ) restaurant data across Japan's 47 prefectures: ratings, review counts, cuisine, budgets, nearest station, award badges and photos. Turn on details for address, phone, opening hours and payment methods, or reviews for reviewer, score, visit month and a short review preview.

Pricing

from $2.10 / 1,000 results

Rating

0.0

(0)

Developer

Piquno

Piquno

Maintained by Community

Actor stats

2

Bookmarked

25

Total users

4

Monthly active users

16 days ago

Last modified

Share

Scrape restaurant data from Tabelog (食べログ), Japan's largest restaurant review site with 800,000+ listings across all 47 prefectures.

It can also return individual reviews: reviewer, star rating, meal time, visit month, visit count and a preview of the review text (about the first 100 characters). Turn on Include full review text to get the complete text as well. Paste any Tabelog listing URL, or search by prefecture and keyword.

What data can you extract?

FieldSourceDescription
recordTypeAlwaysrestaurant (review rows say review)
nameListingRestaurant name
urlListingTabelog URL
restaurantIdListingTabelog restaurant ID (joins reviews to their restaurant)
ratingListingRating score (0-5 scale)
reviewCountListingNumber of reviews
nearestStationListingClosest train station and walking distance, e.g. "Onarimon Sta. 416m"
genreListingCuisine type (Sushi, Ramen, Yakiniku, etc.)
dinnerBudgetListingAverage dinner price range
lunchBudgetListingAverage lunch price range
closedDaysListingRegular holidays ("-" means not listed)
featuresListingTags (credit card, non-smoking, children welcome, etc.)
awardsListingTabelog Awards & Hyakumeiten (Top 100) badges
imagesListingUp to 5 restaurant photos
addressDetailFull address (Japanese), followed by the page's map button text ("Show larger mapFind nearby restaurants")
addressCleanDetailThe same address without the button text
phoneDetailPhone number
businessHoursDetailOpening hours
transportationDetailDirections from nearest station
detailGenreDetailFull category list from the restaurant page
paymentMethodsDetailAccepted payment methods
reservationInfoDetailReservation availability and notes
seatsDetailNumber of seats as shown, e.g. "12 seats" or "8 seats ( Counter seating only: 8 seats.)" (only when the restaurant lists it)
descriptionDetailThe restaurant's own description, when the page has one (rare)
detailsScrapedAlwaystrue when the detail page loaded, false when details were on but the page failed, null when details are off
searchAreaAlwaysPrefecture you searched (null when you used Start URLs)
searchKeywordAlwaysKeyword from your input, if any
scrapedAtAlwaysWhen the row was saved (UTC)

Listing fields are always included. Detail fields require enabling "Include Detail Pages" (slower: one extra page per restaurant). A detail field is left out of the row when the restaurant page does not show it.

The newer fields (detailsScraped, addressClean, seats, and on review rows reviewerArea and reviewTextFull) come at the end of each row, so the columns you already use stay in the same place in CSV and Excel exports.

Individual reviews

Turn on Include individual reviews and each review becomes its own row, tagged recordType: "review" and joined to its restaurant by restaurantId. Tabelog serves 20 reviews per request; a top Tokyo restaurant in our testing carried 942.

FieldDescription
recordTyperestaurant or review — filter on this to split the two
restaurantId, restaurantName, restaurantUrlThe restaurant the review belongs to
reviewerName, reviewerUrlThe reviewer and their Tabelog profile. The name can have the reviewer's home area glued on at the end, e.g. "トモサクTokyo"
reviewerAreaThat home area on its own, e.g. "Tokyo" (null when not shown)
reviewerPostCount, reviewerFollowersHow prolific and how followed the reviewer is — use it to weight credibility
reviewRatingThat reviewer's score, or null when they left one unrated
reviewMealTimedinner or lunch
reviewVisitPeriod, reviewVisitCounte.g. "August 2026", and how many times they have visited
reviewTitleThe review's title (null when it has none)
reviewUrlLink to the review (null when the review has no title)
reviewTextPreview of the review: about the first 100 characters, ending in "..."
reviewTextFullOnly with Include full review text on: the complete review from its own page, with line breaks kept (null if that page could not be read)
scrapedAtWhen the row was saved (UTC)

Measured fill on a live run: reviewer name, post count, followers, meal time, visit period and text all 100%; reviewRating 87% (unrated reviews stay null rather than becoming 0).

Reviews come from Tabelog's English site, so most review text is Tabelog's machine translation of the Japanese original.

Input parameters

  • Start URLs: Paste Tabelog listing URLs directly, including ones with filters already applied on the site. Overrides Area, Keyword and Sort.
  • Area: Any of Japan's 47 prefectures (Tokyo, Osaka, Kyoto, Hokkaido, etc.)
  • Keyword: Search by cuisine or name — supports Japanese (ラーメン, 寿司, カレー) and English
  • Sort By: Highest Rated, Most Reviews, Most Reserved (Travelers/Locals), Most Viewed
  • Max Results: 1-500 restaurants per run. Tabelog caps a single search at 25 pages, so use a narrower area or keyword to reach past 500.
  • Include Details: open each restaurant's own page for address, phone, hours, seats and more (slower, see below)
  • Include individual reviews + Max reviews per restaurant: one row per review, with a preview of the review text
  • Include full review text: opens each review's own page and adds reviewTextFull. Much slower (about 4-5 s per review); it does not add rows
  • Proxy: off by default. Turn on Apify Proxy only if the log or the run's status message shows blocked or empty pages

Rows are written as each listing page is parsed, so a run you stop early still keeps everything collected up to that point.

Example input for the API:

{
"area": "tokyo",
"keyword": "sushi",
"sort": "highest_rated",
"maxResults": 100,
"includeDetails": true,
"includeReviews": true,
"maxReviewsPerRestaurant": 20,
"includeFullReviewText": false
}

How long does a run take?

Measured on Apify: about 3.9 s per restaurant with details on. The full review text row is an estimate from local test runs.

RunTime per restaurant100 restaurants
Listing onlyunder half a secondabout 40 seconds
With detailsabout 3.9 sabout 6.5 minutes
With details + 20 reviewsabout 7.3 sabout 12.5 minutes
With details + 20 reviews + full review text (estimate)about 90-110 sabout 2.5-3 hours

Every 20 more reviews add about 3.5 s per restaurant. Full review text adds about 4-5 s per review. Runs longer than an hour need a higher run timeout (this actor's default run timeout is 1 hour).

If a page fails or comes back empty, the run still finishes, and the run's status message says how far it got and why (for example "Stopped at 60 of 100 restaurants: listing page 4 returned HTTP 503"). Failed network requests (including timeouts) and "busy" answers from Tabelog (HTTP 429 and 5xx) are retried twice, after 2 and 5 seconds (longer if Tabelog asks for a longer wait, up to 30 seconds). If 3 requests in a row still fail after their retries, the actor stops retrying until a request works again, and it never retries when the run is close to its time limit, so a bad day on Tabelog's side does not use up the run's time.

Example output

{
"name": "Yoroniku",
"url": "https://tabelog.com/en/tokyo/A1306/A130602/13042979/",
"restaurantId": "13042979",
"rating": 4.18,
"reviewCount": 2923,
"nearestStation": "Omote Sando Sta.",
"genre": "Yakiniku (Japanese BBQ), Tripe",
"dinnerBudget": "JPY 10,000 - JPY 14,999",
"lunchBudget": null,
"closedDays": null,
"features": ["Multilingual menu", "Credit card accepted", "Non smoking"],
"awards": ["The Tabelog Award 2026 Bronze winner"],
"images": ["https://tblg.k-img.com/restaurant/images/..."],
"recordType": "restaurant",
"scrapedAt": "2026-04-10T12:00:00+00:00",
"searchArea": "tokyo",
"searchKeyword": null,
"detailsScraped": null
}

Example review row (with Include full review text on):

{
"recordType": "review",
"restaurantId": "13136847",
"restaurantName": "Shimbashi Hoshino",
"restaurantUrl": "https://tabelog.com/en/tokyo/A1314/A131401/13136847/",
"reviewerName": "トモサクTokyo",
"reviewerUrl": "https://tabelog.com/rvwr/tomosaku/",
"reviewerPostCount": 1783,
"reviewerFollowers": 760,
"reviewRating": 4.2,
"reviewMealTime": "dinner",
"reviewVisitPeriod": "September 2026",
"reviewVisitCount": 1,
"reviewTitle": "Japanese Cuisine that Restores Balance.",
"reviewUrl": "https://tabelog.com/en/tokyo/A1314/A131401/13136847/dtlrvwlst/B535573969/?smp=0&use_type=0",
"reviewText": "I was invited to visit Shimbashi Hoshino, a Japanese restaurant in Shimbashi that I had wanted to tr...",
"scrapedAt": "2026-10-02T12:00:00+00:00",
"reviewerArea": "Tokyo",
"reviewTextFull": "I was invited to visit Shimbashi Hoshino, a Japanese restaurant in Shimbashi that I had wanted to try...\n..."
}

Known limitations

  • Data comes from Tabelog's English site: names and labels are in English, addresses in Japanese, and review text is mostly machine-translated.
  • Tabelog shows at most 500 restaurants (25 pages) per search. Use a narrower area or keyword to get more.
  • Start URLs must be listing (search result) pages, such as https://tabelog.com/en/tokyo/rstLst/?SrtT=rt. A single restaurant's page returns nothing.
  • When a restaurant card has no station line, nearestStation holds the cuisine instead and genre is empty (about 1 in 15 restaurants in our tests).
  • searchKeyword shows the Keyword box even when Start URLs are used (the keyword is then ignored).

Use cases

  • Market research: Analyze restaurant density, ratings, and pricing by area and cuisine
  • Travel apps: Build restaurant databases for Japan trip planning tools
  • Food analytics: Track trends in Japanese dining — top-rated cuisines, pricing patterns, regional specialties
  • Competitive analysis: Compare restaurants by rating, review volume, and budget range
  • Location intelligence: Map restaurant data by station and prefecture

Compliance

This actor follows Tabelog's robots.txt: listing pages, restaurant pages and review pages are permitted for crawling. It pauses 2.5 seconds between most requests. A restaurant's first request (its detail or review page) can follow a listing page, or a restaurant with no reviews, without that pause. A failed request is retried after a 2 and then a 5 second pause.

Cost estimate

Every row written is billed, and reviews are rows like any other result.

  • Listing only: ~$0.25 per 100 restaurants
  • With details: same row count, one extra request per restaurant
  • With reviews: 100 restaurants x 20 reviews = 2,100 rows. Set Max reviews per restaurant deliberately.
  • Full review text: adds no rows; it only makes review runs slower.