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

> One row per shoppable video with GMV, orders, views, and refund totals for the date range. Ordered by total GMV descending (no sort parameter).

Lists shoppable videos for your TikTok Shop — one row per video with GMV, units sold, orders, views, and refund totals for the requested date range. This is the same data as the **Videos** tab of the TikTok Shop store page, with every filter the dashboard offers.

## Response Fields

Each video row contains:

| Field                                                                          | Type            | Description                                                          |
| ------------------------------------------------------------------------------ | --------------- | -------------------------------------------------------------------- |
| `id`                                                                           | Integer \| null | Internal snapshot id                                                 |
| `external_id`                                                                  | String          | TikTok video id                                                      |
| `external_creator_id`                                                          | String \| null  | TikTok creator id (oecuid) of the poster                             |
| `title` / `truncated_title`                                                    | String          | Video title (full / truncated to 30 chars)                           |
| `share_url`                                                                    | String          | Video share URL (`"#"` when unavailable)                             |
| `product_name`                                                                 | String \| null  | Featured product name                                                |
| `create_time`                                                                  | String          | Video post time (ISO 8601)                                           |
| `pretty_create_time`                                                           | String          | Display string, e.g. `"July 10, 2026"`                               |
| `affiliate_id` / `affiliate_name` / `affiliate_email` / `affiliate_avatar_url` | Mixed           | Growi creator info (`"N/A"` / null when the creator is not on Growi) |
| `connected_account_data`                                                       | Object          | Linked TikTok account info                                           |
| `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_views`                                                                  | Integer         | Video views                                                          |
| `*_formatted`                                                                  | String          | Display-string variant of every metric above                         |

The response envelope is `{ data, meta, additional_data }` (see the Creators endpoint for the envelope shape).

## 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  | Search by video URL, id, or title                               | No       | —       |
| `campaign_id`                       | Integer | Filter to a campaign or contract in your organization           | No       | —       |
| `creator_id`                        | Integer | Filter to a single Growi creator (user id)                      | No       | —       |
| `external_creator_id`               | String  | Filter to a single TikTok creator (oecuid)                      | No       | —       |
| `connected_account_id`              | Integer | Filter by connected social account id                           | No       | —       |
| `platform`                          | String  | `growi`, `all`, or `non_growi`                                  | No       | `growi` |
| `gmv_min` / `gmv_max`               | Number  | GMV range bounds in display currency units                      | No       | —       |
| `post_start_date` / `post_end_date` | String  | Filter by video post date (ISO 8601); must be provided together | No       | —       |
| `product_id`                        | String  | Filter by TikTok Shop product id                                | No       | —       |
| `user_content_id`                   | String  | Filter to a single tracked content item                         | No       | —       |
| `linked`                            | String  | `all`, `linked`, or `unlinked`                                  | No       | `all`   |
| `include_zero_gmv`                  | String  | Include videos with zero GMV                                    | No       | `true`  |
| `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/videos?start_date=2026-07-01&end_date=2026-07-31&platform=all&include_zero_gmv=false" \
     -H "Authorization: Bearer YOUR_PUBLIC_API_KEY" \
     -H "Content-Type: application/json"
```

## Response Example

```json theme={null}
{
  "data": [
    {
      "id": 998877,
      "external_id": "7523456789012345678",
      "external_creator_id": "7495033444...",
      "title": "My favorite peach vitamins!",
      "truncated_title": "My favorite peach vitamins!...",
      "share_url": "https://www.tiktok.com/@janecreates/video/7523456789012345678",
      "product_name": "Peach Perfect Multivitamin",
      "create_time": "2026-07-10T12:00:00Z",
      "pretty_create_time": "July 10, 2026",
      "affiliate_name": "Jane Creator",
      "total_gmv": 5432.1,
      "total_gmv_formatted": "$5,432.10",
      "total_units_sold": 180,
      "total_units_sold_formatted": "180",
      "total_views": 120000,
      "total_views_formatted": "120,000"
    }
  ],
  "meta": {
    "row_count": 1892,
    "total_pages": 95,
    "current_page": 1,
    "next_page": 2,
    "prev_page": null
  },
  "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

* Identifying top-converting videos by GMV and views
* Attributing video performance to specific products (`product_id`) or campaigns (`campaign_id`)
* Separating GMV attribution by post date vs. sale date with the post date range filters
* Auditing linked vs. unlinked content with the `linked` filter

## Notes

* Results are always ordered by total GMV descending; there is no sort parameter.
* `include_zero_gmv=true` (the default, matching the dashboard) includes videos that drove no sales in the range.
* `post_start_date` / `post_end_date` filter on when the video was posted; `start_date` / `end_date` filter on when the GMV occurred.
* 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/videos
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/videos:
    get:
      summary: TikTok Shop Videos
      description: >-
        One row per shoppable video with GMV, orders, views, and refund totals
        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: external_creator_id
          in: query
          required: false
          schema:
            type: string
          description: Filter to a single TikTok creator by TikTok creator id (oecuid)
        - name: connected_account_id
          in: query
          required: false
          schema:
            type: integer
          description: >-
            Filter by connected social account id (matches dashboard behavior;
            prefer external_creator_id)
        - name: gmv_min
          in: query
          required: false
          schema:
            type: number
          description: Minimum GMV in display currency units (e.g. dollars)
        - name: gmv_max
          in: query
          required: false
          schema:
            type: number
          description: Maximum GMV in display currency units (e.g. dollars)
        - name: post_start_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            Filter by video post date, range start (ISO 8601). Must be paired
            with post_end_date.
        - name: post_end_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            Filter by video post date, range end (ISO 8601). Must be paired with
            post_start_date.
        - name: product_id
          in: query
          required: false
          schema:
            type: string
          description: Filter by TikTok Shop product id
        - name: user_content_id
          in: query
          required: false
          schema:
            type: string
          description: Filter to a single tracked content item
        - name: linked
          in: query
          required: false
          schema:
            type: string
            enum:
              - all
              - linked
              - unlinked
            default: all
          description: Filter by linked status
        - name: include_zero_gmv
          in: query
          required: false
          schema:
            type: string
            enum:
              - 'true'
              - 'false'
            default: 'true'
          description: Include videos with zero GMV (default true)
      responses:
        '200':
          description: Videos listed
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TikTokShopStoreVideoRow'
                  meta:
                    $ref: '#/components/schemas/TikTokShopStoreMeta'
                  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:
    TikTokShopStoreVideoRow:
      type: object
      properties:
        id:
          type: integer
          nullable: true
        external_id:
          type: string
          description: TikTok video id
        external_creator_id:
          type: string
          nullable: true
        title:
          type: string
          nullable: true
        truncated_title:
          type: string
        share_url:
          type: string
        product_name:
          type: string
          nullable: true
        create_time:
          type: string
          description: Video post time (ISO 8601)
        pretty_create_time:
          type: string
        connected_account_data:
          type: object
        affiliate_id:
          type: integer
          nullable: true
          description: Growi user id (null if the creator is not on Growi)
        affiliate_name:
          type: string
        affiliate_email:
          type: string
        affiliate_avatar_url:
          type: string
        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_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_views:
          type: integer
        total_views_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

````