{
  "openapi": "3.0.1",
  "info": {
    "title": "Gurunavi Scraper - Japan Restaurants, Budgets & Hours",
    "description": "Scrape Gurunavi (ぐるなび), Japan's restaurant guide: name, cuisine, lunch and dinner budget, address, phone, coordinates, hours, closed days, seats, courses, reservation availability and photos. Search by keyword, prefecture, cuisine, budget and features, or paste links. Error rows are free.",
    "version": "0.1",
    "x-build-id": "FQg9PRMkJHEjOrVeD"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~gurunavi-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-gurunavi-scraper",
        "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/scrapewise~gurunavi-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-gurunavi-scraper",
        "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/scrapewise~gurunavi-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-gurunavi-scraper",
        "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",
        "properties": {
          "searchKeyword": {
            "title": "Search keyword",
            "type": "string",
            "description": "What to search on Gurunavi: a dish, a cuisine or a restaurant name. Common food words in English are searched in Japanese for you (ramen, sushi, yakiniku, tempura, wagyu, izakaya, udon, okonomiyaki and about 80 more); any Japanese word works as typed. Several keywords: separate them with commas. Leave empty to list every restaurant of the area and filters below. With every field empty, the run searches ramen in Tokyo as an example. Also accepts 'keyword' or 'query'."
          },
          "area": {
            "title": "Prefecture or area",
            "type": "string",
            "description": "One of the 47 prefectures in English: tokyo, osaka, kyoto, hokkaido, fukuoka, kanagawa, aichi, okinawa... Big cities also work (yokohama, kobe, sapporo, nagoya). Empty or 'japan' searches the whole country. A Gurunavi area code such as aream2115 (Shinjuku) also works. Anything else returns a free INVALID_INPUT row. Also accepts 'prefecture' or 'location'."
          },
          "cuisine": {
            "title": "Cuisine",
            "enum": [
              "any",
              "izakaya",
              "japanese",
              "sushi",
              "ramen",
              "noodle",
              "yakiniku",
              "hotpot",
              "western",
              "continental",
              "chinese",
              "ethnic",
              "curry",
              "buffet",
              "bar",
              "cafe",
              "entertainment",
              "casual",
              "others"
            ],
            "type": "string",
            "description": "Optional Gurunavi cuisine category. Combines with the keyword, area and the other filters.",
            "default": "any"
          },
          "characteristic": {
            "title": "Feature",
            "enum": [
              "any",
              "private-room",
              "all-you-can-eat",
              "all-you-can-drink",
              "takeout",
              "solo-friendly",
              "kids-welcome",
              "pets-allowed",
              "date",
              "anniversary",
              "birthday-perk",
              "girls-night",
              "night-view",
              "parking",
              "open-24-hours",
              "smoking-allowed"
            ],
            "type": "string",
            "description": "Optional feature that every restaurant must have, as tagged on Gurunavi.",
            "default": "any"
          },
          "minBudget": {
            "title": "Minimum budget (yen)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only restaurants whose average spend per person is at least this many yen."
          },
          "maxBudget": {
            "title": "Maximum budget (yen)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Only restaurants whose average spend per person is at most this many yen, for example 3000."
          },
          "onlineReservation": {
            "title": "Online reservation only",
            "type": "boolean",
            "description": "Only restaurants that take reservations on Gurunavi.",
            "default": false
          },
          "withCoupon": {
            "title": "With coupon only",
            "type": "boolean",
            "description": "Only restaurants that offer a Gurunavi coupon.",
            "default": false
          },
          "newlyOpened": {
            "title": "Newly opened only",
            "type": "boolean",
            "description": "Only restaurants that Gurunavi marks as newly opened.",
            "default": false
          },
          "startUrls": {
            "title": "Gurunavi links",
            "type": "array",
            "description": "Optional. Restaurant pages (https://r.gnavi.co.jp/gacg800/), English restaurant pages (gurunavi.com/en/...), or any Gurunavi list page (area, station, cuisine or search results, copied from the address bar). Lists are paginated automatically up to the item limit. Invalid links return a free error row. Also accepts 'urls'.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "includeDetails": {
            "title": "Open each restaurant page",
            "type": "boolean",
            "description": "On (default): each restaurant also gets its full page: address, postal code, coordinates, phone, reading in kana, hours, closed days, average budget, seats, smoking, parking, website, opening date, nearest stations, languages, scenes, selling points and description. Off: only what the list shows (name, catchphrase, lunch and dinner budget, access, photos, courses and reservation availability), about 3 times faster. Same price either way.",
            "default": true
          },
          "maxItems": {
            "title": "Max restaurants",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many restaurants in the whole run (default 20). 0 means no limit. You pay per restaurant delivered. Also accepts 'maxResults'.",
            "default": 20
          },
          "onlyNew": {
            "title": "Only new restaurants",
            "type": "boolean",
            "description": "For scheduled runs: skip restaurants this search already delivered in your earlier runs (not charged), so each run returns only restaurants that are new on Gurunavi for that search.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Keep the default: it is the setting that works with Gurunavi. Other settings are refused by the site and return free BLOCKED rows.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "JP"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}