Scraping API · Tokopedia

Every listing a keyword returns, in one job.

A keyword search is how a category looks to a shopper. This endpoint walks the result set and returns the listings with price, shop and category attached, rather than the first page only.

What one call returns.

  • Product id, name and URL for each listing in the result set
  • Price, stock and rating as displayed at capture time
  • The shop behind each listing, including city and official-store status
  • Category with its breadcrumb, which is how you filter a noisy keyword down to the products you meant

Use this to build a category frame: what exists under a search term, at what prices, from which sellers, before you decide what to track.

The specification.

Endpoint
POST /v1/tokopedia/search/bulk/submit
Markets
Indonesia
Credits
Per query, see the rate card
Batch size
Up to 50 queries per job
Approval
None, runs on submission
Processing hours
Any hour

Checked against the live API specification on 2026-09-18.

A real response, not a mock-up.

POST /v1/tokopedia/search/bulk/submit → GET .../retrieve/{job_id}Captured 2026-09-18
{
  "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"
      }
    }
  ]
}

The limits, stated plainly.

  • One query is one job. The capture below walked 40 pages and returned 2,247 rows covering 1,849 unique products
  • Up to 50 queries per job
  • Sold counts in search results are lifetime buckets such as “10rb+ terjual”, never monthly. Treat them as a floor, and never present them as monthly share
  • The category browse mode is unreliable. Use keyword search and filter on the category breadcrumb instead

When not to use this.

If you need every product a single seller lists, the shop endpoint enumerates a whole store regardless of page count and does not depend on a keyword matching. Use search when you are defining a category, not a seller.

See the rate card

Other endpoints.

Price your exact scope before you pay.

The rate card is public and an estimate costs nothing.