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

# Search TikTok Shop products by keyword or category

> Lists TikTok Shop (US) products for a keyword (`q`) or a category (`category`, URL or id). Each product card carries `productId`, `url`, `title`, `image`, `price` (current, original, discountPercent, currency, fromPrice), `rating`, `reviewCount`, `soldCount`, `brand`, `seller` (id, name, logo), promotion `labels` and, when TikTok binds one, the promoting `video` (id, url, author, play and like counts, `durationSeconds`). A keyword search also returns `relatedSearches` and `relatedCategories`; a category returns its `subcategories` and `breadcrumbs`. Up to 30 products (one page, one billed request). A keyword or category TikTok has no listing for returns 404.



## OpenAPI

````yaml /api-reference/openapi.json post /social/tiktok-shop-search
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /social/tiktok-shop-search:
    post:
      tags:
        - Plugins
      summary: Search TikTok Shop products by keyword or category
      description: >-
        Lists TikTok Shop (US) products for a keyword (`q`) or a category
        (`category`, URL or id). Each product card carries `productId`, `url`,
        `title`, `image`, `price` (current, original, discountPercent, currency,
        fromPrice), `rating`, `reviewCount`, `soldCount`, `brand`, `seller` (id,
        name, logo), promotion `labels` and, when TikTok binds one, the
        promoting `video` (id, url, author, play and like counts,
        `durationSeconds`). A keyword search also returns `relatedSearches` and
        `relatedCategories`; a category returns its `subcategories` and
        `breadcrumbs`. Up to 30 products (one page, one billed request). A
        keyword or category TikTok has no listing for returns 404.
      operationId: tiktok_shop_search_social_tiktok_shop_search_post
      parameters:
        - name: q
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Search keyword, e.g. 'led face mask' (or a TikTok Shop keyword URL
              like 'https://www.tiktok.com/shop/product/led-face-mask'). Either
              this or `category`.
            title: Q
          description: >-
            Search keyword, e.g. 'led face mask' (or a TikTok Shop keyword URL
            like 'https://www.tiktok.com/shop/product/led-face-mask'). Either
            this or `category`.
        - name: category
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              List a category instead of a keyword: a category URL
              ('https://www.tiktok.com/shop/c/beauty-personal-care/601450') or
              its numeric id ('601450').
            title: Category
          description: >-
            List a category instead of a keyword: a category URL
            ('https://www.tiktok.com/shop/c/beauty-personal-care/601450') or its
            numeric id ('601450').
        - name: max_results
          in: query
          required: false
          schema:
            type: integer
            maximum: 30
            minimum: 1
            description: >-
              Products to return (1-30). One page is read: a keyword lists up to
              30 products, a category about 15.
            default: 30
            title: Max Results
          description: >-
            Products to return (1-30). One page is read: a keyword lists up to
            30 products, a category about 15.
      responses:
        '200':
          description: JSON object with a `products` array.
          content:
            application/json:
              schema: {}
        '400':
          description: Missing or malformed q / category, or a non-US market URL.
        '404':
          description: TikTok has no listing for that keyword or category.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: Blocked by TikTok on every exit tried - retry.
        '504':
          description: Fetch timed out.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

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