Tabelog Restaurant Scraper avatar

Tabelog Restaurant Scraper

Pricing

from $1.40 / 1,000 venue-scrapeds

Go to Apify Store
Tabelog Restaurant Scraper

Tabelog Restaurant Scraper

Scrape full Tabelog (食べログ) restaurant records by URL or id, in English, Korean, Chinese or Thai. Just add restaurant URLs or ids and get score, Japanese name and address, opening hours with last orders, budgets, seats, payment, reservation policy, awards, coordinates, photos and menus.

Pricing

from $1.40 / 1,000 venue-scrapeds

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Categories

Share

What is Tabelog Restaurant Scraper?

Tabelog Restaurant Scraper gets you the full record Tabelog (食べログ) keeps on a restaurant: hours with last orders, closed days, seats, payment methods, smoking, private rooms, budgets, coordinates, awards and, if you ask, the menu with prices. Give it a restaurant URL or a bare id and you get one row back, in English, Korean, Traditional or Simplified Chinese, or Thai. The restaurant's Japanese name and Japanese address are on the row whichever language you pick.

Tabelog is Japan's largest restaurant review site, and its information table is the most complete public record of how a Japanese restaurant operates.

Why this one:

  • You can trust a batch. 500 restaurants across eight cities returned 500 of 500, in 13 to 56 seconds.
  • Payment comes as answers, not prose. Cards, e-money and QR payments are each true, false or left empty where the restaurant says nothing, with the card brands listed. Checked on 15 restaurants in five languages, all 75 rows agreed with the restaurant's own Japanese payment line.
  • You'll know if the place has closed. A closed or suspended listing is flagged, with Tabelog's badge and notice, before you send anyone there.
  • Menus cost you only when there is one. Many restaurants publish none. You pay the $0.0005 menu fee when dishes actually come back.
  • $2.00 per 1,000 restaurants on the Free plan and $1.40 on Business, with no proxy to set up. An id Tabelog doesn't know costs nothing.

BonCross Verified means we tested this actor against the live site before release and kept the record:

  • 18 of 18 live checks on its inputs and filters passed on 8 October 2026
  • 17 restaurants run on 7 October 2026, plus one made-up id: 17 venues, 1 error row
  • Charges matched the rows: 1 start, 17 venues
  • An id Tabelog does not know gets an uncharged error row

What data do you get for each restaurant?

Restaurant name, Japanese name and Tabelog id🔗 Canonical restaurant URL
⭐ Tabelog score (and 5-point rating)Review count
🚦 Closed or suspended flag🍜 Genres
📍 Japanese address, postcode and coordinates🚉 Nearest station, walking minutes and distance
🕒 Opening hours with last orders📅 Closed days
💴 Dinner and lunch budget bands, with yen bounds📖 Menu items with prices, notes and descriptions
🪑 Seat count and seating textPrivate room and private hire
💳 Cards, e-money and QR payments, with card brands🚭 Smoking policy
🅿️ Parking📞 Phone number
🌐 Website🏆 百名店 and Tabelog Award status
📸 Photo URLsRemarks
Drinks, food and service notesChildren, dress code and occasions
The full information table, as publishedOpening date

What people use it for

  • Checking opening hours, closed days and reservation policy before publishing a restaurant recommendation
  • Sweeping a saved venue list for closed and suspended listings
  • Building Japan dining datasets with coordinates, budgets and seating for travel apps
  • Telling travellers which places take cards and which allow smoking
  • Collecting menu prices for a neighbourhood or a genre
  • Filling in the restaurants that Tabelog Search Scraper found by area and genre
  • Serving restaurant records to Korean, Chinese and Thai speaking travellers in their own language

How to scrape Tabelog restaurant details

  1. Create an Apify account. It's free and takes an email address.
  2. Open Tabelog Restaurant Scraper and paste your restaurants, one per line: Tabelog URLs or ids of 7 or 8 digits.
  3. Choose the language. Switch the menu on if you need dish prices, and say how many photos to keep.
  4. Press Start. Twenty restaurants with menus took 5 seconds in testing.
  5. Open the Output tab and download the records as Excel, CSV, JSON, XML or HTML.

⬇️ Input

Paste Tabelog URLs or bare restaurant ids (7 or 8 digits) into the restaurant list. Any Tabelog link for a restaurant works, and you get the canonical URL back in the output.

Got a long list in a file or a Google Sheet? Put it in Start URLs, which loads links in bulk. You can use both at once and they're combined.

You get one row for each restaurant you give. The only cap is "Maximum restaurants for the whole run", which is 0 (no limit) unless you set it.

Full records with menus

{
"restaurants": [
"https://tabelog.com/tokyo/A1301/A130101/13002457/",
"13300481",
"26030760"
],
"includeMenu": true,
"maxPhotos": 10
}

Check whether listings are still trading, in Korean

{
"restaurants": ["13198142", "13021939", "13002457"],
"language": "kr",
"includeInfoTable": false,
"maxPhotos": 0
}

A batch with the raw information table kept

{
"restaurants": ["13228602", "13002457", "13300481", "13198142"],
"includeMenu": false,
"includeInfoTable": true,
"maxConcurrency": 3
}
FieldNotes
restaurantsTabelog URLs or restaurant ids (7 or 8 digits).
startUrlsTabelog page addresses, pasted or loaded in bulk from a file, a Google Sheet or a remote list. Combined with restaurants.
languageen (default), kr, tw (Traditional Chinese), cn (Simplified Chinese) or th. Sets the language of the record's text. The Japanese name (nameJa) and the Japanese address come back in every language.
maxItemsRun-wide ceiling on restaurants. 0 (default) means no limit.
includeMenuOff by default. Fetch the menu page and return dish names with prices, notes and descriptions. Charged only when items come back.
includeInfoTableKeep the raw information table alongside the parsed fields. On by default.
maxPhotosHow many photo URLs to keep, 10 by default and up to 20. Set 0 to skip them.
maxConcurrency, delayMsParallel requests (1 to 32, default 32) and an optional pause before each call (default 0).

For developers

  • restaurants and startUrls are merged into one list, and maxItems stops the run once that many restaurants have been returned.
  • includeMenu costs one extra page per restaurant. venue-menu is charged only when that page has items. A menu page that couldn't be read sets menuError on the row, and you aren't charged for it.
  • includeInfoTable: false drops infoTable and infoTableOrder from the row. The parsed columns are unaffected.
  • maxConcurrency is how many requests run at once (default 32). delayMs pauses before each call (default 0). The defaults are what the speed figures below were measured at.
  • Rows are written in the order of your input list.
  • If Apify restarts a run part-way, it picks up where it stopped. Nothing is written or charged twice.

⬆️ Output

Each restaurant is one record. Here's a real one in English, with the raw information table left out for length:

{
"input": "13270211",
"nameJa": "美会",
"serviceChargeJa": null,
"id": "13270211",
"url": "https://tabelog.com/en/tokyo/A1307/A130701/13270211/",
"name": "Bia",
"nameFull": "Bia",
"alias": "(美会)",
"title": "Bia Reservation - Nogizaka/Innovative | Tabelog",
"status": {
"badge": null,
"live": true,
"gloss": null,
"titlePrefix": null,
"notice": null
},
"score": 4.33,
"rating": 4.33,
"ratingScale": 5,
"reviewCount": 508,
"ldScore": 4.33,
"ldReviewCount": 508,
"genres": [
"Innovative",
"Japanese Cuisine",
"Thai"
],
"genreText": "Innovative, Japanese Cuisine, Thai",
"prefecture": "Tokyo",
"area": "Roppongi",
"subArea": "Roppongi, Nogizaka, Nishi-Azabu",
"nearestStation": "Nogizaka Sta.",
"address": "東京都港区六本木7-3-21 来山ビル 2F",
"addressParts": {
"postcode": "1060032",
"region": "Tokyo",
"locality": "Roppongi Minato Tokyo",
"street": null
},
"lat": 35.66536681871384,
"lng": 139.72794968425114,
"access": "4 minutes walk from Tokyo Metro Nogizaka Station\n5 minutes walk from Tokyo Metro Roppongi Station\n205 meters from Nogizaka.",
"walkMinutes": 4,
"stationDistanceM": 205,
"phone": "03-6804-2489",
"reservation": "Reservation only\n…",
"budgetDinner": "JPY 40,000 - JPY 49,999",
"budgetLunch": null,
"budgetDinnerMin": 40000,
"budgetDinnerMax": 49999,
"budgetLunchMin": null,
"budgetLunchMax": null,
"budgetText": "JPY 40,000 - JPY 49,999",
"budgetFromReviews": "JPY 40,000 - JPY 49,999",
"priceRange": "JPY 40,000~JPY 49,999",
"hours": {
"services": [],
"notices": [
"■Closed on\nSundays and Public Holidays\n【Two seating times available】\nFirst seating starts at 17:30\nSecond seating starts at 20:30"
],
"text": "■Closed on\nSundays and Public Holidays\n【Two seating times available】\nFirst seating starts at 17:30\nSecond seating starts at 20:30"
},
"closedDays": "Sundays and Public Holidays",
"payment": {
"text": "Credit card accepted\n(VISA, Master, JCB, AMEX, Diners)\nElectronic money not accepted\nQR code payments not accepted",
"cards": true,
"cardBrands": [
"VISA",
"Master",
"JCB",
"AMEX",
"Diners"
],
"eMoney": false,
"qrPay": false
},
"serviceCharge": null,
"seats": 15,
"seatsText": "15 seats",
"privateRoom": "Available\nFor 2 people, For 4 people, For 6 people, For 8 people",
"privateHire": "Available\nFor up to 20 people",
"smoking": "Non smoking",
"parking": "Unavailable\nCoin parking available nearby",
"space": "Stylish space, Relaxing space, Spacious seating, Couple seating, Counter seating, Sofa seating, Power outlets available, Free Wi-Fi available",
"drinks": "Sake (Nihonshu), Shochu (Japanese spirits), Wine, Particular about Sake (Nihonshu), Particular about Shochu (Japanese spirits), Particular about wine",
"food": "Particular about fish",
"occasions": null,
"services": "Parties over 2.5 hours, BYO drinks, Sommelier available",
"children": "Children welcome(Babies welcome, Preschoolers welcome, School-age children welcome), Strollers welcome\nOnly when a private room is available.",
"dressCode": null,
"homepage": null,
"openedOn": "2022.3.28",
"awards": [
"The Tabelog Award 2026 Silver winner",
"The Tabelog Award 2025 Silver winner",
"The Tabelog Award 2024 Silver winner",
"Selected for Tabelog Innovative/Creative Cuisine \"Tabelog 100\" 2025"
],
"isHyakumeiten": true,
"tabelogAward": "Tabelog Award 2026 Silver",
"remarks": "For the number of guests and any other requests, please contact us by phone.",
"moved": null,
"photos": [
"https://tblg.k-img.com/resize/660x370c/restaurant/images/Rvw/277439/4d3e957fbdfa37a44062d6bd4cd1f822.jpg?token=b2a4d7c&api=v2",
"…"
],
"scrapedAt": "2026-09-27T22:52:46.002Z"
}
ColumnMeaning
name, nameJaThe name in the chosen language, and the restaurant's Japanese name.
addressThe Japanese address, whatever the language. addressParts carries the postcode and the region in the chosen language.
walkMinutes, stationDistanceMThe first walking time the restaurant states, and the distance to the nearest station.
hoursservices (days, time and last order per sitting, where the restaurant lists them by day), notices (its own notes) and text (the whole cell).
closedDaysThe closed days, read from the restaurant's own hours notes.
paymentcards, eMoney and qrPay are true or false where the restaurant states them and null where it says nothing; cardBrands lists the brands.
awards, isHyakumeiten, tabelogAwardEvery 百名店 selection and Award listed, whether the restaurant has ever been a 百名店, and its latest Tabelog Award tier.
statuslive is false for a closed or suspended listing, with the badge and a note.
infoTable, infoTableOrderWith includeInfoTable on: the restaurant's whole information table as label → text (labels are the Japanese headings, whatever the language; the text is in the chosen language), and the labels in the order the page lists them. Absent when the option is off.

Switch the menu on and each row also has menu (items with name, price, priceNote, description and image) and menuCount. If Tabelog doesn't know a restaurant, you get a row with input, id and error.

How much does it cost?

EventFree planStarterScaleBusiness
actor-start, per run$0.002$0.002$0.002$0.002
venue-scraped, per restaurant returned$0.002$0.0018$0.0016$0.0014
venue-menu, per restaurant whose menu was fetched and had items$0.0005$0.00045$0.0004$0.00035

Enterprise plans pay the Business price.

The full record is $2.00 per 1,000 restaurants on the Free plan and $1.40 on Business. Nothing is added to that: no proxy to set up, no platform usage billed on top, and unknown ids are free.

  • 50 restaurants without menus: $0.002 + 50 × $0.002 = $0.102 ($0.072 on Business).
  • 200 restaurants with menus, of which 120 publish one: $0.002 + 200 × $0.002 + 120 × $0.0005 = $0.462 ($0.324 on Business).

Free-plan accounts on Apify get $5 of credits a month. Here that's about 49 runs of 50 restaurants, close to 2,450 full records, before you pay anything.

How fast is it, and how complete are the records?

RunResult
20 restaurants in Tokyo and Kyoto, menus on20 of 20 returned, 7 menus with 63 items, 5 seconds
1 restaurant3 seconds
500 restaurants across Tokyo, Kyoto, Osaka, Sapporo, Fukuoka, Nagoya, Yokohama and Kobe500 of 500, 13 to 56 seconds depending on the server's load
15 restaurants in Tokyo, Kyoto and Kobe, in each of the five languages15 of 15 in all five, the Japanese name and address identical across them

Timed on Apify at the default settings on 2 and 3 October 2026. You can put as many restaurants in one run as you like, and an unknown id gives you a free error row without stopping the rest.

A column is empty only where the restaurant publishes nothing for it. Across 15 restaurants in Tokyo, Kyoto and Kobe:

  • All 15: name, Japanese name, score, address, coordinates, phone, access, seats, smoking, reservation policy, payment and photos
  • 14: dinner budget, parking and awards
  • 13: space and drinks
  • 11: opening date
  • 10: walking minutes and closed days
  • 6: lunch budget, food, services, website, remarks and service charge
  • 5: children

Use it from a sheet, your own code or an AI agent

A venue list goes stale. To keep yours current, put the ids in a saved task, add an Apify Schedule, and let the Google Sheets integration or a webhook pass each refreshed batch to wherever the list lives. Closures, changed hours and new awards show up in the next run.

Developers can run it and read the records in one call for short lists: POST https://api.apify.com/v2/acts/boncross~tabelog-restaurant/run-sync-get-dataset-items, with the input JSON as the body. The apify-client packages on NPM and PyPI cover longer runs.

For an AI agent, add the Apify MCP server (mcp.apify.com) to Claude, ChatGPT, Cursor or another MCP client. The agent can then check whether a restaurant is open on a Wednesday and takes cards before it recommends the place.

FAQ

What can I pass as a restaurant?

A Tabelog URL in any form, or the bare id (7 digits in Hokkaido, 8 elsewhere). Both lead to the same record, and the canonical URL is on the row.

How do I find restaurant ids in the first place?

You can't look a restaurant up by name here. Tabelog Search Scraper lists restaurants by area and genre and returns their ids. If you already have Tabelog URLs, paste those.

How do I tell that a restaurant has closed?

Look at status. live is false on a closed or suspended listing, and the badge and notice say which. For a quick sweep of a saved list, turn photos and the information table off, as in the second input example.

Do I need proxies or a Tabelog account?

You need neither. There's no proxy to set up and no login is involved.

Are the opening hours parsed or raw text?

You get both. hours.services has the days, time and last order of each sitting where the restaurant lists them that way, and hours.text keeps the whole cell. A day-by-day week built from the Japanese page is in Tabelog Japanese Detail Add-on.

Why is closedDays or walkMinutes empty on some rows?

Both are read from the restaurant's own notes. Where a restaurant words them without naming a day or a time, the column stays empty. Thai translations name the closed days least consistently.

What do I pay for a menu that isn't there?

Nothing. Many restaurants publish no menu on Tabelog, and the menu fee applies only when items come back. If the menu page couldn't be read at all, the row says so in menuError. It doesn't pass as an empty menu.

Known limits

  • The record's text is Tabelog's own translation into the language you chose. The Japanese name and the Japanese address are original. The restaurant's own Japanese wording (its remarks, PR text, the notes on its hours, its closed days and a day-by-day week) is in Tabelog Japanese Detail Add-on, which joins on id.
  • You get the photo URLs the page shows, up to 20. Tabelog doesn't publish the total number of photos there.
  • Reviews aren't included. Tabelog Reviews Scraper returns them with sub-scores and visit dates.

The actor reads only pages Tabelog serves to any logged-out visitor. Web scraping of publicly available data is generally legal. How you use the records is up to you, and that includes complying with Tabelog's terms and the law that applies to you.

More from BonCross

Your feedback

If a record doesn't match what the restaurant's Tabelog page says, we want to know. Open an issue on the Issues tab in Apify Console with the restaurant id. BonCross reads each one and answers there.