# info.summary
TikTok commerce-content publishing, creator analysis data, AI media generation, AI model APIs, viral-video replication, and public content data APIs.

# info.description
Use the LINGTU AI OpenAPI to query authorized creators and TikTok Shop products, upload media, create TikTok Shop video or photo publishing tasks, generate AI images and videos, fetch TikTok and Instagram creator post data, relay supported AI models, stream viral-video replication prompts, and fetch public content metrics.  A JSON request succeeds only when the HTTP status is successful and the response body has `code: 0`. Streaming replication requests and chat completions with `stream: true` return `text/event-stream` on success.

# tags[].description
Presigned media upload, confirmation, and TikTok Shop video-cover upload.

# paths./v1/file/presign.post.description
Returns a file ID and a presigned object-storage URL. When `isNew` is false, skip PUT and confirmation. When `isNew` is true, PUT the raw file bytes to `uploadUrl` with the same Content-Type, without the x-api-key header, then confirm the upload.

# paths./v1/file/presign.post.responses.403.description
The API key does not have permission for this operation.

# paths./v1/file/presign.post.responses.429.description
Too many requests. Retry with exponential backoff.

# paths./v1/file/presign.post.responses.429.headers.Retry-After.description
Seconds to wait before retrying, when provided.

# paths./v1/file/presign.post.responses.500.description
Unexpected server error. Retry transient failures with exponential backoff.

# paths./v1/file/presign.post.x-ui.summary
提交文件信息和兼容 Hash，获取 fileId 与对象存储上传地址。isNew=false 表示文件已存在，可跳过上传和确认。

# paths./v1/file/presign.post.x-ui.summaryEn
Submit file metadata and the compatible hash to receive a fileId and object-storage URL. Skip upload and confirmation when isNew is false.

# paths./v1/file/presign.post.x-ui.parameters[].descriptionEn
SHA-256 of the UTF-8 encoded lowercase hex representation of the file bytes

# paths./v1/file/presign.post.x-ui.notes[]
isNew=true 时，使用相同 Content-Type 将原始文件 PUT 到 uploadUrl，成功后再调用 confirm。

# paths./v1/file/presign.post.x-ui.notesEn[]
When isNew is true, PUT the raw file to uploadUrl with the same Content-Type, then call confirm.

# paths./v1/file/presign.post.x-ui.notesEn[]
Do not send x-api-key to the object-storage PUT URL.

# components.securitySchemes.ApiKeyAuth.description
LINGTU AI API key. Keep it on the server and never expose it in client-side code or logs.

# components.schemas.PresignRequest.properties.hash.description
Compatibility hash: lowercase hex of the raw file bytes, UTF-8 encoded, then SHA-256.

# components.schemas.ErrorResponse.properties.code.description
Non-zero business or HTTP-aligned error code.