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

# TikTok Shop Products

> One row per product, summed across your tracked creators for the date range. Ordered by total GMV descending (no sort parameter).

Lists products for your TikTok Shop — one row per product, with GMV, units sold, orders, commission, and refund totals summed across your tracked creators for the requested date range. This is the same data as the **Products** tab (Overall view) of the TikTok Shop store page.

For the per-creator breakdown of product sales, see [TikTok Shop Creators by Product](/api-reference/endpoint/get-tik-tok-shop-store-product-creators).

## Response Fields

Each product row contains:

| Field                          | Type           | Description                                  |
| ------------------------------ | -------------- | -------------------------------------------- |
| `id`                           | String         | Same as `external_product_id`                |
| `external_product_id`          | String         | TikTok Shop product id                       |
| `product_name`                 | String         | Product name                                 |
| `product_image_url`            | String \| null | Product image URL                            |
| `latest_date`                  | String \| null | Most recent date with sales (`YYYY-MM-DD`)   |
| `total_gmv`                    | Number         | GMV in display currency units                |
| `total_units_sold`             | Integer        | Items sold                                   |
| `total_sku_orders`             | Integer        | SKU orders                                   |
| `total_commission`             | Number         | Estimated commission                         |
| `total_refunded_amount`        | Number         | Refunded amount                              |
| `total_items_refunded`         | Integer        | Items refunded                               |
| `total_estimated_flat_fee`     | Number         | Estimated flat fees                          |
| `total_videos` / `total_lives` | Integer        | Content counts featuring this product        |
| `total_samples_shipped`        | Integer        | Samples shipped                              |
| `sales_creator_count`          | Integer        | Distinct creators who sold this product      |
| `*_formatted`                  | String         | Display-string variant of every metric above |

The response envelope is `{ data, meta, additional_data }`; `meta` additionally includes `page_size` (rows on this page) and `additional_data` includes `product_count`.

## Request Parameters

| Parameter          | Type    | Description                                            | Required | Default |
| ------------------ | ------- | ------------------------------------------------------ | -------- | ------- |
| `start_date`       | String  | Start of the GMV date range (ISO 8601, `YYYY-MM-DD`)   | Yes      | —       |
| `end_date`         | String  | End of the GMV date range (ISO 8601, `YYYY-MM-DD`)     | Yes      | —       |
| `page`             | Integer | Page number                                            | No       | 1       |
| `per_page`         | Integer | Results per page (max 100)                             | No       | 20      |
| `search`           | String  | Free-text search                                       | No       | —       |
| `campaign_id`      | Integer | Filter to a campaign or contract in your organization  | No       | —       |
| `creator_id`       | Integer | Only count sales from a single Growi creator (user id) | No       | —       |
| `platform`         | String  | `growi`, `all`, or `non_growi`                         | No       | `growi` |
| `all_contracts`    | String  | `'true'` to include creators from all contracts        | No       | —       |
| `exclude_contests` | String  | `'true'` to exclude TikTok Shop contest campaigns      | No       | —       |
| `organization_id`  | Integer | Narrow to a child organization                         | No       | —       |

## Request Example

```bash theme={null}
curl -X GET "https://api.growi.io/api/public/v1/tik_tok_shop/products?start_date=2026-07-01&end_date=2026-07-31" \
     -H "Authorization: Bearer YOUR_PUBLIC_API_KEY" \
     -H "Content-Type: application/json"
```

## Response Example

```json theme={null}
{
  "data": [
    {
      "id": "1729548090545311965",
      "external_product_id": "1729548090545311965",
      "product_name": "Peach Perfect Multivitamin",
      "product_image_url": "https://...",
      "latest_date": "2026-07-30",
      "total_gmv": 127054.59,
      "total_gmv_formatted": "$127,054.59",
      "total_units_sold": 4086,
      "total_units_sold_formatted": "4,086",
      "total_sku_orders": 3900,
      "total_sku_orders_formatted": "3,900",
      "total_commission": 19058.19,
      "total_commission_formatted": "$19,058.19",
      "total_videos": 456,
      "total_videos_formatted": "456",
      "total_lives": 12,
      "total_lives_formatted": "12",
      "sales_creator_count": 210,
      "sales_creator_count_formatted": "210"
    }
  ],
  "meta": {
    "row_count": 58,
    "total_pages": 3,
    "current_page": 1,
    "next_page": 2,
    "prev_page": null,
    "page_size": 20
  },
  "additional_data": {
    "total_gmv": 250000.5,
    "total_units_sold": 10400,
    "total_sku_orders": 9020,
    "total_commission": 37500.25,
    "total_items_refunded": 310,
    "total_refunded_amount": 6100.0,
    "currency_symbol": "$",
    "currency": "usd"
  }
}
```

## Use Cases

* Ranking products by creator-driven GMV
* Tracking how many creators and how much content each product has
* Monitoring refunds and sample shipments per product
* Feeding product performance into inventory and campaign planning

## Notes

* Results are always ordered by total GMV descending; there is no sort parameter.
* Totals are summed across your organization's tracked creators (creators with tracked content), matching the dashboard's Products tab.
* Requests are rate limited (minimum 2 seconds between requests plus an hourly quota); see the `X-RateLimit-*` response headers.


## OpenAPI

````yaml GET /tik_tok_shop/products
openapi: 3.0.1
info:
  title: Growi API
  description: >-
    API documentation for Growi platform, showcasing the public tracking event
    endpoint
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.growi.io/api/public/v1
security:
  - bearerAuth: []
paths:
  /tik_tok_shop/products:
    get:
      summary: TikTok Shop Products
      description: >-
        One row per product, summed across your tracked creators for the date
        range. Ordered by total GMV descending (no sort parameter).
      parameters:
        - name: start_date
          in: query
          required: true
          schema:
            type: string
            format: date
          description: Start of the GMV date range (ISO 8601, YYYY-MM-DD)
          example: '2026-07-01'
        - name: end_date
          in: query
          required: true
          schema:
            type: string
            format: date
          description: End of the GMV date range (ISO 8601, YYYY-MM-DD)
          example: '2026-07-31'
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
          description: Page number (default 1)
        - name: per_page
          in: query
          required: false
          schema:
            type: integer
            default: 20
            maximum: 100
          description: 'Results per page: 1-100, default 20'
        - name: search
          in: query
          required: false
          schema:
            type: string
          description: Free-text search
        - name: campaign_id
          in: query
          required: false
          schema:
            type: integer
          description: Filter to a campaign or contract belonging to your organization
        - name: creator_id
          in: query
          required: false
          schema:
            type: integer
          description: Filter to a single Growi creator (user id)
        - name: platform
          in: query
          required: false
          schema:
            type: string
            enum:
              - growi
              - all
              - non_growi
            default: growi
          description: >-
            Data scope: growi (only creators on Growi, default), all (all TikTok
            Shop data), non_growi (creators not on Growi)
        - name: organization_id
          in: query
          required: false
          schema:
            type: integer
          description: >-
            Narrow results to a child organization (id) of the API key
            organization
        - name: all_contracts
          in: query
          required: false
          schema:
            type: string
            enum:
              - 'true'
          description: Set to 'true' to include creators from all contracts
        - name: exclude_contests
          in: query
          required: false
          schema:
            type: string
            enum:
              - 'true'
          description: Set to 'true' to exclude TikTok Shop contest campaigns
      responses:
        '200':
          description: Products listed
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TikTokShopStoreProductRow'
                  meta:
                    allOf:
                      - $ref: '#/components/schemas/TikTokShopStoreMeta'
                      - type: object
                        properties:
                          page_size:
                            type: integer
                            description: Rows on this page
                  additional_data:
                    $ref: '#/components/schemas/TikTokShopStoreTotals'
                required:
                  - data
                  - meta
                  - additional_data
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: >-
            Invalid parameters (missing/invalid dates, unknown platform or
            linked value, foreign campaign_id, no TikTok Shop connected)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    TikTokShopStoreProductRow:
      type: object
      properties:
        id:
          type: string
          description: Same as external_product_id
        external_product_id:
          type: string
        product_name:
          type: string
          nullable: true
        product_image_url:
          type: string
          nullable: true
        latest_date:
          type: string
          nullable: true
          description: Most recent date with sales (YYYY-MM-DD)
        total_gmv:
          type: number
          description: Raw amount in display currency units (e.g. dollars)
        total_gmv_formatted:
          type: string
          description: Display string (e.g. "$1,234.56")
        total_commission:
          type: number
          description: Raw amount in display currency units (e.g. dollars)
        total_commission_formatted:
          type: string
          description: Display string (e.g. "$1,234.56")
        total_refunded_amount:
          type: number
          description: Raw amount in display currency units (e.g. dollars)
        total_refunded_amount_formatted:
          type: string
          description: Display string (e.g. "$1,234.56")
        total_estimated_flat_fee:
          type: number
          description: Raw amount in display currency units (e.g. dollars)
        total_estimated_flat_fee_formatted:
          type: string
          description: Display string (e.g. "$1,234.56")
        total_units_sold:
          type: integer
        total_units_sold_formatted:
          type: string
        total_sku_orders:
          type: integer
        total_sku_orders_formatted:
          type: string
        total_items_refunded:
          type: integer
        total_items_refunded_formatted:
          type: string
        total_videos:
          type: integer
        total_videos_formatted:
          type: string
        total_lives:
          type: integer
        total_lives_formatted:
          type: string
        total_samples_shipped:
          type: integer
        total_samples_shipped_formatted:
          type: string
        sales_creator_count:
          type: integer
        sales_creator_count_formatted:
          type: string
    TikTokShopStoreMeta:
      type: object
      description: Pagination metadata
      properties:
        row_count:
          type: integer
          description: Total rows across all pages
        total_pages:
          type: integer
        current_page:
          type: integer
        next_page:
          type: integer
          nullable: true
        prev_page:
          type: integer
          nullable: true
    TikTokShopStoreTotals:
      type: object
      description: Raw totals across the full (unpaginated) result set
      properties:
        total_gmv:
          type: number
        total_units_sold:
          type: integer
        total_sku_orders:
          type: integer
        total_commission:
          type: number
        total_items_refunded:
          type: integer
        total_refunded_amount:
          type: number
        currency_symbol:
          type: string
        currency:
          type: string
          nullable: true
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: string
        message:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````