TikTok Marketing API Creative Management API
The Creative Management API from TikTok Marketing API — 15 operation(s) for creative management.
The Creative Management API from TikTok Marketing API — 15 operation(s) for creative management.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/tiktok-ads-creative-management-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: TikTok API for Business — Marketing Creative Management API
description: TikTok API for Business (Marketing API) v1.3. This document is a mechanical union of the 202 per-operation OpenAPI 3.0.1 documents TikTok publishes in yml_files/ of its own SDK repository (https://github.com/tiktok/tiktok-business-api-sdk), which are the swagger-codegen inputs for TikTok's first-party Java/Python/JavaScript SDKs. Operation content (paths, parameters, responses, tags and the x-open-* extensions) is preserved verbatim; only info, servers and components.securitySchemes were written by API Evangelist, because the per-operation fragments carry placeholder info blocks and no servers block. The servers values are the production and sandbox base URLs TikTok documents at https://business-api.tiktok.com/portal/docs?id=1738855331457026 .
version: v1.3
contact:
name: TikTok API for Business support
url: https://business-api.tiktok.com/portal/docs?id=1795190020378625
termsOfService: https://business-api.tiktok.com/portal/docs?id=1737191804348417
x-source: https://github.com/tiktok/tiktok-business-api-sdk/tree/main/yml_files
x-harvested-by: API Evangelist enrichment pipeline
x-harvested: '2026-08-13'
servers:
- url: https://business-api.tiktok.com/open_api/v1.3
description: Production
- url: https://sandbox-ads.tiktok.com/open_api/v1.3
description: Sandbox
security:
- AccessToken: []
tags:
- name: Creative Management
paths:
/creative/asset/delete/:
post:
operationId: Creative Asset Delete
parameters:
- description: Authorized access token. For details, see [Authentication](https://ads.tiktok.com/marketing_api/docs?id=1738373164380162).
in: query
name: Access-Token
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
advertiser_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 1
x-open-source: $.http.body.advertiser_id
image_ids:
description: ''
items:
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
maxItems: 50
type: array
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 3
x-open-source: $.http.body.image_ids
video_ids:
description: ''
items:
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
maxItems: 50
type: array
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 2
x-open-source: $.http.body.video_ids
required:
- advertiser_id
type: object
x-open-allow-strlist: false
x-open-allow-strnum: false
responses:
'200':
content:
application/json:
schema:
properties:
code:
description: Response code. For the complete list of response codes and descriptions, see [Appendix - Return Codes](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097). Will be shown only if it is an error request.
format: int64
type:
- integer
- 'null'
x-open-allow-strlist: false
x-open-field-id: 4
data:
description: Returned data. The response for the SDK can be checked in the document for the API given in the description.
properties: {}
type:
- object
- 'null'
x-open-allow-strlist: false
x-open-field-id: 1
x-open-source: $.rpc.output.data
message:
description: Response message. For details, see [Appendix - Return Codes](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097).
type:
- string
- 'null'
x-open-allow-strlist: false
x-open-field-id: 3
request_id:
description: The log ID of a request, which uniquely identifies the request.
type:
- string
- 'null'
x-open-allow-strlist: false
x-open-field-id: 2
type: object
x-open-allow-strlist: false
description: OK
summary: Delete creative assets. [Asset Delete](https://business-api.tiktok.com/portal/docs?id=1797202997456897)
tags:
- Creative Management
x-open-allowlist: {}
x-open-denylist: {}
x-open-rules:
base_rule: null
extra_rule:
base_source: []
http_query_source: []
http_source:
- name: advertiser_id
required: true
source: $.http.body.advertiser_id
type: string
- children:
- type: string
name: video_ids
required: false
source: $.http.body.video_ids
sub_type: string
type: array
- children:
- type: string
name: image_ids
required: false
source: $.http.body.image_ids
sub_type: string
type: array
plugins:
after_response: []
before_request: []
request_query_rule: null
request_rule:
advertiser_id: $.http.body.advertiser_id
image_ids: $.http.body.image_ids
video_ids: $.http.body.video_ids
response_cookie: []
response_header: []
response_rule:
failed_image_ids: $.rpc.output.failed_image_ids
failed_video_ids: $.rpc.output.failed_video_ids
x-open-scene-labels: []
x-open-settings:
pop_resp_nullvalue: false
/creative/asset/share/:
post:
operationId: Creative Asset Share
parameters:
- description: Authorized access token. For details, see [Authentication](https://ads.tiktok.com/marketing_api/docs?id=1738373164380162).
in: query
name: Access-Token
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
advertiser_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-convert:
- int64(%s)
x-open-field-id: 1
x-open-source: $.http.body.advertiser_id
asset_type:
default: VIDEO
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-enum:
enum_package_expired: false
enum_package_id: null
enum_package_name: null
enums:
- description: ''
is_valid: true
key: VIDEO
value: '3'
- description: ''
is_valid: true
key: IMAGE
value: '2'
- description: ''
is_valid: true
key: MUSIC
value: '5'
key_format: string
strict: true
use_part: false
validate_only: false
value_format: int32
x-open-field-id: 4
x-open-source: $.http.body.asset_type
material_ids:
description: ''
items:
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-convert:
- int64(%s)
maxItems: 20
minItems: 1
type: array
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 2
x-open-source: $.http.body.material_ids
shared_advertiser_ids:
description: ''
items:
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-convert:
- int64(%s)
maxItems: 10
minItems: 1
type: array
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 3
x-open-source: $.http.body.shared_advertiser_ids
required:
- advertiser_id
- material_ids
- shared_advertiser_ids
type: object
x-open-allow-strlist: false
x-open-allow-strnum: false
responses:
'200':
content:
application/json:
schema:
properties:
code:
description: Response code. For the complete list of response codes and descriptions, see [Appendix - Return Codes](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097). Will be shown only if it is an error request.
format: int64
type:
- integer
- 'null'
x-open-allow-strlist: false
x-open-field-id: 4
data:
description: Returned data. The response for the SDK can be checked in the document for the API given in the description.
properties: {}
type:
- object
- 'null'
x-open-allow-strlist: false
x-open-field-id: 1
x-open-source: $.rpc.output.data
message:
description: Response message. For details, see [Appendix - Return Codes](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097).
type:
- string
- 'null'
x-open-allow-strlist: false
x-open-field-id: 3
request_id:
description: The log ID of a request, which uniquely identifies the request.
type:
- string
- 'null'
x-open-allow-strlist: false
x-open-field-id: 2
type: object
x-open-allow-strlist: false
description: OK
summary: SShare creative assets with other advertiser accounts. [Asset Share](https://business-api.tiktok.com/portal/docs?id=1773192725768193)
tags:
- Creative Management
x-open-allowlist: {}
x-open-denylist: {}
x-open-rules:
base_rule: null
extra_rule:
base_source: []
http_query_source: []
http_source:
- name: advertiser_id
required: true
source: $.http.body.advertiser_id
type: number
- children:
- type: number
name: material_ids
required: true
source: $.http.body.material_ids
sub_type: number
type: array
- children:
- type: number
name: shared_advertiser_ids
required: true
source: $.http.body.shared_advertiser_ids
sub_type: number
type: array
- name: asset_type
required: true
source: $.http.body.asset_type
type: number
plugins:
after_response: []
before_request: []
request_query_rule: null
request_rule:
advertiser_id: $.http.body.advertiser_id
asset_type: $.http.body.asset_type
material_ids: $.http.body.material_ids
shared_advertiser_ids: $.http.body.shared_advertiser_ids
response_cookie: []
response_header: []
response_rule:
failed_infos: $.rpc.output.failed_infos
x-open-scene-labels: []
x-open-settings:
pop_resp_nullvalue: false
/creative/image/edit/:
post:
operationId: Creative Image Edit
parameters:
- description: Authorized access token. For details, see [Authentication](https://ads.tiktok.com/marketing_api/docs?id=1738373164380162).
in: query
name: Access-Token
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
advertiser_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-convert:
- int64(%s)
x-open-field-id: 1
x-open-source: $.http.body.advertiser_id
edit_method:
default: fix_size
description: ''
maxLength: 100
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-enum:
enum_package_expired: false
enum_package_id: null
enum_package_name: null
enums:
- description: ''
is_valid: true
key: fix_size
value: fix_size
- description: ''
is_valid: true
key: only_gauss_pad
value: only_gauss_pad
- description: ''
is_valid: true
key: gauss_padding_reserve_score
value: gauss_padding_reserve_score
key_format: string
strict: true
use_part: false
validate_only: false
value_format: string
x-open-field-id: 6
x-open-source: $.http.body.edit_method
height:
description: ''
format: int64
minimum: 3
type: integer
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 4
x-open-source: $.http.body.height
image_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 2
x-open-source: $.http.body.image_id
image_name:
description: ''
maxLength: 100
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 5
x-open-source: $.http.body.image_name
width:
description: ''
format: int64
minimum: 3
type: integer
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 3
x-open-source: $.http.body.width
required:
- advertiser_id
- image_id
- width
- height
type: object
x-open-allow-strlist: false
x-open-allow-strnum: false
responses:
'200':
content:
application/json:
schema:
properties:
code:
description: Response code. For the complete list of response codes and descriptions, see [Appendix - Return Codes](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097). Will be shown only if it is an error request.
format: int64
type:
- integer
- 'null'
x-open-allow-strlist: false
x-open-field-id: 4
data:
description: Returned data. The response for the SDK can be checked in the document for the API given in the description.
properties: {}
type:
- object
- 'null'
x-open-allow-strlist: false
x-open-field-id: 1
x-open-source: $.rpc.output.data
message:
description: Response message. For details, see [Appendix - Return Codes](https://ads.tiktok.com/marketing_api/docs?id=1737172488964097).
type:
- string
- 'null'
x-open-allow-strlist: false
x-open-field-id: 3
request_id:
description: The log ID of a request, which uniquely identifies the request.
type:
- string
- 'null'
x-open-allow-strlist: false
x-open-field-id: 2
type: object
x-open-allow-strlist: false
description: OK
summary: Edit an image according to the size you want as well as apply creative trimmings. [Image Edit](https://business-api.tiktok.com/portal/docs?id=1739067107903489)
tags:
- Creative Management
x-open-allowlist: {}
x-open-denylist: {}
x-open-rules:
base_rule: null
extra_rule:
base_source: []
http_query_source: []
http_source:
- name: advertiser_id
required: true
source: $.http.body.advertiser_id
type: number
- name: image_id
required: true
source: $.http.body.image_id
type: string
- name: width
required: true
source: $.http.body.width
type: number
- name: height
required: true
source: $.http.body.height
type: number
- name: image_name
required: false
source: $.http.body.image_name
type: string
- name: edit_method
required: true
source: $.http.body.edit_method
type: string
plugins:
after_response: []
before_request: []
request_query_rule: null
request_rule:
advertiser_id: $.http.body.advertiser_id
edit_method: $.http.body.edit_method
height: $.http.body.height
image_id: $.http.body.image_id
image_name: $.http.body.image_name
width: $.http.body.width
response_cookie: []
response_header: []
response_rule:
create_time: $.rpc.output.create_time
displayable: $.rpc.output.displayable
file_name: $.rpc.output.file_name
format: $.rpc.output.format
height: $.rpc.output.height
image_id: $.rpc.output.image_id
image_url: $.rpc.output.image_url
is_carousel_usable: $.rpc.output.is_carousel_usable
material_id: $.rpc.output.material_id
modify_time: $.rpc.output.modify_time
signature: $.rpc.output.signature
size: $.rpc.output.size
width: $.rpc.output.width
x-open-scene-labels: []
x-open-settings:
pop_resp_nullvalue: false
/creative/portfolio/create/:
post:
operationId: Creative Portfolio Create
parameters:
- description: Authorized access token. For details, see [Authentication](https://ads.tiktok.com/marketing_api/docs?id=1738373164380162).
in: query
name: Access-Token
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
advertiser_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-convert:
- int64(%s)
x-open-field-id: 1
x-open-source: $.http.body.advertiser_id
creative_portfolio_type:
default: CTA
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-enum:
enum_package_expired: false
enum_package_id: 1804132825869313
enum_package_name: CreativePortfolioType
enums:
- description: ''
is_valid: true
key: CARD
value: '2'
- description: ''
is_valid: true
key: COUNTDOWN_STICKER
value: '7'
- description: ''
is_valid: true
key: CTA
value: '1'
- description: ''
is_valid: true
key: DESTINATION_CARD
value: '25'
- description: ''
is_valid: true
key: DOWNLOAD_CARD
value: '13'
- description: ''
is_valid: true
key: DYNAMIC_ADD_ON
value: '200'
- description: ''
is_valid: true
key: FLIGHT_CARD
value: '22'
- description: Corresponds to GESTURE
is_valid: true
key: GESTURE
value: '4'
- description: ''
is_valid: true
key: GIFTCODE_STICKER
value: '8'
- description: ''
is_valid: true
key: HOTEL_CARD
value: '21'
- description: AutoInventoryCard
is_valid: true
key: INVENTORY_CARD
value: '18'
- description: ''
is_valid: true
key: LIVE_REMINDER_COUNTDOWN_STICKER
value: '14'
- description: Corresponds to MOVIE_CARD
is_valid: true
key: MEDIA_CARD
value: '20'
- description: ''
is_valid: true
key: NON_CLICK_SUPER_LIKE
value: '12'
- description: Corresponds to PAINTED_EGG
is_valid: true
key: PREMIUM_BADGE
value: '5'
- description: ''
is_valid: true
key: PRODUCT_CARD
value: '11'
- description: ''
is_valid: true
key: PRODUCT_INFO_CARD
value: '24'
- description: ''
is_valid: true
key: PRODUCT_SHOWCASE_TILE
value: '26'
- description: ''
is_valid: true
key: PRODUCT_TILE
value: '17'
- description: ''
is_valid: true
key: REMINDER_COUNTDOWN_STICKER
value: '10'
- description: ''
is_valid: true
key: SHAKE_SURPRISE
value: '15'
- description: ''
is_valid: true
key: SHOPIFY_PRODUCT_CARD
value: '19'
- description: Corresponds to VOTING_STICKER
is_valid: true
key: STICKER
value: '6'
- description: ''
is_valid: true
key: STORY_SELECTION
value: '16'
- description: ''
is_valid: true
key: SUPER_LIKE
value: '9'
- description: InfomativeCTA
is_valid: true
key: WEB_INFO_CARD
value: '23'
key_format: string
strict: true
use_part: false
validate_only: false
value_format: int32
x-open-field-id: 2
x-open-source: $.http.body.creative_portfolio_type
portfolio_content:
description: ''
items:
properties:
ad_text:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 38
x-open-source: $.http.body.portfolio_content[].title
advanced_audio_info:
description: ''
properties:
video_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 1
x-open-source: $.http.body.portfolio_content[].advanced_audio_info.video_id
type: object
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 14
x-open-source: $.http.body.portfolio_content[].advanced_audio_info
advanced_gesture_icon:
description: ''
properties:
image_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 1
x-open-source: $.http.body.portfolio_content[].advanced_gesture_icon.image_id
type: object
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 12
x-open-source: $.http.body.portfolio_content[].advanced_gesture_icon
advanced_gesture_image:
description: ''
properties:
image_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 1
x-open-source: $.http.body.portfolio_content[].advanced_gesture_image.image_id
type: object
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 13
x-open-source: $.http.body.portfolio_content[].advanced_gesture_image
advanced_interact_shape:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-enum:
enum_package_expired: false
enum_package_id: 1804268028189761
enum_package_name: CreativeGestureInteractShape
enums:
- description: ''
is_valid: true
key: CURVE
value: '1'
- description: ''
is_valid: true
key: LINE
value: '0'
key_format: string
strict: true
use_part: false
validate_only: false
value_format: int32
x-open-field-id: 11
x-open-source: $.http.body.portfolio_content[].advanced_interact_shape
advanced_interact_type:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-enum:
enum_package_expired: false
enum_package_id: 1804138054020098
enum_package_name: CreativePortfolioGestureInteract
enums:
- description: ''
is_valid: true
key: CLICK
value: '0'
- description: ''
is_valid: true
key: SLIDE
value: '1'
key_format: string
strict: true
use_part: false
validate_only: false
value_format: int32
x-open-field-id: 10
x-open-source: $.http.body.portfolio_content[].advanced_interact_type
app_id:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 19
x-open-source: $.http.body.portfolio_content[].app_id
asset_content:
description: ''
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 3
x-open-source: $.http.body.portfolio_content[].asset_content
asset_ids:
description: ''
items:
type: string
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-convert:
- int64(%s)
type: array
x-open-allow-strlist: false
x-open-allow-strnum: false
x-open-field-id: 2
x-open-source: $.http.body
# --- truncated at 32 KB (190 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/tiktok-ads/refs/heads/main/openapi/tiktok-ads-creative-management-api-openapi.yml