Shopping Bestsellers
curl --request GET \
--url https://scrapebadger.com/v1/naver/shopping/bestsellers \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/naver/shopping/bestsellers"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/naver/shopping/bestsellers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/naver/shopping/bestsellers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/naver/shopping/bestsellers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/naver/shopping/bestsellers")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/naver/shopping/bestsellers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"category_id": "<string>",
"age_type": "<string>",
"sort_type": "<string>",
"period_type": "<string>",
"sync_date": "<string>",
"result_count": 123,
"products": [
{
"rank": 123,
"nv_mid": "<string>",
"title": "<string>",
"price": 123,
"discount_price": 123,
"discount_rate": 123,
"review_score": 123,
"review_count": 123,
"mall_name": "<string>",
"product_url": "<string>",
"image_url": "<string>",
"is_ad": true
}
]
}Shopping Intelligence
Shopping Bestsellers
Naver Shopping bestseller product rankings by category, age bracket, sort metric and period.
GET
/
v1
/
naver
/
shopping
/
bestsellers
Shopping Bestsellers
curl --request GET \
--url https://scrapebadger.com/v1/naver/shopping/bestsellers \
--header 'X-API-Key: <x-api-key>'import requests
url = "https://scrapebadger.com/v1/naver/shopping/bestsellers"
headers = {"X-API-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<x-api-key>'}};
fetch('https://scrapebadger.com/v1/naver/shopping/bestsellers', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://scrapebadger.com/v1/naver/shopping/bestsellers",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://scrapebadger.com/v1/naver/shopping/bestsellers"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://scrapebadger.com/v1/naver/shopping/bestsellers")
.header("X-API-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://scrapebadger.com/v1/naver/shopping/bestsellers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"category_id": "<string>",
"age_type": "<string>",
"sort_type": "<string>",
"period_type": "<string>",
"sync_date": "<string>",
"result_count": 123,
"products": [
{
"rank": 123,
"nv_mid": "<string>",
"title": "<string>",
"price": 123,
"discount_price": 123,
"discount_rate": 123,
"review_score": 123,
"review_count": 123,
"mall_name": "<string>",
"product_url": "<string>",
"image_url": "<string>",
"is_ad": true
}
]
}Fetch Naver Shopping’s bestseller product rankings. Scope the chart by
category, age bracket, the metric it is sorted by and the period. Each product
carries its rank, the
nv_mid catalogue id, title, price, discount, review
score and count, mall name and imagery.
Credits: 5
This endpoint returns Naver Shopping’s ranking data only. General product
search and SmartStore storefront listings are not offered.
Authorization
string
required
Your ScrapeBadger API key.
Query Parameters
string
default:"ALL"
Category to rank within.
ALL for the overall chart, or a Naver Shopping
category id.string
default:"ALL"
Age bracket to rank for.
ALL, or a specific bracket.string
default:"PRODUCT_CLICK"
The metric the chart is sorted by, e.g.
PRODUCT_CLICK.string
default:"DAILY"
The ranking period, e.g.
DAILY.Response
string
Echo of the requested category.
string
Echo of the requested age bracket.
string
Echo of the requested sort metric.
string
Echo of the requested period.
string
When Naver last synced this ranking.
integer
Products returned.
Product[]
Ranked products.
Show Product
Show Product
integer
1-based rank in the chart.
string
Naver Shopping catalogue id.
string
integer
List price in KRW.
integer
Discounted price in KRW, when on offer.
integer
Discount percentage, when on offer.
number
Average review score.
integer
string
The mall selling the product.
string
string
boolean
Whether the entry is a sponsored placement.
Example
curl "https://scrapebadger.com/v1/naver/shopping/bestsellers?category_id=ALL&age_type=ALL&sort_type=PRODUCT_CLICK&period_type=DAILY" \
-H "X-API-Key: YOUR_API_KEY"
const res = await fetch(
"https://scrapebadger.com/v1/naver/shopping/bestsellers?" +
new URLSearchParams({
category_id: "ALL",
age_type: "ALL",
sort_type: "PRODUCT_CLICK",
period_type: "DAILY",
}),
{ headers: { "X-API-Key": process.env.SCRAPEBADGER_API_KEY } },
);
const data = await res.json();
import requests
res = requests.get(
"https://scrapebadger.com/v1/naver/shopping/bestsellers",
headers={"X-API-Key": "YOUR_API_KEY"},
params={
"category_id": "ALL",
"age_type": "ALL",
"sort_type": "PRODUCT_CLICK",
"period_type": "DAILY",
},
)
data = res.json()
Response
{
"category_id": "ALL",
"age_type": "ALL",
"sort_type": "PRODUCT_CLICK",
"period_type": "DAILY",
"sync_date": "2026-08-07T00:00:00+00:00",
"result_count": 100,
"products": [
{
"rank": 1,
"nv_mid": "82613579214",
"title": "삼성전자 갤럭시 버즈3 프로",
"price": 279000,
"discount_price": 229000,
"discount_rate": 18,
"review_score": 4.8,
"review_count": 12043,
"mall_name": "삼성전자 공식스토어",
"product_url": "https://shopping.naver.com/catalog/82613579214",
"image_url": "https://shopping-phinf.example.net/82613579214.jpg",
"is_ad": false
}
]
}

