{
  "openapi": "3.0.1",
  "info": {
    "title": "Naver (네이버) Search Scraper - Blog, Cafe & News",
    "description": "Search Naver by Korean or English keyword: public blog, cafe (카페) and news results with title, snippet, link, author or outlet, thumbnail and a publish time that says how precise it is. Paid placements dropped. Deduplicated. Optional post body. No login.",
    "version": "0.0",
    "x-build-id": "Ot9uVRwCeuCMxX3Xy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/lanternlab318~naver-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-lanternlab318-naver-search",
        "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/lanternlab318~naver-search/runs": {
      "post": {
        "operationId": "runs-sync-lanternlab318-naver-search",
        "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/lanternlab318~naver-search/run-sync": {
      "post": {
        "operationId": "run-sync-lanternlab318-naver-search",
        "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": [
          "keywords"
        ],
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "One Naver search keyword per line, in Korean or English. Every keyword is searched separately in every vertical you picked, and its results are labelled with it. A post that matches several of your keywords is returned once and charged once.",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "title": "Verticals",
            "type": "array",
            "description": "Which Naver search tabs to read. Blog is personal blogs on blog.naver.com, cafe is posts in public Naver Cafe communities, news is the news tab. All three by default.",
            "items": {
              "type": "string",
              "enum": [
                "blog",
                "cafe",
                "news"
              ],
              "enumTitles": [
                "Blog (블로그)",
                "Cafe (카페)",
                "News (뉴스)"
              ]
            },
            "default": [
              "blog",
              "cafe",
              "news"
            ]
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "latest"
            ],
            "type": "string",
            "description": "Naver's own ordering: relevance is the default tab order, latest returns the newest posts first.",
            "default": "relevance"
          },
          "dateRange": {
            "title": "Published within",
            "enum": [
              "any",
              "1d",
              "1w",
              "1m",
              "3m",
              "6m",
              "1y"
            ],
            "type": "string",
            "description": "Only return posts Naver published within this window. \"any\" applies no window. Shorter windows return fewer results: a one-day window on a quiet keyword can legitimately return nothing. A custom window below overrides this.",
            "default": "any"
          },
          "dateFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Start of a custom publish window, as YYYY-MM-DD in Korean time. Give both ends or neither; when both are set they replace \"Published within\"."
          },
          "dateTo": {
            "title": "Published to",
            "type": "string",
            "description": "End of the custom publish window, as YYYY-MM-DD in Korean time."
          },
          "maxResultsPerSource": {
            "title": "Max results per keyword per vertical",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "Upper bound on the rows one keyword may produce in one vertical. Naver serves 30 blog or cafe results and 15 news results per request, so 50 costs two requests per vertical. Naver's own result list ends after a few hundred posts; when it ends before your limit does, the status row for that search says the vertical was exhausted.",
            "default": 50
          },
          "includeContent": {
            "title": "Read the post body",
            "type": "boolean",
            "description": "With this on, every blog post and news article is also fetched for its full body text and its exact publish time - one extra request per result, included in the price. Cafe posts are not fetched: a cafe post page serves no body without logging in, so those rows carry content null with contentStatus \"login_required\". Leave it off for a much faster, cheaper run that returns the search snippet only.",
            "default": false
          },
          "maxUpstreamRequests": {
            "title": "Max Naver requests",
            "minimum": 1,
            "type": "integer",
            "description": "Hard ceiling on the HTTP requests this run sends to Naver: result pages, post bodies and retries together. At the ceiling collection stops - the searches not reached are written with partialReason \"upstream_request_cap\" and the run then ends normally. Leave empty and the Actor works a ceiling out from your keywords, verticals and limits, so a run is never unbounded."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "The proxy the requests to Naver go through. The default (Apify Proxy, datacenter) is the cheapest and is what this Actor is measured on; Naver's mobile search tabs answer it without blocking. Switch to residential, or to Korean exit IPs, only if you see blocked searches.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}