发布流程
https://api.ailingtu.com
查询达人
id + creatorId选择商品
SHOP / SHOWCASE上传素材
presign → PUT → confirm创建发布任务
VIDEO / PHOTOAPI Key 仅保存在服务端,不要暴露在浏览器代码、排期表或日志中。
HTTP 非 2xx、响应不是合法 JSON 或业务 code 非 0,均应按失败处理。
机器可读接口规范
AI Agent、SDK 生成和契约校验应优先读取 OpenAPI 规范。
Commerce publishing
带货内容发布
创建 TikTok Shop 发布任务前,先查询并确认达人账号与商品。
/v1/creatorAccount/pageList已上线operationId: listCreatorAccounts
查询已授权达人
查询 TikTok Shop 已授权达人、目标地区和发布权限。响应中的 id 用于查商品,creatorId 用于创建发布任务。
Query 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
pageSize | integer | 是 | 每页数量,最大 200 |
pageNumber | integer | 是 | 页码,从 1 开始 |
valid | boolean | 否 | 是否只返回有效授权,默认 true |
authSource | string | 否 | 带货发布传 TIKTOK_SHOP_CREATOR |
usernames | string[] | 否 | 重复 Query 参数传递多个用户名 |
selectionRegion | string | 否 | 目标地区,例如 US |
hasPhotoPermission | boolean | 否 | 仅返回有带货图文权限的账号 |
{
"code": 0,
"data": {
"list": [
{
"id": 12345,
"creatorId": "2077242233106595840",
"username": "shop_creator",
"authSource": "TIKTOK_SHOP_CREATOR",
"oauthRegion": "USA",
"registerRegion": "US",
"selectionRegion": "US",
"targetMarket": "US",
"valid": true,
"tagNames": [
"top-tier"
],
"permissions": [
"VIDEO_SHOPPABLE_PERMISSION",
"PHOTO_SHOPPABLE_PERMISSION_PRODUCT"
]
}
],
"total": 1,
"pageNumber": 1,
"pageSize": 200,
"totalPages": 1
},
"message": "success"
}/v1/creator/tiktokshop/product/listByShowcase已上线operationId: listTikTokShowcaseProducts
查询橱窗商品
查询达人橱窗商品。创建发布任务时,商品来源 source 应传 SHOWCASE。
Query 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | integer | 是 | 达人账号表 id |
origin | TIKTOK | 是 | 固定传 TIKTOK |
pageSize | integer | 是 | 每页数量 |
pageToken | string | 否 | 上一页返回的分页 Token |
{
"code": 0,
"data": {
"products": [
{
"id": "1732280564607717841",
"title": "Summer Vibes Cord",
"price": {
"amount": "19.99",
"currency": "USD"
},
"images": [
{
"url": "https://cdn.example.com/product.jpg",
"width": 800,
"height": 800
}
]
}
],
"nextPageToken": "",
"totalCount": 1
},
"message": "success"
}/v1/creator/tiktokshop/product/addToShowcase已上线operationId: addTikTokShowcaseProducts
创作者TTS-添加橱窗商品
将 TikTok Shop 商品添加到创作者展示橱窗。可按商品 ID 批量添加,或通过单个商品链接添加。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id | integer | 是 | 创作者账号 ID(creator account id) |
addType | PRODUCT_ID | PRODUCT_LINK | 是 | 添加方式 |
productIds | string[] | 条件 | addType=PRODUCT_ID 时必填,1~20 个商品 ID |
productLink | string(uri) | 条件 | addType=PRODUCT_LINK 时必填 |
{
"id": 12345,
"addType": "PRODUCT_ID",
"productIds": [
"1732280564607717841",
"1732280564607717842"
]
}{
"code": 0,
"data": {
"errors": [
{
"code": 16001001,
"message": "Product is unavailable for this creator",
"detail": {
"productId": "1732280564607717842"
}
}
]
},
"message": "success",
"timestamp": 1786406400000
}File upload
文件上传
申请预签名地址,将媒体文件直传对象存储,并确认新文件上传完成。
/v1/file/presign已上线operationId: createFileUpload
获取预签名上传地址
提交文件信息和兼容 Hash,获取 fileId 与对象存储上传地址。isNew=false 表示文件已存在,可跳过上传和确认。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileName | string | 是 | 包含扩展名的文件名 |
contentType | string | 是 | 文件 MIME 类型 |
size | integer | 是 | 文件字节数 |
hash | string | 是 | 文件字节转小写 hex 后,再计算 SHA-256 |
{
"fileName": "video.mp4",
"contentType": "video/mp4",
"size": 12345678,
"hash": "3786a02b..."
}{
"code": 0,
"data": {
"fileId": 591,
"uploadUrl": "https://object-storage.example.com/presigned-url",
"url": "https://cdn.ailingtu.com/media/video.mp4",
"isNew": true,
"expiresAt": "2026-07-29T12:00:00Z"
},
"message": "success"
}/v1/file/confirm已上线operationId: confirmFileUpload
确认文件上传完成
仅在新文件成功 PUT 到预签名地址后调用。秒传文件不需要确认。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
fileId | integer | string | 是 | 预签名接口返回的文件 ID |
{
"fileId": 591
}{
"code": 0,
"data": {
"fileId": 591,
"confirmed": true
},
"message": "success"
}/v1/creator/post/create已上线operationId: createCreatorPost
创建发布任务
创建 TikTok Shop 带货视频或带货图文发布任务。请求成功仅表示任务已接收,最终结果请在发布记录中确认。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
businessId | string | 是 | 视频 fileId;图文为首图 fileId |
businessType | FILE | 是 | 上传文件固定传 FILE |
creatorId | string | 是 | 达人接口返回的 creatorId |
title | string | 是 | 发布文案,最长 4000 字符 |
platform | TIKTOK_SHOP | 是 | 带货发布传 TIKTOK_SHOP |
mediaType | VIDEO | PHOTO | 是 | 明确指定视频或图文 |
scheduledAt | integer | 否 | Unix Epoch 毫秒 |
scheduledTz | string | 否 | IANA 时区 |
oauthRegion | string | 否 | 达人 OAuth 授权地区 |
coverFileId | integer | string | 否 | 自定义视频封面文件 ID;与 tiktokShop.coverUri 配套传递,图文不传 |
tiktokShop | object | 条件 | VIDEO 时必填,包含商品、封面、预审、音乐和 AI 标识 |
tiktokShop.preCheck | boolean | 否 | 是否在发布前提交预审,默认 false |
tiktokShop.isAiGenerated | boolean | 否 | 是否标识为 AI 生成内容;为 true 时 TikTok 会添加“AI 生成”标签 |
tiktokShop.coverUri | string | 否 | 封面上传接口返回的 URI;使用时同时传 coverFileId |
tiktokShop.coverTimestampMs | integer | 否 | 从视频指定毫秒位置截帧作为封面;有 coverUri 时不传 |
tiktokShop.musicInfo | object | 否 | 视频背景音乐;不需要音乐时不传 |
tiktokShop.musicInfo.id | string | 条件 | 传 musicInfo 时必填的音乐 ID |
tiktokShop.productInfo.productId | string | 条件 | VIDEO 时必填;商品接口返回的商品 ID |
tiktokShop.productInfo.title | string | 条件 | VIDEO 时必填;购物车展示标题,最长 30 字符 |
tiktokShop.productInfo.source | SHOP | SHOWCASE | 条件 | VIDEO 时必填;店铺商品传 SHOP,橱窗商品传 SHOWCASE |
tiktokShopPhoto | object | 条件 | PHOTO 时必填 |
tiktokShopPhoto.postType | MULTI_PHOTO_ONE_ANCHOR | 条件 | PHOTO 时固定传 MULTI_PHOTO_ONE_ANCHOR |
tiktokShopPhoto.businessIds | string[] | 条件 | PHOTO 时必填;1~15 个图片 fileId,按最终展示顺序排列 |
tiktokShopPhoto.productLinks[0].productId | string | 条件 | PHOTO 时必填;唯一挂车商品的商品 ID |
tiktokShopPhoto.productLinks[0].title | string | 条件 | PHOTO 时必填;购物车展示标题,最长 30 字符 |
tiktokShopPhoto.productLinks[0].source | SHOP | SHOWCASE | 条件 | PHOTO 时必填;商品来源 |
tiktokShopPhoto.musicInfo | object | 否 | 图文背景音乐;不需要音乐时不传 |
tiktokShopPhoto.musicInfo.id | string | 条件 | 传 musicInfo 时必填的音乐 ID |
{
"code": 0,
"data": {
"id": 100,
"postId": "post_xxx",
"platform": "TIKTOK_SHOP",
"title": "Summer Sale 2026 #summer",
"videoUrl": "https://cdn.ailingtu.com/media/video.mp4",
"status": "SCHEDULED"
},
"message": "success"
}{
"businessId": "591",
"businessType": "FILE",
"creatorId": "2077242233106595840",
"title": "Summer Sale 2026 #summer",
"platform": "TIKTOK_SHOP",
"mediaType": "VIDEO",
"scheduledAt": 1784896665989,
"scheduledTz": "America/New_York",
"oauthRegion": "USA",
"tiktokShop": {
"preCheck": false,
"isAiGenerated": true,
"coverTimestampMs": 1500,
"musicInfo": {
"id": "7567668059796720391",
"title": "original sound",
"author": "Ivan",
"duration": "15"
},
"productInfo": {
"productId": "1732280564607717841",
"title": "Summer Vibes Cord",
"source": "SHOP"
}
}
}{
"businessId": "591",
"businessType": "FILE",
"creatorId": "2077242233106595840",
"title": "Summer Sale 2026 #summer",
"platform": "TIKTOK_SHOP",
"mediaType": "PHOTO",
"scheduledAt": 1784896665989,
"scheduledTz": "America/New_York",
"oauthRegion": "USA",
"tiktokShopPhoto": {
"postType": "MULTI_PHOTO_ONE_ANCHOR",
"businessIds": [
"591",
"592"
],
"productLinks": [
{
"productId": "1732280564607717841",
"title": "Summer Vibes Cord",
"source": "SHOP"
}
],
"musicInfo": {
"id": "7567668059796720391",
"title": "original sound",
"author": "Ivan",
"duration": "15"
}
}
}AI content generation
AI 内容生成
创建图片或视频生成计划,并使用同一个 scheduleId 查询,直到生成结果可用。
/v1/ai/schedule/create已上线operationId: createAiGenerationSchedule
创建 AI 图片或视频生成任务
创建 AI 图片或视频生成计划,支持提示词、参考图、模型、尺寸和批量数量。使用响应中的 scheduleId 查询任务状态与生成结果。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
taskId | string | 否 | 调用方生成的任务标识;建议使用 8 位小写字母或数字 |
type | IMAGE_GENERATION | VIDEO_GENERATION | 是 | 生成内容类型 |
params.prompt | string | 是 | 图片或视频生成提示词 |
params.model | gpt-image-2 | nano-banana-2 | nano-banana-2-2k | nano-banana-2-4k | seedream5.0-lite | gemini-omni-video | veo3.1-lite-extend | veo3.1-extend | grok-imagine-1.5 | seedance2.0-mini | seedance2.0 | seedance2.0-fast | 是 | 根据 type 选择下方列出的图片或视频模型 |
params.aspectRatio | string | 条件 | 图片生成时使用,例如 1:1、9:16 |
params.seconds | integer | 条件 | 视频生成时长;可选值取决于模型 |
params.size | string | 条件 | 视频尺寸,例如 720x1280 |
params.inputReference | string(uri) | 否 | 单张远程参考图 URL,主要用于视频生成 |
params.inputReferences | string(uri)[] | 否 | 按顺序传入的远程参考图 URL;不支持 data URL |
params.watermark | boolean | 否 | 视频是否添加水印,默认 false |
nums | integer | 是 | 生成数量,未指定多结果时建议传 1 |
businessId | string | 否 | 需要关联的业务对象 ID |
businessType | MERCHANT_SKU | AI_PURCHASE_TASK | 否 | 业务对象类型 |
promptId | string | 否 | 已保存的提示词 ID |
execAt | string(date-time) | 否 | ISO 8601 执行时间;省略时立即创建 |
name | string | 否 | 生成计划显示名称 |
{
"code": 0,
"data": {
"scheduleId": "schedule_01k1example",
"taskIds": [
"task_01k1example"
]
},
"message": "success"
}{
"taskId": "img8a1b2",
"type": "IMAGE_GENERATION",
"params": {
"prompt": "A clean product hero image on a bright studio background",
"model": "gpt-image-2",
"aspectRatio": "1:1",
"inputReferences": [
"https://static.ailingtu.com/ai-images/product-reference.jpg"
]
},
"nums": 1,
"name": "Product hero image"
}{
"taskId": "vid8c3d4",
"type": "VIDEO_GENERATION",
"params": {
"prompt": "A clean 10-second product reveal video with a slow camera push-in",
"model": "gemini-omni-video",
"seconds": 10,
"size": "720x1280",
"inputReferences": [
"https://static.ailingtu.com/ai-images/product-reference.jpg"
],
"watermark": false
},
"nums": 1,
"name": "Product reveal video"
}/v1/ai/task/listByScheduleId已上线operationId: listAiTasksByScheduleId
查询 AI 生成任务结果
使用创建接口返回的 scheduleId 查询本次图片或视频生成任务。建议每 5 秒轮询,直到任务完成或明确失败。
Query 参数
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
scheduleId | string | 是 | 创建生成计划时返回的 scheduleId |
{
"code": 0,
"data": {
"list": [
{
"taskId": "task_01k1example",
"scheduleId": "schedule_01k1example",
"type": "VIDEO_GENERATION",
"status": "COMPLETED",
"model": "gemini-omni-video",
"params": {
"prompt": "A clean 10-second product reveal video with a slow camera push-in",
"model": "gemini-omni-video",
"seconds": 10,
"size": "720x1280"
},
"result": {
"url": "https://static.ailingtu.com/ai-videos/result.mp4",
"thumbnailUrl": "https://static.ailingtu.com/ai-images/cover.jpg"
},
"customResult": {
"videoUrl": "https://static.ailingtu.com/ai-videos/result.mp4",
"coverUrl": "https://static.ailingtu.com/ai-images/cover.jpg"
},
"createdAt": "2026-08-10T10:00:00Z"
}
],
"total": 1,
"pageNumber": 1,
"pageSize": 20,
"totalPages": 1
},
"message": "success"
}Content data
内容数据
/v1/material/fetch已上线operationId: fetchPublicVideoData
视频数据同步
根据公开作品链接同步 TikTok、Instagram、抖音、小红书、视频号和 YouTube 的播放与互动数据。
请求字段
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
videoUrl | string(uri) | 是 | 公开作品的 http/https 链接 |
{
"videoUrl": "https://www.tiktok.com/@creator/video/7123456789012345678"
}{
"code": 0,
"data": {
"videoId": "7624922739500993822",
"uniqueId": "creator",
"playCount": 2109422,
"diggCount": 143027,
"commentCount": 1320,
"shareCount": 36150,
"collectCount": 17710,
"coverUrl": "https://cdn.example.com/cover.jpg",
"videoDesc": "caption #tag",
"releaseAt": 1775315687
},
"message": "success"
}联调检查清单
准备开始接入?
前往灵途 AI 工作台创建或管理 API Key。