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

# TikTok Live Data

> Fetch current TikTok profiles, videos, comments, media URLs, and transcripts.

# TikTok Live Data

The TikTok live endpoints return normalized profile and video data. The API can reuse recent source data, so use `scraped_at` to assess when each result was collected.

## Endpoints

| Endpoint                                       | Returns                                | Credits |
| ---------------------------------------------- | -------------------------------------- | ------: |
| `GET /v1/raw/tiktok/profile/{username}`        | Profile identity and current metrics   |   `0.5` |
| `GET /v1/raw/tiktok/profile/{username}/videos` | One cursor-paginated video page        |   `0.5` |
| `GET /v1/raw/tiktok/video`                     | Video details, metrics, and media URLs |   `0.5` |
| `GET /v1/raw/tiktok/video/comments`            | One cursor-paginated comment page      |   `0.5` |
| `GET /v1/raw/tiktok/video/transcript`          | Plain text and timestamped segments    |     `5` |

One credit is \$0.01. See [Pricing](/concepts/pricing) for billing and payment-rail rules.
The listed credit price applies to each successful response, including one that reuses recent source data.

## Fetch a profile

Pass a bare username or include the leading `@`.

```bash theme={null}
curl 'https://api.influship.com/v1/raw/tiktok/profile/creator' \
  -H "X-API-Key: $INFLUSHIP_API_KEY"
```

The response includes the stable TikTok user ID, username, display name, biography, profile URL, audience counts, verification, privacy, and business status.

## List profile videos

```bash theme={null}
curl 'https://api.influship.com/v1/raw/tiktok/profile/creator/videos?sort_by=latest&region=GB' \
  -H "X-API-Key: $INFLUSHIP_API_KEY"
```

Pass `next_cursor` back as `cursor` while `has_more` is `true`. Each request returns the complete source page. Cursors are opaque, so store and return the value unchanged.

Each video has a stable `video_id`, canonical TikTok URL, author, description, timestamps, engagement counts, hashtags, music metadata, and media fields. Slideshows use `media_type: "slideshow"` and place image URLs in `images`.

## Fetch one video and its file URL

Pass the TikTok URL as a query parameter.

```bash theme={null}
VIDEO_URL='https://www.tiktok.com/@creator/video/7517114944362499342'

curl --get 'https://api.influship.com/v1/raw/tiktok/video' \
  -H "X-API-Key: $INFLUSHIP_API_KEY" \
  --data-urlencode "url=$VIDEO_URL" \
  --data-urlencode 'region=GB'
```

For a regular video, `data.video.video_url` contains a directly downloadable media URL when the source exposes one. The URL is signed and temporary. Download the file promptly instead of storing the URL for later use. `video_url` is `null` when no downloadable video stream is available, including slideshow-only posts.

```bash theme={null}
curl --get -s 'https://api.influship.com/v1/raw/tiktok/video' \
  -H "X-API-Key: $INFLUSHIP_API_KEY" \
  --data-urlencode "url=$VIDEO_URL" \
  | jq -r '.data.video.video_url // empty' \
  | xargs -r wget -O tiktok-video.mp4
```

## Fetch comments

```bash theme={null}
curl --get 'https://api.influship.com/v1/raw/tiktok/video/comments' \
  -H "X-API-Key: $INFLUSHIP_API_KEY" \
  --data-urlencode "url=$VIDEO_URL"
```

Comments include text, creation time, likes, replies, pinned status, and normalized author data. Use `next_cursor` for the next source page.
`video_id` can be `null` when a short share URL returns an empty comment page and the source does
not provide the resolved video ID.

## Fetch a transcript

```bash theme={null}
curl --get 'https://api.influship.com/v1/raw/tiktok/video/transcript' \
  -H "X-API-Key: $INFLUSHIP_API_KEY" \
  --data-urlencode "url=$VIDEO_URL"
```

```json theme={null}
{
  "data": {
    "video_id": "7517114944362499342",
    "url": "https://www.tiktok.com/@creator/video/7517114944362499342",
    "transcript": "Welcome back. Today we are testing the new recipe.",
    "full_text": "Welcome back. Today we are testing the new recipe.",
    "segments": [
      { "start_ms": 0, "end_ms": 1480, "text": "Welcome back." },
      {
        "start_ms": 1480,
        "end_ms": 4210,
        "text": "Today we are testing the new recipe."
      }
    ],
    "word_count": 9,
    "language": "en",
    "source": "generated",
    "duration_seconds": 4.21,
    "scraped_at": "2026-08-12T10:00:00.000Z"
  }
}
```

`source` is `captions` or `generated`, and `language` reports the detected language. The detected-language transcript is reused on later requests. Every delivered transcript costs five credits, including a reused response.

Transcript generation can run for up to 180 seconds. Set a timeout of at least 190 seconds when you call this endpoint with a custom HTTP client. The generated Influship SDK uses a 210-second default timeout.

## URL and retry rules

Video-level endpoints accept HTTPS URLs on `tiktok.com` and its subdomains, including `vm.tiktok.com` and `vt.tiktok.com`. Other hosts return `400 validation_error` before the source request runs.

| Status | Code                           | Meaning                                                        |
| -----: | ------------------------------ | -------------------------------------------------------------- |
|  `404` | `transcript_not_available`     | The video has no usable caption or media source                |
|  `422` | `transcription_limit_exceeded` | The uncaptioned media exceeds the synchronous transcript limit |
|  `503` | `transcription_unavailable`    | Transcript generation is temporarily unavailable               |
|  `503` | `service_unavailable`          | Live TikTok data is temporarily unavailable                    |

Retry `503` responses with bounded exponential backoff and jitter. Do not retry `400`, `404`, or `422` without changing the request or source URL.

## Payment rails

The endpoints accept API keys, OAuth, x402, and MPP when those payment methods are enabled. API-key and OAuth requests are charged for successful operations. x402 and MPP use the advertised request price once payment settles, including when the final endpoint response is an error. A successful x402 settlement returns a `PAYMENT-RESPONSE` header, while MPP returns a `Payment-Receipt`. See [x402](/guides/x402) and [MPP](/guides/mpp) before choosing a no-key rail.
