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

# Weekly summary

> Compares one week with the week before across affiliate GMV, orders, units sold, commission, creators, samples and content posted, plus top movers. Each metric is `{ value, previous, change, changePct, source }`; `changePct` is null when the previous value is 0 or unknown. Money is an exact decimal string in `currency`.

Weeks run Monday to Sunday in UTC, both ends inclusive. `week_start` is that Monday (YYYY-MM-DD), from 26 weeks back up to the current week. It defaults to the last complete week, and the current week is flagged `inProgress`. Each figure matches its source endpoint (such as Affiliate summary or Sample funnel) for the same week.

Sample counts follow a request cohort, so last week's approved and shipped numbers can still grow. Content counts stop changing two weeks after the week ends. `topMovers` lists 5 `top` and 5 `drops` for creators, products, products by samples and videos, each with a `basis` sentence. Product movers use TikTok's all-channel analytics in the shop's timezone and local currency, 1 to 2 days behind. Product movers are null when the shop isn't connected through TikTok's official API or its TikTok authorization doesn't include analytics data. A part that fails or times out is listed in `unavailable` with null metrics; the rest still returns.



## OpenAPI

````yaml api-reference/tik-tok-shop-openapi.json GET /tik_tok_shop/summary/weekly
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/summary/weekly:
    get:
      summary: Weekly summary
      description: >-
        Compares one week with the week before across affiliate GMV, orders,
        units sold, commission, creators, samples and content posted, plus top
        movers. Each metric is `{ value, previous, change, changePct, source }`;
        `changePct` is null when the previous value is 0 or unknown. Money is an
        exact decimal string in `currency`.


        Weeks run Monday to Sunday in UTC, both ends inclusive. `week_start` is
        that Monday (YYYY-MM-DD), from 26 weeks back up to the current week. It
        defaults to the last complete week, and the current week is flagged
        `inProgress`. Each figure matches its source endpoint (such as Affiliate
        summary or Sample funnel) for the same week.


        Sample counts follow a request cohort, so last week's approved and
        shipped numbers can still grow. Content counts stop changing two weeks
        after the week ends. `topMovers` lists 5 `top` and 5 `drops` for
        creators, products, products by samples and videos, each with a `basis`
        sentence. Product movers use TikTok's all-channel analytics in the
        shop's timezone and local currency, 1 to 2 days behind. Product movers
        are null when the shop isn't connected through TikTok's official API or
        its TikTok authorization doesn't include analytics data. A part that
        fails or times out is listed in `unavailable` with null metrics; the
        rest still returns.
      parameters:
        - name: week_start
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            Monday of the week, YYYY-MM-DD, UTC. From 26 weeks before this
            week's Monday up to this week's Monday. Default: the last complete
            week.
          example: '2026-09-21'
        - 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: >-
            { week, previousWeek, inProgress, timezone: UTC, currency (one
            currency across both weeks, else null), metrics { affiliateGmv,
            orders, unitsSold, commission, activeCreators, newCreators,
            samplesRequested, samplesApproved, samplesShipped, contentPosted },
            topMovers { creators, products, productsBySamples, videos }, each {
            metric, source, basis, top[], drops[], dropsExact } or null when
            that part is unavailable, freshness, unavailable[], note }.
          content:
            application/json:
              example:
                week:
                  startDate: '2026-09-21'
                  endDate: '2026-09-27'
                previousWeek:
                  startDate: '2026-09-14'
                  endDate: '2026-09-20'
                inProgress: false
                timezone: UTC
                currency: USD
                metrics:
                  affiliateGmv:
                    value: '1200.5'
                    previous: '1000.25'
                    change: '200.25'
                    changePct: 20.02
                    source: affiliate_summary
                  orders:
                    value: 12
                    previous: 10
                    change: 2
                    changePct: 20
                    source: affiliate_summary
                  unitsSold:
                    value: 15
                    previous: 15
                    change: 0
                    changePct: 0
                    source: affiliate_summary
                  commission:
                    value: '120.05'
                    previous: '100'
                    change: '20.05'
                    changePct: 20.05
                    source: affiliate_summary
                  activeCreators:
                    value: 7
                    previous: 5
                    change: 2
                    changePct: 40
                    source: affiliate_summary
                  newCreators:
                    value: 3
                    previous: 2
                    change: 1
                    changePct: 50
                    source: creator_activity
                  samplesRequested:
                    value: 20
                    previous: 10
                    change: 10
                    changePct: 100
                    source: sample_funnel
                  samplesApproved:
                    value: 8
                    previous: 10
                    change: -2
                    changePct: -20
                    source: sample_funnel
                  samplesShipped:
                    value: 5
                    previous: 0
                    change: 5
                    changePct: null
                    source: sample_funnel
                  contentPosted:
                    value: 3
                    previous: 0
                    change: 3
                    changePct: null
                    source: posted_contents
                topMovers:
                  creators:
                    metric: gmv
                    source: affiliate_creators
                    basis: >-
                      Affiliate GMV from our orders mirror, INELIGIBLE lines
                      excluded, UTC days; ...
                    top:
                      - creatorUsername: ana
                        creatorKey: '-000AbCdEfG'
                        value: '500'
                        previous: '100'
                        change: '400'
                        changePct: 400
                    drops:
                      - creatorUsername: cy
                        creatorKey: cy
                        value: '0'
                        previous: '400'
                        change: '-400'
                        changePct: -100
                    dropsExact: true
                  products:
                    metric: gmv
                    source: tiktok_product_analytics
                    basis: >-
                      All-channel GMV (seller videos, LIVE, product card and
                      affiliate) in the shop's local currency from TikTok's
                      official shop analytics ...
                    top:
                      - productId: '1729000000000000001'
                        productTitle: Vitamin C serum
                        value: '250.10'
                        previous: '100.05'
                        change: '150.05'
                        changePct: 149.98
                    drops:
                      - productId: '1729000000000000002'
                        productTitle: Night cream
                        value: '120'
                        previous: '300'
                        change: '-180'
                        changePct: -60
                    dropsExact: true
                  productsBySamples:
                    metric: samples_requested
                    source: samples_by_product
                    basis: >-
                      Sample rows requested in the week (the /samples/by-product
                      request cohort), UTC days.
                    top:
                      - productId: '1729000000000000001'
                        productTitle: Vitamin C serum
                        value: 9
                        previous: 3
                        change: 6
                        changePct: 200
                    drops:
                      - productId: '1729000000000000002'
                        productTitle: Night cream
                        value: 4
                        previous: 6
                        change: -2
                        changePct: -33.33
                    dropsExact: true
                  videos:
                    metric: gmv
                    source: content_top
                    basis: >-
                      Affiliate video GMV from the Data Compass scrape (the
                      /contents/top read), on region days (Pacific for US), not
                      UTC.
                    top:
                      - contentId: '7420000000000000001'
                        value: '90'
                        previous: '10'
                        change: '80'
                        changePct: 800
                    drops: []
                    dropsExact: false
                freshness:
                  ordersSweptThrough: '2026-09-28T06:00:00.000Z'
                  ordersCompleteForWeek: true
                  creatorActivity:
                    source: rollup
                    historyFrom: '2026-01-02'
                  videoSales:
                    firstFinalDay: '2026-06-01'
                    weekFinalThrough: '2026-09-26'
                    previousWeekFinalThrough: '2026-09-20'
                  samplesSyncedAt: '2026-09-29T01:00:00.000Z'
                  contentSyncedAt: '2026-09-29T02:00:00.000Z'
                  productAnalytics:
                    weekLatestAvailableDate: '2026-09-27'
                    previousWeekLatestAvailableDate: '2026-09-27'
                unavailable: []
                note: Weeks are Monday to Sunday in UTC, both ends inclusive. ...
        '400':
          description: >-
            Invalid params: a week_start that is not a calendar day, not a
            Monday, more than 26 weeks before this week's Monday, or after it
          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:
    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.