> ## 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 Root Categories

> The 28 top-level TikTok Shop categories of a market — drill down with the category endpoint.

<Note>
  Returns the 28 top-level categories with their ids (shared across markets). Pass an id to [Shop Category Products](/api-reference/endpoint/tiktok/shop-category) for subcategories and top products.
</Note>

<Note>
  **Markets** — `region=US` (default) serves everything; `GB` and `ID` (Tokopedia) serve categories, category products and product detail in GBP/IDR. SG, MY, PH, TH, VN, MX, BR and JP sit behind a puzzle our exits do not clear and return `400`.
</Note>

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


## OpenAPI

````yaml GET /v1/tiktok/shop/categories
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/categories:
    get:
      tags:
        - TikTok Shop
      summary: Shop Root Categories
      description: >-
        The 28 top-level TikTok Shop categories of a market. Drill down with
        /v1/tiktok/shop/categories/{category_id}. Category ids are shared across
        markets.
      operationId: getTikTokShopCategories
      parameters:
        - name: region
          in: query
          schema:
            type: string
            default: US
            enum:
              - US
              - GB
              - ID
          description: >-
            Market. US serves everything; GB and ID serve categories, category
            products and product detail (their JSON API paths do not exist).
            Other storefronts return 400.
      responses:
        '200':
          description: Shop Root Categories
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShopCategoryResponse'
              example:
                category: null
                children:
                  - id: '601450'
                    name: Beauty & Personal Care
                    slug: beauty-personal-care
                    level: 1
                    is_leaf: false
                    parent_id: '0'
                    image: >-
                      https://lf16-tiktok-common.tiktokcdn-us.com/obj/tiktok-web-common-tx/i18n_ecom_fe/tiktok_shop_web_mono/apps/homepage_desktop/static/image/beauty-personal.fdbc446c.png
                    url: https://shop.tiktok.com/us/c/beauty-personal-care/601450
                  - id: '601152'
                    name: Womenswear & Underwear
                    slug: womenswear-underwear
                    level: 1
                    is_leaf: false
                    parent_id: '0'
                    image: >-
                      https://lf16-tiktok-common.tiktokcdn-us.com/obj/tiktok-web-common-tx/i18n_ecom_fe/tiktok_shop_web_mono/apps/homepage_desktop/static/image/womenswear-underwear.87b928c5.png
                    url: https://shop.tiktok.com/us/c/womenswear-underwear/601152
                  - id: '824328'
                    name: Menswear & Underwear
                    slug: menswear-underwear
                    level: 1
                    is_leaf: false
                    parent_id: '0'
                    image: >-
                      https://lf16-tiktok-common.tiktokcdn-us.com/obj/tiktok-web-common-tx/i18n_ecom_fe/tiktok_shop_web_mono/apps/homepage_desktop/static/image/menswear-underwear.fb7cf64f.png
                    url: https://shop.tiktok.com/us/c/menswear-underwear/824328
                products: []
                region: US
        '400':
          description: Unsupported market or feature for the market
components:
  schemas:
    ShopCategoryResponse:
      properties:
        category:
          anyOf:
            - $ref: '#/components/schemas/ShopCategory'
            - type: 'null'
          default: null
        children:
          items:
            $ref: '#/components/schemas/ShopCategory'
          title: Children
          type: array
        products:
          items:
            $ref: '#/components/schemas/ShopProduct'
          title: Products
          type: array
        region:
          title: Region
          type: string
      required:
        - region
      title: ShopCategoryResponse
      type: object
    ShopCategory:
      properties:
        id:
          title: Id
          type: string
        name:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Name
        slug:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Slug
        level:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          title: Level
        is_leaf:
          anyOf:
            - type: boolean
            - type: 'null'
          default: null
          title: Is Leaf
        parent_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Parent Id
        image:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Image
        url:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Url
      required:
        - id
      title: ShopCategory
      type: object
    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

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.