Tabelog Japan Scraper - Restaurants, Ratings, Menus & Reviews
Pricing
from $1.60 / 1,000 restaurant records
Tabelog Japan Scraper - Restaurants, Ratings, Menus & Reviews
Scrape Tabelog (tabelog.com) restaurants in Japan by keyword, area or URL. Extract names, cuisines, ratings, reviews, lunch and dinner budgets, stations, addresses, GPS, phone numbers, hours, seating, photos, smoking policies, closed days and reservation availability.
Pricing
from $1.60 / 1,000 restaurant records
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Features
Share
Scrape restaurants from Tabelog (tabelog.com), Japan's largest restaurant guide. Search by cuisine and a plain area name such as Shibuya or Osaka, or paste any Tabelog link, and get rating, review count, genre, nearest station, lunch and dinner budget, closed days, smoking policy, photos and online reservation availability for every restaurant, plus address, business hours, payment methods, seats and the newest reviews.
Why This Scraper?
- Two ways in. Search by keyword and area name (Shibuya, Akihabara, Osaka, Sapporo), or paste any Tabelog link: restaurant, review, menu or photo page, search list, area page or cuisine list.
- Ranked the way Tabelog ranks. Keep the site ranking, or sort by highest rating or most reviews.
- Useful filters. Minimum rating, minimum reviews, smoking policy and online-reservation-only.
- Budgets as numbers and text. Lunch and dinner budget come as the shown range plus minimum and maximum yen values.
- Reservation availability. Restaurants that take online reservations carry the upcoming days and their status, one flat record per restaurant with no duplicates.
- Optional details. Turn on restaurant details to add address, postal code, coordinates, phone number, business hours, payment methods, seats, private rooms, parking, transportation, facilities and occasions.
- Reviews on the row. The newest reviews (20 by default) ride the restaurant record with reviewer, rating, meal time, sub scores, spend, visit month, text and photos. Turn on full review text to open each cut-off review.
Use Cases
- Food and travel apps: build restaurant directories with ratings, stations and budgets.
- Market research: compare cuisines, price bands and review volume across Japanese cities.
- Hospitality analysts: track top ranked restaurants and awards in an area over time.
- Lead generation: list restaurants by area with address and phone number.
- Reputation tracking: follow what diners say about a restaurant through its newest reviews.
- Tour planners: find non smoking, reservable restaurants near a station.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
restaurantId | 13000000 |
name | Sample Ramen Shop |
rank | 1 |
rating | 3.60 |
reviewCount | 500 |
genre | Ramen, Tsukemen (Dipping noodles) |
station | Sample Sta. |
stationDistance | 250m |
dinnerBudget | - JPY 999 |
lunchBudget | JPY 1,000 - JPY 1,999 |
closedDays | Sunday, Public Holiday |
smokingPolicy | Non smoking |
imageUrl | https://example.com/photo.jpg |
reservation | true |
reservationInfo | {"onlineReservation": true, "days": [...]} |
address | Sample district, Tokyo |
latitude / longitude | 35.0 / 139.0 |
phone | +81-0-0000-0000 |
url | https://example.com/restaurant/ |
businessHours | Mon-Fri 11:00 AM - 2:30 PM |
paymentMethods | Credit cards not accepted |
seats | 12 seats (12 counter seats) |
transportation | Sample Line, Sample Station, 1 minute walk |
reviews | list of review objects (see below) |
reviewsDelivered | 20 |
Review object (inside reviews):
Sample shape: values are illustrative placeholders, not from a live record.
{"reviewId": "B500000000","reviewUrl": "https://example.com/review/","reviewerName": "Sample reviewer","reviewerPostCount": 120,"rating": 3.5,"mealTime": "lunch","scoreFood": 3.5,"scoreService": null,"spendPerPerson": "JPY 1,000~JPY 1,999","visitMonth": "2026-10","visitCount": 1,"title": "Sample title","text": "Sample review text","textTruncated": false,"photos": []}
How to Use
- Pick a mode: search by keyword and area, or paste Tabelog links.
- Set your keywords, areas and filters, or paste the links.
- Choose Max items, whether to add restaurant details and how many reviews to attach.
- Run it and download the dataset as JSON, CSV or Excel.
Search ramen in Tokyo:
{"mode": "search","searchTerms": ["ramen"],"locations": ["tokyo"],"maxItems": 20}
Top rated sushi in two cities with details:
{"mode": "search","searchTerms": ["sushi"],"locations": ["tokyo", "osaka"],"sortBy": "rating","minReviews": 100,"fetchDetails": true,"maxItems": 50}
Search by plain area name:
{"mode": "search","searchTerms": ["yakiniku"],"locations": ["Shibuya", "Osaka"],"maxItems": 30}
Paste links of any shape:
{"mode": "url","urls": ["https://tabelog.com/en/tokyo/A1310/A131002/13011452/","https://tabelog.com/en/tokyo/rstLst/?sw=ramen","https://tabelog.com/en/tokyo/A1303/","https://tabelog.com/en/rstLst/ramen/"],"maxItems": 40,"maxReviews": 20}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("<ACTOR_ID>").call(run_input={"mode": "search", "searchTerms": ["ramen"], "locations": ["tokyo"], "maxItems": 20})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["rating"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('<ACTOR_ID>').call({ mode: 'search', searchTerms: ['ramen'], locations: ['tokyo'], maxItems: 20 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((i) => `${i.name} ${i.rating}`));
Tips
- Type areas as plain names: a prefecture (Tokyo, Osaka, Kyoto) or an area (Shibuya, Akihabara, Ginza, Sapporo, Nagoya). Area codes such as
A1310and paths such astokyo/A1310also work, andallsearches the whole country. A name that cannot be matched is named in the log and skipped, never guessed. - Reviews are read for every restaurant whose own page is read: with Add restaurant details on, or for a restaurant link pasted in URL mode. Set Max reviews per restaurant to 0 to skip them.
- Max items is the cap for the whole run and is shared across every keyword and area. Max pages does not cap the run.
- Leave search keywords empty to list every restaurant in an area.
Send results into your apps (MCP connectors)
Optionally send the scraped results into the apps you already use via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the run input. The connector receives a short summary per item; the full record stays in the dataset. Leave the field empty to skip.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | Search by keyword and area, or paste Tabelog links. |
searchTerms | array | ["ramen"] | Cuisine, dish or restaurant name. Empty lists every restaurant in the area. |
locations | array | ["Tokyo"] | Plain area names (Shibuya, Osaka), area codes or paths such as tokyo/A1310; all for the whole country. |
sortBy | string | ranking | Tabelog ranking, highest rating or most reviews. Most reviews orders the first 10 list pages (about 200 restaurants) of each search. |
minRating | number | 0 | Keep restaurants rated at least this value. |
minReviews | integer | 0 | Keep restaurants with at least this many reviews. |
smoking | string | any | Any, non smoking, designated area, smoking allowed or heated tobacco only. |
reservableOnly | boolean | false | Keep only restaurants that take online reservations. |
urls | array | five sample links | Restaurant, review, menu or photo pages, search lists, area pages and cuisine lists. Filter fields are ignored. |
fetchDetails | boolean | false | Add address, postal code, coordinates, phone, business hours, payment methods, seats and more, plus reviews. |
maxReviews | integer | 20 | Newest reviews attached to each restaurant whose page is read. 0 skips reviews. |
fullReviewText | boolean | false | Open each cut-off review for its complete text. |
maxPages | integer | empty | Page limit per search. Does not cap the run. |
maxItems | integer | 20 | Maximum restaurants for the whole run. 0 means unlimited. |
proxy | object | Apify proxy | Proxy settings. |
resumeFromRunId | string | empty | Run or dataset id of an earlier run. Restaurants collected there are skipped. |
incrementalMode | boolean | false | Return only NEW, UPDATED and REAPPEARED restaurants on repeat runs. |
stateKey | string | empty | Name a monitoring campaign to keep its state stable. |
emitUnchanged | boolean | false | Also return restaurants that did not change. |
emitExpired | boolean | false | Also return restaurants no longer found after a complete scan. |
ignoreFieldsForChanges | array | empty | Field names whose changes alone do not mark a restaurant UPDATED. |
mcpConnectors | array | empty | Optional connectors to send results to. |
notionParentPageUrl | string | empty | Notion page under which item pages are created. |
maxNotifyListings | integer | 50 | Cap on items exported per connector. |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"recordType": "restaurant","restaurantId": "13000000","name": "Sample Ramen Shop","rank": 1,"rating": 3.6,"reviewCount": 500,"genre": "Ramen, Tsukemen (Dipping noodles)","station": "Sample Sta.","stationDistance": "250m","dinnerBudget": "- JPY 999","lunchBudget": "JPY 1,000 - JPY 1,999","closedDays": "Sunday, Public Holiday","smokingPolicy": "Non smoking","reservation": false,"detailsScraped": false,"scrapedAt": "2026-01-01T00:00:00Z"}
Plan Requirement
The actor runs on any Apify plan. Proxy usage is billed by Apify according to your plan.
Proxy
The default Apify proxy reads this site reliably and works on every plan that includes proxy access. Residential is recommended for the most reliable results on large or frequent runs. If a connection type is refused for your account, the run continues on a backup connection and logs a notice. Apify free plans do not include residential proxies, so some pages may be unavailable there; upgrade at https://apify.com/pricing or supply your own proxy URLs. Residential traffic is capped per run, after which the run continues on the standard connection.
FAQ
How much does a run cost?
You pay per restaurant returned, a detail event per restaurant whose own page is read, and a review event for each review delivered on those restaurants. Restaurants that are not returned, unchanged restaurants hidden by incremental mode and reviews that were not delivered are never charged. See the pricing tab for the current rates.
Is it legal to scrape Tabelog?
The actor reads publicly visible restaurant information. You are responsible for using the data in line with the site terms and the laws that apply to you.
Can I schedule runs?
Yes. Use Apify schedules to refresh a search daily or weekly.
Why are some budgets empty?
Restaurants that list no lunch or dinner budget return an empty value.
Why did a run fail?
A run fails only when no page could be read at all. Try again later or choose a different proxy group.
Can I use it with AI tools?
Yes. Use the MCP export or the Apify MCP server to hand results to your assistant.
🔗 More scrapers you might like
Pair this actor with these related scrapers from the same team:
| 🛒 Zomato Scraper Scrape restaurants and reviews from zomato.com. Get names, cuisines, ratings and votes... | 🧩 Resy Scraper Scrape Resy restaurants and live reservation availability by city or URL. Get bookable... |
| 🧩 OpenTable Reviews Scraper Scrape full OpenTable.com restaurant reviews by keyword, area, or restaurant profile... | 🛒 GrabFood Restaurant Scraper Scrape GrabFood restaurants across Southeast Asia, including SG, MY, TH, VN, PH, ID, KH... |
| 🛒 Wolt Scraper Scrape Wolt restaurants and full menus by city or URL. Extract 60+ fields including... | 🧩 Rakuten Ichiba Scraper Scrape Rakuten Ichiba (rakuten.co.jp) by keyword or URL. Extract JPY prices, discounts... |
💬 Support
- 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com.
- ⭐ Enjoying it? A quick review on the actor page helps other users find it.