您的浏览器不支持JavaScript,请启用JavaScript以获得最佳体验。
LINGTU AI OpenAPI v1.0.0

LINGTU AI OpenAPI

Connect LINGTU AI capabilities for creators, products, file uploads, content publishing, and public content data through stable APIs.

Last updated 2026-07-29

Publishing flow

https://api.ailingtu.com

01

Find a creator

id + creatorId
02

Select a product

SHOP / SHOWCASE
03

Upload media

presign → PUT → confirm
04

Create a post

VIDEO / PHOTO
Authentication
x-api-key: <YOUR_API_KEY>

Keep API keys on your server. Never expose them in browser code or logs.

Success condition
HTTP 2xx && response.code === 0

Treat non-2xx responses, invalid JSON, or a non-zero business code as failures.

Machine-readable API descriptions

Use the OpenAPI description as the source for agents, SDK generation, and contract validation.

Commerce publishing

Commerce publishing

Resolve creators and products before creating TikTok Shop publishing tasks.

GET/v1/creatorAccount/pageListAvailable

operationId: listCreatorAccounts

List authorized creators

List authorized TikTok Shop creators, regions, and posting permissions. Use id for product queries and creatorId when creating a post.

Query parameters

FieldTypeRequiredDescription
pageSizeintegerYesItems per page, up to 200
pageNumberintegerYesPage number, starting at 1
validbooleanNoReturn valid authorizations only; defaults to true
authSourcestringNoUse TIKTOK_SHOP_CREATOR for commerce posts
usernamesstring[]NoRepeat the query parameter for multiple usernames
selectionRegionstringNoTarget region, such as US
hasPhotoPermissionbooleanNoReturn accounts with shoppable photo permission only
Photo posts require PHOTO_SHOPPABLE_PERMISSION_PRODUCT in permissions.
Success response
{
  "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"
}
GET/v1/creator/tiktokshop/product/listByShopAvailable

operationId: listTikTokShopProducts

List shop products

List TikTok Shop products using the creator account id. Use SHOP as the product source when creating a post.

Query parameters

FieldTypeRequiredDescription
idintegerYesCreator account id, not creatorId
originTIKTOKYesAlways TIKTOK
pageSizeintegerYesItems per page
pageTokenstringNoPagination token from the previous response
titleKeywordstringNoProduct title keyword
Success response
{
  "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"
}
GET/v1/creator/tiktokshop/product/listByShowcaseAvailable

operationId: listTikTokShowcaseProducts

List showcase products

List products in a creator showcase. The response matches shop products; use SHOWCASE as the product source.

Query parameters

FieldTypeRequiredDescription
idintegerYesCreator account id
originTIKTOKYesAlways TIKTOK
pageSizeintegerYesItems per page
pageTokenstringNoPagination token from the previous response
This endpoint does not accept titleKeyword. Filter by title on the client when needed.
Success response
{
  "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"
}

File upload

File upload

Request a presigned URL, upload media directly to object storage, then confirm new files.

POST/v1/file/presignAvailable

operationId: createFileUpload

Create a presigned upload

Submit file metadata and the compatible hash to receive a fileId and object-storage URL. Skip upload and confirmation when isNew is false.

Request fields

FieldTypeRequiredDescription
fileNamestringYesFile name including extension
contentTypestringYesFile MIME type
sizeintegerYesFile size in bytes
hashstringYesSHA-256 of the UTF-8 encoded lowercase hex representation of the file bytes
When isNew is true, PUT the raw file to uploadUrl with the same Content-Type, then call confirm.
Do not send x-api-key to the object-storage PUT URL.
Request body
{
  "fileName": "video.mp4",
  "contentType": "video/mp4",
  "size": 12345678,
  "hash": "3786a02b..."
}
Success response
{
  "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"
}
POST/v1/file/confirmAvailable

operationId: confirmFileUpload

Confirm an uploaded file

Call only after a new file is successfully PUT to its presigned URL. Deduplicated files do not require confirmation.

Request fields

FieldTypeRequiredDescription
fileIdinteger | stringYesFile ID returned by the presign endpoint
Request body
{
  "fileId": 591
}
Success response
{
  "code": 0,
  "data": {
    "fileId": 591,
    "confirmed": true
  },
  "message": "success"
}
POST/v1/creator/post/createAvailable

operationId: createCreatorPost

Create a publishing task

Create a TikTok Shop commerce video or photo publishing task. A successful response means the task was accepted; verify the final result in publishing records.

Request fields

FieldTypeRequiredDescription
businessIdstringYesVideo fileId; first image fileId for photo posts
businessTypeFILEYesUse FILE for uploaded media
creatorIdstringYescreatorId returned by the creator endpoint
titlestringYesPost caption, up to 4,000 characters
platformTIKTOK_SHOPYesUse TIKTOK_SHOP for commerce posts
mediaTypeVIDEO | PHOTOYesExplicitly select video or photo
scheduledAtintegerNoUnix epoch in milliseconds
scheduledTzstringNoIANA timezone
tiktokShopobjectConditionalRequired for VIDEO
tiktokShopPhotoobjectConditionalRequired for PHOTO
Photo posts support 1–15 images and one product; businessId must equal businessIds[0].
Persist postId and status, then verify the final state in publishing records.
Success response
{
  "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"
}
Commerce video
{
  "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": {
    "productInfo": {
      "productId": "1732280564607717841",
      "title": "Summer Vibes Cord",
      "source": "SHOP"
    }
  }
}
Commerce photo post
{
  "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"
      }
    ]
  }
}

Content data

Content data

POST/v1/material/fetchAvailable

operationId: fetchPublicVideoData

Video data sync

Fetch public video views and engagement metrics from TikTok, Instagram, Douyin, Xiaohongshu, WeChat Channels, and YouTube.

Request fields

FieldTypeRequiredDescription
videoUrlstring(uri)YesPublic http/https URL of the content
Request body
{
  "videoUrl": "https://www.tiktok.com/@creator/video/7123456789012345678"
}
Success response
{
  "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"
}

Integration checklist

Keep id and creatorId separate
Skip PUT and confirm when isNew is false
Keep photo businessIds in display order
Persist postId and verify the final status

Ready to integrate?

Create or manage an API key in the LINGTU AI workspace.

Manage API keys