CRM Roster

List the CRM creator roster

Changed on

The shop's My Creators table: one row per creator (the most recently updated of their creator × product records), carrying the sample / content lifecycle status, lifetime and 28-day GMV, commission, fulfillment, video and live counts, and CRM tags.

Filter with any combination of status (repeatable display labels), stage (a canonical funnel stage, which overrides status), product_id, tags (creator carries ANY), tags_all (carries ALL) and videos_posted_min (creators with at least N posted videos), plus creator_handle for a case-insensitive handle search. Sort with sort_by / sort_dir; the default is GMV descending.

To COUNT the creators matching a filter without paging the whole roster, request page_size=1 and read pagination.total_count. For example status=Content Unfulfilled returns the number of distinct creators currently marked Content Unfulfilled, and videos_posted_min=2 returns the number who have posted two or more videos. This distinct-creator Content Unfulfilled count is the figure the portal's My Creators view shows; GET /funnel also reports a Content Unfulfilled stage, but that funnel bucket counts creator-and-product pairs and can be larger, so use this endpoint for the per-creator KPI.

start_date/end_date window the metric columns (video_gmv, new_video_gmv, total_video_views, videos_posted) — pass both or neither; new_video_gmv is null without a window. Status, tags, lifetime gmv and the videos_posted_min filter are always as-of-now: videos_posted_min counts a creator's lifetime posts and is NOT narrowed by the window, so with a window set it can return a creator whose windowed videos_posted column reads lower than the threshold.

Set include_products=true to attach each creator's product cards (title, image, status, remaining sample stock). Per-product GMV and the videos themselves are deliberately not attached — they are the two heaviest reads in this surface; fetch them per creator from GET /crm/content.

Changed 2026-09: the roster returns every creator filed under this shop. It previously dropped anyone whose row in Reacher's global creator registry had been marked inactive — an outreach-side, cross-shop flag that hid creators this shop had earned GMV from. Expect more rows than before on shops with long CRM histories; no field or filter semantics changed.

Single-shop only. Creator contact details are never returned: no real name, shipping address, phone or email. creator_name is the public TikTok handle.

get/crm/creators

Request

  • Base URL
    https://api.reacherapp.com/public/v1
  • URL
    https://api.reacherapp.com/public/v1/crm/creators
  • Auth
    API key in header x-api-key and API key in header x-shop-id

Query parameters

pageinteger

1-based page number.

page_sizeinteger

Rows per page (max 100).

statusstring[] nullable

Repeatable status label. One of: ['Sample Requested', 'Sample Approved', 'Ready to Ship', 'Sample Shipped', 'Content Pending', 'Completed', 'Sample Request Rejected', 'Sample Request Expired', 'Content Unfulfilled', 'Idle', 'Posted Video', 'Sold Products', 'GMV Generated', 'Showcasing Product', 'Livestreamed']. NOTE: ['Posted Video', 'Sold Products', 'GMV Generated', 'Showcasing Product', 'Livestreamed'] are ACTIVITY-METRIC filters, not pipeline-status filters — they match on sales/GMV/video/livestream activity regardless of the creator's curr_status, so a returned row's status will NOT equal one of these labels (e.g. 'Sold Products' can return a 'Showcasing Product' creator who has sales). The other labels filter on curr_status directly.

stagestring nullable

Canonical funnel stage id; overrides status with that stage's label set. One of: ['sample-requests', 'sample-requested', 'approved-samples', 'sample-approved', 'content-pending', 'content-unfulfilled', 'content-posted', 'generated-gmv', 'gmv-generated'].

product_idstring nullable

Restrict to one product.

tagsstring[] nullable

Repeatable. Creators carrying ANY of these CRM tags.

tags_allstring[] nullable

Repeatable. Creators carrying ALL of these CRM tags.

videos_posted_mininteger nullable

Only include creators who have posted at least this many videos for this shop — the same 'Videos Posted' threshold the portal's My Creators filter uses. Counts lifetime posts (as-of-now); start_date/end_date do not narrow it. To count creators with N+ posts in one call, set videos_posted_min=N with page_size=1 and read pagination.total_count. Omit for no lower bound.

creator_handlestring nullable

Case-insensitive substring search on the TikTok handle.

sort_bystring nullable

Sort column. One of: ['video_num', 'live_num', 'fulfillment_rate', 'gmv', 'video_release_date', 'creator_gmv', 'follower_num', 'video_gmv', 'total_video_views', 'videos_posted', 'new_video_gmv', 'avg_views', 'affiliate_gmv_28d', 'units_sold', 'commission'].

sort_dir'asc' | 'desc'

Sort direction.

start_datestring date nullable

Start of the metric window. Requires end_date.

end_datestring date nullable

End of the metric window. Requires start_date.

include_productsboolean

Attach each creator's product cards.

Response

Successful Response

Changes