Tokopedia Scraper avatar

Tokopedia Scraper

Pricing

from $5.00 / 1,000 product details

Go to Apify Store
Tokopedia Scraper

Tokopedia Scraper

Scrape Tokopedia product details, category listings and shop catalogs by URL: price, rating, reviews, stock, shop and image. No login needed.

Pricing

from $5.00 / 1,000 product details

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

0

Monthly active users

14 days ago

Last modified

Share

What is Tokopedia Scraper?

Tokopedia Scraper extracts product data from Tokopedia category pages, shop catalogs and product-detail URLs into a structured dataset. Each row is one product with its name, product ID and URL, display price and numeric rupiah price, rating, review count, stock, category breadcrumbs, badges such as Mall, ad flag, image, shop name and shop location. Ecommerce analysts, Indonesian sellers, brand managers and AI agents use it to monitor prices, research categories and track competitor shops on Indonesia's major marketplace, with no login or cookies.

Why teams use it

  • One URL field, three page types. Paste category (/p/...), shop or product URLs; the Actor detects the page type for each one.
  • Numbers ready for analysis. priceInt is a plain integer in rupiah next to the display string price.
  • Stock and trust signals. stock, badges (for example Mall) and isAd sit on every listing row.
  • Seller context. shopName and shopLocation show who sells each product and from which city.
  • Paginated catalogs. maxPagesPerList walks deeper into a category or shop, and duplicate products across pages are merged.

Best fit for this Actor

  • Designed for Tokopedia category browsing pages, public shop catalogs and individual product pages.
  • Best fit for price and stock monitoring, category share-of-shelf research and competitor shop tracking in Indonesia.
  • Category and shop URLs are the browse path; keyword search pages sit outside this Actor's URL types.
  • To compare the same category on another Southeast Asian marketplace, use Shopee Scraper alongside this Actor.
  • When you also track Lazada sellers, continue with Lazada Scraper for that marketplace.

Example workflow: smartphone price tracking

A pricing analyst at a phone distributor starts with the Tokopedia smartphone category URL https://www.tokopedia.com/p/handphone-tablet/handphone and two competitor shop URLs. She sets maxPagesPerList to 5 and maxResults to 400. The dataset returns each listing's priceInt, stock, rating, reviewCount, badges and shopName. She compares competitor prices on the same models, flags listings with low stock, then schedules the run daily and exports the rows to a spreadsheet that charts price movement per model.

Input

{
"startUrls": [
"https://www.tokopedia.com/p/handphone-tablet/handphone"
],
"maxResults": 100,
"maxPagesPerList": 5,
"proxyConfiguration": { "useApifyProxy": true }
}
FieldTypeWhat it controls
startUrlsarray of stringsRequired. Tokopedia category (/p/...), shop or product-detail URLs.
maxResultsintegerProducts returned across all URLs. Default 100.
maxPagesPerListintegerPages followed per category or shop URL. Default 5. Product URLs are always one page.
proxyConfigurationobjectApify Proxy settings. Default Apify Proxy; residential Indonesia suits large or concurrent jobs.
URL you pasteWhat each row represents
https://www.tokopedia.com/p/handphone-tablet/handphoneOne product card from the category listing
https://www.tokopedia.com/{shop} or .../{shop}/productOne product from the shop catalog
https://www.tokopedia.com/{shop}/{product-slug}One product-detail record

Output

One dataset row per product. The type field tells you which page type produced it.

FieldWhat it contains
type, productIdRow type (such as listing) and Tokopedia product ID
name, urlProduct title and product page URL
price, priceIntDisplay price string and integer price in rupiah
rating, reviewCountRating and number of reviews
stockUnits in stock as listed
categoryBreadcrumbsCategory path such as Handphone & Tablet/Handphone/Android OS
badges, isAdStore badges such as Mall and the sponsored-listing flag
imageUrlProduct image
shopName, shopLocationSeller name and city
sourceUrl, scrapedAtThe URL you supplied and the collection time
{
"type": "listing",
"productId": "103313329805",
"name": "Motorola Moto G86 Power 5G 8GB 256GB - Dimensity7400 - 6720mAh - 6.67\" pOLED 1.5K 120Hz Garansi Resmi Indonesia",
"url": "https://www.tokopedia.com/agres-id-tangerang-selatan/motorola-moto-g86-power-5g-8gb-256gb-dimensity7400-6720mah-6-67-poled-1-5k-120hz-garansi-resmi-indonesia-produk-asli-1732578579216041285-1735327867464549701",
"price": "Rp4.759.000",
"priceInt": 4759000,
"rating": 5,
"reviewCount": 17,
"stock": 11,
"categoryBreadcrumbs": "Handphone & Tablet/Handphone/Android OS",
"badges": ["Mall"],
"imageUrl": "https://p16-images-sign-sg.tokopedia-static.net/tos-alisg-i-aphluv4xwc-sg/7b84cef85f4344a88e30e15512c1c835~tplv-aphluv4xwc-white-pad-v1:250:250.jpeg",
"isAd": false,
"shopName": "Agres ID Tangerang Selatan",
"shopLocation": "Kota Tangerang Selatan",
"sourceUrl": "https://www.tokopedia.com/p/handphone-tablet/handphone",
"scrapedAt": "2026-10-01T01:43:57.790Z"
}

Product-detail URLs return the same core fields with the deeper product-page data Tokopedia publishes, such as price before discount, discount, rating breakdown and description.

Pricing

This Actor uses Pay per event with Apify platform usage included in the event price. There are three events:

  • Actor Start, once per run.
  • Listing product, for each product saved from a category or shop catalog page.
  • Product detail, for each product saved from a product-detail URL.

Worked example: one category URL with maxResults set to 100 costs one Actor Start event plus 100 Listing product events. Adding five product-detail URLs adds five Product detail events. Each product is charged once even when it appears on several pages. Check the live Pricing tab on this page for current event prices.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~tokopedia-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls": ["https://www.tokopedia.com/p/handphone-tablet/handphone"], "maxResults": 50, "maxPagesPerList": 2}'
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("khadinakbar/tokopedia-scraper").call(
run_input={"startUrls": ["https://www.tokopedia.com/p/handphone-tablet/handphone"], "maxResults": 50}
)
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["name"][:60], product["priceInt"], product["stock"], product["shopName"])

Use it with AI agents (MCP)

Connect the Actor to Claude, ChatGPT, Cursor or another MCP client through Apify MCP and ask:

Scrape the first 60 products from https://www.tokopedia.com/p/handphone-tablet/handphone and tell me the median price, the share of Mall-badged listings and the five shops with the most products.

The agent reads product rows with get-dataset-items and can cite url and scrapedAt as provenance. maxResults caps both the dataset and the cost, which keeps exploratory agent runs inexpensive.

Best results

Starting situationHelpful actionExpected outcome
A topic you would normally search forOpen the matching Tokopedia category and paste its /p/... URLA server-rendered category listing to paginate
A competitor sellerPaste the shop URL or its /product pageThat shop's catalog
A deeper category pullRaise maxPagesPerList together with maxResultsMore pages per category
Large or parallel jobsChoose Apify residential proxy in IndonesiaSteadier throughput
Daily price trackingSchedule the same URLs and compare priceInt by productIdA clean price history per product

Builder's note

I built this around Tokopedia's own server-rendered category, shop and product pages, so each row reflects what a shopper sees without a browser session. I designed separate events for listing cards and product-detail pages because a detail page carries more data than a card. I found that analysts compare prices constantly, so every row includes the integer priceInt beside the formatted rupiah string.

FAQ

Can I search Tokopedia by keyword?

The Actor reads category, shop and product URLs. For a keyword, open the closest Tokopedia category in your browser and paste that URL.

Do I need a login or an Indonesian IP?

No login or cookies. The default Apify Proxy works for normal runs, and an Indonesian residential proxy is a good choice for large jobs.

Are prices in rupiah?

Yes. price is the display string and priceInt is the integer value in rupiah.

Responsible use

This Actor collects publicly available product and shop data from Tokopedia. Use it in line with Tokopedia's terms and applicable laws, including Indonesian data-protection law, and keep the data to legitimate purposes such as price monitoring and market research. Tokopedia is a trademark of its owner, and this independent Actor is not affiliated with or endorsed by Tokopedia. For questions, open a ticket in the Issues tab.