Tabelog Japan Restaurant Scraper
Pricing
from $2.10 / 1,000 results
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
Maintained by CommunityActor stats
2
Bookmarked
25
Total users
4
Monthly active users
16 days ago
Last modified
Categories
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?
| Field | Source | Description |
|---|---|---|
| recordType | Always | restaurant (review rows say review) |
| name | Listing | Restaurant name |
| url | Listing | Tabelog URL |
| restaurantId | Listing | Tabelog restaurant ID (joins reviews to their restaurant) |
| rating | Listing | Rating score (0-5 scale) |
| reviewCount | Listing | Number of reviews |
| nearestStation | Listing | Closest train station and walking distance, e.g. "Onarimon Sta. 416m" |
| genre | Listing | Cuisine type (Sushi, Ramen, Yakiniku, etc.) |
| dinnerBudget | Listing | Average dinner price range |
| lunchBudget | Listing | Average lunch price range |
| closedDays | Listing | Regular holidays ("-" means not listed) |
| features | Listing | Tags (credit card, non-smoking, children welcome, etc.) |
| awards | Listing | Tabelog Awards & Hyakumeiten (Top 100) badges |
| images | Listing | Up to 5 restaurant photos |
| address | Detail | Full address (Japanese), followed by the page's map button text ("Show larger mapFind nearby restaurants") |
| addressClean | Detail | The same address without the button text |
| phone | Detail | Phone number |
| businessHours | Detail | Opening hours |
| transportation | Detail | Directions from nearest station |
| detailGenre | Detail | Full category list from the restaurant page |
| paymentMethods | Detail | Accepted payment methods |
| reservationInfo | Detail | Reservation availability and notes |
| seats | Detail | Number of seats as shown, e.g. "12 seats" or "8 seats ( Counter seating only: 8 seats.)" (only when the restaurant lists it) |
| description | Detail | The restaurant's own description, when the page has one (rare) |
| detailsScraped | Always | true when the detail page loaded, false when details were on but the page failed, null when details are off |
| searchArea | Always | Prefecture you searched (null when you used Start URLs) |
| searchKeyword | Always | Keyword from your input, if any |
| scrapedAt | Always | When 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.
| Field | Description |
|---|---|
| recordType | restaurant or review — filter on this to split the two |
| restaurantId, restaurantName, restaurantUrl | The restaurant the review belongs to |
| reviewerName, reviewerUrl | The reviewer and their Tabelog profile. The name can have the reviewer's home area glued on at the end, e.g. "トモサクTokyo" |
| reviewerArea | That home area on its own, e.g. "Tokyo" (null when not shown) |
| reviewerPostCount, reviewerFollowers | How prolific and how followed the reviewer is — use it to weight credibility |
| reviewRating | That reviewer's score, or null when they left one unrated |
| reviewMealTime | dinner or lunch |
| reviewVisitPeriod, reviewVisitCount | e.g. "August 2026", and how many times they have visited |
| reviewTitle | The review's title (null when it has none) |
| reviewUrl | Link to the review (null when the review has no title) |
| reviewText | Preview of the review: about the first 100 characters, ending in "..." |
| reviewTextFull | Only 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) |
| scrapedAt | When 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.
| Run | Time per restaurant | 100 restaurants |
|---|---|---|
| Listing only | under half a second | about 40 seconds |
| With details | about 3.9 s | about 6.5 minutes |
| With details + 20 reviews | about 7.3 s | about 12.5 minutes |
| With details + 20 reviews + full review text (estimate) | about 90-110 s | about 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,
nearestStationholds the cuisine instead andgenreis empty (about 1 in 15 restaurants in our tests). searchKeywordshows 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.