---
title: "Full weekly affiliate report for one shop"
method: POST
path: "/weekly-report"
tags: ["Weekly Report"]
---

# Full weekly affiliate report for one shop

`POST /weekly-report`

The complete affiliate performance report for one shop over a date window — the same payload the Reacher portal renders and exports.

Includes affiliate GMV, units sold, GMV per video and GMV per sample (each with the previous equal-length period and its % change); recruitment counters (creators reached, sample requests, samples approved, DM / TC / email reply rates); performance counters (videos posted, video views, creators posting, creators converting); the creator-level distribution (L0-L7); six top-product leaderboards (GMV, units, sample requests, approvals, conversions, growth); top creators; top videos; and the rule-based ``recommendations``.

Single-shop only — set ``x-shop-id`` to a specific shop ID. The window defaults to the last 7 settled days and is capped at 90 days; ``end_date`` must be at least 1 day in the past and no later than the shop's newest settled day. Returns 404 when the shop has no activity at all in the window.

## Request body

- WeeklyReportBody — Window for the single-shop report endpoints.
  - `start_date` string, date, nullable — First day of the window (inclusive). Defaults to 7 days before ``end_date``.
  - `end_date` string, date, nullable — Last day of the window (inclusive). Must be at least 1 day in the past — today is never fully settled. Defaults to yesterday.

## Response `200`

Successful Response

- WeeklyReportData — Full weekly report data response
  - `id` integer, nullable
  - `shop_id` integer, required
  - `shop_name` string, required
  - `customer_id` integer, required
  - `start_date` string, required
  - `end_date` string, required
  - `currency_symbol` string
  - `affiliate_gmv` number, required
  - `affiliate_gmv_prev_week` number, required
  - `affiliate_gmv_pct_change` number, required
  - `gmv_per_video` number, required
  - `gmv_per_video_prev_week` number, required
  - `gmv_per_video_pct_change` number, required
  - `gmv_per_sample` number, required
  - `gmv_per_sample_prev_week` number, required
  - `gmv_per_sample_pct_change` number, required
  - `units_sold` integer, required
  - `units_sold_prev_week` integer, required
  - `units_sold_pct_change` number, required
  - `total_creators_reached` integer, required
  - `total_sample_requests` integer, required
  - `total_samples_approved` integer, required
  - `creators_added_to_showcase` integer
  - `dm_reply_rate` number, nullable
  - `tc_reply_rate` number, nullable
  - `email_open_rate` number, nullable
  - `email_reply_rate` number, nullable
  - `videos_posted` integer, required
  - `videos_posted_prev_week` integer, required
  - `videos_posted_pct_change` number, required
  - `video_views` integer, required
  - `creators_posting_videos` integer, required
  - `creators_converting` integer, required
  - `creators_converting_prev_week` integer, required
  - `creators_converting_pct_change` number, required
  - `videos_generating_sales` integer
  - `creator_levels` CreatorLevelCounts, required — Creator counts by level
    - `l0` integer
    - `l1` integer
    - `l2` integer
    - `l3` integer
    - `l4` integer
    - `l5` integer
    - `l6` integer
    - `l7` integer
  - `top_products_by_gmv` TopProduct[]
    - `product_id` integer, required
    - `product_name` string, required
    - `product_image_url` string, nullable
    - `gmv_amount` number, nullable
    - `units_sold` integer, nullable
    - `unit_revenue` number, nullable
    - `pct_of_total` number, nullable
    - `sample_request_count` integer, nullable
    - `approval_count` integer, nullable
    - `conversion_count` integer, nullable
    - `growth_rate_pct` number, nullable
    - `prev_week_gmv` number, nullable
  - `top_products_by_units` TopProduct[]
    - `product_id` integer, required
    - `product_name` string, required
    - `product_image_url` string, nullable
    - `gmv_amount` number, nullable
    - `units_sold` integer, nullable
    - `unit_revenue` number, nullable
    - `pct_of_total` number, nullable
    - `sample_request_count` integer, nullable
    - `approval_count` integer, nullable
    - `conversion_count` integer, nullable
    - `growth_rate_pct` number, nullable
    - `prev_week_gmv` number, nullable
  - `top_products_by_sample_requests` TopProduct[]
    - `product_id` integer, required
    - `product_name` string, required
    - `product_image_url` string, nullable
    - `gmv_amount` number, nullable
    - `units_sold` integer, nullable
    - `unit_revenue` number, nullable
    - `pct_of_total` number, nullable
    - `sample_request_count` integer, nullable
    - `approval_count` integer, nullable
    - `conversion_count` integer, nullable
    - `growth_rate_pct` number, nullable
    - `prev_week_gmv` number, nullable
  - `top_products_by_approvals` TopProduct[]
    - `product_id` integer, required
    - `product_name` string, required
    - `product_image_url` string, nullable
    - `gmv_amount` number, nullable
    - `units_sold` integer, nullable
    - `unit_revenue` number, nullable
    - `pct_of_total` number, nullable
    - `sample_request_count` integer, nullable
    - `approval_count` integer, nullable
    - `conversion_count` integer, nullable
    - `growth_rate_pct` number, nullable
    - `prev_week_gmv` number, nullable
  - `top_products_by_conversions` TopProduct[]
    - `product_id` integer, required
    - `product_name` string, required
    - `product_image_url` string, nullable
    - `gmv_amount` number, nullable
    - `units_sold` integer, nullable
    - `unit_revenue` number, nullable
    - `pct_of_total` number, nullable
    - `sample_request_count` integer, nullable
    - `approval_count` integer, nullable
    - `conversion_count` integer, nullable
    - `growth_rate_pct` number, nullable
    - `prev_week_gmv` number, nullable
  - `top_products_by_growth` TopProduct[]
    - `product_id` integer, required
    - `product_name` string, required
    - `product_image_url` string, nullable
    - `gmv_amount` number, nullable
    - `units_sold` integer, nullable
    - `unit_revenue` number, nullable
    - `pct_of_total` number, nullable
    - `sample_request_count` integer, nullable
    - `approval_count` integer, nullable
    - `conversion_count` integer, nullable
    - `growth_rate_pct` number, nullable
    - `prev_week_gmv` number, nullable
  - `top_creators` TopCreator[]
    - `creator_id` integer, required
    - `creator_handle` string, required
    - `creator_avatar_url` string, nullable
    - `tiktok_profile_url` string, nullable
    - `gmv_generated` number, required
    - `videos_posted` integer, required
  - `top_videos` TopVideo[]
    - `video_id` integer, required
    - `video_title` string, nullable
    - `video_url` string, required
    - `video_thumbnail_url` string, nullable
    - `creator_handle` string, nullable
    - `gmv_generated` number, required
    - `view_count` integer, required
    - `like_count` integer, required
    - `comment_count` integer, required
    - `engagement_rate` number, nullable
  - `recommendations` RecommendedAction[]
    - `type` string, required
    - `title` string, required
    - `description` string, required
    - `items` RecommendedActionItem[]
      - `id` string, required
      - `label` string, required
      - `image_url` string, nullable
      - `metric_label` string, nullable
      - `deep_link` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/reacherapp/apis/reacher-data-api.md) · [All operations](https://skmtc.dev/reacherapp/apis/reacher-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/reacherapp/reacher-data-api/revisions/d4fe3e380424/schema)
