Skip to main content

Documentation Index

Fetch the complete documentation index at: https://rocks.docs.rive.wtf/llms.txt

Use this file to discover all available pages before exploring further.

Every API key is tied to one IP. To apply for a key, DM southctrl on Discord.
Use the endpoint path below, replace the required params, and send Authorization: Bearer YOUR_API_KEY.

Most Used Endpoints

User

Look up a TikTok user

Video

Fetch video metadata

Download

Download a TikTok video

FYP Feed

Browse the #fyp hashtag feed
Use video for metadata and download when you need the file itself. Use fyp to browse trending content from the For You Page hashtag.

Get User

Get public profile information for a TikTok user.

Endpoint

GET /api/tiktok/user

Query Parameters

ParameterTypeRequiredDescription
usernamestringYesTikTok username (without @ symbol)

Example Request

curl -X GET "https://rocks.rive.wtf/api/tiktok/user?username=tiktok" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "success": true,
  "data": {
    "user": {
      "id": "107955",
      "uniqueId": "tiktok",
      "nickname": "TikTok",
      "signature": "One TikTok can make a big impact",
      "avatar": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?...",
      "avatarThumb": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?...",
      "avatarMedium": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?...",
      "avatarLarger": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/ba67b11de451691939223e9d978e613a~tplv-tiktokx-cropcenter:720:720.jpeg?...",
      "verified": true,
      "privateAccount": false
    },
    "stats": {
      "followerCount": 93500000,
      "followingCount": 3,
      "heartCount": 456700000,
      "videoCount": 1420
    }
  }
}

Response Fields

User Object

FieldTypeDescription
idstringTikTok user ID
uniqueIdstringUsername/handle
nicknamestringDisplay name
signaturestringUser bio/description
avatarstringAvatar URL (720x720)
avatarThumbstringSmall avatar URL (100x100)
avatarMediumstringMedium avatar URL (720x720)
avatarLargerstringLarge avatar URL (1080x1080)
verifiedbooleanVerification status (blue checkmark)
privateAccountbooleanWhether account is private

Stats Object

FieldTypeDescription
followerCountnumberTotal number of followers
followingCountnumberNumber of accounts this user follows
heartCountnumberTotal likes across all videos
videoCountnumberTotal number of videos posted

Get Video

Get detailed information about a TikTok video.

Endpoint

GET /api/tiktok/video

Query Parameters

ParameterTypeRequiredDescription
urlstringYesFull TikTok video URL

Example Request

curl -X GET "https://rocks.rive.wtf/api/tiktok/video?url=https://www.tiktok.com/@username/video/7602002368330239239" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "success": true,
  "data": {
    "id": "7602002368330239239",
    "desc": "#roblo #fyppppppppppppppppppppppp #dahood #montage #dahoodmontage",
    "createTime": "2026-02-01T20:51:52+00:00",
    "url": "https://v16-webapp-prime.us.tiktok.com/video/tos/alisg/tos-alisg-pve-0037/...",
    "stats": {
      "playCount": 13400,
      "diggCount": 427,
      "commentCount": 76,
      "shareCount": 51,
      "collectCount": 78
    },
    "author": {
      "id": "7499271041357759543",
      "uniqueId": "high0ffxanax",
      "nickname": "xanax",
      "avatarMedium": "https://p16-common-sign.tiktokcdn-us.com/tos-alisg-avt-0068/85d0054ef90ece359480ef575f9ef6a9~tplv-tiktokx-cropcenter:720:720.jpeg?...",
      "verified": false,
      "privateAccount": false,
      "stats": {
        "followerCount": 202,
        "heartCount": 3890,
        "videoCount": 15
      }
    }
  }
}

Response Fields

Video Data

FieldTypeDescription
idstringVideo ID
descstringVideo description/caption
createTimestringISO 8601 timestamp when video was posted
urlstringDirect video playback URL

Video Stats

FieldTypeDescription
playCountnumberNumber of video views
diggCountnumberNumber of likes
commentCountnumberNumber of comments
shareCountnumberNumber of shares
collectCountnumberNumber of saves/bookmarks

Author Object

FieldTypeDescription
idstringAuthor’s user ID
uniqueIdstringAuthor’s username
nicknamestringAuthor’s display name
avatarMediumstringAuthor’s profile picture URL
verifiedbooleanAuthor verification status
privateAccountbooleanWhether author’s account is private
statsobjectAuthor’s follower/like statistics

Download Video

Download a TikTok video as an MP4 file.

Endpoint

GET /api/tiktok/download

Query Parameters

ParameterTypeRequiredDescription
urlstringYesFull TikTok video URL

Example Request

curl -X GET "https://rocks.rive.wtf/api/tiktok/download?url=https://www.tiktok.com/@username/video/7602002368330239239" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o video.mp4

Response

Returns the video file as MP4 (video/mp4 content type) with appropriate headers for download. Response Headers:
  • Content-Type: video/mp4
  • Content-Disposition: attachment; filename="[video_id].mp4"
  • Content-Length: [file_size_in_bytes]

Success Response

Status Code: 200
Content Type: video/mp4
Content Length: 3393144 bytes
video file is ready to download and save locally.

Error Response

If the video URL is invalid or inaccessible:
{
  "error": "Invalid TikTok URL"
}

Get FYP Feed

Fetch a paginated list of trending videos from TikTok’s #fyp hashtag feed.

Endpoint

GET /api/tiktok/fyp

Query Parameters

ParameterTypeRequiredDescription
cursornumberNoPagination cursor (default: 0)
countnumberNoNumber of videos to return, max 50 (default: 30)
Save the cursor value from each response and pass it back as ?cursor= to page through the feed.

Example Request

curl -X GET "https://rocks.rive.wtf/api/tiktok/fyp?cursor=0&count=30" \
  -H "Authorization: Bearer YOUR_API_KEY"

Example Response

{
  "success": true,
  "data": {
    "items": [
      {
        "id": "7503690966822440223",
        "desc": "wholesome #fyp #nature",
        "url": "https://www.tiktok.com/@colbyirv/video/7503690966822440223",
        "playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast8/...",
        "stats": {
          "playCount": 334300000,
          "diggCount": 52000000,
          "commentCount": 253700,
          "shareCount": 8100000,
          "collectCount": 0
        },
        "author": {
          "uniqueId": "colbyirv",
          "nickname": "colbyirv",
          "avatarThumb": "https://p16-common-sign.tiktokcdn-us.com/...",
          "verified": false
        }
      },
      {
        "id": "7299279845215702315",
        "desc": "#viral #foryou #fyp #explore #christmas 🌲",
        "url": "https://www.tiktok.com/@foryou_sd/video/7299279845215702315",
        "playUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/...",
        "stats": {
          "playCount": 135200000,
          "diggCount": 16000000,
          "commentCount": 66100,
          "shareCount": 412000,
          "collectCount": 0
        },
        "author": {
          "uniqueId": "foryou_sd",
          "nickname": "ForYou",
          "avatarThumb": "https://p16-common-sign.tiktokcdn-us.com/...",
          "verified": false
        }
      }
    ],
    "cursor": 30,
    "hasMore": true,
    "count": 30
  }
}

Response Fields

Top-Level Data Object

FieldTypeDescription
itemsarrayList of video objects
cursornumberCursor to pass for the next page
hasMorebooleanWhether more results are available
countnumberNumber of items returned in this response

Item Object

FieldTypeDescription
idstringVideo ID
descstringVideo caption/description
urlstringFull TikTok URL to the video (tiktok.com/@user/video/ID)
playUrlstringDirect MP4 stream URL
statsobjectEngagement metrics
authorobjectAuthor info

Item Stats

FieldTypeDescription
playCountnumberTotal views
diggCountnumberTotal likes
commentCountnumberTotal comments
shareCountnumberTotal shares
collectCountnumberTotal saves/bookmarks

Item Author

FieldTypeDescription
uniqueIdstringAuthor’s username/handle
nicknamestringAuthor’s display name
avatarThumbstringAuthor’s thumbnail avatar URL
verifiedbooleanWhether the author is verified

Error Responses

Invalid Parameters

{
  "error": "Invalid 'cursor' or 'count' parameter"
}
Status Code: 400

TikTok Upstream Error

{
  "error": "TikTok returned a non-zero status",
  "statusCode": 10000
}
Status Code: 502

Fetch Failed

{
  "error": "Failed to fetch FYP feed: <reason>"
}
Status Code: 502

Error Responses

Invalid Username

{
  "error": "Missing 'username' parameter"
}
Status Code: 400

User Not Found

{
  "error": "User not found: @username"
}
Status Code: 404

Invalid Video URL

{
  "error": "Invalid TikTok URL"
}
Status Code: 400

Missing URL Parameter

{
  "error": "Missing 'url' parameter"
}
Status Code: 400

Rate Limiting

  • Max Retries: 3 attempts per request
  • Timeout: 8 seconds per request
  • Retry Delay: 1.5 seconds between retries

Notes

  • Only public TikTok profiles and videos can be accessed
  • Private accounts will return limited information
  • Video URLs must be complete (e.g., https://www.tiktok.com/@username/video/ID)
  • Downloaded videos are typically 3-10 MB in size
  • Video download links may expire after a few hours
  • API uses watermark-free direct video URLs
  • FYP playUrl links are time-limited — fetch and use promptly or proxy through download

Use Cases

  • Social Media Analytics - Track TikTok influencer metrics and engagement
  • Content Archival - Download and backup TikTok videos
  • Discord Bots - Display TikTok user stats and video information in Discord
  • Web Scrapers - Collect TikTok data for research and analysis
  • Video Managers - Organize and manage downloaded TikTok content
  • Engagement Tracking - Monitor video performance metrics over time
  • Trend Discovery - Browse the FYP feed to surface viral and trending content