# Naver Blog, News & Cafe Search Scraper - Korea (Official API) (`roadster/naver-blog-news-cafe-search`) Actor

Search Naver Blog, Naver News and Naver Cafe posts by keyword (Korea's #1 search engine). Get title, link, snippet, date, blog/cafe name. Official NAVER API, no blocking. Korean social listening & news monitoring. Free sample.

- **URL**: https://apify.com/roadster/naver-blog-news-cafe-search.md
- **Developed by:** [yonghoon choi](https://apify.com/roadster) (community)
- **Categories:** Social media, Lead generation, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 search results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Naver Blog, News & Cafe Search Scraper — Korea (Official API)

**Search Naver Blog posts, Naver News articles and Naver Cafe posts by keyword — Korea's #1 search engine — and export them to CSV, Excel or JSON.** Naver is where Koreans write reviews, read news and discuss products, so it is the best source for Korean social listening, brand monitoring, review research, PR/media monitoring and Korean market analysis. This Actor uses the **official NAVER Search API (NAVER API HUB)**, so there are no blocks, captchas or proxies. Run without a key to get a free sample.

> 한국어 요약: 네이버 블로그·뉴스·카페 글을 키워드로 검색해 제목, 링크, 요약, 날짜, 블로그/카페 이름을 공식 네이버 검색 API로 수집합니다. 본인의 무료 NAVER API HUB 키를 넣어 사용하며, 키가 없으면 무료 샘플만 반환합니다. 마케팅 모니터링, 여론·리뷰 분석, 언론 모니터링에 적합합니다.

### What it does

- Queries **Naver Blog**, **Naver News** and **Naver Cafe** search for every keyword (choose any sources).
- Paginates up to 1,100 results per keyword per source (Naver API limit), sorted by relevance or newest first.
- Cleans HTML tags and normalizes dates (blog `postDate`, news `pubDate` in ISO format).

### Use cases

- Brand & product monitoring in Korea (social listening on blogs and cafes)
- Korean news / PR monitoring and media lists of article links
- Influencer & review research: find blog reviews for restaurants, cosmetics (K-beauty), travel spots
- Datasets for sentiment analysis and LLM/RAG pipelines on Korean content

### Input example

```json
{
  "keywords": ["성수동 카페", "삼성전자"],
  "sources": ["blog", "news", "cafe"],
  "sort": "date",
  "maxResultsPerQuery": 100,
  "maxItems": 1000,
  "clientId": "YOUR_NAVER_API_HUB_CLIENT_ID",
  "clientSecret": "YOUR_NAVER_API_HUB_CLIENT_SECRET"
}
```

### Output example

```json
{
  "source": "news",
  "title": "성동서, 핼러윈 대비 성수 카페거리에 '외국인 전담데스크' 운영",
  "link": "https://n.news.naver.com/mnews/article/001/0016407062?sid=102",
  "originalLink": "https://www.yna.co.kr/view/AKR20261028164900004",
  "description": "전담 데스크는 오후 4시부터 8시까지 성수동 카페거리 내에서 운영된다...",
  "pubDate": "2026-10-28T00:00:00.000Z",
  "keyword": "성수동 카페",
  "rank": 1,
  "isSample": false
}
```

Blog rows include `postDate`, `bloggerName`, `bloggerLink`; cafe rows include `cafeName`, `cafeUrl`.

### Get your free NAVER API key (bring your own key)

1. Sign in to the NAVER Cloud Platform console.
2. Open **NAVER API HUB → Application**, create an application and enable the **Search** API (blog, news, cafe).
3. Copy the **Client ID** and **Client Secret** from 인증 정보 into this Actor's input (stored encrypted).

Without a key the Actor returns 3 sample rows (`isSample: true`) at no charge.

### Pricing

Pay per result: **$0.001 per result ($1 per 1,000 results)**. Sample rows are free. The NAVER Search API itself is free within NAVER's daily quota (25,000 calls/day per application).

### Notes

- Only publicly searchable content returned by NAVER's official API (title, snippet, link) is collected. Use the data in line with NAVER's API terms and applicable law.
- Not affiliated with NAVER Corp.

# Actor input Schema

## `keywords` (type: `array`):

Search terms, e.g. 성수동 카페, 삼성전자, K-beauty.

## `sources` (type: `array`):

Which Naver search verticals to query.

## `sort` (type: `string`):

sim = relevance, date = newest first.

## `maxResultsPerQuery` (type: `integer`):

NAVER API returns at most 1,100 results per query (start ≤ 1000, 100 per page).

## `maxItems` (type: `integer`):

Stop after this many results.

## `clientId` (type: `string`):

Your own NAVER API HUB Client ID (free; NAVER Cloud console > NAVER API HUB > Application > 인증 정보, enable Search API). Stored encrypted. Leave empty to get a small FREE SAMPLE (isSample=true) with no API call or charge.

## `clientSecret` (type: `string`):

Your own NAVER API HUB Client Secret (free; NAVER Cloud console > NAVER API HUB > Application > 인증 정보, enable Search API). Stored encrypted. Leave empty to get a small FREE SAMPLE (isSample=true) with no API call or charge.

## Actor input object example

```json
{
  "keywords": [
    "성수동 카페"
  ],
  "sources": [
    "blog",
    "news",
    "cafe"
  ],
  "sort": "sim",
  "maxResultsPerQuery": 100,
  "maxItems": 1000
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "성수동 카페"
    ],
    "sources": [
        "blog",
        "news",
        "cafe"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("roadster/naver-blog-news-cafe-search").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["성수동 카페"],
    "sources": [
        "blog",
        "news",
        "cafe",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("roadster/naver-blog-news-cafe-search").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "성수동 카페"
  ],
  "sources": [
    "blog",
    "news",
    "cafe"
  ]
}' |
apify call roadster/naver-blog-news-cafe-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,roadster/naver-blog-news-cafe-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/GHJKR8E9TCsC9BrVM/builds/yWf1M8OS1Lgx2XxH4/openapi.json
