Shopee Shop Products
curl --request GET \
--url https://api.example.com/shopee/shop/productsimport requests
url = "https://api.example.com/shopee/shop/products"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/shopee/shop/products', 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://api.example.com/shopee/shop/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.example.com/shopee/shop/products"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/shopee/shop/products")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/shopee/shop/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyShopee
Shopee Shop Products
Get products from a Shopee Indonesia shop by shop ID
GET
/
shopee
/
shop
/
products
Shopee Shop Products
curl --request GET \
--url https://api.example.com/shopee/shop/productsimport requests
url = "https://api.example.com/shopee/shop/products"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/shopee/shop/products', 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://api.example.com/shopee/shop/products",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://api.example.com/shopee/shop/products"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/shopee/shop/products")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/shopee/shop/products")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyOverview
The/shopee/shop/products endpoint retrieves a list of products from a specific shop on Shopee Indonesia (shopee.co.id), including product details, pricing, and inventory information.
This endpoint uses browser rendering to bypass anti-bot protection. Requests may take longer compared to renderless endpoints.
Currently only Indonesia (country=id) is supported. More Southeast Asian markets will be added in future updates.
Credits
25 credits per successful request.Parameters
Query Parameters
string
required
The Shopee shop/seller ID (e.g., “12651109”).
string
required
Country code. Currently only
id (Indonesia) is supported.number
default:"0"
Page number for pagination (0-indexed, starts at 0).
number
default:"30"
Number of products per page (max 100).
string
Sort order for results:
relevance- Most relevant (default)ctime- Latest/newest firstsales- Best sellingprice- Price: Low to High-price- Price: High to Low
Example Requests
Basic Shop Products
curl -X GET "https://api.scrapengine.io/api/v1/shopee/shop/products?shopId=12651109&country=id" \
-H "Authorization: Bearer YOUR_API_KEY"
const params = new URLSearchParams({
shopId: "12651109",
country: "id",
});
const response = await fetch(
`https://api.scrapengine.io/api/v1/shopee/shop/products?${params}`,
{
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
}
);
const data = await response.json();
console.log(data);
import requests
url = "https://api.scrapengine.io/api/v1/shopee/shop/products"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {
"shopId": "12651109",
"country": "id"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Shop Products with Pagination and Sorting
curl -X GET "https://api.scrapengine.io/api/v1/shopee/shop/products?shopId=12651109&country=id&page=0&limit=50&sortBy=sales" \
-H "Authorization: Bearer YOUR_API_KEY"
const params = new URLSearchParams({
shopId: "12651109",
country: "id",
page: "0",
limit: "50",
sortBy: "sales",
});
const response = await fetch(
`https://api.scrapengine.io/api/v1/shopee/shop/products?${params}`,
{
headers: {
Authorization: "Bearer YOUR_API_KEY",
},
}
);
const data = await response.json();
console.log(data);
import requests
url = "https://api.scrapengine.io/api/v1/shopee/shop/products"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {
"shopId": "12651109",
"country": "id",
"page": 0,
"limit": 50,
"sortBy": "sales"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Response
Success Response (200)
Returns shop products:{
"shopId": "12651109",
"shopName": "Toko Aksesoris HP",
"totalProducts": 234,
"products": [
{
"position": 1,
"itemId": "22133637031",
"shopId": "12651109",
"name": "Gantungan Handphone Kristal Ungu",
"link": "https://shopee.co.id/Gantungan-Handphone-Kristal-Ungu-i.12651109.22133637031",
"image": "https://down-id.img.susercontent.com/file/product.jpg",
"price": 15000,
"priceDisplay": "Rp15.000",
"originalPrice": 20000,
"discount": "-25%",
"currency": "Rp",
"rating": 4.8,
"ratingCount": 456,
"soldCount": 1234,
"soldCountDisplay": "1,2rb terjual",
"stock": 150,
"isFreeShipping": true
},
{
"position": 2,
"itemId": "22133637032",
"shopId": "12651109",
"name": "Case iPhone 15 Pro Max Silikon",
"link": "https://shopee.co.id/Case-iPhone-15-Pro-Max-i.12651109.22133637032",
"image": "https://down-id.img.susercontent.com/file/product2.jpg",
"price": 25000,
"priceDisplay": "Rp25.000",
"currency": "Rp",
"rating": 4.9,
"ratingCount": 892,
"soldCount": 2500,
"soldCountDisplay": "2,5rb terjual",
"stock": 300,
"isFreeShipping": true
}
],
"pagination": {
"currentPage": 0,
"totalPages": 8,
"limit": 30
},
"country": "id"
}
Response Headers
| Header | Description |
|---|---|
x-remaining-credits | Number of API credits remaining |
x-trace-id | Unique identifier for the request |
Error Responses
| Status | Description |
|---|---|
400 | Bad Request - Missing shopId or unsupported country |
401 | Unauthorized - Invalid or missing API key |
404 | Not Found - Shop not found |
500 | Internal Server Error |
Use Cases
- Inventory analysis: Get complete product catalog from a shop
- Competitive intelligence: Monitor competitor product offerings
- Price monitoring: Track prices across a seller’s entire catalog
- Product discovery: Find all products from a specific seller
- Dropshipping research: Identify potential supplier products
Notes
- This endpoint uses browser rendering which may result in longer response times
- Shopee uses 0-indexed pagination (page 0 is the first page)
- Prices are in Indonesian Rupiah (IDR)
- Use pagination to retrieve all products from shops with large catalogs
Was this page helpful?