TikTok Marketing API Creative Management API

The Creative Management API from TikTok Marketing API — 15 operation(s) for creative management.

Operations 15

POST /creative/asset/delete/ Delete creative assets. [Asset Delete](https://business-api.tiktok.com/portal/docs?id=1797202997456897) #
POST /creative/asset/share/ SShare creative assets with other advertiser accounts. [Asset Share](https://business-api.tiktok.com/portal/docs?id=1773192725768193) #
POST /creative/image/edit/ 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) #
POST /creative/portfolio/create/ Create a portfolio. [Creative Portfolie Create](https://business-api.tiktok.com/portal/docs?id=1739091950439426) #
GET /creative/portfolio/get/ Get a portfolio by ID. [Portfolio Get](https://business-api.tiktok.com/portal/docs?id=1739092113671170) #
GET /creative/portfolio/list/ Get portfolios within an ad account. [Portfolio List](https://business-api.tiktok.com/portal/docs?id=1766324010279938) #
POST /creative/smart_text/generate/ Use smart text. [Smart Text Generate](https://business-api.tiktok.com/portal/docs?id=1739084248002626) #
GET /discovery/detail/ Get details of a popular hashtag. [Discovery Detail](https://business-api.tiktok.com/portal/docs?id=1825119047070721) #
POST /playable/delete/ Delete a playable ad. [Playable Delete](https://business-api.tiktok.com/portal/docs?id=1737733368940546) #
GET /playable/get/ Use this endpoint to get a list of playables. [Playable Get](https://business-api.tiktok.com/portal/docs?id=1737732758495234) #
POST /playable/save/ Use this endpoint to save a playable. [Playable Save](https://business-api.tiktok.com/portal/docs?id=1737732203851777) #
POST /playable/upload/ You can use this endpoint to upload Playable Ad contents. [Playable Upload](https://business-api.tiktok.com/portal/docs?id=1737730926765057) #
GET /playable/validate/ Check the status of the playable. [Playable Validate](https://business-api.tiktok.com/portal/docs?id=1737732054892545) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tiktok-ads-creative-management-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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 Specification

tiktok-ads-creative-management-api-openapi.yml Raw ↑
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