Shopee Search
curl --request GET \
--url https://api.example.com/shopee/searchimport requests
url = "https://api.example.com/shopee/search"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/shopee/search', 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/search",
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/search"
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/search")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/shopee/search")
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 Search
Search Shopee Indonesia for products with pricing, ratings, and seller details
GET
/
shopee
/
search
Shopee Search
curl --request GET \
--url https://api.example.com/shopee/searchimport requests
url = "https://api.example.com/shopee/search"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/shopee/search', 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/search",
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/search"
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/search")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/shopee/search")
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/search endpoint searches Shopee Indonesia (shopee.co.id) and returns structured product data including pricing, ratings, seller information, and shipping details.
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 product search query
string
required
Country code. Currently only
id (Indonesia) is supported.number
default:"0"
Page number for pagination (0-indexed, starts at 0)
string
Sort order for results:
relevance- Most relevant (default)ctime- Latest/newest firstsales- Best sellingprice- Price: Low to High-price- Price: High to Low
number
Minimum price filter (in IDR)
number
Maximum price filter (in IDR)
number
Minimum rating filter (1-5)
boolean
default:"false"
Filter for products with free shipping (Gratis Ongkir)
Example Requests
Basic Product Search
curl -X GET "https://api.scrapengine.io/api/v1/shopee/search?q=laptop&country=id" \
-H "Authorization: Bearer YOUR_API_KEY"
const params = new URLSearchParams({
q: "laptop",
country: "id",
});
const response = await fetch(
`https://api.scrapengine.io/api/v1/shopee/search?${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/search"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {
"q": "laptop",
"country": "id"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Search with Filters
curl -X GET "https://api.scrapengine.io/api/v1/shopee/search?q=headphones&country=id&priceMin=100000&priceMax=500000&freeShipping=true&sortBy=sales" \
-H "Authorization: Bearer YOUR_API_KEY"
const params = new URLSearchParams({
q: "headphones",
country: "id",
priceMin: "100000",
priceMax: "500000",
freeShipping: "true",
sortBy: "sales",
});
const response = await fetch(
`https://api.scrapengine.io/api/v1/shopee/search?${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/search"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {
"q": "headphones",
"country": "id",
"priceMin": 100000,
"priceMax": 500000,
"freeShipping": True,
"sortBy": "sales"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Search with Rating Filter
curl -X GET "https://api.scrapengine.io/api/v1/shopee/search?q=smartphone&country=id&rating=4&sortBy=-price" \
-H "Authorization: Bearer YOUR_API_KEY"
const params = new URLSearchParams({
q: "smartphone",
country: "id",
rating: "4",
sortBy: "-price",
});
const response = await fetch(
`https://api.scrapengine.io/api/v1/shopee/search?${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/search"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
params = {
"q": "smartphone",
"country": "id",
"rating": 4,
"sortBy": "-price"
}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Response
Success Response (200)
Returns parsed product search results:{
"query": "laptop",
"totalResults": 15420,
"products": [
{
"position": 1,
"itemId": "12345678901",
"shopId": "987654321",
"name": "Laptop Gaming ASUS ROG Strix G15 RTX 4060",
"link": "https://shopee.co.id/Laptop-Gaming-ASUS-ROG-Strix-G15-i.987654321.12345678901",
"image": "https://down-id.img.susercontent.com/file/abc123.jpg",
"price": 15999000,
"priceDisplay": "Rp15.999.000",
"originalPrice": 18999000,
"discount": "-16%",
"currency": "Rp",
"rating": 4.9,
"ratingCount": 2341,
"soldCount": 5230,
"soldCountDisplay": "5,2rb terjual",
"location": "Jakarta Pusat",
"shopName": "ASUS Official Store",
"isOfficialShop": true,
"isPreferredSeller": false,
"isSponsored": false,
"isFreeShipping": true
}
],
"pagination": {
"currentPage": 0,
"totalPages": 386,
"nextPageUrl": "https://shopee.co.id/search?keyword=laptop&page=1"
},
"searchUrl": "https://shopee.co.id/search?keyword=laptop",
"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 - Invalid query parameters or unsupported country |
401 | Unauthorized - Invalid or missing API key |
500 | Internal Server Error |
Use Cases
- Indonesian e-commerce research: Analyze product trends on Shopee Indonesia
- Price monitoring: Track product prices for competitive analysis
- Seller analysis: Identify official shops and Star/Preferred sellers
- Shipping optimization: Find products with free shipping (Gratis Ongkir)
- Product discovery: Find best-selling products by category
- Market intelligence: Monitor pricing trends in the Indonesian market
Notes
- This endpoint requires 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)
- The
soldCountDisplayfield shows the Indonesian format (e.g., “5,2rb terjual” = 5,200 sold) - Official shops are verified brand stores on Shopee Mall
- Preferred/Star sellers have high ratings and good service records
Was this page helpful?