---
title: "Sample request stat cards"
method: GET
path: "/samples/metrics"
tags: ["Samples"]
---

# Sample request stat cards

`GET /samples/metrics`

The four stat cards above the sample-request table: ``pendingReview`` (how many requests await a decision, plus how many of those are expiring soon), ``approvedInAutoProcess`` (samples auto-approved by an automation), ``completionRate`` (share of approved samples that produced content), and ``approvalTarget`` (usage against the shop's approval quota). The change metrics compare against the immediately preceding period of equal length.

``dataFreshness`` reports how current the underlying sample data is — TikTok's sample feed lags, so surface it rather than presenting the counts as real-time.

``date_from``/``date_to`` must be given together and bound request creation date. Single-shop only.

## Query parameters

- `product_ids` string, nullable — Comma-separated product IDs to filter by. Omit for all products.
- `date_from` string, date, nullable — Start of the window (inclusive). Requires date_to.
- `date_to` string, date, nullable — End of the window (inclusive). Requires date_from.
- `exclude_rejected` boolean — Exclude creators previously rejected/cancelled by this shop.
- `include_archived` boolean — Include sample requests archived in the portal.

## Response `200`

Successful Response

- MetricsResponse
  - `pendingReview` PendingReviewMetric, required
    - `count` integer, required
    - `expiringSoon` integer, required
  - `approvedInAutoProcess` ChangeMetric, required
    - `count` integer, required
    - `changePct` number, required
    - `changeDirection` 'up' | 'down' | 'flat', required
  - `completionRate` CompletionRateMetric, required
    - `rate` number, required
    - `changePct` number, required
    - `changeDirection` 'up' | 'down' | 'flat', required
  - `approvalTarget` ApprovalTargetMetric, required
    - `monthlyLimit` integer, nullable
    - `monthlyUsed` integer, required
    - `dailyTarget` integer, nullable
    - `dailyCurrent` integer, required
    - `dailyPct` number, required
    - `onTrack` boolean, required
  - `dataFreshness` DataFreshness
    - `lastSyncedAt` string, nullable
    - `isStale` boolean
    - `isRefreshing` boolean

## 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/5eefff009b5b/schema)
