creatives_list
List creatives owned by the authenticated tenant with cursor pagination. This is the TikTok AdsAgent tenant library (tiktok.adsagent.md Creatives), not Meta adsagent.md and not TikTok Ads Manager Material Center. READY_LOCAL dashboard rows belong here and are create sources via creative.creative_id; they do not need a TikTok image_id/video_id until after confirm. For images, use one creative_id for one image or ordered creative.image_creative_ids (2..35 JPEG/PNG images) for one carousel; every member must be an eligible image row. ad_params.creative_list contains separate variants, not the ordered cards of one carousel. Rows omit content hashes and storage keys. The legacy download_url is retained as an authenticated same-origin endpoint only after storage verification; unverified historical ready rows report verification_pending. Inspect coverage (create_eligible_count / empty_reason / next_action) plus readiness.create_eligible before using creative_id in campaigns_quick_create. An empty page with coverage.empty_reason=no_tenant_creatives is the only true empty-library signal (unfiltered scope=library plus a tenant-wide existence check). no_creatives_in_query means the current folder/search/media_type/time_filter matched nothing; no_creatives_in_root means scope=root was empty while the tenant owns creatives elsewhere — retry scope=library (default) or call creatives_list_folders. Trust coverage.scope.kind; never describe a root/folder page count as the whole library. Do not treat those as a different tenant.
REQUIRED: none. Optional: scope (library|root, default library — entire tenant library across root and folders; use root for root-only reads), folder_id (str — UUID of one folder), cursor (opaque and scope-bound; reuse it only with the identical query), limit (int 1..50, default 20), search (filename substring, max 200 chars), media_type (all/image/video), time_filter (all/24h/7d/30d), include_incomplete (bool, default true). Returns count, complete, meta.has_more, next_cursor and snapshot_at (legacy top-level has_more remains). Each row exposes creative_id as an alias of id for direct creative.creative_id selection. These describe library pagination, not TikTok upload completion; continue serially with next_cursor instead of client fan-out. EXAMPLE: creatives_list({"search": "hero", "media_type": "video", "limit": 20})
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| scope | No | library | |
| cursor | No | ||
| search | No | ||
| folder_id | No | ||
| media_type | No | all | |
| time_filter | No | all | |
| include_incomplete | No |