
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape Tabelog restaurants by area, genre and keyword, or from URLs: rating, review count, budget, address, hours, phone, genres, coordinates and reviews.
Scrape restaurants from Tabelog (食べログ), Japan's biggest restaurant guide, by keyword, prefecture and genre, or straight from restaurant, list and ranking URLs. Every restaurant comes with its Tabelog rating, review count, dinner and lunch budget, address, coordinates, nearest station, opening hours, closed days, phone, genres, seats, payment methods and the full info table. Add reviews to get each review as a row with ratings, spend, visit date and the full text. No login needed.
info object.ラーメン) and pick an area, and/or paste Tabelog URLs (restaurants, area or genre lists, rankings, review pages).| Field | What it does |
|---|---|
searchKeywords | Keywords, one per line (ラーメン, 寿司 銀座). |
startUrls | Tabelog restaurant, list (/rstLst/), ranking or review (/dtlrvwlst/) URLs. |
area | Prefecture for keyword searches (tokyo, osaka, kyoto, ...). With nothing else set, lists that area. |
maxResults | Max restaurants per keyword / list URL (0 = all, up to Tabelog's 1,200 per list). |
genre | Genre slug from Tabelog list URLs, such as ramen, sushi, yakiniku, izakaya. |
sort | default, rating, reviews, newest. |
includeReviews / maxReviewsPerRestaurant / reviewSort | Save reviews as rows; how many and in which order. |
fullReviewText | Open shortened reviews for their full text (on by default). |
language | ja (default) or en for tabelog.com/en pages. |
proxyConfiguration | Residential proxies in Japan by default (Tabelog shows its Japanese pages to Japanese visitors). |
{
"searchKeywords": ["ラーメン"],
"area": "tokyo",
"maxResults": 50,
"sort": "rating",
"startUrls": ["https://tabelog.com/osaka/A2701/rstLst/sushi/"],
"includeReviews": true,
"maxReviewsPerRestaurant": 10
}
Restaurant rows (type: "restaurant") and, with reviews on, review rows (type: "review").
| Restaurant field | Description |
|---|---|
id, url, name | Tabelog restaurant ID, page and name |
rating, reviewCount, saveCount | Tabelog score, number of reviews, number of saves |
genre, genres | Genres |
budgetDinner, budgetLunch, reviewBudgetDinner, reviewBudgetLunch, priceRange | Budgets set by the restaurant and from reviews |
address, postalCode, prefecture, latitude, longitude, nearestStation, access | Location |
businessHours, closedDays | Opening hours and closed days |
phone, phoneReservation, reservation, homepage, officialAccounts | Contact |
paymentMethods, serviceCharge, seats, privateRoom, charterReservation, smokingPolicy, parking, spaceFacilities, drinks, cuisineNotes, occasions, services, childPolicy, openingDate, remarks, awards | Restaurant details |
photoUrl, info | Main photo and every info-table row |
keyword, searchUrl, position | Where it was found |
| Review field | Description |
|---|---|
restaurantId, restaurantName, restaurantUrl, restaurantRating, restaurantGenre, restaurantAddress | The restaurant |
reviewId, reviewUrl, reviewerName, reviewerUrl | Review and reviewer |
rating, mealType, ratings, ratingDetails | Scores (per meal and per category) |
priceRange, visitDate, visitCount | Spend per person and visit |
reviewTitle, reviewText, fullText, photos | Content |
Example (shortened, sample values):
[
{
"type": "restaurant",
"id": "13000000",
"url": "https://tabelog.com/tokyo/A1311/A131102/13000000/",
"name": "浅草 サンプル食堂",
"rating": 3.47,
"reviewCount": 570,
"genre": "海鮮、居酒屋、鍋",
"budgetDinner": "¥5,000~¥5,999",
"budgetLunch": "~¥999",
"address": "東京都台東区寿2-2-7",
"latitude": 35.70906,
"longitude": 139.79064,
"nearestStation": "田原町駅",
"businessHours": "月・火・水・木・金・土\n11:30 - 14:00\n17:00 - 23:00\n日・祝日\n定休日",
"closedDays": "日曜日、祝日",
"phone": "03-0000-0000",
"reservation": "予約可",
"seats": "170席",
"smokingPolicy": "全席禁煙",
"keyword": "海鮮",
"position": 1
},
{
"type": "review",
"restaurantName": "浅草 サンプル食堂",
"restaurantRating": 3.47,
"reviewerName": "サンプルさん",
"rating": 3.8,
"mealType": "lunch",
"ratingDetails": {"料理・味": 4.1, "サービス": 3.5, "雰囲気": 3.8, "CP": 4.2, "酒・ドリンク": 3.6},
"priceRange": "~¥999",
"visitDate": "2026/07",
"reviewTitle": "コスパ抜群のまぐろ定食",
"reviewText": "駅から徒歩5分ほどの魚料理のお店でランチをいただきました。…",
"fullText": true
}
]
$2.50 per 1,000 results: each restaurant and each review is one result ($0.0025). Platform usage (compute and Japanese residential proxy traffic) is added on top: about $0.10 per 1,000 restaurants, and a similar amount per 1,000 reviews with full text.
Example: 1,000 restaurants cost about $2.60 in total. Cap any run with the maximum total charge setting, and the run stops cleanly when the cap is reached.
Is it legal to scrape Tabelog? The scraper reads public pages that anyone can open without logging in. Make sure your use of the data follows Tabelog's terms and the law where you live, especially for reviewer names.
Do I need an account or my own proxy? No. There is no login. Tabelog shows its Japanese site to visitors in Japan, so the run uses the platform's Japanese residential proxies by default.
How many restaurants can I get? Tabelog lists at most 1,200 restaurants per search or list (60 pages of 20). Split big jobs by area or genre, or paste several list URLs.
Why is a field empty?
Restaurants fill in different parts of their info table. Every row that exists is also in the info object.
Japanese or English?
Japanese by default (the most complete data). Set language to en for the English pages with romanized names and translated reviews. Searches always run on the Japanese site.
Can I schedule it or use the API? Yes. Schedule runs in the console, or start them and read the dataset through the API.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchKeywordsarrayOptionalSearch keywords
Search terms for Tabelog (食べログ), one per line: a dish, cuisine, restaurant name or place, best in Japanese (for example "ラーメン", "寿司 銀座" or "焼肉"). Each keyword is a separate search, limited to the area and genre below.
startUrlsarrayOptionalTabelog URLs
Any mix of tabelog.com URLs: restaurant pages (tabelog.com/tokyo/A1311/A131102/13003699/), search and area or genre list pages (tabelog.com/tokyo/A1301/rstLst/sushi/, ...?sk=...), ranking pages, and review pages (…/dtlrvwlst/, which save that restaurant's reviews). /en/ URLs work too.
areaenumOptionalArea (prefecture)
Limit keyword searches to one prefecture. With no keywords and no URLs, the scraper lists this area's restaurants.
maxResultsintegerOptionaldefault 20Max restaurants per search
Maximum number of restaurants to save for each keyword or list URL. 0 means no limit (Tabelog lists at most 1,200 restaurants per search; add an area or genre for more).
genrestringOptionalGenre
Optional Tabelog genre slug from list URLs, for example ramen, sushi, yakiniku, izakaya, italian, french, chinese, curry, cafe, soba, udon, tonkatsu, tempura, yakitori, unagi or okonomiyaki.
sortenumOptionalSort restaurants by
Order of search results.
includeReviewsbooleanOptionaldefault falseInclude reviews
Also save each restaurant's reviews as separate rows (reviewer, rating per meal, rating details, price range, visit date, title, full text, photos), with the restaurant's name, URL and rating on every row. Each review is charged as a review result.
maxReviewsPerRestaurantintegerOptionaldefault 20Max reviews per restaurant
0 means all (Tabelog shows up to about 1,200 reviews per restaurant).
fullReviewTextbooleanOptionaldefault trueFull review text
Review lists cut long reviews short. With this on, the scraper opens each shortened review to save its full text (one extra page per review, no extra charge). Turn off for faster, cheaper runs with the first ~150 characters.
reviewSortenumOptionalReview order
Which reviews come first.
languageenumOptionalLanguage
Japanese pages (default) keep names, genres, hours and reviews in the original Japanese and have the most fields. English pages (tabelog.com/en) give romanized names and translated text. Searches always run on the Japanese site.
maxConcurrencyintegerOptionaldefault 6Max concurrency
How many pages are loaded in parallel.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Tabelog serves its Japanese pages only to Japanese visitors, so residential proxies pinned to Japan are the default.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| photoUrl | any | Photo |
| name | any | Restaurant |
| url | any | URL |
| rating | any | Rating |
| reviewCount | any | Reviews |
| genre | any | Genre |
| budgetDinner | any | Dinner budget |
| budgetLunch | any | Lunch budget |
| address | any | Address |
| nearestStation | any | Station |
| phone | any | Phone |
| businessHours | any | Hours |
| closedDays | any | Closed |
| latitude | any | Lat |
| longitude | any | Lng |
| keyword | any | Keyword |
| position | any | Position |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Restaurant | One Tabelog restaurant with its details saved to the dataset | $0.0025 |
| Review | One Tabelog review saved to the dataset | $0.0025 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/tabelog-scraper').call({
"searchKeywords": [
"ラーメン"
],
"area": "tokyo",
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
],
"scrapelyProxyCountry": "JP"
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/tabelog-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/tabelog-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Tabelog restaurants matching a keyword in Tokyo.
Restaurants with up to 5 reviews each.
Kyoto restaurants from the English site with reviews.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.