> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genviral.io/llms.txt
> Use this file to discover all available pages before exploring further.

# List TikTok Account Posts

> List a TikTok account's posts, newest first, so you can pick one to copy.

Use this endpoint to browse a public TikTok account before copying one of its posts. Send a profile
link or `@handle` and get one page of posts back, newest first. Pass the page's `next_cursor` back as
`cursor` to read older posts; `next_cursor` is `null` once the account has no more.

Listing is read-only and spends no credits. To copy a slideshow you picked, send its `url` to
[Preview TikTok Slideshow Copy](/api-reference/copy-tiktok-preview.md) and then
[Import TikTok Slideshow Copy](/api-reference/copy-tiktok-import.md). Only `slideshow` posts can be
imported.

Each page makes one live read of TikTok, so request the next page only when you need it. Ads are left
out, and pinned posts are marked `is_pinned: true`.

Image URLs (`thumbnail_url`, `slide_image_urls`, `avatar_url`) are TikTok CDN links. They can expire,
and any image outside the TikTok CDN comes back as `null` or is left out of `slide_image_urls`. A
count TikTok did not report is `null`, never `0`.

## Body Parameters

**profile** `string` *required*

TikTok profile link (`https://www.tiktok.com/@handle`) or `@handle`. Post links are rejected.

**cursor** `string`

The previous page's `next_cursor`, to read the next (older) page.

## Example

```json theme={null}
{
  "profile": "https://www.tiktok.com/@creator"
}
```

```json Response theme={null}
{
  "ok": true,
  "code": 200,
  "message": "TikTok account posts ready",
  "data": {
    "account": {
      "handle": "creator",
      "display_name": "Creator",
      "avatar_url": "https://p16-sign.tiktokcdn.com/.../avatar.jpeg",
      "followers": 182000,
      "profile_url": "https://www.tiktok.com/@creator"
    },
    "posts": [
      {
        "id": "7499123456789012345",
        "url": "https://www.tiktok.com/@creator/photo/7499123456789012345",
        "kind": "slideshow",
        "caption": "5 hooks that always convert",
        "thumbnail_url": "https://p16-sign.tiktokcdn.com/.../cover.jpeg",
        "slide_image_urls": [
          "https://p16-sign.tiktokcdn.com/.../slide-1.jpeg",
          "https://p16-sign.tiktokcdn.com/.../slide-2.jpeg"
        ],
        "published_at": "2026-10-01T15:04:05.000Z",
        "is_pinned": false,
        "metrics": {
          "views": 214400,
          "likes": 9083,
          "comments": 112,
          "shares": 41,
          "saves": null
        }
      }
    ],
    "next_cursor": "1788902017689"
  }
}
```

## Error Responses

* `400 invalid_json` - request body is not valid JSON
* `400 invalid_tiktok_profile` - `profile` is not a TikTok profile link or handle (for example, a post link)
* `404 tiktok_account_not_found` - the account does not exist, or it is private or restricted
* `422 invalid_payload` - `profile` is missing, `cursor` is malformed, or the body has unknown fields
* `429 rate_limited` - more than 30 requests in a minute
* `503 tiktok_account_unavailable` - TikTok could not be read right now; retry shortly
* `500 account_posts_failed`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.