{
  "service": "tiktok_business",
  "displayName": "TikTok Business",
  "categories": [
    "Marketing",
    "Data"
  ],
  "authTypes": [
    "oauth2",
    "api_key"
  ],
  "auth": [
    {
      "type": "oauth2",
      "authorizationUrl": "https://business-api.tiktok.com/portal/auth",
      "tokenUrl": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",
      "refreshTokenUrl": "https://business-api.tiktok.com/open_api/v1.3/tt_user/oauth2/refresh_token/",
      "scopes": [],
      "tokenEndpointAuthMethod": "client_secret_post",
      "tokenRequestFormat": "json",
      "authorizationParams": {},
      "authorizationRequestFields": {
        "clientId": "app_id",
        "responseType": false,
        "scope": false
      },
      "tokenRequestFields": {
        "code": "auth_code",
        "clientId": "app_id",
        "clientSecret": "secret",
        "authorizationCode": {
          "grantType": false
        }
      },
      "tokenResponseEnvelope": {
        "dataField": "data",
        "codeField": "code",
        "successCode": 0,
        "messageField": "message"
      },
      "clientConfigFields": [
        {
          "key": "permissionScopeGuide",
          "label": "TikTok Permission Scope Checklist",
          "inputType": "textarea",
          "required": false,
          "secret": false,
          "defaultValue": "In the TikTok app Permission Scope page, select Required: 广告账号管理, 广告管理, 数据报表. Recommended: Onsite Commerce Store.",
          "description": "A local checklist for the TikTok app Permission Scope page. It is not sent to TikTok during OAuth."
        }
      ]
    },
    {
      "type": "api_key",
      "label": "Access Token",
      "placeholder": "tiktok_business_access_token",
      "description": "TikTok Business access token sent with the Access-Token header. The token needs advertiser.read, Ad management, Data reports, and GMV Max related permissions for the selected actions.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://business.tiktok.com",
  "actions": [
    {
      "id": "tiktok_business.check_gmv_max_shop_ad_usage",
      "service": "tiktok_business",
      "name": "check_gmv_max_shop_ad_usage",
      "description": "Check whether a TikTok Shop store is already using custom shop ads and can promote all products with GMV Max.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "storeId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok Shop store ID used by the GMV Max workflow."
          }
        },
        "additionalProperties": false,
        "description": "TikTok store-scoped GMV Max request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "runningCustomShopAds": {
            "type": "boolean",
            "description": "Whether the store is running custom shop ads."
          },
          "promoteAllProductsAllowed": {
            "type": "boolean",
            "description": "Whether all-product promotion is allowed."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max shop ad usage response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_bid_recommendation",
      "service": "tiktok_business",
      "name": "get_gmv_max_bid_recommendation",
      "description": "Get TikTok GMV Max budget and bid recommendations before campaign changes.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "storeId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok Shop store ID used by the GMV Max workflow."
          },
          "shoppingAdsType": {
            "type": "string",
            "enum": [
              "LIVE",
              "PRODUCT"
            ],
            "description": "GMV Max shopping ads type."
          },
          "optimizationGoal": {
            "type": "string",
            "enum": [
              "VALUE"
            ],
            "description": "GMV Max optimization goal."
          },
          "itemGroupIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A TikTok item group ID."
            },
            "description": "Optional TikTok item group IDs used to narrow the recommendation.",
            "minItems": 1,
            "maxItems": 50
          },
          "identityId": {
            "type": "string",
            "minLength": 1,
            "description": "Optional identity ID used to narrow the recommendation."
          }
        },
        "additionalProperties": false,
        "required": [
          "advertiserId",
          "storeId",
          "shoppingAdsType",
          "optimizationGoal"
        ],
        "description": "TikTok GMV Max bid recommendation request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "budget": {
            "description": "Recommended or reference budget returned by TikTok."
          },
          "cpaBid": {
            "description": "Recommended CPA bid returned by TikTok."
          },
          "roasBid": {
            "description": "Recommended ROAS bid returned by TikTok."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max bid recommendation response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_campaign_info",
      "service": "tiktok_business",
      "name": "get_gmv_max_campaign_info",
      "description": "Get detailed information for a TikTok GMV Max campaign.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "campaignId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok GMV Max campaign ID."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max campaign info request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "campaign": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API payload for this resource."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max campaign info response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_custom_anchor_video_list",
      "service": "tiktok_business",
      "name": "get_gmv_max_custom_anchor_video_list",
      "description": "Get TikTok GMV Max custom anchor videos for campaign creation discovery.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "campaignCustomAnchorVideoId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok GMV Max custom anchor video list ID."
          },
          "customAnchorVideoList": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "Custom anchor video filters forwarded to TikTok.",
            "minItems": 1,
            "maxItems": 100
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max custom anchor video list request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "customAnchorVideos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "Custom anchor videos returned by TikTok."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max custom anchor video list response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_exclusive_authorization",
      "service": "tiktok_business",
      "name": "get_gmv_max_exclusive_authorization",
      "description": "Get TikTok GMV Max exclusive authorization status for a store.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "storeId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok Shop store ID used by the GMV Max workflow."
          },
          "storeAuthorizedBcId": {
            "type": "string",
            "minLength": 1,
            "description": "The Business Center ID authorized to manage the TikTok Shop store."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max identity lookup request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "description": "TikTok advertiser ID."
          },
          "advertiserName": {
            "type": "string",
            "description": "TikTok advertiser name."
          },
          "advertiserStatus": {
            "type": "string",
            "description": "TikTok advertiser status."
          },
          "authorizationStatus": {
            "type": "string",
            "description": "GMV Max authorization status."
          },
          "identityId": {
            "type": "string",
            "description": "Identity ID holding the exclusive authorization."
          },
          "storeId": {
            "type": "string",
            "description": "TikTok Shop store ID."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "required": [
          "requestId",
          "raw"
        ],
        "description": "TikTok GMV Max exclusive authorization response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_identities",
      "service": "tiktok_business",
      "name": "get_gmv_max_identities",
      "description": "List TikTok identities available for a GMV Max store.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "storeId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok Shop store ID used by the GMV Max workflow."
          },
          "storeAuthorizedBcId": {
            "type": "string",
            "minLength": 1,
            "description": "The Business Center ID authorized to manage the TikTok Shop store."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max identity lookup request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "identities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "identityId": {
                  "type": "string",
                  "description": "TikTok identity ID."
                },
                "identityType": {
                  "type": "string",
                  "description": "TikTok identity type."
                },
                "displayName": {
                  "type": "string",
                  "description": "Identity display name."
                },
                "userName": {
                  "type": "string",
                  "description": "Identity username."
                },
                "profileImage": {
                  "type": "string",
                  "description": "Identity profile image URL."
                },
                "storeId": {
                  "type": "string",
                  "description": "TikTok Shop store ID associated with the identity."
                },
                "identityAuthorizedBcId": {
                  "type": "string",
                  "description": "Business Center ID authorized for the identity."
                },
                "identityAuthorizedShopId": {
                  "type": "string",
                  "description": "Shop authorization ID for the identity."
                },
                "liveGmvMaxAvailable": {
                  "type": "boolean",
                  "description": "Whether the identity is available for live GMV Max."
                },
                "productGmvMaxAvailable": {
                  "type": "boolean",
                  "description": "Whether the identity is available for product GMV Max."
                },
                "runningCustomShopAds": {
                  "type": "boolean",
                  "description": "Whether the identity is already running custom shop ads."
                },
                "unavailableReason": {
                  "type": "string",
                  "description": "Reason why the identity is unavailable."
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw TikTok Business API payload for this resource."
                }
              },
              "additionalProperties": false,
              "required": [
                "identityId",
                "raw"
              ],
              "description": "A normalized TikTok identity available for GMV Max."
            },
            "description": "GMV Max identities returned by TikTok."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max identity response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_report",
      "service": "tiktok_business",
      "name": "get_gmv_max_report",
      "description": "Get TikTok GMV Max reporting rows for a store and date range.",
      "requiredScopes": [
        "report.read",
        "4"
      ],
      "providerPermissions": [
        "report.read",
        "4"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "storeIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "The TikTok Shop store ID used by the GMV Max workflow."
            },
            "description": "The TikTok Shop store IDs to include. TikTok GMV Max supports one store ID per request.",
            "minItems": 1,
            "maxItems": 1
          },
          "dimensions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A TikTok GMV Max report dimension."
            },
            "description": "Report dimensions to group by, such as campaign_id.",
            "minItems": 1,
            "maxItems": 3
          },
          "metrics": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A TikTok GMV Max report metric."
            },
            "description": "Report metrics to return, such as spend or gross_revenue.",
            "minItems": 1,
            "maxItems": 100
          },
          "startDate": {
            "type": "string",
            "description": "Report start date in YYYY-MM-DD format.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "Report end date in YYYY-MM-DD format.",
            "format": "date"
          },
          "enableTotalMetrics": {
            "type": "boolean",
            "description": "Whether TikTok should include total metric rows."
          },
          "filtering": {
            "type": "object",
            "properties": {
              "campaignIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A GMV Max campaign ID."
                },
                "description": "Filter report rows to these GMV Max campaign IDs.",
                "minItems": 1,
                "maxItems": 100
              },
              "campaignName": {
                "type": "string",
                "minLength": 1,
                "description": "Filter report rows by campaign name."
              },
              "campaignStatuses": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "delete",
                    "delivery_ok",
                    "disable",
                    "not_delivery"
                  ],
                  "description": "TikTok campaign delivery status."
                },
                "description": "Filter report rows by TikTok campaign delivery status.",
                "minItems": 1,
                "maxItems": 4
              },
              "gmvMaxPromotionTypes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "PRODUCT",
                    "LIVE"
                  ],
                  "description": "GMV Max promotion type."
                },
                "description": "Filter report rows by GMV Max promotion type.",
                "minItems": 1,
                "maxItems": 2
              },
              "itemGroupIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A TikTok item group ID."
                },
                "description": "Filter report rows to these item group IDs.",
                "minItems": 1,
                "maxItems": 100
              },
              "itemIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A TikTok item ID."
                },
                "description": "Filter report rows to these TikTok item IDs.",
                "minItems": 1,
                "maxItems": 100
              },
              "creativeTypes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "ADS_AND_ORGANIC",
                    "ORGANIC",
                    "REMOVED"
                  ],
                  "description": "TikTok creative source type."
                },
                "description": "Filter report rows by creative source type.",
                "minItems": 1,
                "maxItems": 1
              },
              "roomIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A live room ID."
                },
                "description": "Filter report rows to these live room IDs.",
                "minItems": 1,
                "maxItems": 100
              },
              "searchWord": {
                "type": "string",
                "minLength": 1,
                "description": "Free-text search term for report filtering."
              },
              "creativeDeliveryStatuses": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A TikTok creative delivery status code."
                },
                "description": "Filter report rows by creative delivery status code.",
                "minItems": 1,
                "maxItems": 10
              }
            },
            "additionalProperties": false,
            "description": "Optional filters for the GMV Max report query."
          },
          "sortField": {
            "type": "string",
            "minLength": 1,
            "description": "Metric or dimension field used for sorting."
          },
          "sortType": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "Report sort direction."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "1-based page number to retrieve."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Maximum number of rows to return per page."
          },
          "contextInfo": {
            "type": "object",
            "properties": {
              "appId": {
                "type": "integer",
                "description": "TikTok app ID to include in context_info."
              },
              "coreUserId": {
                "type": "integer",
                "description": "TikTok core user ID to include in context_info."
              },
              "developerId": {
                "type": "integer",
                "description": "TikTok developer ID to include in context_info."
              },
              "xForwardedFor": {
                "type": "string",
                "description": "Original client IP address for x_forwarded_for."
              },
              "xRealIp": {
                "type": "string",
                "description": "Original client IP address for x_real_ip."
              },
              "userAgent": {
                "type": "string",
                "description": "Original client user agent."
              },
              "referer": {
                "type": "string",
                "description": "Original request referer."
              }
            },
            "additionalProperties": false,
            "description": "Optional request context forwarded to TikTok Business API."
          }
        },
        "additionalProperties": false,
        "required": [
          "advertiserId",
          "storeIds",
          "dimensions",
          "metrics",
          "startDate",
          "endDate"
        ],
        "description": "TikTok GMV Max report request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "Report rows returned by TikTok."
          },
          "pageInfo": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API payload for this resource."
          },
          "totalMetrics": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API payload for this resource."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max report response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_sessions",
      "service": "tiktok_business",
      "name": "get_gmv_max_sessions",
      "description": "Get TikTok GMV Max campaign session details by session ID.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "sessionIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A GMV Max session ID."
            },
            "description": "The GMV Max session IDs to retrieve. TikTok allows up to 20 IDs per request.",
            "minItems": 1,
            "maxItems": 20
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max campaign session detail request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sessions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sessionId": {
                  "type": "string",
                  "description": "TikTok GMV Max session ID."
                },
                "campaignId": {
                  "type": "string",
                  "description": "TikTok GMV Max campaign ID."
                },
                "bidType": {
                  "type": "string",
                  "description": "TikTok GMV Max session bid type."
                },
                "budget": {
                  "description": "TikTok GMV Max session budget."
                },
                "scheduleType": {
                  "type": "string",
                  "description": "TikTok GMV Max session schedule type."
                },
                "scheduleStartTime": {
                  "description": "Session start time returned by TikTok."
                },
                "scheduleEndTime": {
                  "description": "Session end time returned by TikTok."
                },
                "productList": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "The raw TikTok Business API payload for this resource."
                  },
                  "description": "Products attached to this GMV Max session."
                },
                "itemId": {
                  "type": "string",
                  "description": "TikTok item ID attached to this session."
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw TikTok Business API payload for this resource."
                }
              },
              "additionalProperties": false,
              "required": [
                "sessionId",
                "raw"
              ],
              "description": "A normalized TikTok GMV Max session."
            },
            "description": "GMV Max sessions returned by TikTok."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max sessions response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_shop_video_anchors",
      "service": "tiktok_business",
      "name": "get_gmv_max_shop_video_anchors",
      "description": "Get TikTok GMV Max shop video anchors for campaign creation discovery.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "storeId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok Shop store ID used by the GMV Max workflow."
          },
          "storeAuthorizedBcId": {
            "type": "string",
            "minLength": 1,
            "description": "The Business Center ID authorized to manage the TikTok Shop store."
          },
          "videoIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A TikTok shop video ID."
            },
            "description": "TikTok shop video IDs to inspect for GMV Max anchors.",
            "minItems": 1,
            "maxItems": 100
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "1-based page number to retrieve."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Maximum number of rows to return per page."
          }
        },
        "additionalProperties": false,
        "required": [
          "advertiserId",
          "storeId",
          "storeAuthorizedBcId"
        ],
        "description": "TikTok GMV Max shop video anchor request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "videoAnchors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "Shop video anchors returned by TikTok."
          },
          "pageInfo": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API payload for this resource."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max shop video anchor response."
      }
    },
    {
      "id": "tiktok_business.get_gmv_max_videos",
      "service": "tiktok_business",
      "name": "get_gmv_max_videos",
      "description": "Get TikTok GMV Max videos available for a store, identity, or SPU filter.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "storeId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok Shop store ID used by the GMV Max workflow."
          },
          "storeAuthorizedBcId": {
            "type": "string",
            "minLength": 1,
            "description": "The Business Center ID authorized to manage the TikTok Shop store."
          },
          "spuIdList": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A TikTok SPU ID."
            },
            "description": "TikTok SPU IDs used to filter GMV Max videos.",
            "minItems": 1,
            "maxItems": 100
          },
          "identityList": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "TikTok identity objects used to filter GMV Max videos.",
            "minItems": 1,
            "maxItems": 100
          },
          "needAuthCodeVideo": {
            "type": "boolean",
            "description": "Whether to include authorization-code videos."
          },
          "customPostsEligible": {
            "type": "boolean",
            "description": "Whether to return custom-post eligible videos."
          },
          "sortField": {
            "type": "string",
            "minLength": 1,
            "description": "TikTok video sort field."
          },
          "sortType": {
            "type": "string",
            "enum": [
              "ASC",
              "DESC"
            ],
            "description": "TikTok video sort direction."
          },
          "keyword": {
            "type": "string",
            "minLength": 1,
            "description": "Keyword used to search GMV Max videos."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "1-based page number to retrieve."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Maximum number of rows to return per page."
          }
        },
        "additionalProperties": false,
        "required": [
          "advertiserId",
          "storeId",
          "storeAuthorizedBcId"
        ],
        "description": "TikTok GMV Max video lookup request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "videos": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "GMV Max videos returned by TikTok."
          },
          "pageInfo": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API payload for this resource."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max videos response."
      }
    },
    {
      "id": "tiktok_business.list_advertisers",
      "service": "tiktok_business",
      "name": "list_advertisers",
      "description": "List TikTok advertisers authorized for the connected TikTok Business user.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "TikTok advertiser list request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "advertisers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "Advertisers authorized for the connected TikTok user."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok advertiser list response."
      }
    },
    {
      "id": "tiktok_business.list_campaigns",
      "service": "tiktok_business",
      "name": "list_campaigns",
      "description": "List TikTok campaigns for an advertiser so users can discover campaign IDs.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "filtering": {
            "type": "object",
            "properties": {
              "campaignIds": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A TikTok campaign ID."
                },
                "description": "Filter campaigns to these TikTok campaign IDs.",
                "minItems": 1,
                "maxItems": 100
              },
              "campaignName": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns by campaign name."
              },
              "primaryStatus": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns by TikTok primary status."
              },
              "secondaryStatus": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns by TikTok secondary status."
              },
              "objectiveType": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns by objective type."
              },
              "campaignType": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns by campaign type."
              },
              "buyingTypes": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A TikTok campaign buying type."
                },
                "description": "Filter campaigns by buying type.",
                "minItems": 1,
                "maxItems": 100
              },
              "campaignSystemOrigins": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A TikTok campaign system origin."
                },
                "description": "Filter campaigns by TikTok campaign system origin.",
                "minItems": 1,
                "maxItems": 100
              },
              "campaignProductSource": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns by campaign product source."
              },
              "creativeCampaignType": {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "description": "A TikTok creative campaign type."
                },
                "description": "Filter campaigns by TikTok creative campaign type.",
                "minItems": 1,
                "maxItems": 100
              },
              "optimizationGoal": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns by optimization goal."
              },
              "salesDestination": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns by sales destination."
              },
              "creationFilterStartTime": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns created at or after this time."
              },
              "creationFilterEndTime": {
                "type": "string",
                "minLength": 1,
                "description": "Filter campaigns created at or before this time."
              },
              "isSmartPerformanceCampaign": {
                "type": "boolean",
                "description": "Whether to filter Smart Performance Campaigns."
              },
              "splitTestEnabled": {
                "type": "boolean",
                "description": "Whether to filter campaigns by split test participation."
              }
            },
            "additionalProperties": false,
            "description": "Optional filters for the TikTok campaign list query."
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A TikTok campaign field name."
            },
            "description": "TikTok campaign fields to return.",
            "minItems": 1,
            "maxItems": 100
          },
          "excludeFieldTypesInResponse": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A TikTok field type name."
            },
            "description": "TikTok field types to exclude from the campaign response.",
            "minItems": 1,
            "maxItems": 20
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "1-based page number to retrieve."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1000,
            "description": "Maximum number of rows to return per page."
          }
        },
        "additionalProperties": false,
        "required": [
          "advertiserId"
        ],
        "description": "TikTok campaign list request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "campaigns": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "Campaigns returned by TikTok."
          },
          "pageInfo": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API payload for this resource."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok campaign list response."
      }
    },
    {
      "id": "tiktok_business.list_gmv_max_occupied_custom_shop_ads",
      "service": "tiktok_business",
      "name": "list_gmv_max_occupied_custom_shop_ads",
      "description": "List custom shop ads occupying TikTok assets before GMV Max setup.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "storeId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok Shop store ID used by the GMV Max workflow."
          },
          "assetIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A TikTok occupied asset ID."
            },
            "description": "TikTok asset IDs to inspect for custom shop ads occupation.",
            "minItems": 1,
            "maxItems": 1
          },
          "occupiedAssetType": {
            "type": "string",
            "minLength": 1,
            "description": "TikTok occupied asset type, such as SPU."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max occupied custom shop ads lookup request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "occupiedCustomShopAds": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw TikTok Business API payload for this resource."
            },
            "description": "Custom shop ads occupying the requested TikTok assets."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max occupied custom shop ads response."
      }
    },
    {
      "id": "tiktok_business.list_gmv_max_sessions",
      "service": "tiktok_business",
      "name": "list_gmv_max_sessions",
      "description": "List TikTok GMV Max campaign sessions for a campaign.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          },
          "campaignId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok GMV Max campaign ID."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max campaign session list request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sessions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sessionId": {
                  "type": "string",
                  "description": "TikTok GMV Max session ID."
                },
                "campaignId": {
                  "type": "string",
                  "description": "TikTok GMV Max campaign ID."
                },
                "bidType": {
                  "type": "string",
                  "description": "TikTok GMV Max session bid type."
                },
                "budget": {
                  "description": "TikTok GMV Max session budget."
                },
                "scheduleType": {
                  "type": "string",
                  "description": "TikTok GMV Max session schedule type."
                },
                "scheduleStartTime": {
                  "description": "Session start time returned by TikTok."
                },
                "scheduleEndTime": {
                  "description": "Session end time returned by TikTok."
                },
                "productList": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "The raw TikTok Business API payload for this resource."
                  },
                  "description": "Products attached to this GMV Max session."
                },
                "itemId": {
                  "type": "string",
                  "description": "TikTok item ID attached to this session."
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw TikTok Business API payload for this resource."
                }
              },
              "additionalProperties": false,
              "required": [
                "sessionId",
                "raw"
              ],
              "description": "A normalized TikTok GMV Max session."
            },
            "description": "GMV Max sessions returned by TikTok."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max sessions response."
      }
    },
    {
      "id": "tiktok_business.list_gmv_max_stores",
      "service": "tiktok_business",
      "name": "list_gmv_max_stores",
      "description": "List TikTok Shop stores available to a TikTok GMV Max advertiser.",
      "requiredScopes": [
        "advertiser.read",
        "1",
        "2"
      ],
      "providerPermissions": [
        "advertiser.read",
        "1",
        "2"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "advertiserId": {
            "type": "string",
            "minLength": 1,
            "description": "The TikTok advertiser ID that owns the GMV Max resource."
          }
        },
        "additionalProperties": false,
        "description": "TikTok advertiser-scoped GMV Max request."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "stores": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "storeId": {
                  "type": "string",
                  "description": "TikTok Shop store ID."
                },
                "storeName": {
                  "type": "string",
                  "description": "TikTok Shop store name."
                },
                "storeCode": {
                  "type": "string",
                  "description": "TikTok Shop store code."
                },
                "storeStatus": {
                  "type": "string",
                  "description": "TikTok Shop status."
                },
                "storeRole": {
                  "type": "string",
                  "description": "Role of the connected user for this store."
                },
                "storeAuthorizedBcId": {
                  "type": "string",
                  "description": "Business Center ID authorized for this store."
                },
                "gmvMaxAvailable": {
                  "type": "boolean",
                  "description": "Whether GMV Max is available for this store."
                },
                "ownerBusinessCenter": {
                  "type": "boolean",
                  "description": "Whether the authorized Business Center owns the store."
                },
                "targetingRegionCodes": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "description": "A targeting region code."
                  },
                  "description": "Region codes where the store can target GMV Max campaigns."
                },
                "thumbnailUrl": {
                  "type": "string",
                  "description": "Store thumbnail image URL."
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw TikTok Business API payload for this resource."
                }
              },
              "additionalProperties": false,
              "required": [
                "storeId",
                "storeName",
                "raw"
              ],
              "description": "A normalized TikTok Shop store available to GMV Max."
            },
            "description": "GMV Max stores returned by TikTok."
          },
          "requestId": {
            "type": "string",
            "description": "TikTok request ID for tracing this API call."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw TikTok Business API data object."
          }
        },
        "additionalProperties": false,
        "description": "TikTok GMV Max store list response."
      }
    }
  ]
}
