> ## 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.

# 店铺商品分析

> 获取 TikTok Shop 店铺的商品分析列表，包含每个商品的历史销售数据和表现指标。

<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">每次请求</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">🤖 让 AI 帮你写调用代码</p>
    <p className="mt-1 text-sm text-gray-700 dark:text-gray-300">点击按钮复制一段结构化提示词，可直接交给 ChatGPT、Claude 或其他 AI 助手生成接口调用代码。</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("我想调用 KeyAPI 接口：GET https://api.keyapi.ai/v1/tiktok/shop/products/analytics\n\n请帮我编写调用代码，并包含必要的错误处理、参数校验和响应处理逻辑。\n\n接口信息：\n\nEndpoint: GET https://api.keyapi.ai/v1/tiktok/shop/products/analytics\n\nDescription: TikTok Shop 的「店铺商品分析」接口用于评估表现、趋势、排名和业务机会，返回统计字段、明细列表和分页信息。适用于商品研究、店铺分析、带货达人发现和电商趋势判断。常用必填参数包括 seller_id、page_num、page_size。\n\nRequired Headers:\n--header 'Authorization: Bearer <YOUR_API_KEY>'\n\nParameters:\n- seller_id (Required): 卖家 ID\n- seller_product_sort_field (Optional): seller_product_sort_field 参数\n- sort_type (Optional): sort_type 参数\n- page_num (Required): page_num 参数\n- page_size (Required): 每页返回数量\n\nExample Response:\n{\n  \"code\": 0,\n  \"message\": \"success\",\n  \"data\": [\n    {\n      \"category_id\": \"801928\",\n      \"category_l2_id\": \"986760\",\n      \"category_l3_id\": \"926856\",\n      \"cover_url\": \"[{ \\\"url\\\":\\\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/269/1729514239896361740_3.jpeg\\\",\\\"index\\\":3},{ \\\"url\\\":\\\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/269/1729514239896361740_2.jpeg\\\",\\\"index\\\":2},{ \\\"url\\\":\\\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/269/1729514239896361740_0.jpeg\\\",\\\"index\\\":0},{ \\\"url\\\":\\\"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/269/1729514239896361740_1.jpeg\\\",\\\"index\\\":1}]\",\n      \"desc_detail\": \"[{\\\"type\\\":\\\"text\\\",\\\"text\\\":\\\"Hinweis: AGB, Widerrufsbelehrung, Datenschutzerklärung und Impressum können Sie im Checkout im Feld „Deine Bestellung“ durch Klick auf unseren Verkäufernamen einsehen.\\\"},{\\\"type\\\":\\\"text\\\",\\\"text\\\":\\\" \\\"},{\\\"type\\\":\\\"text\\\",\\\"text\\\":\\\"Noch nie war Persisch so anschaulich - das Persisch Wörterbuch mit Bildern!\\\"},{\\\"type\\\":\\\"ul\\\",\\\"content\\\":[\\\"Alle Wörter, die Sie brauchen: 16.000 Begriffe und Redewendungen in zwei Sprachen aus den wichtigsten Lebensbereichen.\\\",\\\"Neu: Jetzt zusätzlich mit zahlreichen kulturspezifischen Begriffen.\\\",\\\"Richtig aussprechen: Mit Lautschrift für jedes persische Wort.\\\",\\\"Gesehen und einfach gemerkt: Durch Bilder bleibt der Wortschatz besser haften.\\\",\\\"Leicht gefunden: Im zweisprachigen Register schnell das richtige Wort nachschlagen.\\\",\\\"Für Anfänger (A1) und Fortgeschrittene (B2)\\\"]}]\",\n      \"discount\": \"-\",\n      \"first_crawl_dt\": 20250702,\n      \"free_shipping\": 1,\n      \"is_s_shop\": 0,\n      \"max_price\": 15.08,\n      \"min_price\": 15.08,\n      \"off_mark\": 0,\n      \"product_commission_rate\": 0,\n      \"product_id\": \"1729514239896361740\",\n      \"product_name\": \"PONS Bildwörterbuch Persisch / 16.000 Wörter und Wendungen mit kulturspezifischem Sonderteil / Taschenbuch / Kartoniert Broschiert / Deutsch / 2021 / PONS / EAN 9783125162426\",\n      \"product_rating\": 4.5,\n      \"region\": \"DE\",\n      \"review_count\": 8,\n      \"sale_props\": \"[{\\\"prop_name\\\":\\\"Spezifikation\\\",\\\"has_image\\\":\\\"false\\\",\\\"prop_id\\\":\\\"7041375622794364677\\\",\\\"sale_prop_values\\\":[{\\\"image\\\":\\\"\\\",\\\"prop_value_id\\\":\\\"7493847507764741930\\\",\\\"prop_value\\\":\\\"Standard\\\"}]}]\",\n      \"sales_flag\": 1,\n      \"sales_trend_flag\": 0,\n      \"seller_id\": \"7496107241529510668\",\n      \"skus\": \"[{\\\"sku_id\\\":\\\"1729514246559079180\\\",\\\"sale_prop_value_ids\\\":\\\"7493847507764741930\\\",\\\"real_price\\\":{\\\"price_str\\\":\\\"12,95 €\\\",\\\"price_val\\\":\\\"12.95\\\",\\\"currency\\\":\\\"EUR\\\"}}]\",\n      \"spu_avg_price\": 15.08,\n      \"total_ifl_cnt\": 8,\n      \"total_ifl_live_15d_cnt\": 0,\n      \"total_ifl_live_1d_cnt\": 0,\n      \"total_ifl_live_30d_cnt\": 0,\n      \"total_ifl_live_60d_cnt\": 0,\n      \"total_ifl_live_7d_cnt\": 0,\n      \"total_ifl_live_90d_cnt\": 0,\n      \"total_ifl_video_15d_cnt\": 0,\n      \"total_ifl_video_1d_cnt\": 0,\n      \"total_ifl_video_30d_cnt\": 0,\n      \"total_ifl_video_60d_cnt\": 0,\n      \"total_ifl_video_7d_cnt\": 0,\n      \"total_ifl_video_90d_cnt\": 5,\n      \"total_live_15d_cnt\": 0,\n      \"total_live_1d_cnt\": 0,\n      \"total_live_30d_cnt\": 0,\n      \"total_live_60d_cnt\": 0,\n      \"total_live_7d_cnt\": 0,\n      \"total_live_90d_cnt\": 0,\n      \"total_live_cnt\": 0,\n      \"total_live_sale_15d_cnt\": 0,\n      \"total_live_sale_1d_cnt\": 0,\n      \"total_live_sale_30d_cnt\": 0,\n      \"total_live_sale_60d_cnt\": 0,\n      \"total_live_sale_7d_cnt\": 0,\n      \"total_live_sale_90d_cnt\": 0,\n      \"total_live_sale_gmv_15d_amt\": 0,\n      \"total_live_sale_gmv_1d_amt\": 0,\n      \"total_live_sale_gmv_30d_amt\": 0,\n      \"total_live_sale_gmv_60d_amt\": 0,\n      \"total_live_sale_gmv_7d_amt\": 0,\n      \"total_live_sale_gmv_90d_amt\": 0,\n      \"total_sale_15d_cnt\": 0,\n      \"total_sale_1d_cnt\": 0,\n      \"total_sale_30d_cnt\": 0,\n      \"total_sale_60d_cnt\": 16,\n      \"total_sale_7d_cnt\": 0,\n      \"total_sale_90d_cnt\": 76,\n      \"total_sale_cnt\": 97,\n      \"total_sale_gmv_15d_amt\": 0,\n      \"total_sale_gmv_1d_amt\": 0,\n      \"total_sale_gmv_30d_amt\": 0,\n      \"total_sale_gmv_60d_amt\": 241.53,\n      \"total_sale_gmv_7d_amt\": 0,\n      \"total_sale_gmv_90d_amt\": 1142.17,\n      \"total_sale_gmv_amt\": 1460.08,\n      \"total_video_15d_cnt\": 0,\n      \"total_video_1d_cnt\": 0,\n      \"total_video_30d_cnt\": 0,\n      \"total_video_60d_cnt\": 0,\n      \"total_video_7d_cnt\": 0,\n      \"total_video_90d_cnt\": 5,\n      \"total_video_cnt\": 8,\n      \"total_views_15d_cnt\": 0,\n      \"total_views_1d_cnt\": 0,\n      \"total_views_30d_cnt\": 0,\n      \"total_views_60d_cnt\": 0,\n      \"total_views_7d_cnt\": 0,\n      \"total_views_90d_cnt\": 339582,\n      \"total_views_cnt\": 344086\n    }\n  ],\n  \"requestId\": \"a90a1c99-9e90-4a5b-9b1c-7fa1bf11b2cc\"\n}\n\n请根据以上信息给出可直接运行的示例代码。")}>
      ✨ 复制给 AI
    </button>
  </div>
</div>


## OpenAPI

````yaml zh/tiktok.zh.openapi.json GET /v1/tiktok/shop/products/analytics
openapi: 3.0.1
info:
  title: Tiktok API 中文文档
  description: Tiktok API 的中文参考文档，包含接口用途、参数说明、响应状态和示例结构。
  version: 1.0.0
servers:
  - url: https://api.keyapi.ai
    description: Production
security: []
tags:
  - name: TikTok Influencer
  - name: TikTok Shop Creator
  - name: TikTok Shop
  - name: TikTok Content
  - name: TikTok Intelligence
paths:
  /v1/tiktok/shop/products/analytics:
    get:
      tags:
        - TikTok Shop
      summary: 店铺商品分析
      description: 获取 TikTok Shop 店铺的商品分析列表，包含每个商品的历史销售数据和表现指标。
      operationId: get_api_v3_echotik_seller_product_list
      parameters:
        - name: seller_id
          in: query
          description: 店铺 ID。
          required: true
          schema:
            type: string
        - name: seller_product_sort_field
          in: query
          description: >-
            列表排序字段，1=total_sale_cnt，2=total_sale_gmv_amt，3=spu_avg_price，4=total_sale_7d_cnt，5=total_sale_gmv_7d_amt。
          required: false
          schema:
            type: integer
        - name: sort_type
          in: query
          description: 排序方向，0=升序，1=降序。
          required: false
          schema:
            type: integer
        - name: page_num
          in: query
          description: 页码，从 1 开始，最大支持 100000。
          required: true
          schema:
            type: integer
        - name: page_size
          in: query
          description: 每页返回数量，最大值为 10。
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 请求成功
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        category_id:
                          type: string
                        category_l2_id:
                          type: string
                        category_l3_id:
                          type: string
                        cover_url:
                          type: string
                        desc_detail:
                          type: string
                        discount:
                          type: string
                        first_crawl_dt:
                          type: integer
                        free_shipping:
                          type: integer
                        is_s_shop:
                          type: integer
                        max_price:
                          type: number
                        min_price:
                          type: number
                        off_mark:
                          type: integer
                        product_commission_rate:
                          type: integer
                        product_id:
                          type: string
                        product_name:
                          type: string
                        product_rating:
                          type: number
                        region:
                          type: string
                        review_count:
                          type: integer
                        sale_props:
                          type: string
                        sales_flag:
                          type: integer
                        sales_trend_flag:
                          type: integer
                        seller_id:
                          type: string
                        skus:
                          type: string
                        spu_avg_price:
                          type: number
                        total_ifl_cnt:
                          type: integer
                        total_ifl_live_15d_cnt:
                          type: integer
                        total_ifl_live_1d_cnt:
                          type: integer
                        total_ifl_live_30d_cnt:
                          type: integer
                        total_ifl_live_60d_cnt:
                          type: integer
                        total_ifl_live_7d_cnt:
                          type: integer
                        total_ifl_live_90d_cnt:
                          type: integer
                        total_ifl_video_15d_cnt:
                          type: integer
                        total_ifl_video_1d_cnt:
                          type: integer
                        total_ifl_video_30d_cnt:
                          type: integer
                        total_ifl_video_60d_cnt:
                          type: integer
                        total_ifl_video_7d_cnt:
                          type: integer
                        total_ifl_video_90d_cnt:
                          type: integer
                        total_live_15d_cnt:
                          type: integer
                        total_live_1d_cnt:
                          type: integer
                        total_live_30d_cnt:
                          type: integer
                        total_live_60d_cnt:
                          type: integer
                        total_live_7d_cnt:
                          type: integer
                        total_live_90d_cnt:
                          type: integer
                        total_live_cnt:
                          type: integer
                        total_live_sale_15d_cnt:
                          type: integer
                        total_live_sale_1d_cnt:
                          type: integer
                        total_live_sale_30d_cnt:
                          type: integer
                        total_live_sale_60d_cnt:
                          type: integer
                        total_live_sale_7d_cnt:
                          type: integer
                        total_live_sale_90d_cnt:
                          type: integer
                        total_live_sale_gmv_15d_amt:
                          type: integer
                        total_live_sale_gmv_1d_amt:
                          type: integer
                        total_live_sale_gmv_30d_amt:
                          type: integer
                        total_live_sale_gmv_60d_amt:
                          type: integer
                        total_live_sale_gmv_7d_amt:
                          type: integer
                        total_live_sale_gmv_90d_amt:
                          type: integer
                        total_sale_15d_cnt:
                          type: integer
                        total_sale_1d_cnt:
                          type: integer
                        total_sale_30d_cnt:
                          type: integer
                        total_sale_60d_cnt:
                          type: integer
                        total_sale_7d_cnt:
                          type: integer
                        total_sale_90d_cnt:
                          type: integer
                        total_sale_cnt:
                          type: integer
                        total_sale_gmv_15d_amt:
                          type: integer
                        total_sale_gmv_1d_amt:
                          type: integer
                        total_sale_gmv_30d_amt:
                          type: integer
                        total_sale_gmv_60d_amt:
                          type: number
                        total_sale_gmv_7d_amt:
                          type: integer
                        total_sale_gmv_90d_amt:
                          type: number
                        total_sale_gmv_amt:
                          type: number
                        total_video_15d_cnt:
                          type: integer
                        total_video_1d_cnt:
                          type: integer
                        total_video_30d_cnt:
                          type: integer
                        total_video_60d_cnt:
                          type: integer
                        total_video_7d_cnt:
                          type: integer
                        total_video_90d_cnt:
                          type: integer
                        total_video_cnt:
                          type: integer
                        total_views_15d_cnt:
                          type: integer
                        total_views_1d_cnt:
                          type: integer
                        total_views_30d_cnt:
                          type: integer
                        total_views_60d_cnt:
                          type: integer
                        total_views_7d_cnt:
                          type: integer
                        total_views_90d_cnt:
                          type: integer
                        total_views_cnt:
                          type: integer
                    title: >-
                      Please refer to the product list API for descriptions of
                      the returned fields.
                  requestId:
                    type: string
                required:
                  - code
                  - message
                  - data
                  - requestId
                example:
                  code: 0
                  message: success
                  data:
                    - category_id: '801928'
                      category_l2_id: '986760'
                      category_l3_id: '926856'
                      cover_url: >-
                        [{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/269/1729514239896361740_3.jpeg","index":3},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/269/1729514239896361740_2.jpeg","index":2},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/269/1729514239896361740_0.jpeg","index":0},{
                        "url":"https://echosell-images.tos-ap-southeast-1.volces.com/product-cover/269/1729514239896361740_1.jpeg","index":1}]
                      desc_detail: >-
                        [{"type":"text","text":"Hinweis: AGB,
                        Widerrufsbelehrung, Datenschutzerklärung und Impressum
                        können Sie im Checkout im Feld „Deine Bestellung“ durch
                        Klick auf unseren Verkäufernamen
                        einsehen."},{"type":"text","text":"
                        "},{"type":"text","text":"Noch nie war Persisch so
                        anschaulich - das Persisch Wörterbuch mit
                        Bildern!"},{"type":"ul","content":["Alle Wörter, die Sie
                        brauchen: 16.000 Begriffe und Redewendungen in zwei
                        Sprachen aus den wichtigsten Lebensbereichen.","Neu:
                        Jetzt zusätzlich mit zahlreichen kulturspezifischen
                        Begriffen.","Richtig aussprechen: Mit Lautschrift für
                        jedes persische Wort.","Gesehen und einfach gemerkt:
                        Durch Bilder bleibt der Wortschatz besser
                        haften.","Leicht gefunden: Im zweisprachigen Register
                        schnell das richtige Wort nachschlagen.","Für Anfänger
                        (A1) und Fortgeschrittene (B2)"]}]
                      discount: '-'
                      first_crawl_dt: 20250702
                      free_shipping: 1
                      is_s_shop: 0
                      max_price: 15.08
                      min_price: 15.08
                      off_mark: 0
                      product_commission_rate: 0
                      product_id: '1729514239896361740'
                      product_name: >-
                        PONS Bildwörterbuch Persisch / 16.000 Wörter und
                        Wendungen mit kulturspezifischem Sonderteil /
                        Taschenbuch / Kartoniert Broschiert / Deutsch / 2021 /
                        PONS / EAN 9783125162426
                      product_rating: 4.5
                      region: DE
                      review_count: 8
                      sale_props: >-
                        [{"prop_name":"Spezifikation","has_image":"false","prop_id":"7041375622794364677","sale_prop_values":[{"image":"","prop_value_id":"7493847507764741930","prop_value":"Standard"}]}]
                      sales_flag: 1
                      sales_trend_flag: 0
                      seller_id: '7496107241529510668'
                      skus: >-
                        [{"sku_id":"1729514246559079180","sale_prop_value_ids":"7493847507764741930","real_price":{"price_str":"12,95
                        €","price_val":"12.95","currency":"EUR"}}]
                      spu_avg_price: 15.08
                      total_ifl_cnt: 8
                      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: 5
                      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_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_sale_15d_cnt: 0
                      total_sale_1d_cnt: 0
                      total_sale_30d_cnt: 0
                      total_sale_60d_cnt: 16
                      total_sale_7d_cnt: 0
                      total_sale_90d_cnt: 76
                      total_sale_cnt: 97
                      total_sale_gmv_15d_amt: 0
                      total_sale_gmv_1d_amt: 0
                      total_sale_gmv_30d_amt: 0
                      total_sale_gmv_60d_amt: 241.53
                      total_sale_gmv_7d_amt: 0
                      total_sale_gmv_90d_amt: 1142.17
                      total_sale_gmv_amt: 1460.08
                      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: 5
                      total_video_cnt: 8
                      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: 339582
                      total_views_cnt: 344086
                  requestId: a90a1c99-9e90-4a5b-9b1c-7fa1bf11b2cc
        '400':
          description: 请求参数错误，请检查必填字段和参数格式
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 400
                  data: null
                  message: 'Missing required parameter: handle'
        '401':
          description: 鉴权失败，请检查 Authorization Header 中的 Bearer Token 或 API Key 是否有效
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 401
                  data: null
                  message: apiKey is null
        '402':
          description: 账户余额或额度不足
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 402
                  data: null
                  message: apiKey quota is not enough
        '429':
          description: 请求过于频繁，已触发限流
          content:
            application/json:
              schema:
                type: object
                example:
                  code: 429
                  data: null
                  message: qps limit exceeded
        '500':
          description: 服务器内部错误，请稍后重试
          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/shop/products/analytics' \
              --header 'Authorization: Bearer <YOUR_API_KEY>'
        - lang: python
          label: Python
          source: |-
            import requests

            response = requests.get(
                'https://api.keyapi.ai/v1/tiktok/shop/products/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/shop/products/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: |-
        接口鉴权凭证。请在请求 Header 中传入 `Authorization: Bearer <YOUR_API_KEY>`。
        可在 [Dashboard](https://keyapi.ai/app/dashboard) 获取你的 API Key。

````