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

# Product List (Analytics)

> Search and filter TikTok Shop products using analytics data with rich metrics including sales volume, GMV, review counts, and historical trend data.

<div className="inline-flex items-center gap-2 px-4 py-2 bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg">
  <span className="text-base">🪙</span>
  <span className="text-sm font-medium text-yellow-900 dark:text-yellow-100"><span className="font-semibold">1 credit</span><span className="text-yellow-700 dark:text-yellow-300 ml-1">per request</span></span>
</div>

## Copy for AI

<div className="my-6 rounded-xl border border-gray-200 bg-gray-50 p-5 dark:border-gray-800 dark:bg-gray-900/40">
  <div className="min-w-0">
    <p className="text-base font-semibold text-gray-900 dark:text-gray-100">🤖 Why Code When AI Can Do It For You?</p>
    <p className="mt-1 text-sm text-gray-700 dark:text-gray-300">Stop writing code like it's 1970! Let AI do the heavy lifting - click the sparkles to copy a perfectly formatted prompt for ChatGPT, Claude, or your favorite AI assistant.</p>
  </div>

  <div className="mt-4">
    <button
      type="button"
      className="inline-flex items-center gap-2 rounded-md border border-emerald-300 bg-emerald-50 px-3 py-2 text-sm font-medium text-emerald-800 hover:bg-emerald-100 dark:border-emerald-700 dark:bg-emerald-900/30 dark:text-emerald-100 dark:hover:bg-emerald-900/50"
      onClick={() => navigator.clipboard.writeText(`I want to make an API call to https://api.keyapi.ai/v1/tiktok/product/list/analytics.

Please help me write code to make this API call and handle the response appropriately. Include error handling and best practices.

Here are the details:

Endpoint: GET https://api.keyapi.ai/v1/tiktok/product/list/analytics

Description: Search and filter TikTok Shop products using analytics data with rich metrics including sales volume, GMV, review counts, and historical trend data.

Required Headers:
--header 'Authorization: Bearer <YOUR_API_KEY>'

Parameters:
- category_id (Optional): Product primary category ID
- category_l2_id (Optional): Product secondary category ID
- category_l3_id (Optional): Product subcategory ID
- sales_trend_flag (Optional): Sales trend in the past 7 days, 0=stable 1=up 2=down
- min_total_sale_cnt (Optional): Total sales range filter
- max_total_sale_cnt (Optional): Total sales range filter
- min_total_sale_30d_cnt (Optional): Sales range filter for the last 30 days
- max_total_sale_30d_cnt (Optional): Sales range filter for the last 30 days
- min_spu_avg_price (Optional): Product SKU average price range filter
- max_spu_avg_price (Optional): Product SKU average price range filter
- min_product_commission_rate (Optional): Product commission rate range filtering
- max_product_commission_rate (Optional): Product commission rate range filtering
- min_total_ifl_cnt (Optional): Filter by number of sales creators
- max_total_ifl_cnt (Optional): Filter by number of sales creators
- min_total_video_cnt (Optional): Sales video number range filter
- max_total_video_cnt (Optional): Sales video number range filter
- min_total_views_cnt (Optional): Filtering by the number of views for sales videos
- max_total_views_cnt (Optional): Filtering by the number of views for sales videos
- min_product_rating (Optional): Product reviews are filtered by range
- max_product_rating (Optional): Product reviews are filtered by range
- min_review_count (Optional): Product review count range filtering
- max_review_count (Optional): Product review count range filtering
- is_s_shop (Optional): Is it fully managed  0 = No, 1 = Fully managed
- free_shipping (Optional): Free shipping  0 = No 1 = Yes
- min_total_sale_gmv_amt (Optional): Total GMV range filtering
- max_total_sale_gmv_amt (Optional): Total GMV range filtering
- min_total_sale_gmv_30d_amt (Optional): GMV range filtering in the last 30 days
- max_total_sale_gmv_30d_amt (Optional): GMV range filtering in the last 30 days
- min_first_crawl_dt (Optional): Time range for the first capture of the product, format yyyyMMdd
- max_first_crawl_dt (Optional): Time range for the first capture of the product, format yyyyMMdd
- sales_flag (Optional): Main sales methods: 1. Video e-commerce; 2. Live streaming e-commerce
- product_sort_field (Optional): List sorting enumeration 1=total_sale_cnt 2=total_sale_gmv_amt 3=spu_avg_price 4=total_sale_7d_cnt 5=total_sale_30d_cnt 6=total_sale_gmv_7d_amt 7=total_sale_gmv_30d_amt
- sort_type (Optional): Sort order 0=asc 1=desc
- region (Required): Region code, region, such as US
- page_num (Required): Page numbers start from 1 and go up to a maximum of 100,000.
- page_size (Required): The maximum number of pages is 10.

Example Response:
{
"code": 0,
"message": "success",
"data": [
{
  "category_id": "605248",
  "category_l2_id": "0",
  "category_l3_id": "0",
  "cover_url": "[{ \"url\":\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_3.webp\",\"index\":3},{ \"url\":\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_2.webp\",\"index\":2},{ \"url\":\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_1.webp\",\"index\":1},{ \"url\":\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_5.webp\",\"index\":5},{ \"url\":\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_7.webp\",\"index\":7},{ \"url\":\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_6.webp\",\"index\":6},{ \"url\":\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_4.webp\",\"index\":4},{ \"url\":\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_0.webp\",\"index\":0}]",
  "desc_detail": "[{\"type\":\"text\",\"text\":\"This Halloween Personality Cartoon Couple Pendant Stainless Steel Graffiti Stickman Keychain is a fun and unique accessory for expressing your personality.\"},{\"type\":\"ul\",\"content\":[\"Quirky Design\",\"Stainless Steel Material\",\"Perfect for Halloween\"
... (truncated)`)}
    >
      <span>✨</span>
      <span>Copy for AI</span>
    </button>
  </div>
</div>


## OpenAPI

````yaml en/tiktok.openapi.json GET /v1/tiktok/product/list/analytics
openapi: 3.0.1
info:
  title: Tiktok API english documentation
  description: >-
    The english reference documentation of the Tiktok API includes the
    interface's purpose, parameter description, response status, and sample
    structure.
  version: 1.0.0
servers:
  - url: https://api.keyapi.ai
    description: Production
security: []
tags:
  - name: TikTok Influencer
  - name: TikTok Shop
  - name: TikTok Content
  - name: TikTok Intelligence
paths:
  /v1/tiktok/product/list/analytics:
    get:
      tags:
        - TikTok Shop
      summary: Product List (Analytics)
      description: >-
        Search and filter TikTok Shop products using analytics data with rich
        metrics including sales volume, GMV, review counts, and historical trend
        data.
      operationId: get_api_v3_echotik_product_list
      parameters:
        - name: category_id
          in: query
          description: Product primary category ID
          required: false
          schema:
            type: string
        - name: category_l2_id
          in: query
          description: Product secondary category ID
          required: false
          schema:
            type: string
        - name: category_l3_id
          in: query
          description: Product subcategory ID
          required: false
          schema:
            type: string
        - name: sales_trend_flag
          in: query
          description: Sales trend in the past 7 days, 0=stable 1=up 2=down
          required: false
          schema:
            type: integer
        - name: min_total_sale_cnt
          in: query
          description: Total sales range filter
          required: false
          schema:
            type: integer
        - name: max_total_sale_cnt
          in: query
          description: Total sales range filter
          required: false
          schema:
            type: integer
        - name: min_total_sale_30d_cnt
          in: query
          description: Sales range filter for the last 30 days
          required: false
          schema:
            type: integer
        - name: max_total_sale_30d_cnt
          in: query
          description: Sales range filter for the last 30 days
          required: false
          schema:
            type: integer
        - name: min_spu_avg_price
          in: query
          description: Product SKU average price range filter
          required: false
          schema:
            type: number
        - name: max_spu_avg_price
          in: query
          description: Product SKU average price range filter
          required: false
          schema:
            type: number
        - name: min_product_commission_rate
          in: query
          description: Product commission rate range filtering
          required: false
          schema:
            type: number
        - name: max_product_commission_rate
          in: query
          description: Product commission rate range filtering
          required: false
          schema:
            type: number
        - name: min_total_ifl_cnt
          in: query
          description: Filter by number of sales creators
          required: false
          schema:
            type: integer
        - name: max_total_ifl_cnt
          in: query
          description: Filter by number of sales creators
          required: false
          schema:
            type: integer
        - name: min_total_video_cnt
          in: query
          description: Sales video number range filter
          required: false
          schema:
            type: integer
        - name: max_total_video_cnt
          in: query
          description: Sales video number range filter
          required: false
          schema:
            type: integer
        - name: min_total_views_cnt
          in: query
          description: Filtering by the number of views for sales videos
          required: false
          schema:
            type: integer
        - name: max_total_views_cnt
          in: query
          description: Filtering by the number of views for sales videos
          required: false
          schema:
            type: integer
        - name: min_product_rating
          in: query
          description: Product reviews are filtered by range
          required: false
          schema:
            type: number
        - name: max_product_rating
          in: query
          description: Product reviews are filtered by range
          required: false
          schema:
            type: number
        - name: min_review_count
          in: query
          description: Product review count range filtering
          required: false
          schema:
            type: integer
        - name: max_review_count
          in: query
          description: Product review count range filtering
          required: false
          schema:
            type: integer
        - name: is_s_shop
          in: query
          description: Is it fully managed  0 = No, 1 = Fully managed
          required: false
          schema:
            type: integer
        - name: free_shipping
          in: query
          description: Free shipping  0 = No 1 = Yes
          required: false
          schema:
            type: integer
        - name: min_total_sale_gmv_amt
          in: query
          description: Total GMV range filtering
          required: false
          schema:
            type: number
        - name: max_total_sale_gmv_amt
          in: query
          description: Total GMV range filtering
          required: false
          schema:
            type: number
        - name: min_total_sale_gmv_30d_amt
          in: query
          description: GMV range filtering in the last 30 days
          required: false
          schema:
            type: number
        - name: max_total_sale_gmv_30d_amt
          in: query
          description: GMV range filtering in the last 30 days
          required: false
          schema:
            type: number
        - name: min_first_crawl_dt
          in: query
          description: Time range for the first capture of the product, format yyyyMMdd
          required: false
          schema:
            type: integer
        - name: max_first_crawl_dt
          in: query
          description: Time range for the first capture of the product, format yyyyMMdd
          required: false
          schema:
            type: integer
        - name: sales_flag
          in: query
          description: >-
            Main sales methods: 1. Video e-commerce; 2. Live streaming
            e-commerce
          required: false
          schema:
            type: integer
        - name: product_sort_field
          in: query
          description: >-
            List sorting enumeration 1=total_sale_cnt 2=total_sale_gmv_amt
            3=spu_avg_price 4=total_sale_7d_cnt 5=total_sale_30d_cnt
            6=total_sale_gmv_7d_amt 7=total_sale_gmv_30d_amt
          required: false
          schema:
            type: integer
        - name: sort_type
          in: query
          description: Sort order 0=asc 1=desc
          required: false
          schema:
            type: integer
        - name: region
          in: query
          description: Region code, region, such as US
          required: true
          schema:
            type: string
        - name: page_num
          in: query
          description: Page numbers start from 1 and go up to a maximum of 100,000.
          required: true
          schema:
            type: integer
        - name: page_size
          in: query
          description: The maximum number of pages is 10.
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        category_id:
                          type: string
                          title: First-level category ID
                        category_l2_id:
                          type: string
                          title: Secondary category ID
                        category_l3_id:
                          type: string
                          title: Third-level category ID
                        cover_url:
                          type: string
                          title: >-
                            If you do not have permission to access the cover
                            image URL, please use the image download interface.
                        desc_detail:
                          type: string
                          title: Product Description
                        discount:
                          type: string
                        first_crawl_dt:
                          type: integer
                          title: First crawl time
                        free_shipping:
                          type: integer
                          title: Free shipping? 1 = Yes 0 = No
                        is_s_shop:
                          type: integer
                          title: Is the store fully managed? 1 = Yes 0 = No
                        max_price:
                          type: number
                          title: Highest SKU price
                        min_price:
                          type: number
                          title: Lowest SKU price
                        off_mark:
                          type: integer
                          title: Offline indicator, <2 represents not offline
                        product_commission_rate:
                          type: integer
                          title: Product commission
                        product_id:
                          type: string
                        product_name:
                          type: string
                        product_rating:
                          type: integer
                        region:
                          type: string
                        review_count:
                          type: integer
                        sale_props:
                          type: string
                        sales_flag:
                          type: integer
                          title: Sales Method 1 = Video 2 = Live Streaming
                        sales_trend_flag:
                          type: integer
                          title: >-
                            Sales trend over the past 7 days: 0 = stable, 1 =
                            rising, 2 = falling.
                        seller_id:
                          type: string
                          title: Shop Id
                        skus:
                          type: string
                        spu_avg_price:
                          type: number
                          title: Average price of product SKU
                        total_ifl_cnt:
                          type: integer
                          title: Total number of sales creators
                        total_ifl_live_15d_cnt:
                          type: integer
                          title: >-
                            The number of live-streaming e-commerce influencers
                            has increased in the past 15 days.
                        total_ifl_live_1d_cnt:
                          type: integer
                          title: >-
                            The number of live-streaming e-commerce influencers
                            has increased in the past 1 days.
                        total_ifl_live_30d_cnt:
                          type: integer
                          title: >-
                            The number of live-streaming e-commerce influencers
                            has increased in the past 30 days.
                        total_ifl_live_60d_cnt:
                          type: integer
                          title: >-
                            The number of live-streaming e-commerce influencers
                            has increased in the past 60 days.
                        total_ifl_live_7d_cnt:
                          type: integer
                          title: >-
                            The number of live-streaming e-commerce influencers
                            has increased in the past 7 days.
                        total_ifl_live_90d_cnt:
                          type: integer
                          title: >-
                            The number of live-streaming e-commerce influencers
                            has increased in the past 90 days.
                        total_ifl_video_15d_cnt:
                          type: integer
                          title: >-
                            Video e-commerce influencer growth in the last 15
                            days
                        total_ifl_video_1d_cnt:
                          type: integer
                          title: >-
                            Video e-commerce influencer growth in the last 1
                            days
                        total_ifl_video_30d_cnt:
                          type: integer
                          title: >-
                            Video e-commerce influencer growth in the last 30
                            days
                        total_ifl_video_60d_cnt:
                          type: integer
                          title: >-
                            Video e-commerce influencer growth in the last 60
                            days
                        total_ifl_video_7d_cnt:
                          type: integer
                          title: >-
                            Video e-commerce influencer growth in the last 7
                            days
                        total_ifl_video_90d_cnt:
                          type: integer
                          title: >-
                            Video e-commerce influencer growth in the last 90
                            days
                        total_live_15d_cnt:
                          type: integer
                          title: Live broadcast sessions in the last 15 days
                        total_live_1d_cnt:
                          type: integer
                          title: Live broadcast sessions in the last 1 days
                        total_live_30d_cnt:
                          type: integer
                          title: Live broadcast sessions in the last 30 days
                        total_live_60d_cnt:
                          type: integer
                          title: Live broadcast sessions in the last 60 days
                        total_live_7d_cnt:
                          type: integer
                          title: Live broadcast sessions in the last 7 days
                        total_live_90d_cnt:
                          type: integer
                          title: Live broadcast sessions in the last 90 days
                        total_live_cnt:
                          type: integer
                          title: Total number of live broadcasts
                        total_live_sale_15d_cnt:
                          type: integer
                          title: Sales from live streams in the past 15 days
                        total_live_sale_1d_cnt:
                          type: integer
                          title: Sales from live streams in the past 1 days
                        total_live_sale_30d_cnt:
                          type: integer
                          title: Sales from live streams in the past 30 days
                        total_live_sale_60d_cnt:
                          type: integer
                          title: Sales from live streams in the past 60 days
                        total_live_sale_7d_cnt:
                          type: integer
                          title: Sales from live streams in the past 7 days
                        total_live_sale_90d_cnt:
                          type: integer
                          title: Sales from live streams in the past 90 days
                        total_live_sale_cnt:
                          type: integer
                          title: Total live streaming sales
                        total_live_sale_gmv_15d_amt:
                          type: integer
                          title: Livestream GMV in the last 15 days
                        total_live_sale_gmv_1d_amt:
                          type: integer
                          title: Livestream GMV in the last 1 days
                        total_live_sale_gmv_30d_amt:
                          type: integer
                          title: Livestream GMV in the last 30 days
                        total_live_sale_gmv_60d_amt:
                          type: integer
                          title: Livestream GMV in the last 60 days
                        total_live_sale_gmv_7d_amt:
                          type: integer
                          title: Livestream GMV in the last 7 days
                        total_live_sale_gmv_90d_amt:
                          type: integer
                          title: Livestream GMV in the last 90 days
                        total_live_sale_gmv_amt:
                          type: integer
                          title: Total live streaming GMV
                        total_sale_15d_cnt:
                          type: integer
                          title: Sales increase in the last 15 days
                        total_sale_1d_cnt:
                          type: integer
                          title: Sales increase in the last 1 days
                        total_sale_30d_cnt:
                          type: integer
                          title: Sales increase in the last 30 days
                        total_sale_60d_cnt:
                          type: integer
                          title: Sales increase in the last 60 days
                        total_sale_7d_cnt:
                          type: integer
                          title: Sales increase in the last 7 days
                        total_sale_90d_cnt:
                          type: integer
                          title: Sales increase in the last 90 days
                        total_sale_cnt:
                          type: integer
                          title: Total sales
                        total_sale_gmv_15d_amt:
                          type: integer
                          title: GMV increase in the last 15 days
                        total_sale_gmv_1d_amt:
                          type: integer
                          title: GMV increase in the last 1 days
                        total_sale_gmv_30d_amt:
                          type: integer
                          title: GMV increase in the last 30 days
                        total_sale_gmv_60d_amt:
                          type: integer
                          title: GMV increase in the last 60 days
                        total_sale_gmv_7d_amt:
                          type: integer
                          title: GMV increase in the last 7 days
                        total_sale_gmv_90d_amt:
                          type: integer
                          title: GMV increase in the last 90 days
                        total_sale_gmv_amt:
                          type: integer
                          title: Total Sales GMV
                        total_video_15d_cnt:
                          type: integer
                          title: Videos added in the recent 15 days
                        total_video_1d_cnt:
                          type: integer
                          title: Videos added in the recent 1 days
                        total_video_30d_cnt:
                          type: integer
                          title: Videos added in the recent 30 days
                        total_video_60d_cnt:
                          type: integer
                          title: Videos added in the recent 60 days
                        total_video_7d_cnt:
                          type: integer
                          title: Videos added in the recent 7 days
                        total_video_90d_cnt:
                          type: integer
                          title: Videos added in the recent 90 days
                        total_video_cnt:
                          type: integer
                          title: Total number of videos
                        total_video_sale_15d_cnt:
                          type: integer
                          title: Increase in video sales over the recent 15 days
                        total_video_sale_1d_cnt:
                          type: integer
                          title: Increase in video sales over the recent 1 days
                        total_video_sale_30d_cnt:
                          type: integer
                          title: Increase in video sales over the recent 30 days
                        total_video_sale_60d_cnt:
                          type: integer
                          title: Increase in video sales over the recent 60 days
                        total_video_sale_7d_cnt:
                          type: integer
                          title: Increase in video sales over the recent 7 days
                        total_video_sale_90d_cnt:
                          type: integer
                          title: Increase in video sales over the recent 90 days
                        total_video_sale_cnt:
                          type: integer
                          title: Total video sales
                        total_video_sale_gmv_15d_amt:
                          type: integer
                          title: GMV increment of video sales in the recent 15 days
                        total_video_sale_gmv_1d_amt:
                          type: integer
                          title: GMV increment of video sales in the recent 1 days
                        total_video_sale_gmv_30d_amt:
                          type: integer
                          title: GMV increment of video sales in the recent 30 days
                        total_video_sale_gmv_60d_amt:
                          type: integer
                          title: GMV increment of video sales in the recent 60 days
                        total_video_sale_gmv_7d_amt:
                          type: integer
                          title: GMV increment of video sales in the recent 7 days
                        total_video_sale_gmv_90d_amt:
                          type: integer
                          title: GMV increment of video sales in the recent 90 days
                        total_video_sale_gmv_amt:
                          type: integer
                          title: Total video sales
                        total_views_15d_cnt:
                          type: integer
                          title: Increment in video views over the last 15 days
                        total_views_1d_cnt:
                          type: integer
                          title: Increment in video views over the last 1 days
                        total_views_30d_cnt:
                          type: integer
                          title: Increment in video views over the last 30 days
                        total_views_60d_cnt:
                          type: integer
                          title: Increment in video views over the last 60 days
                        total_views_7d_cnt:
                          type: integer
                          title: Increment in video views over the last 7 days
                        total_views_90d_cnt:
                          type: integer
                          title: Increment in video views over the last 90 days
                        total_views_cnt:
                          type: integer
                          title: Total video views
                  requestId:
                    type: string
                required:
                  - code
                  - message
                  - data
                  - requestId
                example:
                  code: 0
                  message: success
                  data:
                    - category_id: '605248'
                      category_l2_id: '0'
                      category_l3_id: '0'
                      cover_url: >-
                        [{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_3.webp","index":3},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_2.webp","index":2},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_1.webp","index":1},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_5.webp","index":5},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_7.webp","index":7},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_6.webp","index":6},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_4.webp","index":4},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/1004/1729873073559015752_0.webp","index":0}]
                      desc_detail: >-
                        [{"type":"text","text":"This Halloween Personality
                        Cartoon Couple Pendant Stainless Steel Graffiti Stickman
                        Keychain is a fun and unique accessory for expressing
                        your personality."},{"type":"ul","content":["Quirky
                        Design","Stainless Steel Material","Perfect for
                        Halloween","Fashionable Baroque
                        Style"]},{"type":"text","text":"Add a touch of whimsy to
                        your outfit with this foreign trade jewelry piece,
                        featuring a graffiti stickman design that is sure to
                        stand
                        out."},{"type":"image","image":{"height":800,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/c06a01c04cf949e0a8c4a43f5ebfa582","url_list":["https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/c06a01c04cf949e0a8c4a43f5ebfa582~tplv-omjb5zjo8w-resize-webp:800:800.webp?from=1826719393","https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/c06a01c04cf949e0a8c4a43f5ebfa582~tplv-omjb5zjo8w-resize-webp:800:800.webp?from=1826719393"]}},{"type":"image","image":{"height":800,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/61767423e4554e00a8c92fa9bc0dd511","url_list":["https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/61767423e4554e00a8c92fa9bc0dd511~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=65234&refresh_token=0ba56964a67c02158f849cfe6d39960c&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d","https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/61767423e4554e00a8c92fa9bc0dd511~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=64650&refresh_token=14a2f46d6e47593fd3cb93d29661e15f&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d"]}},{"type":"image","image":{"height":800,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/9b078104e18f449b85752497e74227bf","url_list":["https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/9b078104e18f449b85752497e74227bf~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=38574&refresh_token=bbd28101eb160fa73b2dfbdc2eda79fc&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d","https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/9b078104e18f449b85752497e74227bf~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=62503&refresh_token=0af3d34cfde2722893756a9914f0e42c&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d"]}},{"type":"image","image":{"height":800,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/ff614cd67a794e539afafa72c562e7eb","url_list":["https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/ff614cd67a794e539afafa72c562e7eb~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=12271&refresh_token=5d9cc218a6f97598aaec8ce441ab05ed&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d","https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/ff614cd67a794e539afafa72c562e7eb~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=65003&refresh_token=899764a731828682c6571ea86939a3c7&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d"]}},{"type":"image","image":{"height":532,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/a1404d8d75cb4c82b5d716aec71f45ca","url_list":["https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/a1404d8d75cb4c82b5d716aec71f45ca~tplv-omjb5zjo8w-resize-webp:800:532.webp?from=1826719393","https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/a1404d8d75cb4c82b5d716aec71f45ca~tplv-omjb5zjo8w-resize-webp:800:532.webp?from=1826719393"]}},{"type":"image","image":{"height":800,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/76a38043110140e4b93d22472b3d90a7","url_list":["https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/76a38043110140e4b93d22472b3d90a7~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=69811&refresh_token=ee4aa18d816d0154e460af223bbff97e&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d","https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/76a38043110140e4b93d22472b3d90a7~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=40309&refresh_token=df087bb470f0fe96c72bc22d201164ea&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d"]}},{"type":"image","image":{"height":800,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/1f817a81a2734a89a6800b159e5ac951","url_list":["https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/1f817a81a2734a89a6800b159e5ac951~tplv-omjb5zjo8w-resize-webp:800:800.webp?from=1826719393","https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/1f817a81a2734a89a6800b159e5ac951~tplv-omjb5zjo8w-resize-webp:800:800.webp?from=1826719393"]}},{"type":"image","image":{"height":800,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/d49b25d67d5e406f88c4498b7ded6129","url_list":["https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/d49b25d67d5e406f88c4498b7ded6129~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=32705&refresh_token=65c020c853d7f971eaa52e621940dc4e&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d","https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/d49b25d67d5e406f88c4498b7ded6129~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=39468&refresh_token=8d1081aa229ca5eeca1e484a8ff1833f&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d"]}},{"type":"image","image":{"height":800,"width":800,"uri":"tos-useast5-i-omjb5zjo8w-tx/d4cc252f6f5f454895726db6cb3ec707","url_list":["https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/d4cc252f6f5f454895726db6cb3ec707~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=8905&refresh_token=7d26c7d6ec404c58778945d33d48eaf6&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d","https://p19-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/d4cc252f6f5f454895726db6cb3ec707~tplv-omjb5zjo8w-resize-webp:800:800.webp?dr=10507&nonce=74471&refresh_token=b3153581f22a34c0083804070404fbde&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d"]}},{"type":"text","text":"Seller
                        information"},{"type":"ul","content":["Business name:
                        Putian Licheng District Fulin Electronic Commerce Co
                        Ltd","Business address (This address has been
                        automatically translated for your convenience):Fujian,
                        China"]}]
                      discount: ''
                      first_crawl_dt: 20241219
                      free_shipping: 0
                      is_s_shop: 0
                      max_price: 1.99
                      min_price: 1.99
                      off_mark: 3
                      product_commission_rate: 0
                      product_id: '1729873073559015752'
                      product_name: >-
                        Halloween Personality Cartoon Couple Pendant Stainless
                        Steel Graffiti Stickman Keychain Fun Personality Foreign
                        Trade Jewelry.
                      product_rating: 0
                      region: US
                      review_count: 0
                      sale_props: >-
                        [{"prop_name":"Colour","has_image":"true","prop_id":"100000","sale_prop_values":[{"image":"https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/691c7f20299846bc823fae485f93a116~tplv-omjb5zjo8w-crop-webp:800:800.webp?dr=10517&nonce=85056&refresh_token=c33c7c8f76c316b6b819f5992fd16627&from=1826719393&idc=useast8&ps=933b5bde&shcp=7745054a&shp=6ce186a1&t=555f072d","prop_value_id":"6942409110390425345","prop_value":"golden"},{"image":"https://p16-oec-ttp.tiktokcdn-us.com/tos-useast5-i-omjb5zjo8w-tx/548da9f3c248435e8a44d25fa27ff58a~tplv-omjb5zjo8w-crop-webp:800:800.webp?from=1826719393","prop_value_id":"6931958290813355778","prop_value":"silver"}]}]
                      sales_flag: 0
                      sales_trend_flag: 2
                      seller_id: '7495981769829615944'
                      skus: >-
                        [{"sku_id":"1729873073559081288","sale_prop_value_ids":"6942409110390425345","real_price":{"price_str":"$1.99","price_val":"1.99","currency":"USD"}},{"sku_id":"1729873073559146824","sale_prop_value_ids":"6931958290813355778","real_price":{"price_str":"$1.99","price_val":"1.99","currency":"USD"}}]
                      spu_avg_price: 1.99
                      total_ifl_cnt: 0
                      total_ifl_live_15d_cnt: 0
                      total_ifl_live_1d_cnt: 0
                      total_ifl_live_30d_cnt: 0
                      total_ifl_live_60d_cnt: 0
                      total_ifl_live_7d_cnt: 0
                      total_ifl_live_90d_cnt: 0
                      total_ifl_video_15d_cnt: 0
                      total_ifl_video_1d_cnt: 0
                      total_ifl_video_30d_cnt: 0
                      total_ifl_video_60d_cnt: 0
                      total_ifl_video_7d_cnt: 0
                      total_ifl_video_90d_cnt: 0
                      total_live_15d_cnt: 0
                      total_live_1d_cnt: 0
                      total_live_30d_cnt: 0
                      total_live_60d_cnt: 0
                      total_live_7d_cnt: 0
                      total_live_90d_cnt: 0
                      total_live_cnt: 0
                      total_live_sale_15d_cnt: 0
                      total_live_sale_1d_cnt: 0
                      total_live_sale_30d_cnt: 0
                      total_live_sale_60d_cnt: 0
                      total_live_sale_7d_cnt: 0
                      total_live_sale_90d_cnt: 0
                      total_live_sale_cnt: 0
                      total_live_sale_gmv_15d_amt: 0
                      total_live_sale_gmv_1d_amt: 0
                      total_live_sale_gmv_30d_amt: 0
                      total_live_sale_gmv_60d_amt: 0
                      total_live_sale_gmv_7d_amt: 0
                      total_live_sale_gmv_90d_amt: 0
                      total_live_sale_gmv_amt: 0
                      total_sale_15d_cnt: 0
                      total_sale_1d_cnt: 0
                      total_sale_30d_cnt: 0
                      total_sale_60d_cnt: 0
                      total_sale_7d_cnt: 0
                      total_sale_90d_cnt: 0
                      total_sale_cnt: 0
                      total_sale_gmv_15d_amt: 0
                      total_sale_gmv_1d_amt: 0
                      total_sale_gmv_30d_amt: 0
                      total_sale_gmv_60d_amt: 0
                      total_sale_gmv_7d_amt: 0
                      total_sale_gmv_90d_amt: 0
                      total_sale_gmv_amt: 0
                      total_video_15d_cnt: 0
                      total_video_1d_cnt: 0
                      total_video_30d_cnt: 0
                      total_video_60d_cnt: 0
                      total_video_7d_cnt: 0
                      total_video_90d_cnt: 0
                      total_video_cnt: 0
                      total_video_sale_15d_cnt: 0
                      total_video_sale_1d_cnt: 0
                      total_video_sale_30d_cnt: 0
                      total_video_sale_60d_cnt: 0
                      total_video_sale_7d_cnt: 0
                      total_video_sale_90d_cnt: 0
                      total_video_sale_cnt: 0
                      total_video_sale_gmv_15d_amt: 0
                      total_video_sale_gmv_1d_amt: 0
                      total_video_sale_gmv_30d_amt: 0
                      total_video_sale_gmv_60d_amt: 0
                      total_video_sale_gmv_7d_amt: 0
                      total_video_sale_gmv_90d_amt: 0
                      total_video_sale_gmv_amt: 0
                      total_views_15d_cnt: 0
                      total_views_1d_cnt: 0
                      total_views_30d_cnt: 0
                      total_views_60d_cnt: 0
                      total_views_7d_cnt: 0
                      total_views_90d_cnt: 0
                      total_views_cnt: 0
                  requestId: 5c2f367b-72d7-4a86-9d9a-332b20b99c6d
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 400
                  data: null
                  message: 'Missing required parameter: handle'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 401
                  data: null
                  message: apiKey is null
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 402
                  data: null
                  message: apiKey quota is not enough
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 429
                  data: null
                  message: qps limit exceeded
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 500
                  data: null
                  message: Internal server error
      deprecated: false
      security:
        - JWT Bearer: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl --request GET \
              --url 'https://api.keyapi.ai/v1/tiktok/product/list/analytics' \
              --header 'Authorization: Bearer <YOUR_API_KEY>'
        - lang: python
          label: Python
          source: |-
            import requests

            response = requests.get(
                'https://api.keyapi.ai/v1/tiktok/product/list/analytics',
                params={},
                headers={'Authorization': 'Bearer <YOUR_API_KEY>'}
            )
            print(response.json())
        - lang: javascript
          label: JavaScript
          source: >-
            const response = await
            fetch('https://api.keyapi.ai/v1/tiktok/product/list/analytics',
              {
                method: 'GET',
                headers: { 'Authorization': 'Bearer <YOUR_API_KEY>' }
              }
            );

            const data = await response.json();

            console.log(data);
components:
  securitySchemes:
    JWT Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |-
        API key for authentication. Format: `sk_live_xxxxxxxxxxxxx`
        Get your API key from the [Dashboard](http://keyapi.ai/app/dashboard).

````