{
  "openapi": "3.0.1",
  "info": {
    "title": "타베로그 Tabelog 일본 식당 상권 — 지역별 예산·평점·장르",
    "description": "타베로그(Tabelog, 일본 최대 맛집 리뷰 사이트)의 상권을 하나 지정하면(예: 긴자) 그곳 식당의 요약 한 줄을 돌려줍니다. 식당 수, 저녁·점심 예산 구간과 중앙값 구간, 평점(중앙값, 범위, 평점 보유 비율), 리뷰 수, 주요 장르, 가까운 역과 도보 거리가 들어 있습니다. 상권당 $0.02, 식당별 레코드가 필요하면 한 곳당 +$0.002, 결과 없음 = 무료. Restaurant budget & score summary per Tabelog area, $0.02 per area. Unofficial.",
    "version": "0.1",
    "x-build-id": "KXpBZPIm4Cdb3QAtE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpmarketdata~tabelog-restaurant-market-kr/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpmarketdata-tabelog-restaurant-market-kr",
        "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/jpmarketdata~tabelog-restaurant-market-kr/runs": {
      "post": {
        "operationId": "runs-sync-jpmarketdata-tabelog-restaurant-market-kr",
        "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/jpmarketdata~tabelog-restaurant-market-kr/run-sync": {
      "post": {
        "operationId": "run-sync-jpmarketdata-tabelog-restaurant-market-kr",
        "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": [
          "areas"
        ],
        "properties": {
          "areas": {
            "title": "상권 Tabelog areas",
            "maxItems": 10,
            "type": "array",
            "description": "타베로그 상권을 '<도도부현>/<대지역>/<중지역>' 형식으로 하나 이상 입력합니다. 예: 'tokyo/A1301/A130101'(긴자), 'osaka/A2701/A270101'(우메다). https://tabelog.com/... 전체 URL을 그대로 붙여넣어도 상권 경로로 자동 정규화됩니다. 상권 하나가 각각 과금 단위($0.02)이자 2초 간격 요청 묶음이므로 한 번의 실행은 최대 10개까지로 짧게 유지하세요. 더 큰 작업은 여러 번으로 나누면 됩니다 — 시간 예산에 도달하면 이후 목록 페이지를 중단하고 해당 상권에 'truncatedForTimeLimit'를 표시합니다.",
            "default": [
              "tokyo/A1301/A130101"
            ],
            "items": {
              "type": "string"
            }
          },
          "genre": {
            "title": "장르 슬러그(선택)",
            "type": "string",
            "description": "상권을 타베로그 장르 하나로 좁힙니다. 슬러그는 URL의 경로 세그먼트 그대로입니다: 'sushi'(스시), 'ramen'(라멘), 'izakaya'(이자카야), 'yakitori'(야키토리), 'washoku', 'japanese', 'seafood', 'soba', 'unagi', 'okonomiyaki', 'monjya', 'yoshoku' 등. 비워 두면 전체 장르입니다. 슬러그는 입력한 그대로 전달되며, 타베로그는 알 수 없는 슬러그에도 404를 주지 않으므로 결과가 0건인 상권은 과금 대신 실패로 처리됩니다."
          },
          "sort": {
            "title": "정렬 순서 Sort order",
            "enum": [
              "rating",
              "most-viewed",
              "most-reserved",
              "standard"
            ],
            "type": "string",
            "description": "타베로그가 해당 상권을 어떤 순서로 돌려줄지 정합니다. 페이지가 실제로 지키는 순서만 제공합니다. 'rating'(SrtT=rt)이 기본값입니다. 결정적이고 광고 가중이 없으며, 타베로그 일본어 사이트와 완전히 같은 목록을 돌려주기 때문입니다(2026-08-05에 1·10·60페이지를 대조해 가게 id와 평점이 모두 일치함을 확인). 'most-viewed'와 'most-reserved'는 타베로그가 방일객용으로 제공하는 자체 랭킹입니다. 'standard'는 정렬 파라미터를 아예 보내지 않는 것으로, 타베로그의 편집 추천 순서입니다. 광고·PR 가중이 걸려 있고 언어판마다 결과가 달라서 선택지로만 제공하고 기본값으로 쓰지 않습니다. 최신 오픈순(新着順)은 **제공하지 않습니다** — 이 Actor가 읽는 페이지는 그 파라미터를 무시하고 편집 추천 순서로 답하므로, 'newest'라고 표시하면 표본이 실제로 그 순서가 아니게 됩니다.",
            "default": "rating"
          },
          "pagesPerArea": {
            "title": "상권당 목록 페이지 수",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "상권마다 몇 개의 목록 페이지를 표본으로 뽑을지 정합니다(한 페이지 20곳, 3페이지 = 최대 60곳). 페이지는 앞에서부터가 아니라 **결과 집합 전체에 고르게 흩어서** 뽑습니다. 정렬이 평점에 대해 단조로워 앞쪽 페이지는 전부 고득점 가게이고 그 분포는 상권의 분포가 아니기 때문입니다. 2,666곳 상권에서 3페이지면 실제로는 1·31·60페이지이며, 요약의 'sampledPages'에 그대로 적힙니다. 페이지가 많을수록 분포는 촘촘해지지만 실행이 길어집니다(페이지당 1회, 2초 간격). 시간 예산에 도달하면 남은 페이지를 건너뛰고 'truncatedForTimeLimit'와 실제 'pagesFetched'를 기록합니다. 히트 수와 무관하게 열거는 60페이지 / 1,200곳까지입니다(2026-08-05 실측, 'enumerablePages').",
            "default": 3
          },
          "includeIndividualItems": {
            "title": "개별 식당 레코드 출력",
            "type": "boolean",
            "description": "기본값 OFF: 상권 요약 하나당 $0.02 고정입니다. 켜면 표본으로 뽑힌 식당마다 레코드를 하나씩(상호, URL, 타베로그 ID, 평점, 리뷰 수, 가까운 역, 거리, 장르, 저녁·점심 예산대) 추가로 출력하며 건당 +$0.002입니다. 사업장 정보만 수집하며 리뷰 본문과 리뷰어 이름은 절대 수집하지 않습니다.",
            "default": false
          },
          "fetchDetails": {
            "title": "식당 상세 페이지 수집",
            "type": "boolean",
            "description": "기본값 OFF. 켜면 표본 중 앞쪽 N곳의 상세 페이지까지 가져와 주소, 우편번호, 전화번호, 위도·경도, 가격대, 요리 종류, 좌석 수, 영업시간, 예약 정책, 교통편을 더합니다 — 리드 리스트에 필요한 필드입니다. 레코드당 +$0.002이며, 식당 하나마다 2초 간격 요청이 한 번씩 늘어납니다.",
            "default": false
          },
          "maxDetails": {
            "title": "상권당 상세 페이지 상한",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "'식당 상세 페이지 수집'이 켜졌을 때 상권마다 몇 개의 상세 페이지를 가져올지 정합니다. 하나하나가 2초 간격의 추가 요청이므로 실행 시간을 좌우하는 주된 요인입니다. 실행 시간 예산에 도달하면 남은 상세 페이지를 건너뛰고 해당 상권 요약에 'truncatedForTimeLimit'를 표시합니다.",
            "default": 10
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}