Tokopedia product pages, search results and shop catalogs as JSON, on request.
Free trial credits. Catalog and estimates work immediately.
Need monthly sales and market share instead? Tokopedia market data →
{
"items": [
{
"list_type": "search",
"keyword": "sabun mandi",
"product_limit": 60
}
]
}{
"keyword": "sabun mandi",
"list_type": "search",
"pages_fetched": 40,
"total_unique_ids": 1849,
"products": [
{
"id": "102407389499",
"name": "Grace and Glow Brightening Body Wash 400ml | Shower Gel Grace and Glow | English Pear, Rouge540 | Sabun Mandi Cair Wangi Parfum yang Mencerahkan, Membersihkan, Melembutkan Tubuh, Kulit Lebih Segar & Tangan Terawat",
"url": "https://www.tokopedia.com/graceandglowofficial/grace-and-glow-brightening-body-wash-shower-gel-grace-and-glow-english-pear-rouge540-miss-moisture-peony-sabun-mandi-cair-wangi-parfum-yang-mencerahkan-membersihkan-melembutkan-tubuh-kulit-lebih-segar-tangan-terawat-1732841867910939916?extParam=ivf%3Dtrue%26keyword%3Dsabun+mandi%26search_id%3D20260918063826D1F255A373A3CE32D7ZO%26src%3Dsearch",
"price": {
"text": "Rp18.500",
"number": 18500,
"range": "",
"original": "Rp64.000",
"discountPercentage": 0,
…Get a key. Sign in and create an API key in the dashboard. New accounts get free trial credits.
Submit. POST your keywords to /v1/tokopedia/search/bulk/submit, up to 50 per request. You get a job ID back.
Retrieve. Poll /v1/tokopedia/search/bulk/retrieve/{job_id}; when each item is complete, download it from its download_url straight away, because the links expire.
curl -X POST https://api.magpieiq.com/scraping/v1/tokopedia/search/bulk/submit \
-H "Authorization: Bearer $MAGPIE_API_KEY" -H "Content-Type: application/json" \
-d '{"items": [{"list_type": "search", "keyword": "sabun mandi", "product_limit": 60}]}'
# -> {"job_id": "...", ...}
curl https://api.magpieiq.com/scraping/v1/tokopedia/search/bulk/retrieve/<job_id> \
-H "Authorization: Bearer $MAGPIE_API_KEY"
# each completed item carries a download_url for its resultsimport os, time, requests
BASE = "https://api.magpieiq.com/scraping"
H = {"Authorization": f"Bearer {os.environ['MAGPIE_API_KEY']}"}
job = requests.post(f"{BASE}/v1/tokopedia/search/bulk/submit", headers=H,
json={"items": [{"list_type": "search", "keyword": "sabun mandi", "product_limit": 60}]}).json()
while True:
r = requests.get(f"{BASE}/v1/tokopedia/search/bulk/retrieve/{job['job_id']}", headers=H).json()
if r["status"] not in ("pending", "processing"):
break
time.sleep(10)
if r["status"] == "failed":
raise SystemExit(f"job {job['job_id']} failed: {r}")
print(r) # completed items carry a download_url; download it promptly, the links expire{
"keyword": "sabun mandi",
"list_type": "search",
"pages_fetched": 40,
"total_unique_ids": 1849,
"products": [
{
"id": "102407389499",
"name": "Grace and Glow Brightening Body Wash 400ml | Shower Gel Grace and Glow | English Pear, Rouge540 | Sabun Mandi Cair Wangi Parfum yang Mencerahkan, Membersihkan, Melembutkan Tubuh, Kulit Lebih Segar & Tangan Terawat",
"url": "https://www.tokopedia.com/graceandglowofficial/grace-and-glow-brightening-body-wash-shower-gel-grace-and-glow-english-pear-rouge540-miss-moisture-peony-sabun-mandi-cair-wangi-parfum-yang-mencerahkan-membersihkan-melembutkan-tubuh-kulit-lebih-segar-tangan-terawat-1732841867910939916?extParam=ivf%3Dtrue%26keyword%3Dsabun+mandi%26search_id%3D20260918063826D1F255A373A3CE32D7ZO%26src%3Dsearch",
"price": {
"text": "Rp18.500",
"number": 18500,
"range": "",
"original": "Rp64.000",
"discountPercentage": 0,
"__typename": "SearchProductV5Price"
},
"stock": {
"ttsSKUID": "1732841867910939916",
"__typename": "SearchProductV5Stock"
},
"rating": "4.9",
"category": {
"id": "2133",
"name": "Perawatan Tubuh",
"breadcrumb": "perawatan-tubuh/perlengkapan-mandi/sabun-mandi"
},
"shop": {
"name": "Grace and Glow Indonesia_NEW",
"city": "Kab. Bogor"
}
},
{
"id": "2217681166",
"name": "NUVO FAMILY Sabun Mandi Cair Total Protect Pouch 800 g x2",
"url": "https://www.tokopedia.com/wingsofficial/nuvo-family-sabun-mandi-cair-total-protect-pouch-800ml-x2-1729935252670745314?extParam=ivf%3Dfalse%26keyword%3Dsabun+mandi%26search_id%3D20260918063826D1F255A373A3CE32D7ZO%26src%3Dsearch%26whid%3D7386608",
"price": {
"text": "Rp25.400",
"number": 25400,
"range": "",
"original": "Rp100.000",
"discountPercentage": 0,
"__typename": "SearchProductV5Price"
},
"stock": {
"ttsSKUID": "1729935252670810850",
"__typename": "SearchProductV5Stock"
},
"rating": "5.0",
"category": {
"id": "2133",
"name": "Perawatan Tubuh",
"breadcrumb": "perawatan-tubuh/perlengkapan-mandi/sabun-mandi"
},
"shop": {
"name": "Wings Indonesia",
"city": "Kab. Bekasi"
}
}
]
}/v1/tokopedia/pdp/bulkProduct detail for each item, including price and the exact lifetime sold count.
product_keyshop_domain/v1/tokopedia/search/bulkThe products a keyword or category search returns, in order, with price, rating, category and shop.
keyword or category IDlist_typeproduct_limit/v1/tokopedia/merchant/bulkThe products listed in one Tokopedia shop.
shopidoptional keyword or max_pages| Field | Type | Meaning |
|---|---|---|
keyword / list_type | string | What was searched and whether it was a keyword or category search. |
pages_fetched | integer | Result pages collected for this search. |
total_unique_ids | integer | Distinct products found across those pages. |
products[] | array | The products in result order. A product's rank is its position, counting from 1. |
products[].id / name / url | string | Product ID, listing title and product URL. |
products[].price.number | integer | Current price in rupiah. |
products[].price.text / original | string | Price as displayed, and the pre-discount price when shown. |
products[].rating | string | Average rating, 0–5. |
products[].category.name / breadcrumb | string | Category name and path. |
products[].shop.name / city | string | Shop name and the city it lists. |
products[].stock.ttsSKUID | string | The SKU identifier attached to the listing. |
2,000credits
≈ $2.5
1,500credits
≈ $1.88
20credits
≈ $0.03
Dollar figures use the Tier 1 credit rate. Pay-as-you-go top-ups cost more per credit and larger packs cost less; the rate card has every pack.
Credits are deducted when you submit; items that fail are refunded.
Give your assistant your keywords and your listings, and it tracks where you rank on Tokopedia search and who moved past you.
Submit POST /v1/tokopedia/search/bulk/submit with {"items": [{"list_type": "search", "keyword": "<keyword>", "product_limit": 60}]} for each of my keywords (up to 50 per request). Poll GET /v1/tokopedia/search/bulk/retrieve/{job_id}, and download each item's download_url promptly and save it — the links expire.
A listing's rank is its position in the products array, counting from 1. Skip any product whose ads.id is filled — that slot is sponsored, not organic. Match my listings by id or shop.id and record rank per keyword per run, then show me who climbed past us since the last run.The copied prompt also tells your assistant how to get you a key if you don’t have one yet, and to ask before spending credits.
No. You need a Magpie API key. Sign-up is self-serve and includes free trial credits.
Both are in the product URL: tokopedia.com/{shop_domain}/{product_key}. Copy them as they appear.
Yes. Run the search endpoint for your keywords on a schedule; a listing's rank is its position in the products array.
Sponsored slots carry a filled ads.id in the search results, so you can skip them when you compute organic rank.
In prepaid credits from one wallet shared with the Data API, per item or per task. The rate card shows every current price.
Yes. The Data API serves monthly GMV, units and market share for Tokopedia by brand, merchant and SKU, already cleaned and categorised.
Free trial credits. Catalog and estimates work immediately.