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

# Product videos and LIVEs

> Lists the videos and LIVEs that sold one product in a date window, summed per content and ranked by GMV. Each row has `contentId`, `kind`, `creatorHandle`, `title`, `startedAt`, `gmv`, `orders`, `unitsSold`, refunds, `commission` and `currency`, plus the days counted. `total` is the number of contents before `limit` applies.

`start_date` and `end_date` are YYYY-MM-DD in the shop region's local day, both inclusive, at most 31 days including both ends. `type` is `all` (default), `video` or `live`. `limit` is 1 to 200 (default 50). Served from Growi's synced sales data, and the most recent days can still change.



## OpenAPI

````yaml api-reference/tik-tok-shop-openapi.json GET /tik_tok_shop/products/{productId}/contents
openapi: 3.0.3
info:
  title: 'Growi API: TikTok Shop'
  version: 1.0.0
  description: >-
    Generated by scripts/gen_tik_tok_shop.rb from Growi's TikTok Shop route
    table.
servers:
  - url: https://api.growi.io/api/public/v1
security:
  - bearerAuth: []
paths:
  /tik_tok_shop/products/{productId}/contents:
    get:
      summary: Product videos and LIVEs
      description: >-
        Lists the videos and LIVEs that sold one product in a date window,
        summed per content and ranked by GMV. Each row has `contentId`, `kind`,
        `creatorHandle`, `title`, `startedAt`, `gmv`, `orders`, `unitsSold`,
        refunds, `commission` and `currency`, plus the days counted. `total` is
        the number of contents before `limit` applies.


        `start_date` and `end_date` are YYYY-MM-DD in the shop region's local
        day, both inclusive, at most 31 days including both ends. `type` is
        `all` (default), `video` or `live`. `limit` is 1 to 200 (default 50).
        Served from Growi's synced sales data, and the most recent days can
        still change.
      parameters:
        - name: productId
          in: path
          required: true
          schema:
            type: string
            pattern: ^[0-9]{1,32}$
          description: TikTok product id.
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date
          description: Window start, YYYY-MM-DD INCLUSIVE (the shop region's local day).
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date
          description: >-
            Window end, YYYY-MM-DD INCLUSIVE. At most 31 days including both
            ends.
        - name: type
          in: query
          required: false
          schema:
            type: string
            enum:
              - all
              - video
              - live
            default: all
          description: video, live, or all (default).
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 50
          description: Contents returned, 1 to 200 (default 50), top by GMV.
        - name: organization_id
          in: query
          required: false
          schema:
            type: integer
          description: >-
            Use the TikTok Shop of this child brand (organization id) of your
            API key's organization
      responses:
        '200':
          description: Contents GMV-descending.
          content:
            application/json:
              schema:
                type: object
                properties:
                  shopId:
                    type: string
                  productId:
                    type: string
                  startDate:
                    type: string
                    format: date
                  endDate:
                    type: string
                    format: date
                  total:
                    type: integer
                    description: >-
                      Contents that sold the product in the window, before the
                      limit.
                  contents:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProductContentRow'
              example:
                shopId: '7494000000000000123'
                productId: '1729000000000000100'
                startDate: '2026-09-01'
                endDate: '2026-09-07'
                total: 23
                contents:
                  - contentId: '7550000000000000001'
                    kind: video
                    creatorOecId: '7000000000000000001'
                    creatorHandle: creator_one
                    title: My morning routine with this serum
                    startedAt: '2026-08-28T16:30:00.000Z'
                    gmv: 874.65
                    orders: 35
                    unitsSold: 35
                    refundedAmount: 0
                    refundedItems: 0
                    commission: 131.2
                    currency: USD
                    days: 7
                    firstDay: '2026-09-01'
                    lastDay: '2026-09-07'
        '400':
          description: Invalid id or window
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TikTokShopError'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TikTokShopError'
        '404':
          description: >-
            `organization_id` isn't an active child brand of your organization,
            or the record you asked for doesn't exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TikTokShopError'
        '422':
          description: >-
            No TikTok Shop is connected for this organization. A parent
            organization whose shops sit on its child brands has to pass
            `organization_id`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TikTokShopError'
        '429':
          description: >-
            Rate limited: one call every 2 seconds and an hourly cap per API
            key. See `Retry-After` and the `X-RateLimit-*` headers
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TikTokShopError'
        '502':
          description: >-
            TikTok refused or failed. `error` is a fixed message and `code`
            names the failure when there is one
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TikTokShopError'
components:
  schemas:
    ProductContentRow:
      type: object
      properties:
        contentId:
          type: string
          description: Video id, or LIVE room id.
        kind:
          type: string
          enum:
            - video
            - live
        creatorOecId:
          type: string
          nullable: true
        creatorHandle:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        startedAt:
          type: string
          nullable: true
          format: date-time
          description: Video post time or LIVE start.
        gmv:
          type: number
          nullable: true
        orders:
          type: integer
          nullable: true
        unitsSold:
          type: integer
          nullable: true
        refundedAmount:
          type: number
          nullable: true
        refundedItems:
          type: integer
          nullable: true
        commission:
          type: number
          nullable: true
          description: Estimated creator commission, all-in as compass reports it.
        currency:
          type: string
          nullable: true
        days:
          type: integer
          description: Stored days with a row for this pair.
        firstDay:
          type: string
          format: date
        lastDay:
          type: string
          format: date
    TikTokShopError:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: What went wrong
        code:
          type: string
          description: Machine-readable reason, when there is one
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

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