List FBT Goods
GET/api/tiktok-shop/:integrationInstance/fbt/goods
Paginated list of the shop's FBT goods — TikTok's own catalog records that shop SKUs are bound to. Each row carries the goods dimensions and barcodes, the hazmat / lot-code / expiration flags that decide what carton contents must declare, the count of bound shop SKUs, and the bindings themselves.
This endpoint currently requires session authentication; Personal Access Token scope support is in progress.
requires_lot_or_expiry is the one to branch on when packing: when it is true, every carton content holding that goods record needs a lot_code and/or an expiration_at.
Goods records are created in the TikTok FBT Portal; this endpoint mirrors them.
Filters — every key below is sent as filter[<key>].
Text filters (bare key is an exact match; each also accepts <key>.<operator>): name, reference_code, tiktok_goods_id.
Text operators: contains, does_not_contain, is, is_not, is_one_of, is_not_one_of, starts_with, does_not_start_with, ends_with, does_not_end_with, is_empty, is_not_empty.
Numeric filter (bare key plus <key>.<operator>): id.
Numeric operators: is, is_not, is_one_of, is_not_one_of, greater_than, less_than, greater_than_or_equal, less_than_or_equal, between, is_empty, is_not_empty.
Date/time filters (bare key plus <key>.<operator>): synced_at, created_at.
Date operators: is, is_not, before, after, on_or_before, on_or_after, between, is_empty, is_not_empty, today, yesterday, tomorrow, past_week, past_month, past_year, next_week, next_month, next_year, days_ago, days_from_now, past_days, next_days.
Boolean filters, all .is only (no bare key): is_hazmat.is, is_lot_code.is, is_expiration_management.is.
Free-text: filter[search] matches the goods name, reference code and TikTok goods id. Narrow it with the top-level search_columns parameter (comma-separated, chosen from name, reference_code, tiktok_goods_id), and force exact matching with search_strict_columns.
Sorting — sort accepts id, name, reference_code, tiktok_goods_id, synced_at, created_at. Prefix with - for descending. Default: -id.
Pagination — page and per_page (default 10).
Requires an authenticated token. No extra permission is needed for this read.
Request
Responses
- 200
- 401
- 403
- 404
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.