Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions api-reference/endpoint/naver/autocomplete.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
---
title: "Autocomplete"
api: "GET https://scrapebadger.com/v1/naver/autocomplete"
description: "Get Naver search-box query suggestions for a partial term, each tagged with a type."
---

Get Naver's search-box suggestions for a partial term. The cheapest call in
this API — useful for expanding a seed keyword into real Naver queries before
running [`/search`](/api-reference/endpoint/naver/search) on each one. Each
suggestion is tagged with a `type` describing what kind of entity it points to.

**Credits:** 1

## Authorization

<ParamField header="X-API-Key" type="string" required>
Your ScrapeBadger API key.
</ParamField>

## Query Parameters

<ParamField query="query" type="string" required>
Partial search term, e.g. `제주`.
</ParamField>

## Response

<ResponseField name="query" type="string">Echo of the requested term.</ResponseField>
<ResponseField name="result_count" type="integer">Number of suggestions.</ResponseField>
<ResponseField name="suggestions" type="Suggestion[]">
Suggested queries, in Naver's order.

<Expandable title="Suggestion">
<ResponseField name="query" type="string">The suggested query text.</ResponseField>
<ResponseField name="type" type="string">The suggestion kind, e.g. `keyword`, `place`.</ResponseField>
</Expandable>
</ResponseField>

## Example

<CodeGroup>

```bash cURL
curl "https://scrapebadger.com/v1/naver/autocomplete?query=제주" \
-H "X-API-Key: YOUR_API_KEY"
```

```javascript Node.js
const res = await fetch(
"https://scrapebadger.com/v1/naver/autocomplete?" +
new URLSearchParams({ query: "제주" }),
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const { suggestions } = await res.json();
```

```python Python
import requests

res = requests.get(
"https://scrapebadger.com/v1/naver/autocomplete",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"query": "제주"},
)
suggestions = res.json()["suggestions"]
```

</CodeGroup>

```json Response
{
"query": "제주",
"result_count": 6,
"suggestions": [
{ "query": "제주도 맛집", "type": "keyword" },
{ "query": "제주도 여행", "type": "keyword" },
{ "query": "제주 날씨", "type": "keyword" },
{ "query": "제주항공", "type": "keyword" },
{ "query": "제주 렌트카", "type": "keyword" },
{ "query": "제주도 가볼만한곳", "type": "keyword" }
]
}
```
103 changes: 103 additions & 0 deletions api-reference/endpoint/naver/blog.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
---
title: "Blog Search"
api: "GET https://scrapebadger.com/v1/naver/blog"
description: "Search Naver Blog — title, blog name, author, snippet and absolute publish time per post, with thumbnail imagery."
---

Search Naver Blog, the dominant consumer-review and how-to corpus in Korea.
Each post carries the title, the blog it lives on, the author, a snippet and
an **absolute publish time** (`published_at`), plus a thumbnail when one is
shown.

**Credits:** 5

## Authorization

<ParamField header="X-API-Key" type="string" required>
Your ScrapeBadger API key.
</ParamField>

## Query Parameters

<ParamField query="query" type="string" required>
Search keywords, e.g. `에어프라이어 추천`.
</ParamField>

<ParamField query="page" type="integer" default="1">
1-based result page for pagination.
</ParamField>

## Response

<ResponseField name="query" type="string">Echo of the requested query.</ResponseField>
<ResponseField name="page" type="integer">The page that was fetched.</ResponseField>
<ResponseField name="result_count" type="integer">Posts returned.</ResponseField>
<ResponseField name="results" type="BlogPost[]">
Blog posts.

<Expandable title="BlogPost">
<ResponseField name="position" type="integer">1-based rank.</ResponseField>
<ResponseField name="title" type="string" />
<ResponseField name="url" type="string">Destination post URL — any Naver redirect is resolved.</ResponseField>
<ResponseField name="snippet" type="string" />
<ResponseField name="blog_name" type="string">The blog the post lives on.</ResponseField>
<ResponseField name="author" type="string">Post author / blogger handle.</ResponseField>
<ResponseField name="published" type="string">Raw publish date as displayed by Naver.</ResponseField>
<ResponseField name="published_at" type="string">ISO 8601 UTC publish time.</ResponseField>
<ResponseField name="thumbnail_url" type="string">Post thumbnail, when present.</ResponseField>
</Expandable>
</ResponseField>
<ResponseField name="url" type="string">The Naver Blog SERP URL for this query and page.</ResponseField>

## Example

<CodeGroup>

```bash cURL
curl "https://scrapebadger.com/v1/naver/blog?query=에어프라이어+추천" \
-H "X-API-Key: YOUR_API_KEY"
```

```javascript Node.js
const res = await fetch(
"https://scrapebadger.com/v1/naver/blog?" +
new URLSearchParams({ query: "에어프라이어 추천" }),
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const data = await res.json();
```

```python Python
import requests

res = requests.get(
"https://scrapebadger.com/v1/naver/blog",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"query": "에어프라이어 추천"},
)
data = res.json()
```

</CodeGroup>

```json Response
{
"query": "에어프라이어 추천",
"page": 1,
"result_count": 10,
"results": [
{
"position": 1,
"title": "2026 에어프라이어 추천 TOP 5 솔직 후기",
"url": "https://blog.naver.com/example/223456789012",
"snippet": "직접 써본 에어프라이어 5종을 용량, 소비전력, 청소 편의성 기준으로 비교했습니다...",
"blog_name": "살림꿀팁 블로그",
"author": "살림꾼",
"published": "2026.08.06.",
"published_at": "2026-08-06T09:21:00+00:00",
"thumbnail_url": "https://blogthumb.example.net/2026080612345.jpg"
}
],
"url": "https://search.naver.com/search.naver?where=blog&query=에어프라이어+추천"
}
```
105 changes: 105 additions & 0 deletions api-reference/endpoint/naver/cafe.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
---
title: "Cafe Search"
api: "GET https://scrapebadger.com/v1/naver/cafe"
description: "Search the Naver Cafe vertical — community posts with cafe name, snippet, comment count and absolute publish times."
---

Search the **Naver Cafe** vertical — posts from Naver's community forums. Each result carries the post title and URL, the hosting cafe's name and URL, a snippet, the comment count and an absolute publish timestamp. Returns 30 results per page.

**Credits:** 5

## Authorization

<ParamField header="X-API-Key" type="string" required>
Your ScrapeBadger API key.
</ParamField>

## Query Parameters

<ParamField query="query" type="string" required>
Search keywords.
</ParamField>

<ParamField query="page" type="integer" default="1">
1-based result page. Each page returns 30 posts.
</ParamField>

## Response

<ResponseField name="query" type="string" />
<ResponseField name="page" type="integer" />
<ResponseField name="result_count" type="integer">Posts returned in this response.</ResponseField>
<ResponseField name="results" type="CafePost[]">
Cafe posts.

<Expandable title="CafePost">
<ResponseField name="position" type="integer">1-based rank within this page.</ResponseField>
<ResponseField name="title" type="string" />
<ResponseField name="url" type="string">Post URL.</ResponseField>
<ResponseField name="cafe_name" type="string">The hosting cafe's name.</ResponseField>
<ResponseField name="cafe_url" type="string">The hosting cafe's URL.</ResponseField>
<ResponseField name="snippet" type="string" />
<ResponseField name="published" type="string">Publish time as shown by Naver.</ResponseField>
<ResponseField name="published_at" type="string">Absolute publish timestamp (ISO 8601).</ResponseField>
<ResponseField name="comment_count" type="integer" />
</Expandable>
</ResponseField>

## Example

<CodeGroup>

```bash cURL
curl "https://scrapebadger.com/v1/naver/cafe?query=캠핑+장비+추천&page=1" \
-H "X-API-Key: YOUR_API_KEY"
```

```javascript Node.js
const res = await fetch(
"https://scrapebadger.com/v1/naver/cafe?" +
new URLSearchParams({"query": "캠핑 장비 추천", "page": "1"}),
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const data = await res.json();
```

```python Python
import requests

res = requests.get(
"https://scrapebadger.com/v1/naver/cafe",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"query": "캠핑 장비 추천", "page": "1"},
)
data = res.json()
```

</CodeGroup>

```json Response
{
"query": "캠핑 장비 추천",
"page": 1,
"result_count": 30,
"results": [
{
"position": 1,
"title": "입문자용 캠핑 장비 추천 리스트",
"url": "https://cafe.naver.com/camping/123456",
"cafe_name": "캠핑러버",
"cafe_url": "https://cafe.naver.com/camping",
"snippet": "처음 캠핑 시작하시는 분들께...",
"published": "2026.08.05.",
"published_at": "2026-08-05T00:00:00+09:00",
"comment_count": 42
}
]
}
```

## Errors

| Status | Meaning |
| ------ | ------- |
| `422` | Naver served a challenge instead of content — **not billed**. Retry; it succeeds. |
| `502` | Unexpected upstream failure — **not billed**. |
101 changes: 101 additions & 0 deletions api-reference/endpoint/naver/clip.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
---
title: "Clip Search"
api: "GET https://scrapebadger.com/v1/naver/clip"
description: "Search the Naver Clip vertical — short-form vertical videos with author, view count and publish time."
---

Search the **Naver Clip** vertical — Naver's short-form, vertical-video feed. Each result carries the clip title and URL, author, view count and an absolute publish timestamp. Returns 24 clips per page.

**Credits:** 5

## Authorization

<ParamField header="X-API-Key" type="string" required>
Your ScrapeBadger API key.
</ParamField>

## Query Parameters

<ParamField query="query" type="string" required>
Search keywords.
</ParamField>

<ParamField query="page" type="integer" default="1">
1-based result page. Each page returns up to 24 clips.
</ParamField>

## Response

<ResponseField name="query" type="string" />
<ResponseField name="page" type="integer" />
<ResponseField name="result_count" type="integer" />
<ResponseField name="results" type="ClipResult[]">
Clips.

<Expandable title="ClipResult">
<ResponseField name="position" type="integer" />
<ResponseField name="title" type="string" />
<ResponseField name="url" type="string">Clip URL.</ResponseField>
<ResponseField name="author" type="string" />
<ResponseField name="view_count" type="integer" />
<ResponseField name="published" type="string" />
<ResponseField name="published_at" type="string">Absolute publish timestamp (ISO 8601).</ResponseField>
</Expandable>
</ResponseField>

## Example

<CodeGroup>

```bash cURL
curl "https://scrapebadger.com/v1/naver/clip?query=홈카페+레시피&page=1" \
-H "X-API-Key: YOUR_API_KEY"
```

```javascript Node.js
const res = await fetch(
"https://scrapebadger.com/v1/naver/clip?" +
new URLSearchParams({"query": "홈카페 레시피", "page": "1"}),
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const data = await res.json();
```

```python Python
import requests

res = requests.get(
"https://scrapebadger.com/v1/naver/clip",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"query": "홈카페 레시피", "page": "1"},
)
data = res.json()
```

</CodeGroup>

```json Response
{
"query": "홈카페 레시피",
"page": 1,
"result_count": 24,
"results": [
{
"position": 1,
"title": "1분 홈카페 아인슈페너",
"url": "https://m.clip.naver.com/clips/98765",
"author": "카페인중독",
"view_count": 120345,
"published": "2026.07.11.",
"published_at": "2026-07-11T00:00:00+09:00"
}
]
}
```

## Errors

| Status | Meaning |
| ------ | ------- |
| `422` | Naver served a challenge instead of content — **not billed**. Retry; it succeeds. |
| `502` | Unexpected upstream failure — **not billed**. |
Loading
Loading