Tabelog Reviews Scraper
Pricing
from $1.44 / 1,000 restaurant delivereds
Tabelog Reviews Scraper
Export public English Tabelog restaurant ratings, review counts and source-attributed review excerpts for Japanese hospitality research. Truncated excerpts and missing fields are marked honestly.
Pricing
from $1.44 / 1,000 restaurant delivereds
Rating
0.0
(0)
Developer
Automation Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
Export Tabelog reviews as source-attributed public English excerpts nested inside restaurant records. Refresh restaurant ratings and review counts for Japanese hospitality research, location comparison and reputation analysis. Start with an English Tabelog listing URL or a specific restaurant URL.
This Actor reads public pages without login. It returns one row per restaurant, with up to 20 public review-list excerpts included. It does not promise full review text or exhaustive review history.
What does it do?
- Follows English restaurant listing pagination until your restaurant limit or source exhaustion.
- Extracts the restaurant name, canonical URL, displayed rating, review count and address when present.
- Includes public review titles, excerpts, reviewer display names, ratings, visit-date labels and source links.
- Marks truncated excerpts and preserves missing optional values as null.
- Deduplicates restaurants across all starting URLs in a run.
Who is it for?
Hospitality analysts can compare venue ratings and review totals across supplied areas. Reputation researchers can sample public comments with traceable sources. Travel-data teams can refresh a curated set of restaurant URLs. Repeated runs give timestamped snapshots that your own spreadsheet or database can compare; the Actor does not maintain history or send alerts.
Why use it?
Each record links back to the original restaurant and review surface. Aggregate review counts remain separate from the number of excerpts returned, preventing a small sample from being mistaken for complete review coverage. Public English pages may translate review text; the Actor preserves the displayed excerpt rather than generating a translation or summary.
Getting started
- Open an English Tabelog listing such as
https://tabelog.com/en/tokyo/. - Copy its URL into English listing or restaurant URLs.
- Choose the global restaurant limit and excerpts per restaurant.
- Run the Actor and inspect the default dataset.
- Export JSON for nested reviews, or CSV for restaurant-level fields.
{"startUrls": [{"url": "https://tabelog.com/en/tokyo/"}],"maxItems": 10,"maxReviews": 3}
Inputs
| Input | Default | Behavior |
|---|---|---|
startUrls | Required | 1–50 public HTTPS tabelog.com/en/ listing or restaurant URLs. |
maxItems | 10 | Global maximum unique restaurant rows, 1–500. No zero/unlimited mode. |
maxReviews | 3 | Per-restaurant public excerpts, 0–20, first review page only. Zero skips reviews. |
URL-encoded listing filters are passed to Tabelog. The Actor does not apply local keyword matching or verify the source's filter semantics. Explicit restaurant URLs return that restaurant rather than applying listing filters. English review-list URLs normalize to their restaurant. Individual review pages, Japanese URLs and other restaurant subpages are rejected.
Output fields
| Field | Meaning |
|---|---|
restaurantId, name, url | Restaurant identity and source link. |
rating | Displayed aggregate rating, or null. |
reviewCount | Restaurant header total, not collected excerpt count. |
address | Public address, often Japanese; null when absent. |
reviews | Nested public excerpt records. |
reviewsReturned | Number of included excerpts. |
reviewSourceUrl | Review-list source, null when review extraction is disabled. |
language | English source surface (en), not a guarantee every value is English. |
scrapedAt | ISO extraction timestamp. |
Review fields: reviewId, sourceUrl, reviewer, title, rating, visitDateText, excerpt, isTruncated, and textScope. Visit dates remain displayed text, not inferred posting dates. A card with multiple meal ratings contributes its first displayed meal rating. Missing fields are null.
Example restaurant record
A local extraction of the public restaurant below returned rating 3.47 and header review count 532. Values can change; the abbreviated illustration below omits review personal data.
{"restaurantId": "13294162","name": "Sushi Dokoro Isseki Sanchou","url": "https://tabelog.com/en/tokyo/A1301/A130103/13294162/","rating": 3.47,"reviewCount": 532,"reviewsReturned": 3,"reviewSourceUrl": "https://tabelog.com/en/tokyo/A1301/A130103/13294162/dtlrvwlst/","language": "en"}
How much does it cost to extract Tabelog restaurant reviews?
Pay-per-event pricing charges a one-time start event and one item event for each restaurant delivered. Nested excerpts have no separate event charge. Rejected or duplicate restaurants are not charged as items. Failed runs can retain partial results and their corresponding charges; the start fee applies once work starts.
The start event is $0.001 per run. Restaurant prices follow your qualifying Apify Store spend tier:
| Tier | Per restaurant |
|---|---|
| FREE | $0.00276 |
| BRONZE | $0.0024 |
| SILVER | $0.001872 |
| GOLD / PLATINUM / DIAMOND | $0.00144 |
At BRONZE, 1 restaurant is about $0.0034, 10 restaurants $0.025, and 100 restaurants $0.241, including the start event. These are estimates, not guaranteed invoices. Apify spend tiers depend on qualifying monthly Store spend, not the number of rows in this Actor alone. Revenue and payout estimates can change through refunds, fraud, disputes, taxes, corrections and clawbacks.
Limits and completeness
Only the first public review-list page is read, up to 20 cards. Source View more controls and ellipsis endings set isTruncated; a false flag is not a guarantee of complete historic text. No full review pages, login-only records, reviewer profiles, images or videos are downloaded.
The source may show a different count of visits on review pages than the restaurant header review total. Neither implies complete coverage of collected excerpts. Restaurant pagination has a 100-page safety cap; reaching it fails explicitly rather than silently claiming completion. Ordering follows the source. There is no built-in trend calculation, sentiment model, alert service or historical backfill.
Reliability and troubleshooting
Direct HTTP is used with a 30-second request timeout and up to two transient retries. There is no automatic paid proxy fallback. A blocked page, unrecognized layout, invalid URL or exhausted upstream failure makes the run fail rather than returning a misleading successful empty dataset. Partial rows remain inspectable.
If access changes, reduce the scope and inspect the failure log. Do not assume an HTTP 200 or an empty dataset proves no restaurants exist. Start with a known restaurant to distinguish listing filters from source availability.
Integrations
Send restaurant rows to Google Sheets or a BI warehouse to compare timestamped snapshots by restaurantId. Process nested review arrays in your own JSON pipeline for a source-linked sample. Apify schedules can repeat the same input; your downstream system owns change comparison and alerting. Use webhooks to trigger an export only after successful runs, and label failed-run data partial.
API examples
Use an Apify token in your environment. Never hard-code a token in a shared script.
curl -X POST \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \'https://api.apify.com/v2/acts/automation-lab~tabelog-restaurant-listings-reviews/runs' \-d '{"startUrls":[{"url":"https://tabelog.com/en/tokyo/"}],"maxItems":10,"maxReviews":3}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/tabelog-restaurant-listings-reviews').call({startUrls: [{ url: 'https://tabelog.com/en/tokyo/' }], maxItems: 10, maxReviews: 3});if (run.status !== 'SUCCEEDED') throw new Error(`Run ${run.id}: ${run.status}`);const { items } = await client.dataset(run.defaultDatasetId).listItems({ limit: 10 });console.log(items);
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/tabelog-restaurant-listings-reviews').call(run_input={'startUrls': [{'url': 'https://tabelog.com/en/tokyo/'}], 'maxItems': 10, 'maxReviews': 3})if run['status'] != 'SUCCEEDED':raise RuntimeError(f"Run {run['id']}: {run['status']}")print(client.dataset(run['defaultDatasetId']).list_items(limit=10).items)
MCP setup
For Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/tabelog-restaurant-listings-reviews"
For Claude Desktop, Cursor, or VS Code, use the equivalent HTTP MCP configuration supported by your client:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/tabelog-restaurant-listings-reviews"}}}
Authenticate using your client's supported Apify flow. Discover actual tool names and argument schemas with scoped tools/list; the selected Actor also exposes run/storage helper tools. Example prompt: “Extract two restaurants from this English Tabelog listing, include three public excerpts each, and show the source links.”
Start once and retain the run ID. If nonterminal, check that same run with bounded backoff (2, 4, 8 seconds, capped at 10) and a 120-second consumer deadline; never restart merely to poll. Set the client timeout above the chosen server wait plus transport margin. At the deadline report the run as pending. After success, read dataset pages of 20 with explicit offset and fields, at most 100 source rows and 64 KiB of serialized result content admitted to model context, whichever comes first. Enforce the byte limit host-side before injecting results; oversized records must be omitted or summarized with disclosure. If your client cannot enforce it, do not claim a hard byte bound. Keep full exports outside model context. Report continuation offsets and partial status when a budget is reached. No universal token-saving claim is made.
Legality, responsible use and affiliation
This is an independent tool, not affiliated with, endorsed by or certified by Tabelog or Kakaku.com. Tabelog is named to identify the source. Apify's standard user terms apply. Public availability is not permission for every reuse: respect source terms, applicable law, privacy expectations and copyright. Avoid harassment, identity enrichment and republishing personal review content without an appropriate basis.
Data handling and dependencies
Runtime extraction uses no AI model and sends no user data to an AI provider. English text may already be translated by Tabelog. Apify hosts run input, results and logs under your account's storage/retention settings; the Actor creates no separate durable cache or history. Delete unneeded runs and storage through Apify controls. Public reviewer names and text can be personal data; collect only what your research requires.
Failed operations send sanitized diagnostic input, exceptions and actor/build/run IDs to our private GlitchTip service for repair; secret fields and URL queries are removed and reports are retained for 30 days. Apify and this private diagnostic service are the processing recipients. No external paid scraping API, proxy or model is required; operating costs are covered by the documented Actor price. Logs report restaurant IDs and counts, not review text or reviewer names.
FAQ
Does this collect all reviews? No. It samples the first public review page, with explicit per-restaurant limits and truncation flags.
Can I supply Japanese URLs? No. Use https://tabelog.com/en/ pages.
Why are some fields null? The source does not always expose titles, ratings or addresses. No missing values are invented.
Does it monitor changes automatically? No. You may schedule runs and compare their snapshots downstream.
How do I get help? Open an issue through the Actor's Apify support channel with the run link and a non-sensitive reproduction input.
Related Actors
For a separate restaurant-discovery workflow, see Foursquare Locations Scraper. It uses a different source and does not replace Tabelog review evidence.