TikTok for Developers Video API

Video metadata and management

Operations 2

POST /v2/video/list/ List Videos #
POST /v2/video/query/ Query Videos #

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-for-developers-video-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-for-developers-video-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: TikTok Content Posting OAuth Video API
  description: The TikTok Content Posting API allows third-party platforms to publish videos directly to a user's TikTok account. Supports direct post and file-upload flows, including video initiation, chunk upload, and publish status polling.
  version: v2
  contact:
    name: TikTok for Developers
    url: https://developers.tiktok.com/
  termsOfService: https://developers.tiktok.com/doc/tiktok-api-terms-of-service
servers:
- url: https://open.tiktokapis.com
  description: TikTok Open API Production
security:
- BearerAuth: []
tags:
- name: Video
  description: Video metadata and management
paths:
  /v2/video/list/:
    post:
      operationId: listVideos
      summary: List Videos
      description: Retrieves a paginated list of a TikTok user's most recently uploaded public videos, sorted by create_time in descending order.
      tags:
      - Video
      parameters:
      - name: fields
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated list of fields to return (e.g. id,create_time,cover_image_url,share_url,video_description,duration,height,width,title,embed_html,embed_link,like_count,comment_count,share_count,view_count)
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoListRequest'
      responses:
        '200':
          description: Video list retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoListResponse'
        '401':
          description: Unauthorized
  /v2/video/query/:
    post:
      operationId: queryVideos
      summary: Query Videos
      description: Retrieves metadata of TikTok user videos filtered by video IDs. Verifies that the videos belong to the authorized user and returns video details. Can be used to refresh video cover image URL TTL.
      tags:
      - Video
      parameters:
      - name: fields
        in: query
        required: true
        schema:
          type: string
        description: Comma-separated list of fields to return
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoQueryRequest'
      responses:
        '200':
          description: Video query results returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoQueryResponse'
        '401':
          description: Unauthorized
components:
  schemas:
    VideoListResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            videos:
              type: array
              items:
                $ref: '#/components/schemas/Video'
            cursor:
              type: integer
              description: Cursor for next page
            has_more:
              type: boolean
              description: Whether more results are available
        error:
          $ref: '#/components/schemas/Error'
    VideoQueryResponse:
      type: object
      properties:
        data:
          type: object
          properties:
            videos:
              type: array
              items:
                $ref: '#/components/schemas/Video'
        error:
          $ref: '#/components/schemas/Error'
    VideoQueryRequest:
      type: object
      required:
      - filters
      properties:
        filters:
          type: object
          properties:
            video_ids:
              type: array
              items:
                type: string
              description: List of video IDs to query
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        log_id:
          type: string
          description: Log identifier for debugging
    Video:
      type: object
      properties:
        id:
          type: string
          description: Video unique identifier
        create_time:
          type: integer
          description: Unix timestamp of video creation
        cover_image_url:
          type: string
          description: URL of the video cover image
        share_url:
          type: string
          description: Shareable URL for the video
        video_description:
          type: string
          description: Caption/description of the video
        duration:
          type: integer
          description: Video duration in seconds
        height:
          type: integer
          description: Video height in pixels
        width:
          type: integer
          description: Video width in pixels
        title:
          type: string
          description: Video title
        embed_html:
          type: string
          description: HTML embed code
        embed_link:
          type: string
          description: Embed link URL
        like_count:
          type: integer
          description: Number of likes
        comment_count:
          type: integer
          description: Number of comments
        share_count:
          type: integer
          description: Number of shares
        view_count:
          type: integer
          description: Number of views
    VideoListRequest:
      type: object
      properties:
        max_count:
          type: integer
          description: Maximum number of videos to return (1-20)
          minimum: 1
          maximum: 20
        cursor:
          type: integer
          description: Cursor for pagination
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 Bearer token