Yes: Naver has an official shopping API, and it needs a registered application. It returns up to 100 products a call, with prices and categories but no documented ratings or review counts. Our Naver Shopping API returns what Naver's search page shows for a keyword, including ratings, reviews, delivery and which products are ads: 66 to 96 products for each of 7 shopping keywords.
Naver's official shopping search
Naver's Search API has a shopping endpoint at openapi.naver.com/v1/search/shop.json. You register an application and send its client ID and secret as headers; the Search API allows 25,000 calls a day.
display goes up to 100, start up to 1,000, and sort takes relevance, date or price. Each item has a title, link, image, lowest and highest price, mall name, brand, maker and category levels, and no rating, review count, delivery fee or ad marker. We did not call it.
Naver Shopping with ToolzerHub
We make ToolzerHub. Our Naver Shopping API has one route: GET /v1/naver/shopping/search?query=<keyword> with the x-api-key header, at 1 credit a call. It returns one page per keyword and has no page parameter.
export TOOLZERHUB_API_KEY=your_key
curl -G -H "x-api-key: $TOOLZERHUB_API_KEY" \
--data-urlencode "query=노트북" \
"https://api.toolzerhub.com/v1/naver/shopping/search"
The response has count, organic_count, sponsored_count and results. The first result, trimmed:
{
"id": "90655441804",
"title": "베이직스 노트북 MS office 16 Pro 사무용 업무용 가벼운 영상편집 게이밍 고성능",
"type": "product",
"sponsored": false,
"seller": { "name": "베이직스 스토어", "badge": "공식" },
"price": 1128000,
"original_price": 1455120,
"discount_percent": 22,
"rating": 4.82,
"review_count": 438,
"purchase_count": 316,
"delivery": { "fee": 0, "is_free": true, "fast_type": "ARRIVAL_GUARANTEE" }
}
Ads carry "sponsored": true. A type of catalog is a price-comparison entry: it has no seller, an offer_count and options with the lowest price for each.
Naver product search to CSV
The script runs one call per keyword and writes one row per product, ads included and flagged. Save it as naver_shopping.py, install requests, and run python naver_shopping.py 노트북 운동화.
import csv
import os
import sys
import requests
API = "https://api.toolzerhub.com/v1/naver/shopping/search"
HEADERS = {"x-api-key": os.environ["TOOLZERHUB_API_KEY"]}
FIELDS = ["keyword", "id", "title", "type", "sponsored", "seller", "price",
"original_price", "rating", "review_count", "purchase_count", "url"]
def search(keyword):
response = requests.get(API, headers=HEADERS, params={"query": keyword}, timeout=60)
response.raise_for_status()
return response.json()["data"]["results"]
def main():
keywords = sys.argv[1:]
with open("naver_products.csv", "w", newline="", encoding="utf-8") as out:
writer = csv.DictWriter(out, fieldnames=FIELDS)
writer.writeheader()
count = 0
for keyword in keywords:
for item in search(keyword):
writer.writerow({
"keyword": keyword,
"id": item["id"],
"title": item["title"],
"type": item["type"],
"sponsored": item["sponsored"],
"seller": (item["seller"] or {}).get("name"),
"price": item["price"],
"original_price": item["original_price"],
"rating": item["rating"],
"review_count": item["review_count"],
"purchase_count": item["purchase_count"],
"url": item["url"],
})
count += 1
print(f"saved {count} products for {len(keywords)} keywords to naver_products.csv")
if __name__ == "__main__":
main()
What one call returned
Seven of the 10 keywords we searched had shopping results, one call each:
| Keyword | Products | Ads | Catalog entries | With rating |
|---|---|---|---|---|
| 노트북 | 92 | 40 | 32 | 59 |
| 운동화 | 96 | 36 | 32 | 84 |
| 아이폰 케이스 | 66 | 26 | 5 | 65 |
| 무선 이어폰 | 90 | 45 | 27 | 69 |
| 에어프라이어 | 70 | 30 | 35 | 57 |
| 비타민 | 69 | 29 | 33 | 67 |
| 캠핑 의자 | 70 | 30 | 32 | 64 |
Those 553 products included 236 ads, 43% of the total. 315 of the 317 non-ad products (99%) had a rating, against 150 of the 236 ads (64%). purchase_count came back on 200 products, and on none of the 196 catalog entries.
The two gift keywords, 한우 선물세트 and 선물세트, returned 14 products each, 2 of them ads. Those products have no product link and fewer fields. 서울 날씨, a keyword with no shopping intent, returned empty results.
Product detail pages are not available, so there is no description, option list or seller page beyond what the search page shows. There is no paging, so a keyword gives you the one page, the largest being 96 products here; the official API goes to position 1,000.
What it costs
A keyword is 1 credit, so the 7 shopping keywords above took 7 credits. The 100 free credits a month cover 100 keywords; $19 buys 10,000 credits that never expire, and plans for higher volume cover more.
For other shopping data, see Ozon prices to CSV and TikTok Shop product data.
We are not affiliated with Naver.