TikTok · Guide

How to get TikTok channel posts

TL;DR
To get TikTok channel posts, sign up for a free Captapi key, then send one GET request to /v1/tiktok/channel-posts with your input. You get clean JSON back in seconds for 2 credits per call — no OAuth, scraping or platform SDKs. Get the latest videos from any public TikTok profile — caption, view / like / comment counts, thumbnail, sound, and hashtags for each post, with cursor pagination to page through them all.

How to get TikTok channel posts (step by step)

  1. 1

    Get a free API key

    Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.

  2. 2

    Call the TikTok Channel Posts API

    Send an authenticated GET request to /v1/tiktok/channel-posts with your input. No OAuth, no scraping setup.

  3. 3

    Read the JSON response

    Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.

Code example

curl "https://api.captapi.com/v1/tiktok/channel-posts?url=https%3A%2F%2Fwww.tiktok.com%2F%40paw.dreams0" \
  -H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."

What the response looks like

{
  "success": true,
  "data": {
    "url": "https://www.tiktok.com/@paw.dreams0",
    "totalReturned": 3,
    "posts": [
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@paw.dreams0/video/7662021590825061654",
        "id": "7662021590825061654",
        "caption": "kitten was teased for playing with a cardboard Motorbike  #catfunnyvideos #catcartoon #catcute #catstory #kitten",
        "description": "kitten was teased for playing with a cardboard Motorbike  #catfunnyvideos #catcartoon #catcute #catstory #kitten",
        "publishedAt": "2026-07-13T15:00:00.000Z",
        "durationSeconds": 79.97,
        "thumbnailUrl": "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/o8GAEB3hAPfJ9hQpWX4KWY5eeIgRQALTAFAUeG~tplv-tiktokx-cropcenter-q:300:400:q70.webp",
        "author": {
          "username": "paw.dreams0",
          "displayName": "Paw Dreams",
          "url": "https://www.tiktok.com/@paw.dreams0",
          "followers": 117886,
          "verified": false,
          "profileImage": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/14e5b5dbddf91912237e342a048afb2c~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp"
        },
        "engagement": {
          "views": 253340,
          "likes": 4607,
          "comments": 116,
          "shares": 327,
          "saves": 949
        },
        "hashtags": [
          "catfunnyvideos",
          "catcartoon",
          "catcute",
          "catstory",
          "kitten"
        ],
        "musicName": "original sound - paw.dreams0"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@paw.dreams0/video/7661626147322547478",
        "id": "7661626147322547478",
        "caption": "The kitten was teased for playing with a cardboard Spoon shaped car #catfunnyvideos #catcartoon #catcute #catstory #kitten",
        "description": "The kitten was teased for playing with a cardboard Spoon shaped car #catfunnyvideos #catcartoon #catcute #catstory #kitten",
        "publishedAt": "2026-07-12T16:00:00.000Z",
        "durationSeconds": 65.969,
        "thumbnailUrl": "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/okepsDWBJhGTfTpIXjLeLEA8WMALIAKTjRAQeA~tplv-tiktokx-cropcenter-q:300:400:q70.webp",
        "author": {
          "username": "paw.dreams0",
          "displayName": "Paw Dreams",
          "url": "https://www.tiktok.com/@paw.dreams0",
          "followers": 117886,
          "verified": false,
          "profileImage": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/14e5b5dbddf91912237e342a048afb2c~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp"
        },
        "engagement": {
          "views": 78897,
          "likes": 1386,
          "comments": 51,
          "shares": 74,
          "saves": 280
        },
        "hashtags": [
          "catfunnyvideos",
          "catcartoon",
          "catcute",
          "catstory",
          "kitten"
        ],
        "musicName": "original sound - paw.dreams0"
      },
      {
        "platform": "tiktok",
        "url": "https://www.tiktok.com/@paw.dreams0/video/7661284651968859414",
        "id": "7661284651968859414",
        "caption": "Kitten Mocked For Playing With The Carboard Tortle Car   #catfunnyvideos #catcartoon #catcute #catstory #kitten",
        "description": "Kitten Mocked For Playing With The Carboard Tortle Car   #catfunnyvideos #catcartoon #catcute #catstory #kitten",
        "publishedAt": "2026-07-11T15:30:00.000Z",
        "durationSeconds": 81.688,
        "thumbnailUrl": "https://p16-common-sign.tiktokcdn.com/tos-no1a-p-0037-no/oYhfP5AcQI3DfUAWWYpJJGfKSgN1QuAeAA1LFW~tplv-tiktokx-cropcenter-q:300:400:q70.webp",
        "author": {
          "username": "paw.dreams0",
          "displayName": "Paw Dreams",
          "url": "https://www.tiktok.com/@paw.dreams0",
          "followers": 117886,
          "verified": false,
          "profileImage": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/14e5b5dbddf91912237e342a048afb2c~tplv-tiktokx-cropcenter-q:1080:1080:q70.webp"
        },
        "engagement": {
          "views": 110306,
          "likes": 1890,
          "comments": 112,
          "shares": 134,
          "saves": 388
        },
        "hashtags": [
          "catfunnyvideos",
          "catcartoon",
          "catcute",
          "catstory",
          "kitten"
        ],
        "musicName": "original sound - paw.dreams0"
      }
    ],
    "nextCursor": "1781971200001",
    "hasMore": true
  }
}

Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.

Request parameters

NameTypeRequiredDescription
urlstring YesTikTok profile URL, @handle, or username, e.g. https://tiktok.com/@username. Not a YouTube channel URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble.
limitintegerNoHow many of the creator's latest videos to return on this page (default 20, max 200). Newest first. Flat 2 credits per call.
cursorstringNoPagination cursor. Leave empty for the first page; then pass the nextCursor value returned in the previous response (TikTok's max_cursor timestamp, e.g. 1783614676000). A null nextCursor means the end of the list.
cachebooleanNoSet true to serve from the 24h response cache. Default false — always fetch fresh data.

Frequently asked questions

What does the TikTok Channel Posts API do?

The TikTok Channel Posts API lets you list items in bulk with metadata from a public TikTok post using one GET request to /v1/tiktok/channel-posts. It returns clean JSON — no OAuth or infrastructure setup required.

How many credits does the TikTok Channel Posts API cost?

Each successful call costs 2 credits. Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh. Failed or empty results are never charged.

Do I need a TikTok API key or OAuth?

No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.

Is the TikTok Channel Posts API suitable for production use?

Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh. Use it for analytics, monitoring, and content automation.

Ready to get TikTok channel posts?

Start free with 100 credits — no credit card required.

Get your free API key