Affiliate order lines
Lists affiliate order lines, one per order and SKU, newest first by order create time. Each line carries the attributed creatorUsername, collab and campaign ids, contentId and the content it points at (URL, post time, views, format; null when unknown), productTitle, quantity, gmvGross, settlementStatus and commission: estimatedPaidCommission, actualPaidCommission and commissionDelta (actual minus estimated, null until TikTok reports an actual), plus base, partner, shop ads and co-funded bonus pairs. Rates are fractions (0.155 = 15.5%).
Settlement status and actual amounts change until a line settles, roughly 15 to 20 days after delivery. settlementFinal is true once a line stops changing. refunds is include (default), only or exclude; a refund line is fully returned or INELIGIBLE. Filter with creator_username or target_collaboration_id.
start_date and end_date are YYYY-MM-DD UTC days, inclusive, at most 365 days apart. limit is up to 500 (default 100); pass nextCursor back as cursor with the same filters. The first page also returns counts for the whole window. Narrow a wide window if the call times out.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Window start, YYYY-MM-DD INCLUSIVE, UTC day of the order create time.
Window end, YYYY-MM-DD INCLUSIVE. At most 365 days after start_date, same cap as the other affiliate reads.
Only lines attributed to this creator username (exact match, as TikTok sent it on the order).
Only lines on this target collaboration.
include = every line; only = refund lines (fully_return or INELIGIBLE); exclude = everything else. Note the aggregate affiliate reads drop INELIGIBLE lines, this one keeps them by default. refunds=only has no index behind it: on a shop with few refunds it walks the window to fill a page (the last page always walks to the window start), so it can be slow on a wide window and may need a narrower one.
include, only, exclude Lines per page (default 100, max 500).
1 <= x <= 500nextCursor from the previous page, passed back verbatim with the same filters.
Use the TikTok Shop of this child brand (organization id) of your API key's organization
Response
{ window, sweptThrough, lines: [...], nextCursor (null on the last page), counts: { lines, refundLines, fullyReturned, ineligible } | null, countsStatus, settlementNote }.