> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapebadger.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Shop Bestsellers

> Sales-ranked best-selling TikTok Shop products for every operating market, ordered by real sold_count.

<Note>
  Ranked by each product's real `sold_count` (`source: "sales_ranked"`). Omit `category_id`
  for a market-wide list, or pass one to rank within a category. `pages` (1-4) controls how many
  category pages are aggregated before ranking; `limit` (1-100) caps the returned list.
</Note>

<Note>
  **Markets** — available for every operating market: `US`, `GB`, `ID` (Tokopedia), and the
  Southeast Asian markets `SG`, `MY`, `PH`, `TH`, `VN` plus `JP`, each in its local currency.
  This is the recommended trending/best-seller endpoint for markets where TikTok exposes no
  curated ranking page. `region=TW` returns HTTP 200 with `availability: "not_operated"` and an
  empty list — TikTok operates no Shop marketplace in Taiwan.
</Note>

<Note>
  Each request costs **5 credits**. Failed requests are not charged.
</Note>


## OpenAPI

````yaml GET /v1/tiktok/shop/bestsellers
openapi: 3.1.0
info:
  title: ScrapeBadger TikTok API
  version: 1.0.0
  description: >-
    TikTok scraping API for user profiles, videos, comments, transcripts,
    hashtags, music/sounds, search, trending, and the EU Commercial Content (ad
    transparency) library. Returns clean structured JSON; handles signing,
    anti-bot bypass, and regional proxy routing automatically.
servers:
  - url: https://scrapebadger.com
    description: Production
security:
  - apiKeyAuth: []
paths:
  /v1/tiktok/shop/bestsellers:
    get:
      tags:
        - TikTok Shop
      summary: Shop Bestsellers
      description: >-
        Sales-ranked best-selling TikTok Shop products for every operating
        market, ordered by real sold_count. Works for markets (SG/MY/JP…) where
        TikTok exposes no curated rankings. Omit category_id for a market-wide
        list.
      operationId: tiktok_shop_bestsellers_v1_tiktok_shop_bestsellers_get
      parameters:
        - name: region
          in: query
          required: false
          schema:
            type: string
            default: US
            title: Region
          description: 'Market: US, GB, ID, SG, MY, PH, TH, VN, JP.'
        - name: category_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                pattern: ^[1-9][0-9]{0,18}$
              - type: 'null'
            title: Category Id
          description: Optional category to rank within; omit for a market-wide list.
        - name: pages
          in: query
          required: false
          schema:
            type: integer
            default: 2
            minimum: 1
            maximum: 4
            title: Pages
          description: Category pages to aggregate (1-4).
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 20
            minimum: 1
            maximum: 100
            title: Limit
          description: Max products to return (1-100).
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShopBestsellersResponse'
components:
  schemas:
    ShopBestsellersResponse:
      type: object
      title: ShopBestsellersResponse
      properties:
        products:
          items:
            $ref: '#/components/schemas/ShopProduct'
          title: Products
          type: array
        region:
          title: Region
          type: string
        source:
          type: string
          title: Source
          default: sales_ranked
          description: Ranking source; 'sales_ranked' = ordered by real sold_count.
        category_ids:
          type: array
          title: Category Ids
          items:
            type: string
          description: Categories aggregated to build the ranking.
      required:
        - region
    ShopProduct:
      properties:
        product_id:
          title: Product Id
          type: string
        title:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Title
        url:
          title: Url
          type: string
        image:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Image
        price:
          $ref: '#/components/schemas/ShopPrice'
        rating:
          anyOf:
            - type: number
            - type: 'null'
          default: null
          title: Rating
        review_count:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Review Count
        sold_count:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Sold Count
        seller:
          anyOf:
            - $ref: '#/components/schemas/ShopSeller'
            - type: 'null'
          default: null
        brand:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Brand
        labels:
          items:
            type: string
          title: Labels
          type: array
        video:
          anyOf:
            - $ref: '#/components/schemas/ShopVideo'
            - type: 'null'
          default: null
        rank:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Rank
      required:
        - product_id
        - url
      title: ShopProduct
      type: object
    ShopPrice:
      properties:
        amount:
          anyOf:
            - type: number
            - type: 'null'
          default: null
          title: Amount
        original:
          anyOf:
            - type: number
            - type: 'null'
          default: null
          title: Original
        discount:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Discount
        currency:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Currency
        symbol:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Symbol
      title: ShopPrice
      type: object
    ShopSeller:
      properties:
        id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Id
        name:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Name
        logo:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Logo
      title: ShopSeller
      type: object
    ShopVideo:
      description: The TikTok video a product card is bound to (search results only).
      properties:
        id:
          title: Id
          type: string
        title:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Title
        author_name:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Author Name
        play_count:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Play Count
        like_count:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Like Count
        cover_url:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Cover Url
        video_url:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Video Url
      required:
        - id
      title: ShopVideo
      type: object
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````