Skip to content
Managed gateway · LeanPool

Shop browse flow

Execute an organic Shop tab → Mall → search → PDP browse sequence.

POSTapi.tikultra.com/v1/shop/browsePremium · 25 credits
Upstream/api/v1/mall/shop_tab/algorithm/reach/get/api/v1/mall/homepage/bff/get/api/v2/shop/sdui_pdp/getEvery plan

Parameters

NameTypeDescription
keywordstringShop search keyword.
e.g. mechanical keyboard
product_idstringOptional target product ID to inspect.
e.g. 1729384756192837461
regionstringTwo-letter country code for egress and storefront.
e.g. US
citystringA city in that region. See the supported cities list.
e.g. miami

Pricing

PlanPer callPer 1,000 calls
Starter25 credits$2.90
Growth25 credits$1.98
Scale25 credits$1.45

Response fields

FieldTypeDescription
status_codeintegerUpstream TikTok mobile status code (0 indicates success).
regionstringTwo-letter ISO 3166-1 country code associated with the item or context.
citystringCity-level egress or location identifier.
keywordstringDecoded keyword value.
steps_executedstring[]Decoded steps executed value.
mall_bannersintegerDecoded mall banners value.
matched_productsobject[]List of matched products objects.
matched_products[].product_idstringTikTok Shop product identifier.
matched_products[].titlestringDecoded title value.
matched_products[].pricestringFormatted and numeric price breakdown with currency.
matched_products[].currencystringDecoded currency value.
matched_products[].sold_countintegerTotal sold count.
matched_products[].ratingnumberDecoded rating value.
inspected_pdpobjectStructured inspected pdp metadata.
inspected_pdp.product_idstringTikTok Shop product identifier.
inspected_pdp.seller_idstringTikTok Shop merchant / seller identifier.
inspected_pdp.sku_countintegerTotal sku count.
inspected_pdp.in_stockbooleanWhether in stock is enabled or true.
took_msintegerGateway execution or signing latency in milliseconds.
log_pbobjectUpstream request trace envelope from the mobile gateway.
log_pb.impr_idstringUpstream TikTok impression / trace identifier.

Responses

A 200 returns JSON with stable field names. Every response carries x-credits-cost, x-credits-tier and x-credits-remaining. Errors return a JSON body with a stable code and cost 0 credits. Error codes

import os
from tikultra import TikUltra

with TikUltra(api_key=os.environ["TIKULTRA_KEY"], region="US", city="miami") as client:
    res = client.shop.browse(keyword="mechanical keyboard", product_id="1729384756192837461")
    print(res.credits_cost, res.data)
{
  "status_code": 0,
  "region": "US",
  "city": "miami",
  "keyword": "mechanical keyboard",
  "steps_executed": [
    "shop_tab_reach",
    "mall_homepage_bff",
    "ecom_search_pack",
    "sdui_pdp_inspect"
  ],
  "mall_banners": 3,
  "matched_products": [
    {
      "product_id": "1729384756192837461",
      "title": "Low-profile mechanical keyboard 75% CNC Aluminum",
      "price": "79.99",
      "currency": "USD",
      "sold_count": 18204,
      "rating": 4.8
    }
  ],
  "inspected_pdp": {
    "product_id": "1729384756192837461",
    "seller_id": "7495000000000000001",
    "sku_count": 2,
    "in_stock": true
  },
  "took_ms": 1420,
  "log_pb": {
    "impr_id": "202611120200419F8E7D6C5B4A3210"
  }
}
Try it in the playgroundFull reference in the docs

More in TikTok Shop

Ready to build?

Start with 2,500 free credits and test every public endpoint, then pick a plan.