{
  "openapi": "3.0.1",
  "info": {
    "title": "Naver Map Scraper — Korean Places, Menus, Hours & Reviews",
    "description": "Scrape Naver Map (map.naver.com) places by keyword, map area or link: address, phone, coordinates, rating, review counts, opening hours, menus with prices, transit, review keywords, Michelin and TV listings, plus optional visitor reviews. Beyond the 300-result limit.",
    "version": "0.0",
    "x-build-id": "GBYoVGAIB9XcQxqiT"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unfenced-group~naver-map-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unfenced-group-naver-map-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/unfenced-group~naver-map-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unfenced-group-naver-map-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/unfenced-group~naver-map-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unfenced-group-naver-map-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 queries",
            "type": "array",
            "description": "What to search for on Naver Map, exactly as you would type it on map.naver.com. Include an area for local results, e.g. \"강남 맛집\" (Gangnam restaurants), \"홍대 카페\", \"부산 피부과\". Each query returns up to 300 places; use boundingBox to cover a whole area.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Place URLs",
            "type": "array",
            "description": "Specific Naver places to scrape. Accepts map.naver.com place links and m.place.naver.com or pcmap.place.naver.com links.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "placeIds": {
            "title": "Place IDs",
            "type": "array",
            "description": "Naver place IDs to scrape directly (the number in a Naver Map place link).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxResultsPerQuery": {
            "title": "Max places per query",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum places saved per search query. A normal search stops at 300 (Naver's limit). With boundingBox set, 0 collects every matching place in the area.",
            "default": 50
          },
          "maxItems": {
            "title": "Max places in total",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on places saved across all queries and place links. 0 means no cap.",
            "default": 0
          },
          "searchCenter": {
            "title": "Search center",
            "type": "string",
            "description": "Optional map point Naver ranks results around, as \"latitude,longitude\" (e.g. \"37.4979,127.0276\" for Gangnam Station). Without it Naver uses the area named in the query.",
            "default": ""
          },
          "boundingBox": {
            "title": "Area sweep (bounding box)",
            "type": "string",
            "description": "Optional map rectangle as \"minLongitude,minLatitude,maxLongitude,maxLatitude\". The actor splits the area into tiles until every matching place is collected, going past the 300-per-search limit. Example: \"127.02,37.49,127.07,37.53\" covers most of Gangnam-gu.",
            "default": ""
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "popular",
              "trendy",
              "tv",
              "saved",
              "reviewTotalCount"
            ],
            "type": "string",
            "description": "Result order. relevance = Naver default, popular = most searched, trendy = trending now, tv = featured on TV, saved = most saved, reviewTotalCount = most reviewed. Sort options other than relevance apply to restaurants and cafés.",
            "default": "relevance"
          },
          "openNow": {
            "title": "Open now only",
            "type": "boolean",
            "description": "Only places open at the time of the run.",
            "default": false
          },
          "open24Hours": {
            "title": "Open 24 hours only",
            "type": "boolean",
            "description": "Only places open around the clock.",
            "default": false
          },
          "deliveryOnly": {
            "title": "Delivery only",
            "type": "boolean",
            "description": "Only places offering delivery.",
            "default": false
          },
          "takeoutOnly": {
            "title": "Takeout only",
            "type": "boolean",
            "description": "Only places offering takeout.",
            "default": false
          },
          "bookingOnly": {
            "title": "Bookable only",
            "type": "boolean",
            "description": "Only places accepting Naver reservations.",
            "default": false
          },
          "newlyOpenedOnly": {
            "title": "Newly opened only",
            "type": "boolean",
            "description": "Only places Naver marks as newly opened.",
            "default": false
          },
          "couponOnly": {
            "title": "With coupons only",
            "type": "boolean",
            "description": "Only places offering a Naver coupon.",
            "default": false
          },
          "naverPayOnly": {
            "title": "Naver Pay only",
            "type": "boolean",
            "description": "Only places accepting Naver Pay.",
            "default": false
          },
          "wheelchairAccessibleOnly": {
            "title": "Wheelchair accessible only",
            "type": "boolean",
            "description": "Only places with a wheelchair-accessible entrance.",
            "default": false
          },
          "michelinOnly": {
            "title": "Michelin Guide only",
            "type": "boolean",
            "description": "Only places listed in the Michelin Guide (stars, Bib Gourmand or selected).",
            "default": false
          },
          "menuFilter": {
            "title": "Menu filter",
            "type": "string",
            "description": "Only restaurants serving this dish, in Korean, e.g. \"파스타\" (pasta), \"삼겹살\" (pork belly), \"카페\" (café).",
            "default": ""
          },
          "includeDetails": {
            "title": "Include place details",
            "type": "boolean",
            "description": "Adds opening hours by day with break times, full menu with prices, website, keywords, facilities, parking, payment methods, nearest subway and bus stops, review theme analysis, blog reviews, TV appearances and all photos. No extra charge.",
            "default": true
          },
          "includeReviews": {
            "title": "Include visitor reviews",
            "type": "boolean",
            "description": "Adds visitor reviews (text, rating, visit date, keywords, photos, owner reply) to each place. Charged per review.",
            "default": false
          },
          "maxReviewsPerPlace": {
            "title": "Max reviews per place",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum visitor reviews per place when reviews are included. 0 means all (up to 1,000).",
            "default": 20
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "newest",
              "recommended"
            ],
            "type": "string",
            "description": "Which reviews come first: newest or Naver's recommended order.",
            "default": "newest"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Leave empty: the actor manages its own connections to Naver. Set only if you need your own proxies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}