{
  "openapi": "3.0.1",
  "info": {
    "title": "Naver Map Scraper — Places, Reviews & Ranks [💰 $0.003/req]",
    "description": "Naver Map / Naver Place (네이버 지도·플레이스): search results for any keyword and location (top 100 places with rating, review counts, address, phone, hours, coordinates, ad slots), full place details (menu, hours, photos, review keywords), visitor reviews, keyword rank tracking with geo-grid heat-maps.",
    "version": "0.1",
    "x-build-id": "Gxk5sDvyabnMHieiC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cocomoon~naver-place-rank-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cocomoon-naver-place-rank-tracker",
        "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/cocomoon~naver-place-rank-tracker/runs": {
      "post": {
        "operationId": "runs-sync-cocomoon-naver-place-rank-tracker",
        "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/cocomoon~naver-place-rank-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-cocomoon-naver-place-rank-tracker",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "rank",
              "details",
              "reviews"
            ],
            "type": "string",
            "description": "<b>Search</b> — the full Naver Map result list for each keyword (top 100 places with rating, review counts, address, phone, hours, coordinates, ad slots). <b>Rank tracker</b> — where your places rank for each keyword, optionally on a geo-grid, with a heat-map report. <b>Place details</b> — everything on a place's page: hours, menu with prices, photos, review stats and keywords, links. <b>Reviews</b> — visitor reviews of a place with rating, text, photos, visit date and owner replies.",
            "default": "search"
          },
          "keywords": {
            "title": "Keywords (검색 키워드)",
            "type": "array",
            "description": "Search & rank modes. Keywords exactly as a customer would type them in Naver, e.g. <code>강남 피부과</code>, <code>홍대 헤어샵</code>, <code>성수 카페</code>.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Search locations (검색 위치)",
            "type": "array",
            "description": "Search & rank modes. Naver ranks places by distance from the searcher, so results depend on where the search is made. Enter <code>latitude,longitude</code> or <code>label=latitude,longitude</code>, e.g. <code>강남역=37.4979,127.0276</code>. Default: Gangnam Station. Tip: right-click a spot in Google Maps to copy its coordinates.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Search mode: how many places to return for each keyword × location (Naver's list goes to 100).",
            "default": 100
          },
          "includeAds": {
            "title": "Include ad slots",
            "type": "boolean",
            "description": "Search mode: also return the paid Naver Place ad slots (플레이스 광고) shown above the list, as rows with <code>isAd: true</code> and <code>adRank</code>. Naver serves ads only to Korean residential IPs — set the proxy below to RESIDENTIAL + country KR to get them; with the default proxy no ad rows appear.",
            "default": true
          },
          "includeDetails": {
            "title": "Add place details to search results",
            "type": "boolean",
            "description": "Search mode: fetch each place's page as well and add business hours, menu with prices, photos, review stats and keywords, links, parking and nearest subway to every row. One extra request (one search charge) per place.",
            "default": false
          },
          "targetPlaces": {
            "title": "Places to track (추적할 업체)",
            "type": "array",
            "description": "Rank mode. Your business (and competitors) as a Naver Place ID, a place URL (<code>https://m.place.naver.com/restaurant/1317157725/home</code>, <code>https://map.naver.com/p/entry/place/1317157725</code>) or part of the business name.",
            "items": {
              "type": "string"
            }
          },
          "gridSize": {
            "title": "Geo-grid size",
            "minimum": 1,
            "maximum": 9,
            "type": "integer",
            "description": "1 = check only the location itself. 3, 5 or 7 = check a 3×3, 5×5 or 7×7 grid of points around each location (like Local Falcon) to see how rank changes across the neighbourhood. Each point is one search. Works in search mode too.",
            "default": 1
          },
          "gridSpacingMeters": {
            "title": "Grid spacing (m)",
            "minimum": 100,
            "maximum": 5000,
            "type": "integer",
            "description": "Distance between neighbouring grid points in metres.",
            "default": 500
          },
          "topResults": {
            "title": "Competitors to include",
            "minimum": 0,
            "maximum": 20,
            "type": "integer",
            "description": "Rank mode: how many of the top-ranked places to attach to each rank row (name, category, review counts).",
            "default": 3
          },
          "places": {
            "title": "Places (업체)",
            "type": "array",
            "description": "Details & reviews modes. Naver Place IDs or place URLs — <code>1317157725</code>, <code>https://m.place.naver.com/restaurant/1317157725/home</code>, <code>https://map.naver.com/p/entry/place/1317157725</code>. Tip: take <code>placeId</code> values from a search run.",
            "items": {
              "type": "string"
            }
          },
          "maxReviews": {
            "title": "Max reviews per place",
            "minimum": 1,
            "type": "integer",
            "description": "Reviews mode: how many visitor reviews to collect for each place (20 per request).",
            "default": 100
          },
          "reviewSort": {
            "title": "Review order",
            "enum": [
              "recent",
              "recommended"
            ],
            "type": "string",
            "description": "Reviews mode: newest first, or Naver's recommended order.",
            "default": "recent"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel requests.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Proxy used to reach Naver. The default Apify Proxy works for everything except ad slots; choose Residential + Korea for ad slots or if you see blocking.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}