---
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. An ``end_date`` past the shop's newest settled day is clamped to it, which can make the window shorter than requested (the 7-day default included) — the response's ``start_date``/``end_date`` always report the window actually used, and the period-over-period comparison follows that same length. Returns 404 when the shop has no activity in the settled part of the window, and when the requested window lies entirely past the settled day — that message names the newest day the shop is reportable through, so a caller can retry against a window that works.

## 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.dev/reacherapp/apis/reacher-data-api/revisions/19eefbad93ec?raw)
