{
  "openapi": "3.0.1",
  "info": {
    "title": "Naver Map & Place Scraper 네이버 지도·플레이스 - Korean Business Data",
    "description": "네이버 지도·플레이스 수집: 주소, 전화번호, 영업시간, 메뉴와 가격, 평점, 리뷰, 사진까지. 검색어 하나로 300곳, 지역 전체를 훑으면 그 이상. Scrape Naver Map and Naver Place for Korean local business data: addresses, phone, opening hours, menus with prices, ratings, reviews and photos.",
    "version": "0.0",
    "x-build-id": "9i8L288rXqAW9D49L"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~naver-place-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-naver-place-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/zen-studio~naver-place-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-naver-place-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/zen-studio~naver-place-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-naver-place-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": {
          "searchQueries": {
            "title": "Search terms (검색어)",
            "type": "array",
            "description": "What to look for on Naver Place. Korean terms return the richest results (e.g. <b>강남 맛집</b> for Gangnam restaurants), but English works too. Each term is searched separately.",
            "items": {
              "type": "string"
            }
          },
          "placeUrls": {
            "title": "Place links (플레이스 링크)",
            "type": "array",
            "description": "Collect specific places instead of, or in addition to, searching. Paste any Naver Map or Naver Place link. Short <b>naver.me</b> links usually point to a saved list rather than a single place, so paste the full link instead.",
            "items": {
              "type": "string"
            }
          },
          "businessType": {
            "title": "Category (업종)",
            "enum": [
              "place",
              "restaurant",
              "cafe",
              "hospital",
              "beauty",
              "hairshop",
              "accommodation",
              "attraction",
              "pharmacy",
              "pet",
              "cvs",
              "mart",
              "school",
              "theater",
              "gas",
              "trail",
              "popupstore",
              "golfcourse",
              "motor"
            ],
            "type": "string",
            "description": "Which kind of place to search. <b>All places</b> covers everything; the others narrow the search and unlock category-specific results.",
            "default": "place"
          },
          "maxPlaces": {
            "title": "Maximum places (최대 장소 수)",
            "minimum": 0,
            "maximum": 200000,
            "type": "integer",
            "description": "How many places to collect in total. Set <b>0</b> to collect every place available. A search term returns up to <b>300 places</b>. To collect more than that, set an <b>Area</b> below.",
            "default": 100
          },
          "coverageArea": {
            "title": "Area for complete coverage (전체 수집 지역)",
            "type": "string",
            "description": "Sweep an entire district instead of taking the first page of results. Accepts a Naver region code (e.g. <b>0968</b> for Gangnam-gu, <b>09</b> for all of Seoul) or a map box as <code>minLng,minLat,maxLng,maxLat</code>. Leave empty for a normal search. This mode is thorough and takes noticeably longer."
          },
          "sortingOrder": {
            "title": "Sort by (정렬)",
            "enum": [
              "relevance",
              "popular",
              "trendy",
              "saved",
              "reviewTotalCount",
              "distance"
            ],
            "type": "string",
            "description": "How results are ordered. <b>Most reviewed</b> and <b>Most saved</b> surface established places; <b>Nearest</b> reorders the whole list and is the best way to find places the default ranking buries.",
            "default": "relevance"
          },
          "menuKeyword": {
            "title": "Menu or service keyword (메뉴 키워드)",
            "type": "string",
            "description": "Keep only places offering this, e.g. <b>피자</b> (pizza) or <b>파스타</b> (pasta). Most useful for restaurants and cafes."
          },
          "openNow": {
            "title": "Open now (영업중)",
            "type": "boolean",
            "description": "Only places currently open. <b>Restaurants only</b>. Other categories ignore it.",
            "default": false
          },
          "open24h": {
            "title": "Open 24 hours (24시간)",
            "type": "boolean",
            "description": "Only places open around the clock. <b>Restaurants, Pharmacies and Pet services only.</b>",
            "default": false
          },
          "booking": {
            "title": "Takes reservations (예약)",
            "type": "boolean",
            "description": "Only places that accept reservations through Naver. <b>Restaurants only.</b>",
            "default": false
          },
          "delivery": {
            "title": "Delivers (배달)",
            "type": "boolean",
            "description": "Only places that deliver. <b>Restaurants only.</b>",
            "default": false
          },
          "takeout": {
            "title": "Takeaway (포장)",
            "type": "boolean",
            "description": "Only places offering takeaway. <b>Restaurants only.</b>",
            "default": false
          },
          "npay": {
            "title": "Accepts Naver Pay (네이버페이)",
            "type": "boolean",
            "description": "Only places that accept Naver Pay. <b>Restaurants only.</b>",
            "default": false
          },
          "coupon": {
            "title": "Has coupons (쿠폰)",
            "type": "boolean",
            "description": "Only places currently offering a coupon. <b>Restaurants, Hair salons and Attractions only.</b>",
            "default": false
          },
          "newlyOpened": {
            "title": "Newly opened (새로오픈)",
            "type": "boolean",
            "description": "Only places that opened recently. <b>Restaurants and Hair salons only.</b>",
            "default": false
          },
          "wheelchair": {
            "title": "Step-free entrance (휠체어 접근)",
            "type": "boolean",
            "description": "Only places with a step-free entrance. <b>Hospitals &amp; clinics, Hair salons, Attractions, Pharmacies and Pet services only.</b>",
            "default": false
          },
          "includeDetail": {
            "title": "Include full place details (상세 정보)",
            "type": "boolean",
            "description": "Adds opening hours by day, menus with prices, description, keywords, nearby stations, blog posts about the place and the rating breakdown.",
            "default": true
          },
          "includeReviews": {
            "title": "Include reviews (리뷰)",
            "type": "boolean",
            "description": "Collects visitor reviews with ratings, text, photos, tags and the owner's replies into a separate dataset. Leave this off to skip reviews entirely.",
            "default": false
          },
          "maxReviewsPerPlace": {
            "title": "Maximum reviews per place",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "How many reviews to collect per place, once <b>Include reviews</b> is on. Set <b>0</b> to collect every review a place has. To skip reviews, turn <b>Include reviews</b> off.",
            "default": 20
          },
          "includeBlogReviews": {
            "title": "Include blog and cafe posts",
            "type": "boolean",
            "description": "Collects the blog and cafe posts written about each place, with title, full text, author, date and thumbnails, into the same reviews dataset. These are longer write-ups from Korean bloggers rather than short visitor ratings, and <b>reviewSource</b> tells them apart.",
            "default": false
          },
          "deepBlogSearch": {
            "title": "Also search for posts by place name",
            "type": "boolean",
            "description": "Finds many more blog posts about each place by searching the place name as well. These are matched by name rather than tied to the place itself, so a business whose name is nearly identical to another branch can pick up a few of that branch's posts. <b>blogSource</b> marks every row <b>place</b> or <b>search</b> so you can keep only the exact ones if you need to. Turning this on includes the exact posts as well, and <b>Maximum blog posts per place</b> is the budget for both together, so raise it to get more of these.",
            "default": false
          },
          "maxBlogReviewsPerPlace": {
            "title": "Maximum blog posts per place",
            "minimum": 0,
            "maximum": 2000,
            "type": "integer",
            "description": "How many blog and cafe posts to collect per place, counting both the exact posts and any found by name search. Set <b>0</b> for every post available. A place has around fifty exact posts, so leave room above that if you want name search to add much.",
            "default": 100
          },
          "includePhotos": {
            "title": "Include photos (사진)",
            "type": "boolean",
            "description": "Collects full-resolution photo URLs from the owner, from visitors and from video clips. Leave this off to skip photos entirely.",
            "default": false
          },
          "maxPhotosPerPlace": {
            "title": "Maximum photos per place",
            "minimum": 0,
            "maximum": 20000,
            "type": "integer",
            "description": "How many photos to collect per place, once <b>Include photos</b> is on. Set <b>0</b> to collect every photo a place has.",
            "default": 20
          },
          "includeBooking": {
            "title": "Include bookable services (예약 상품)",
            "type": "boolean",
            "description": "Adds the place's bookable services with descriptions and booking links. For golf courses this also returns live tee times with prices.",
            "default": false
          },
          "language": {
            "title": "Output language (출력 언어)",
            "enum": [
              "ko",
              "en"
            ],
            "type": "string",
            "description": "<b>Korean</b> is the original data. <b>English</b> returns Naver's own translation of names, categories and addresses, which is convenient but less precise.",
            "default": "ko"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}