Tabelog Restaurant List Scraper avatar

Tabelog Restaurant List Scraper

Pricing

from $0.70 / 1,000 restaurant scrapeds

Go to Apify Store
Tabelog Restaurant List Scraper

Tabelog Restaurant List Scraper

Scrape a Tabelog area restaurant list - new openings, ranking or most-reviewed - and get one flat row per restaurant: id, name, rating, review and save counts, genres, nearest station and distance, dinner/lunch budget bands, holiday, opening date and thumbnail.

Pricing

from $0.70 / 1,000 restaurant scrapeds

Rating

0.0

(0)

Developer

Superslow Sloth

Superslow Sloth

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape a Tabelog area restaurant list - Japan's dominant restaurant review site - and get one flat row per restaurant. Built for a new-openings / rating feed per area: point it at any area, pick a sort, and it walks every page Tabelog will hand out.

Input

Give it one or more Tabelog area URLs - a plain area page (https://tabelog.com/tokyo/A1301/), a prefecture page, or an already-built list URL in any sort or page. Every URL is normalised to that area's rstLst listing and walked from page 1; the Sort order input controls the sort, not whatever the pasted URL happened to be on.

Sort orderTabelog's own labelWhat it changes
new_openings (default)ニューオープンThe only sort with an opening date on the card, and the one where rating is almost always null - a restaurant that just opened has no reviews to average yet.
ratingランキングSorted by score; rating is populated.
review_count口コミが多い順Sorted by review count.

What one row contains

FieldNotes
restaurant_id, urlTabelog's own numeric id and its detail page.
nameThe restaurant name, as printed.
rating1.0-5.0. Null, never 0.0, until Tabelog has scored the restaurant - which needs a handful of reviews, so the freshest rows on the new-openings sort are reliably null while an older row in that same feed can already carry one (measured: page 1 of a new-openings feed was 0/20 rated, page 2 was 7/20).
review_count, save_count口コミ人数 (review count) and 保存人数 (bookmark count). review_count is null when the card prints "-" (zero reviews), not a hidden number.
genresEvery genre tag on the card, in Tabelog's own order - the first is its primary genre.
station, station_distance_m, area_station_textNearest station and distance in metres, plus the raw text ("新橋駅 348m"). A restaurant with no nearby station is tagged by its ward instead ("中央区") and carries no distance.
dinner_budget, dinner_budget_min_yen, dinner_budget_max_yenThe dinner budget band, Tabelog's own text and both ends parsed to yen. One end is null on an open-ended band ("~¥999" has no minimum; "¥100,000~" has no maximum) - that is Tabelog's own text, not a parsing gap.
lunch_budget, lunch_budget_min_yen, lunch_budget_max_yenSame shape, for lunch.
holiday_text定休日. Null when Tabelog has nothing to report - whether the card omits the line outright or prints "-" for it, both mean the same thing.
open_date, open_date_textThe new-openings sort's own opening date, as ISO (2026-10-23) and as Tabelog printed it (2026年10月23日オープン). Both null on every other sort, which does not print one at all.
thumbnail_urlThe card's photo. Null when the card carries no photo markup at all; set to Tabelog's own shared "no photo" image when that is genuinely what the card shows.
list_urlThe exact rstLst URL this row was read from - which area, sort and page - so a dataset built from several areas or sorts splits back apart.

Paging

Tabelog serves exactly 20 restaurants per page. This actor stops an area either when a page returns fewer than 20 (the last page) or when Tabelog answers with its own "no matching restaurants" page - which it also uses, confusingly, once a legitimate area or genre filter runs out of rows before page 60. Tabelog refuses to serve page 61 or beyond for any single area (measured: HTTP 400, "60ページ以降は表示できません") regardless of how many restaurants it claims to have, so no area here is ever walked past 1,200 rows. Max restaurants is a budget across every area URL supplied, not per area.

Proxy

Residential, pinned to Japan, is required. Measured 2026-09-28 (pick-phase probe, five areas - Ginza, Shibuya, Osaka, Kyoto, and the new-openings sort itself): a datacenter address and an unpinned residential address were both answered with Cloudflare's "Just a moment" challenge on every attempt; pinning apifyProxyGroups: ["RESIDENTIAL"] and apifyProxyCountry: "JP" cleared it 6/6. That pin is the default here.

A 30-minute durability re-check was scheduled for the same measurement (the lesson from a different actor in this family: Yelp's DataDome served three clean 200s in five minutes, then blocked 126 of 126 across nine fingerprints half an hour later - an early run of successes is not evidence a route holds). That re-check's result was never posted, so treat the 6/6 figure above as measured at one point in time, not confirmed durable. If runs start failing on a Cloudflare challenge that used to succeed, this is the first place to look, not a sign the parser broke - the contract test for this actor watches for exactly that shape and fails loudly on it rather than reporting an empty success.

Billing

Pay per event, all-in: $0.0007 per restaurant row written, plus $0.002 actor-start per run (charged only after your input parses, so a run that fails on bad input costs nothing). Platform usage - compute, dataset storage, the residential proxy - is included in that price; you are never billed for it on top, and nothing here is metered and passed through.

For comparison, on the Apify Store: piquno's Tabelog actor leads the category on runs at $0.0025 per result, and jungle_synthesizer's lists $0.001 per result. This actor's $0.0007 per restaurant is 30% under the cheaper of the two ($0.001) - undercutting only the runs leader would still leave it the most expensive listing next to jungle_synthesizer.