---
title: "A creator's journey across every Reacher brand (staff only)"
method: GET
path: "/strategy/creator-journey"
tags: ["Strategy (internal)"]
---

# A creator's journey across every Reacher brand (staff only)

`GET /strategy/creator-journey`

## Request

- Base URL: `https://api.reacherapp.com/public/v1`
- URL: `https://api.reacherapp.com/public/v1/strategy/creator-journey`
- Auth: API key in header `x-api-key` and API key in header `x-shop-id`

Everything Reacher knows about one creator over time, across every Reacher brand: handle history, TikTok level now and over time, per-brand first sample → approval → first video, videos per sample, post rate, lifetime GMV and status (active / slowing / stopped), weekly samples, videos, views and GMV per brand, outside brands from FastMoss month by month, the Rising Star score, and the top videos with their analysed style. `creator` is a handle (with or without @), a TikTok shop creator id or a TikTok user id. The target shop is the brand being worked on: its row in `data.brands` comes first with `is_focus: true`.

Reading it: money is in the `currency` of the same object and is never added across currencies. `null` is unknown, not zero. Weeks before a shop's `gmv_daily_from` have no weekly GMV; that GMV is in `gmv_pre_daily` as a lifetime total. FastMoss `gmv_28d` is a rolling 28-day window, not lifetime and not monthly. Score `status: in_review` means the score is not shown yet.

## Query parameters

- `creator` string, required: Handle (with or without @), TikTok shop creator id, or TikTok user id.

## Response `200`

Successful Response

- StrategyCreatorJourneyResponse
  - `shop_id` integer, required: The target shop; its row in data.brands comes first with is_focus true.
  - `resolved` StrategyCreatorResolution, required
    - `input` string, required: The creator as given, without a leading @.
    - `kind` 'creator_id' | 'user_id' | 'open_id' | 'handle', required: What the input matched: a TikTok shop creator id, a TikTok user id, an open_id or a handle.
    - `creator_id` string, required: The TikTok shop creator id the journey belongs to.
    - `other_creator_ids` string[], required: Other creators who have held this handle, most recent first; empty unless kind is handle.
  - `data` JourneyCreator, required
    - `creator_id` string, required
    - `resolved_from` 'creator_id' | 'user_id' | 'open_id', required
    - `built_at` string, nullable, required
    - `complete` boolean, required
    - `coverage` JourneyCoverage, required
      - `requests_from` string, required
      - `approvals_from` string, required
      - `levels_from` string, required
      - `outside_from` string, required
    - `summary` JourneySummary, required
      - `handle` string, nullable, required
      - `previous_handles` JourneyPreviousHandle[], required
        - `handle` string, required
        - `first_seen` string, nullable, required
        - `last_seen` string, nullable, required
      - `region` string, nullable, required
      - `currency` string, nullable, required
      - `level_now` 'L0' | 'L1' | 'L2' | 'L3' | 'L4' | 'L5' | 'L6' | 'L7', nullable, required
      - `gmv_30d_now` number, nullable, required
      - `followers_now` integer, nullable, required
      - `reacher_brands` integer, required
      - `reacher_brands_posted` integer, required
      - `outside_brands_28d` integer, nullable, required
      - `lifetime` JourneyLifetime[], required
        - `currency` string, nullable, required
        - `brands` integer, required
        - `samples_requested` integer, required
        - `samples_approved` integer, required
        - `samples_received` integer, required
        - `videos` integer, required
        - `gmv` number, required
        - `gmv_pre_daily` number, required
      - `flags` string[], required
    - `brands` JourneyBrand[], required
      - `shop_id` integer, required
      - `brand` string, required
      - `brand_order` integer, required
      - `currency` string, nullable, required
      - `first_request_at` string, nullable, required
      - `first_approved_at` string, nullable, required
      - `first_shipped_at` string, nullable, required
      - `first_video_at` string, nullable, required
      - `days_to_first_video` integer, nullable, required
      - `samples_requested` integer, required
      - `samples_approved` integer, required
      - `samples_received` integer, required
      - `videos_total` integer, required
      - `videos_per_sample` number, nullable, required
      - `post_rate` number, nullable, required
      - `gmv_lifetime` number, required
      - `gmv_pre_daily` number, required
      - `gmv_daily_from` string, nullable, required
      - `last_request_at` string, nullable, required
      - `last_posted_at` string, nullable, required
      - `videos_4w` integer, required
      - `videos_prev_4w` integer, required
      - `gmv_4w` number, nullable, required
      - `gmv_prev_4w` number, nullable, required
      - `status` 'active' | 'slowing' | 'stopped' | 'never_posted', required
      - `next_brand` JourneyBrandRef, required
        - `shop_id` integer, required
        - `brand` string, required
      - `is_focus` boolean
    - `weeks` JourneyWeek[], required
      - `week` string, required
      - `shop_id` integer, required
      - `currency` string, nullable, required
      - `requests` integer, required
      - `products_requested` integer, required
      - `approved` integer, required
      - `shipped` integer, required
      - `received` integer, required
      - `completed` integer, required
      - `unfulfilled` integer, required
      - `videos_posted` integer, required
      - `videos_sampled_product` integer, required
      - `gmv_daily_covered` boolean, required
      - `all_gmv_covered` boolean, required
      - `views` integer, nullable, required
      - `likes` integer, nullable, required
      - `comments` integer, nullable, required
      - `units` integer, nullable, required
      - `video_gmv` number, nullable, required
      - `all_gmv` number, nullable, required
      - `followers_last` integer, nullable, required
    - `levels` JourneyLevel[], required
      - `as_of` string, required
      - `level` 'L0' | 'L1' | 'L2' | 'L3' | 'L4' | 'L5' | 'L6' | 'L7', nullable, required
      - `gmv_30d` number, nullable, required
      - `currency` string, nullable, required
      - `followers` integer, nullable, required
      - `source` 'apply_log' | 'tier_snapshot' | 'ac_profile', required
    - `outside_brands` JourneyOutsideBrands, required
      - `gmv_window_days` integer, required
      - `from_date` string, required
      - `videos_from` string, required
      - `sellers_total` integer, required
      - `sellers` JourneyOutsideSeller[], required
        - `seller_id` string, required
        - `seller_name` string, nullable, required
        - `seller_category_l1` string, nullable, required
        - `region` string, required
        - `currency` string, nullable, required
        - `reacher_shop_ids` integer[], required
        - `match_method` string, required
        - `months` JourneyOutsideMonth[], required
          - `month` string, required
          - `gmv_28d` number, nullable, required
          - `units_28d` integer, nullable, required
          - `reading_date` string, nullable, required
          - `videos_with_gmv` integer, required
          - `video_gmv_cum` number, nullable, required
    - `outside_now` JourneyOutsideNow, required
      - `window_days` integer, required
      - `brands_28d` integer, required
      - `as_of` string, nullable, required
      - `brands` JourneyOutsideNowBrand[], required
        - `seller_id` string, required
        - `brand_name` string, nullable, required
        - `region` string, nullable, required
        - `currency` string, nullable, required
        - `gmv_28d` number, required
    - `score` JourneyScore, required
      - `status` 'published' | 'in_review' | 'not_scored', required
      - `formula_version` string, nullable, required
      - `week` string, nullable, required
      - `eligible` boolean, nullable, required
      - `score_now` number, nullable, required
      - `rank_region` integer, nullable, required
      - `components` JourneyScoreComponent[], required
        - `key` string, required
        - `label` string, required
        - `weight` number, nullable, required
        - `raw` number, nullable, required
        - `percentile` number, nullable, required
        - `points` number, nullable, required
      - `history` JourneyScorePoint[], required
        - `week` string, required
        - `score` number, nullable, required
        - `eligible` boolean, required
    - `top_videos` JourneyVideo[], required
      - `video_id` string, required
      - `shop_id` integer, required
      - `brand` string, required
      - `posted_at` string, nullable, required
      - `currency` string, nullable, required
      - `gmv_lifetime` number, required
      - `views` integer, nullable, required
      - `analysed` boolean, required
      - `current_analysis` boolean, required
      - `content_summary` string, nullable, required
      - `video_format` string, nullable, required
      - `hook_summary` string, nullable, required
      - `traits` string[], required
      - `tiktok_url` string, required
      - `cdn_thumbnail_url` string, nullable, required
      - `cdn_video_url` string, nullable, required

## Other responses

- `422`: Validation Error

## Changes

> 76 revisions in range; 1 not diffed.

- **2026-10-29** `da834cfde391`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/reacherapp/apis/reacher-data-api/changes/strategy/creator-journey/get.md)

---

[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/63ce74b30b5a?raw)
