Tokopedia Scraper icon

Tokopedia Scraper

Extract product data from Tokopedia, Indonesia’s largest marketplace. Search by keyword with sorting and filters, or use product/result URLs. Returns…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Tokopedia Scraper at a glance

Tokopedia Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes product id, name, price, price text and original price, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.70 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Ecommerce, Automation, Developer Tools
Pricing
$1.70 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
25 options

Extract product data from Tokopedia, Indonesia’s largest marketplace. Search by keyword with sorting and filters, or use product/result URLs. Returns price, discount, rating, sold count, seller, category, images, and optional details like description, videos, variants, and wholesale tiers.

What Tokopedia Scraper can do

  • Two ways in. Search by keyword with filters and sorting, or paste product and search-result URLs directly. No need to build query strings by hand.
  • Filters apply to both modes. Price, rating and discount narrow even a single pasted product URL, not just a keyword search.
  • Full detail on demand. Turn on detail fetching to add the complete description, every image and video, variants, wholesale price tiers, live stock and seller flags, and pay only for the products you enrich.
  • Seller and pricing depth. Seller tier, city and badges, plus original price, discount percentage and active flash-sale campaign data when a product is genuinely running one.
  • Built for monitoring. Resume an interrupted crawl without re-collecting or re-paying for products already gathered, or track the same search on a schedule and get back only new and changed products.
  • Indonesia-scale catalogue. Search Tokopedia's marketplace across any category, from electronics and fashion to groceries and home goods.

Choose what to collect

These inputs let you configure Tokopedia Scraper - Products, Prices, Sellers & Variants. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredChoose Search to build queries from keywords and filters, or URL to scrape pasted product or result-page URLs directly.

Choices: search, url

searchTermsarrayOne or more keywords to search for, e.g. "sepatu", "laptop", "iphone".
urlsarrayPaste search, category (/p/), collection (/find/), product, or shop URLs (home, /product list, or /review). A shop /review link returns one row per reviewed product with the shop's newest reviews nested under reviews. Short links (tokopedia.link) are not supported and log a warning. Filters and sorting below still apply, see each field for which URL shape it covers.
sortBystringResult ordering. Applies in Search mode and to a pasted search URL; does not apply to a pasted product URL or shop URL.

Choices: relevance, newest, most_reviewed, price_asc, price_desc

minPriceintegerOnly keep products at or above this price, in Indonesian Rupiah. Applies in Search mode and to a pasted product, shop or search URL.
maxPriceintegerOnly keep products at or below this price, in Indonesian Rupiah. Applies in Search mode and to a pasted product, shop or search URL.
conditionstringKeep only products that match this condition. Applies in Search mode and to a pasted search URL; does not apply to a pasted product URL or shop URL.

Choices: any, new, used

Show 18 more inputs
More input fields
InputWhat it controls
minRatingintegerOnly keep products with an average rating at or above this value (1-5). Applies in Search mode and to a pasted product, shop or search URL.
shopTierstringKeep only products from this type of seller. Applies in Search mode and to a pasted search URL; does not apply to a pasted product URL or shop URL.

Choices: any, official_store, power_merchant

freeShippingOnlybooleanKeep only products eligible for free shipping. Applies in Search mode and to a pasted search URL; does not apply to a pasted product URL or shop URL.
discountOnlybooleanKeep only products with an active discount. Applies in Search mode and to a pasted product, shop or search URL.
fetchDetailsbooleanAdds the full description, every image and video, variants, wholesale tiers, stock, sold and review counts, weight, condition and seller flags. Without it, runs already return name, price, image, rating, seller and category.
maxReviewsintegerWith Fetch full product details on, attaches this many newest customer reviews to each product (reviewer, rating, date, text, seller reply, helpful votes). A shop /review link returns at most this many reviews per product regardless of that switch. 0 turns reviews off. Capped at 1000 per product. Reviews add no charge beyond the per-product row and the per-product detail charge.
maxPagesintegerSafety bound on pages walked per keyword (or per shop reviews link, 10 reviews a page). Leave empty or 0 for the hard cap of 100 pages; values above 100 are clamped to 100. This does NOT cap the number of products; the run still stops at Max items.
maxItemsintegerMaximum number of products to return across the whole run. The single finite cap. Set 0 for unlimited. Capped at 1,000,000.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large crawl without returning or charging for products already collected there. Use this after an interrupted run, or to continue a catalogue pull across multiple runs. For recurring daily/weekly monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns all matching products as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED products. Turn on "Emit unchanged" or "Emit expired" only when you also want those products returned (and billed). A product counts as UPDATED when any returned field changes (price, discount, stock, rating, sold count, title, images, description and so on), and changedFields lists them. Never compared: scrapedAt, signed image/video link hosts and tokens (only the image path counts), and tracking tokens inside URLs; add more with Ignore fields when detecting changes below. State is kept separately for each search/URL and filter/detail setup; use State key when you want to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the search terms/URLs and filter/detail settings, different searches then never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, not when Max items capped it, when Max pages capped it, or when Resume was used. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
ignoreFieldsForChangesarrayOptional. Field names to leave out of UPDATED change detection, in addition to the built-in handling (scrapedAt, signed image and video link tokens and tracking tokens never trigger a false UPDATED). A name is ignored wherever it appears, including inside nested lists such as gallery. The field is still returned in the output. Use this if a field in your setup turns out to be noisy, e.g. soldCount when you only care about price.
mcpConnectorsarrayOptional. Pick connected apps (Notion, Airtable, Linear, Apify) to also push each scraped product to, in addition to the dataset.
notionParentPageUrlstringOptional. When a Notion connector is selected, create one page per product under this parent page.
maxNotifyItemsintegerOptional cap on how many products are pushed to the selected MCP connectors.
maxNotifyListingsintegerSame as Max items to export (alias, either may be used). Optional cap on products pushed to the selected MCP connectors.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

productIdProduct ID
nameName
pricePrice
priceTextPrice text
originalPriceOriginal price
discountPercentageDiscount %
isOnSpecialOn special
specialsCategorySpecials category
ratingRating
reviewCountReviews
soldCountSold
conditionCondition
Show 26 more fields
categoryNameCategory
shopNameSeller
shopCitySeller city
shopTierSeller tier
imageImage (image)
isOfficialStoreOfficial store
isPowerMerchantPower merchant
urlURL (link)
scrapedAtScraped at (datetime)
changeTypeChange type (incremental mode) (text)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
descriptionDescription
categoryBreadcrumbCategory path
stockStock
stockTextStock text
minOrderMin order
weightWeight
weightUnitWeight unit
isPreorderPre-order
variantsVariants
wholesaleWholesale tiers
galleryGallery
shopIdSeller ID
reviewsReview

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "productId": "11690069936",
  "productKey": "sepatu-sneakers-pria-casual",
  "name": "Sepatu Sneakers Pria Casual",
  "url": "https://www.tokopedia.com/tokosepatujaya/sepatu-sneakers-pria-casual",
  "categoryName": "Sepatu Pria",
  "categoryBreadcrumb": "Pria/Sepatu Pria/Sneakers",
  "price": 150000,
  "priceText": "Rp150.000",
  "originalPrice": 200000,
  "discountPercentage": 25,
  "isOnSpecial": true,
  "specialsCategory": "Flash Sale",
  "rating": 4.8,
  "reviewCount": 1240,
  "soldCount": 500,
  "soldText": "500+ terjual",
  "condition": "Baru",
  "stock": 85,
  "stockText": "Tersedia",
  "minOrder": 1,
  "weight": 800,
  "weightUnit": "gr",
  "image": "https://images.tokopedia.net/img/product/sample.jpg",
  "gallery": [
    {
      "type": "image",
      "original": "https://images.tokopedia.net/img/product/sample-1.jpg"
    }
  ],
  "videos": [],
  "variants": [
    {
      "type": "Ukuran",
      "options": [
        {
          "name": "40"
        },
        {
          "name": "41"
        },
        {
          "name": "42"
        }
      ]
    }
  ],
  "wholesale": [
    {
      "minQty": 3,
      "price": 140000
    }
  ],
  "description": "Sepatu sneakers pria bahan kanvas, nyaman dipakai harian, tersedia berbagai ukuran.",
  "shopId": "2000001",
  "shopName": "Toko Sepatu Jaya",
  "shopCity": "Jakarta Barat",
  "shopTier": 3,
  "isOfficialStore": false,
  "isPowerMerchant": true,
  "badgeTitle": "Power Merchant",
  "searchQuery": "sepatu",
  "searchPage": 1,
  "searchPosition": 3,
  "platform": "tokopedia",
  "mode": "detail",
  "scrapedAt": "2026-09-28T04:00:00.000Z"
}

Ways to use this data

  • Price and stock monitoring: track competitor prices, discounts and stock levels on a recurring schedule.
  • Catalogue research: analyze category breadth, seller tiers and badges across a keyword or category.
  • Product data feeds: enrich your own storefront, comparison site or price-tracking app with structured Tokopedia listings.
  • Flash-sale and deal tracking: capture active campaign pricing, stock and timing on the products you follow.
  • Seller intelligence: compare official stores and power merchants by rating, review count and sold count.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Tokopedia Scraper return?

The documented output for Tokopedia Scraper includes product id, name, price, price text, original price, discount %, on special and specials category. Availability of each field depends on the source page and the selected mode.

How much does Tokopedia Scraper cost?

It costs $1.70 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. The first run returns everything as NEW; later runs return only NEW, UPDATED and REAPPEARED products by default, and unchanged ones are not billed.

What's the difference between Resume and Incremental mode?

Resume (resumeFromRunId) continues ONE specific interrupted run using a pasted run or dataset ID. Incremental mode is for running the SAME search or URL list again and again on a schedule; the actor remembers state on its own, so no ID is pasted. Combining both only works to bootstrap a new incremental campaign from an existing dataset; if incremental state already exists for that search, the run stops with an error asking you to remove Resume or choose a different State key.

Why did my run fail instead of returning an empty dataset?

A run fails, rather than finishing with zero products, only when Resume from a previous run points at an ID this account cannot read, or when it's combined with Incremental mode that already has saved state for the same search. Everything else, including the site refusing requests or a search matching nothing, finishes as a successful run with zero products and a status message explaining why. Check the run's status message and log before assuming something is broken.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the Export to your apps field to push scraped products into Notion, Linear or Airtable.

Ready to collect with Tokopedia Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.