Sample funnel
Returns the sample funnel for a cohort of sample requests: counts per stage, conversion rates and time in stage. The cohort is every sample row (one per application and product) first seen as requested between start_date and end_date (YYYY-MM-DD, UTC, inclusive, at most 365 days apart). Later stages count for that cohort whenever they happened.
Stages run sample_requested, awaiting_shipment, sample_shipped, content_pending, content_fulfilled. Each has count, rateFromPrevious and rateFromRequested (fractions, 0.6 = 60%, null when the denominator is 0) and timeInStage (median and p90 hours to the next stage). exits counts content_warning and content_unfulfilled (set by Growi’s timers) and cancelled (set by TikTok). byCollabType splits open and target collabs, and currentStates counts rows by state. Filter with productId or targetCollaborationId.
Times are when Growi observed each change, not TikTok’s event times. For a newly connected shop, its whole pending backlog lands on the day it connected.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Cohort window start, YYYY-MM-DD (UTC) INCLUSIVE.
Cohort window end, YYYY-MM-DD (UTC) INCLUSIVE. At most 365 days after start_date.
Only this product's sample rows.
Only samples attributed to this target collaboration.
Use the TikTok Shop of this child brand (organization id) of your API key's organization
Response
{ shopId, window {startDate, endDate}, filters {productId, targetCollaborationId}, cohort, stages: [{ key, count, source: "tts_native", rateFromPrevious, rateFromRequested, timeInStage: { medianHours, p90Hours, rows } | null }], exits: [{ key, count, source: "timer" | "tts_native", rateFromRequested }], byCollabType: { open, target } each { requested, approved, shipped, contentFulfilled }, currentStates: { state: count } }. Rates are fractions (0.6 = 60%) to 4 dp, null when the denominator is 0.