Scraperize
TikTok

TikTok Video API

To get a single video or photo post from TikTok, call GET /v1/tiktok/video?url=… with your API key. You get clean JSON back.

GET/v1/tiktok/video
curl "https://api.scraperize.com/v1/tiktok/video?url=https://www.tiktok.com/@brainjotter/video/7689399654345182471" \
  -H "x-api-key: YOUR_API_KEY"
Cost
1 credit / call
Only successful calls are charged. Errors are free.
Pagination
Single response
Everything comes back in one call.
Caching
0 credits
Set cache_max_age to reuse a recent result for free.
Rate limit
Per team / minute
Over the limit: 429 with a Retry-After header.

Parameters

urlRequired
The TikTok video URL, e.g. https://www.tiktok.com/@user/video/7689399654345182471 (a photo post’s /photo/ link works too).
cache_max_ageOptional
Optional. Return a cached result if one this age or newer exists — served for 0 credits with meta.cached=true and meta.cachedAt. Otherwise a fresh scrape runs (1 credit) and refreshes the cache. Omit to always scrape fresh.One of 5 values.

Send your key in the x-api-key header. Full API reference

Example response

200 OK · application/json
{
  "data": {
    "video": {
      "id": "7689399654345182471",
      "url": "https://www.tiktok.com/@brainjotter/video/7689399654345182471",
      "type": "video",
      "description": "Tag that friend woth 1% social battery",
      "createdAt": "2026-09-25T09:18:00.000Z",
      "language": "en",
      "stats": {
        "playCount": 350300,
        "likeCount": 75100,
        "commentCount": 821,
        "shareCount": 1474,
        "collectCount": 3609,
        "repostCount": 0
      },
      "author": {
        "id": "6810285179828945926",
        "secUid": "MS4wLjABAAAA1E4wyGvJvdI8bl-5URa446ywZys3NQzvXvLB64kmRgwSjkn9E-wd2LGuKReZXXxm",
        "handle": "brainjotter",
        "nickname": "SUPREME GREEN👑",
        "bio": "Promocode : JOTTERS TO GET 300% b0nus",
        "avatarUrl": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/dbac796bf5becb428bf361070bddc211~tplv-tiktokx-cropcenter:1080:…",
        "verified": true,
        "privateAccount": false,
        "stats": {
          "followerCount": 12100000,
          "followingCount": 5144,
          "likeCount": 159200000,
          "videoCount": 611,
          "friendCount": 0,
          "diggCount": 905
        },
        "createdAt": "2020-04-03T03:39:51.000Z",
        "liveRoomId": null,
        "ttSeller": false,
        "settings": {
          "comment": 0,
          "duet": 0,
          "stitch": 0,
          "download": 0
        }
      },
      "video": {
        "duration": 109,
        "width": 576,
        "height": 1024,
        "definition": "540p",
        "format": "mp4",
        "codec": "h264",
        "bitrate": 305033,
        "quality": "lowest",
        "size": 4170004,
        "coverUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/oA78PbVNBPIiai2EYIYAuoIG2IWBTzCArsBFP~tplv-tiktokx-origin.image?d…",
        "originCoverUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/ogbjMQA2BdVDwfIKACYeRoX6AbB9eD8HbKAbhB~tplv-tiktokx-origin.image?…",
        "dynamicCoverUrl": "https://p16-common-sign.tiktokcdn.com/tos-alisg-p-0037/oIANAIPjAiIF6Tb2IaBoYVP8XE7rAY2yBiCIG~tplv-tiktokx-origin.image?d…",
        "playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/oQQ8Rgoj6ItHuLGYDPALIbMfgeebVBICgAhtYA/?a=198…",
        "downloadUrl": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/ogVwoeYuBCIgHALjtDYRgVTAkbIbA0ebTheGIg/?a=198…",
        "volume": {
          "loudness": -18,
          "peak": 0.54954
        },
        "formats": [
          {
            "gearName": "adapt_lowest_1080_1",
            "qualityType": 2,
            "codec": "h265_hvc1",
            "format": "mp4",
            "bitrate": 607083,
            "fps": 25,
            "width": 1080,
            "height": 1920,
            "size": 8299285,
            "url": "https://v16-webapp-prime.tiktok.com/video/tos/alisg/tos-alisg-pve-0037c001/oIwHCEri98BIIo7ibaQ6Ap2GPwA2iEVYaIYPB/?a=1988…"
          }
        ],
        "subtitles": [
          {
            "language": "eng-US",
            "languageCode": "en",
            "format": "webvtt",
            "isAutoGenerated": true,
            "url": "https://v16-webapp.tiktok.com/f1f2f9e68ce9cf013eb1f16124fc05af/6ac65b3e/video/tos/alisg/tos-alisg-pv-0037/3d1330d4d4df4b…",
            "expiresAt": "2026-10-07T14:46:22.000Z"
          }
        ]
      },
      "photo": null,
      "music": {
        "id": "7689399747121515272",
        "title": "original sound",
        "url": "https://www.tiktok.com/music/original-sound-7689399747121515272",
        "authorName": "SUPREME GREEN👑",
        "album": null,
        "duration": 109,
        "preciseDuration": 109.40081,
        "shootDuration": 109,
        "original": true,
        "isCopyrighted": false,
        "isCommerceMusic": true,
        "isUnlimitedMusic": false,
        "isPrivate": false,
        "coverUrl": "https://p16-common-sign.tiktokcdn.com/tos-maliva-avt-0068/dbac796bf5becb428bf361070bddc211~tplv-tiktokx-cropcenter:1080:…",
        "playUrl": "https://v16m.tiktokcdn.com/7a06db407e731d8dcdaf14d229edc99a/6ac509be/video/tos/alisg/tos-alisg-v-27dcd7/okC2IYQiABFUbAaE…",
        "streaming": []
      },
      "hashtags": [],
      "mentions": [],
      "effects": [],
      "stickerTexts": [],
      "location": null,
      "contentCategory": {
        "id": 104,
        "name": "Comedy"
      },
      "anchors": [],
      "warnings": [],
      "playlistId": null,
      "isAd": false,
      "isPinned": false,
      "isPrivate": false,
      "isCommerce": false,
      "aigcDescription": null,
      "aigcLabelType": null,
      "duetEnabled": true,
      "stitchEnabled": true,
      "shareEnabled": true,
      "canRepost": true,
      "commentStatus": 0,
      "region": "BR",
      "regionName": "Brazil",
      "categories": [
        "Scripted Comedy",
        "Comedy",
        "Performance"
      ],
      "suggestedSearches": [
        "brainjotter",
        "brain jotter comedy",
        "Apex"
      ],
      "isAigc": false
    },
    "mediaHeaders": {
      "Cookie": "tt_chain_token=<session token returned by the API>",
      "Referer": "https://www.tiktok.com/"
    },
    "fetchedAt": "2026-10-05T14:44:34.839Z"
  },
  "meta": {
    "requestId": "req_8f0c2b7e-1a2b-4c3d-9e8f-0a1b2c3d4e5f",
    "creditsCharged": 1,
    "creditsRemaining": 4999,
    "cached": false
  }
}

A real response, shortened to one item per list.

FAQ

TikTok Video API questions

How much does the TikTok Video API cost?

1 credit per successful call. Errors and cached results are free, and new accounts start with 100 free credits, no card required. See pricing.

Do I need a TikTok account or API key?

No. You only need a Scraperize API key, sent in the x-api-key header. Scraperize returns publicly available data. No TikTok login or developer app is needed.

How fresh is the data?

Each call fetches the data live. To trade freshness for cost, pass cache_max_age (e.g. 1h, 1d) to get a recent cached result instantly for 0 credits.

Where are the full parameters and response fields?

In the API reference, with every parameter, field and error.

Try the TikTok Video API

Grab your key and 100 free credits, no card required, and run this call in minutes.