{
  "openapi": "3.0.1",
  "info": {
    "title": "Tabelog Search Scraper",
    "description": "Scrape Tabelog (食べログ) restaurant rankings by area and genre. Just add English or Japanese area names, Tabelog codes or URLs and get score, review count, rank, budgets, nearest station, closed days, 百名店 and Award badges and the card image. Export as JSON, CSV or Excel. $2.00 per 1,000 restaurants.",
    "version": "1.0",
    "x-build-id": "ZOMAsh87yUcroqY1b"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/boncross~tabelog-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-boncross-tabelog-search",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/boncross~tabelog-search/runs": {
      "post": {
        "operationId": "runs-sync-boncross-tabelog-search",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/boncross~tabelog-search/run-sync": {
      "post": {
        "operationId": "run-sync-boncross-tabelog-search",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "destinations"
        ],
        "properties": {
          "destinations": {
            "title": "Destinations",
            "type": "array",
            "description": "Areas to list. Use an English or Japanese area name (Ginza, 銀座, Shinjuku, Gion, Kyoto), a Tabelog area code such as tokyo/A1301/A130101, or a Tabelog area or listing URL. A prefecture on its own lists the whole prefecture. A pasted listing link (Japanese or English site) runs exactly as it is: its sort, conditions and starting page are kept.",
            "items": {
              "type": "string"
            }
          },
          "genre": {
            "title": "Genre",
            "type": "string",
            "description": "Optional Tabelog genre, as a slug (ramen, sushi, yakiniku, izakaya, french, italian, curry, tempura, udon, soba, unagi, yakitori, cafe, sweets, bar) or a Japanese name (ラーメン, 寿司). A genre inside a pasted listing URL takes priority. Tabelog has no keyword search, so you cannot look up dishes or restaurant names here."
          },
          "language": {
            "title": "Language",
            "enum": [
              "ja",
              "en",
              "kr",
              "tw",
              "cn",
              "th"
            ],
            "type": "string",
            "description": "The language the listing is read in. English, Korean, Chinese and Thai return names, genres, areas and budgets in that language. Japanese returns the English listing plus each restaurant's Japanese name and Japanese address, which takes one extra page per restaurant and so runs slower. The same restaurants come back in every language.",
            "default": "ja"
          },
          "maxResultsPerDestination": {
            "title": "Max results per destination",
            "minimum": 1,
            "maximum": 1200,
            "type": "integer",
            "description": "How many restaurants to return per destination. Tabelog serves 20 per page and stops at 60 pages, so 1,200 is the ceiling.",
            "default": 100
          },
          "maxItems": {
            "title": "Maximum results for the whole run",
            "minimum": 0,
            "type": "integer",
            "description": "A run-wide ceiling across every target. The per-target limit above applies to each one separately, so ten targets at 50 each returns 500; set this to cap the total. Zero means no run-wide limit. Rows that report an input the actor could not resolve are not counted here and are never charged for.",
            "default": 0
          },
          "maxPages": {
            "title": "Max pages per destination",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "Optional hard cap on listing pages per destination. Leave at 0 and it follows the results cap.",
            "default": 0
          },
          "sort": {
            "title": "Sort",
            "enum": [
              "rating",
              "most_viewed",
              "bookable_soonest",
              "standard"
            ],
            "type": "string",
            "description": "rating orders by Tabelog score, highest first. most_viewed orders by how often travellers view the restaurant, and bookable_soonest puts restaurants with the earliest free table online first. standard is Tabelog's own order, which puts restaurants that take reservations or promote on Tabelog first.",
            "default": "rating"
          },
          "budgetMin": {
            "title": "Budget from (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest budget in yen. Mapped to Tabelog's own bands, which run from 1,000 to 100,000. 0 means no lower bound.",
            "default": 0
          },
          "budgetMax": {
            "title": "Budget to (JPY)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest budget in yen, mapped to Tabelog's bands. 0 means no upper bound.",
            "default": 0
          },
          "budgetType": {
            "title": "Budget applies to",
            "enum": [
              "dinner",
              "lunch"
            ],
            "type": "string",
            "description": "Apply the budget bounds to dinner or to lunch prices.",
            "default": "dinner"
          },
          "filters": {
            "title": "Tabelog filters",
            "type": "array",
            "description": "Tabelog's own search conditions, applied on the site before anything is fetched. Tick as many as you need; a restaurant must match all of them. Options that the site nests under another (card brands, room sizes, babies welcome and so on) include their parent automatically.",
            "items": {
              "type": "string",
              "enum": [
                "onlineBooking",
                "seatOnlyBooking",
                "vPointEarn",
                "vPointUse",
                "openSunday",
                "freeCallBooking",
                "privateRoom",
                "semiPrivateRoom",
                "privateRoomFor2",
                "privateRoomFor4",
                "privateRoomFor6",
                "privateRoomFor8",
                "privateRoomFor10to20",
                "privateRoomFor20to30",
                "privateRoomFor30plus",
                "privateHire",
                "privateHireUpTo20",
                "privateHire20to50",
                "privateHire50plus",
                "parking",
                "allYouCanDrink",
                "allYouCanDrink3h",
                "allYouCanEat",
                "dessertBuffet",
                "cardAccepted",
                "visa",
                "mastercard",
                "jcb",
                "amex",
                "diners",
                "eMoney",
                "transitIcCard",
                "rakutenEdy",
                "nanaco",
                "waon",
                "iD",
                "quicPay",
                "qrPayment",
                "paypay",
                "dBarai",
                "rakutenPay",
                "auPay",
                "vegetableFocus",
                "fishFocus",
                "healthyMenu",
                "vegetarianMenu",
                "englishMenu",
                "breakfastMenu",
                "allergyLabels",
                "calorieLabels",
                "wine",
                "sake",
                "shochu",
                "cocktails",
                "wineFocus",
                "sakeFocus",
                "shochuFocus",
                "cocktailFocus",
                "scenicView",
                "nightView",
                "oceanView",
                "hotelRestaurant",
                "hideaway",
                "standaloneHouse",
                "stylish",
                "relaxed",
                "spaciousSeating",
                "coupleSeat",
                "counter",
                "sofa",
                "zashiki",
                "horikotatsu",
                "openTerrace",
                "karaoke",
                "darts",
                "liveMusic",
                "sportsViewing",
                "standingBar",
                "projector",
                "powerOutlets",
                "freeWifi",
                "paidWifi",
                "wheelchairAccess",
                "kids",
                "babiesWelcome",
                "preschoolersWelcome",
                "primarySchoolersWelcome",
                "kidsMenu",
                "strollerFriendly",
                "longParty",
                "celebrations",
                "birthdayPlate",
                "happyHour",
                "byob",
                "sommelier",
                "pets",
                "takeout",
                "delivery",
                "coupon",
                "organizerPerk",
                "premiumCoupon"
              ],
              "enumTitles": [
                "Online booking",
                "Seat-only booking",
                "Earns V Point",
                "Accepts V Point",
                "Open on Sunday",
                "Free phone booking",
                "Private room",
                "Private or semi-private room",
                "Private room for 2",
                "Private room for 4",
                "Private room for 6",
                "Private room for 8",
                "Private room for 10-20",
                "Private room for 20-30",
                "Private room for 30+",
                "Private hire (whole venue)",
                "Private hire, up to 20",
                "Private hire, 20-50",
                "Private hire, 50+",
                "Parking",
                "All-you-can-drink",
                "All-you-can-drink, 3 hours or more",
                "All-you-can-eat",
                "Dessert buffet",
                "Cards accepted",
                "VISA",
                "Mastercard",
                "JCB",
                "AMEX",
                "Diners",
                "E-money",
                "Transit IC card (Suica etc.)",
                "Rakuten Edy",
                "nanaco",
                "WAON",
                "iD",
                "QUICPay",
                "QR code payment",
                "PayPay",
                "d払い",
                "Rakuten Pay",
                "au PAY",
                "Vegetable-focused",
                "Fish-focused",
                "Health or beauty menu",
                "Vegetarian menu",
                "English menu",
                "Breakfast or morning menu",
                "Allergen labelling",
                "Calorie labelling",
                "Wine",
                "Sake",
                "Shochu",
                "Cocktails",
                "Wine-focused",
                "Sake-focused",
                "Shochu-focused",
                "Cocktail-focused",
                "Scenic view",
                "Night view",
                "Ocean view",
                "Hotel restaurant",
                "Hideaway",
                "Standalone house",
                "Stylish space",
                "Relaxed space",
                "Spacious seating",
                "Couple seats",
                "Counter seats",
                "Sofa seats",
                "Zashiki (tatami)",
                "Horikotatsu",
                "Open terrace",
                "Karaoke",
                "Darts",
                "Live music",
                "Sports viewing",
                "Standing drinking",
                "Projector",
                "Power outlets",
                "Free Wi-Fi",
                "Paid Wi-Fi",
                "Wheelchair access",
                "Children welcome",
                "Babies welcome",
                "Preschoolers welcome",
                "Primary schoolers welcome",
                "Children's menu",
                "Pushchairs allowed",
                "Parties of 2.5 hours or more",
                "Celebrations and surprises",
                "Birthday plate",
                "Happy hour",
                "Bring your own drinks",
                "Sommelier",
                "Pets allowed",
                "Takeout",
                "Delivery",
                "Coupon",
                "Organiser perk",
                "Premium coupon"
              ]
            },
            "default": []
          },
          "smoking": {
            "title": "Smoking",
            "enum": [
              "nonSmoking",
              "nonSmokingOrSeparated",
              "smokingAllowed"
            ],
            "type": "string",
            "description": "Non-smoking, non-smoking or a separate smoking area, or smoking allowed."
          },
          "occasion": {
            "title": "Occasion",
            "enum": [
              "friends",
              "date",
              "business",
              "largeParty",
              "family",
              "solo",
              "girlsNight",
              "groupDate"
            ],
            "type": "string",
            "description": "Tabelog's own occasion tags."
          },
          "businessHours": {
            "title": "Opening hours",
            "enum": [
              "breakfast",
              "lunch",
              "after10pm",
              "afterMidnight",
              "untilFirstTrain"
            ],
            "type": "string",
            "description": "Open for breakfast or lunch, or open late."
          },
          "reservation": {
            "title": "Reservations",
            "enum": [
              "accepted",
              "notAccepted",
              "reservationOnly"
            ],
            "type": "string",
            "description": "Whether the restaurant takes reservations."
          },
          "awards": {
            "title": "The Tabelog Award",
            "type": "array",
            "description": "Keep restaurants holding the current Tabelog Award at these levels. If none in the area hold it, the run returns nothing for that area.",
            "items": {
              "type": "string",
              "enum": [
                "gold",
                "silver",
                "bronze"
              ],
              "enumTitles": [
                "Gold",
                "Silver",
                "Bronze"
              ]
            },
            "default": []
          },
          "visitDate": {
            "title": "Available on (date)",
            "type": "string",
            "description": "Only restaurants with a table free online for this date, at the time and party size below. YYYY-MM-DD."
          },
          "visitTime": {
            "title": "Available at (time)",
            "type": "string",
            "description": "Used with the date above. HH:MM, on the half hour.",
            "default": "19:00"
          },
          "partySize": {
            "title": "Party size",
            "minimum": 1,
            "maximum": 99,
            "type": "integer",
            "description": "Used with the date above.",
            "default": 2
          },
          "minScore": {
            "title": "Minimum score",
            "type": "string",
            "description": "Drop restaurants scoring below this, for example 3.5. Applied after the fetch, at no charge.",
            "default": "0"
          },
          "minReviewCount": {
            "title": "Minimum review count",
            "minimum": 0,
            "type": "integer",
            "description": "Drop restaurants with fewer reviews than this. Applied after the fetch, at no charge.",
            "default": 0
          },
          "onlyHyakumeiten": {
            "title": "百名店 only",
            "type": "boolean",
            "description": "Keep only restaurants that carry a Tabelog 百名店 (Top 100) badge.",
            "default": false
          },
          "priceStoreName": {
            "title": "Score memory store",
            "type": "string",
            "description": "Name a key-value store and the actor remembers each restaurant's score and review count between runs, so every row can tell you what changed."
          },
          "onlyNewOrChanged": {
            "title": "Only new or changed",
            "type": "boolean",
            "description": "With a score memory store named: push only restaurants that are new or whose score or review count moved. Unchanged rows cost nothing.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel requests",
            "minimum": 1,
            "maximum": 32,
            "type": "integer",
            "description": "How many requests run at once across the whole run. The default is the fastest level measured clean; lower it only if a run reports refusals or errors.",
            "default": 32
          },
          "delayMs": {
            "title": "Delay between requests (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional pause before each call, in milliseconds. 0 (the default) runs as fast as the parallel limit allows.",
            "default": 0
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}