{
  "openapi": "3.0.3",
  "info": {
    "title": "TikTok LIVE API",
    "version": "1.0.0",
    "description": "The complete TikTok LIVE data + real-time WebSocket API: live detection, room info, creator/gifter profiles and earnings, gift catalogs, full 28-region leaderboards (creator, gifter, gaming, shop, leagues, popular), agency eligibility, live analytics, and a real-time event WebSocket: connect to wss://api.tik.tools?uniqueId=<username>&apiKey=<key> for live chat, gifts, likes, follows, viewers, battles and captions. Identical surface to tik.tools - available cheaper direct at https://tik.tools.",
    "contact": {
      "name": "tik.tools",
      "url": "https://tik.tools"
    }
  },
  "servers": [
    {
      "url": "https://api.tik.tools"
    }
  ],
  "paths": {
    "/webcast/ranklist/popular": {
      "get": {
        "summary": "TikTok's real-time **Popular LIVE** board per region - the ranking of creators TikTok is actively featuring in search ri",
        "description": "TikTok's real-time **Popular LIVE** board per region - the ranking of creators TikTok is actively featuring in search right now (the \"Popular LIVE\" tab shown beside Daily Ranking in the app). Updated every minute.\n\n**Agency-exclusive.** Agency-tier keys receive the full unmasked board (up to 99 creators with handles, live status, room IDs, and diamond scores). Every other tier receives a 3-row teaser with the rest dot-masked plus an upgrade hint, so you can build against the exact response shape\n\nMinimum tier: global.",
        "operationId": "ranklist_popular",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "region",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Region code (e.g. US+, DE+, BR, MENA, LATAM). Defaults to US+."
          }
        ]
      }
    },
    "/webcast/sign_url": {
      "post": {
        "summary": "Sign any TikTok webcast URL with the required \\",
        "description": "Sign any TikTok webcast URL with the required \\\n\nMinimum tier: sandbox.",
        "operationId": "sign_url",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "description": "The TikTok URL to sign"
                  }
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/check_alive": {
      "get": {
        "summary": "Check if one or more TikTok users are currently live streaming. Returns live status, room ID, stream title, and viewer c",
        "description": "Check if one or more TikTok users are currently live streaming. Returns live status, room ID, stream title, and viewer count for each user.\n\n**Lookup methods:** Pass \\\n\nMinimum tier: sandbox.",
        "operationId": "check_alive",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_ids",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Comma-separated room IDs"
          },
          {
            "name": "unique_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok username (without @)"
          }
        ]
      }
    },
    "/webcast/live_status": {
      "get": {
        "summary": "Instant zero-latency liveness check sourced from the relay's internal state - no TikTok API call required. Use this befo",
        "description": "Instant zero-latency liveness check sourced from the relay's internal state - no TikTok API call required. Use this before opening a WebSocket connection to avoid connecting to channels that are offline.\n\n**How it works:** Checks the relay's Dragonfly cache for any channel currently connected to the relay or recently seen by the leaderboard poller (90s TTL). Returns a result in <5ms.\n\n**Limitation:** Only covers channels actively tracked by the relay or the live leaderboard. If a channel is live\n\nMinimum tier: sandbox.",
        "operationId": "live_status",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "uniqueId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "TikTok username (single, no @ prefix). Accepts uniqueId or unique_id. For many creators, use bulk_live_check."
          }
        ]
      }
    },
    "/webcast/rate_limits": {
      "get": {
        "summary": "Check your current API key's rate limit status, tier information, and remaining quota across all features.",
        "description": "Check your current API key's rate limit status, tier information, and remaining quota across all features.\n\n**What's returned:** Your current tier (free/pro/ultra), API request limits (per-minute sliding window), WebSocket connection limits, bulk check capacity, and feed daily quota. Also includes \\\n\nMinimum tier: sandbox.",
        "operationId": "rate_limits_ep",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/fetch": {
      "post": {
        "summary": "Fetch live stream events via HTTP long-polling. Returns the same real-time data as WebSocket (chat, gifts, likes, battle",
        "description": "Fetch live stream events via HTTP long-polling. Returns the same real-time data as WebSocket (chat, gifts, likes, battles) but over HTTP. Uses TikTok's binary protobuf protocol and returns decoded events.\n\n**How it works:** The API signs and fetches TikTok's internal polling endpoint, decodes the protobuf response, and returns structured event data. Pass a \\\n\nMinimum tier: sandbox.",
        "operationId": "fetch",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "unique_id": {
                    "type": "string",
                    "description": "TikTok username"
                  },
                  "room_id": {
                    "type": "string",
                    "description": "Room ID (alternative to unique_id)"
                  },
                  "cursor": {
                    "type": "string",
                    "description": "Pagination cursor from previous response"
                  }
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/room_info": {
      "post": {
        "summary": "Get comprehensive information about a live stream room including the host's profile, stream title, viewer count, start t",
        "description": "Get comprehensive information about a live stream room including the host's profile, stream title, viewer count, start time, and stream configuration.\n\n**Response data:** Returns owner profile (\\\n\nMinimum tier: sandbox.",
        "operationId": "room_info",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "unique_id": {
                    "type": "string",
                    "description": "TikTok username (resolves to room_id; for mode=fetch resolve via live_status first)"
                  },
                  "room_id": {
                    "type": "string",
                    "description": "Room ID (required when mode=fetch)"
                  },
                  "mode": {
                    "type": "string",
                    "description": "Set to \"fetch\" (Pro+) to have TikTool fetch + parse the room data server-side and return user_count/title/total_user directly - works from datacenter IPs. Requires room_id. Without it you get a signed_url you must fetch yourself (browser/residential only)."
                  }
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/room_video": {
      "post": {
        "summary": "Get live stream video playback URLs in multiple formats and quality levels. Returns HLS (\\",
        "description": "Get live stream video playback URLs in multiple formats and quality levels. Returns HLS (\\\n\nMinimum tier: sandbox.",
        "operationId": "room_video",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "unique_id": {
                    "type": "string",
                    "description": "TikTok username"
                  },
                  "room_id": {
                    "type": "string",
                    "description": "Room ID"
                  }
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/bulk_live_check": {
      "post": {
        "summary": "Check live status for multiple TikTok users in a single request. Returns the same data as \\",
        "description": "Check live status for multiple TikTok users in a single request. Returns the same data as \\\n\nMinimum tier: sandbox.",
        "operationId": "bulk_live_check",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {}
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/ws_credentials": {
      "post": {
        "summary": "Get pre-signed WebSocket connection credentials for establishing a direct connection to TikTok's live stream WebSocket s",
        "description": "Get pre-signed WebSocket connection credentials for establishing a direct connection to TikTok's live stream WebSocket servers. Returns everything needed to connect without using the managed relay.\n\n**What's returned:** A signed \\\n\nMinimum tier: sandbox.",
        "operationId": "ws_credentials",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "unique_id"
                ],
                "properties": {
                  "unique_id": {
                    "type": "string",
                    "description": "TikTok username"
                  }
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/sign_websocket": {
      "post": {
        "summary": "Sign a TikTok WebSocket URL with X-Bogus parameters for direct connection to TikTok's \\",
        "description": "Sign a TikTok WebSocket URL with X-Bogus parameters for direct connection to TikTok's \\\n\nMinimum tier: sandbox.",
        "operationId": "sign_websocket",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "room_id"
                ],
                "properties": {
                  "room_id": {
                    "type": "string",
                    "description": "TikTok room ID"
                  },
                  "cursor": {
                    "type": "string",
                    "description": "Pagination cursor"
                  }
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/resolve_user_ids": {
      "post": {
        "summary": "Resolve numeric TikTok user IDs to their corresponding usernames (\\",
        "description": "Resolve numeric TikTok user IDs to their corresponding usernames (\\\n\nMinimum tier: sandbox.",
        "operationId": "resolve_user_ids",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {}
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/user_profile": {
      "get": {
        "summary": "**Reverse lookup:** \\",
        "description": "**Reverse lookup:** \\\n\nMinimum tier: pro.",
        "operationId": "user_profile",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "unique_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "TikTok @username (no leading @)"
          },
          {
            "name": "nocache",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Set to 1 to bypass cache (useful after profile updates)"
          }
        ]
      }
    },
    "/authentication/jwt": {
      "post": {
        "summary": "Generate a JWT (JSON Web Token) for secure frontend WebSocket connections. JWTs allow your client-side code to connect w",
        "description": "Generate a JWT (JSON Web Token) for secure frontend WebSocket connections. JWTs allow your client-side code to connect without exposing your API key.\n\n**Security model:** Generate JWTs server-side using your API key, then pass the \\\n\nMinimum tier: sandbox.",
        "operationId": "jwt",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [],
                "properties": {
                  "expire_after": {
                    "type": "integer",
                    "description": "Seconds until expiry (default: 3600)"
                  }
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/rankings": {
      "get": {
        "summary": "Get real-time leaderboard data for a live room - top gifters, online audience rankings, and engagement scores. Uses the ",
        "description": "Get real-time leaderboard data for a live room - top gifters, online audience rankings, and engagement scores. Uses the \"sign-and-return\" pattern for authenticated data.\n\n**Data available:** In-room top gifters (\\\n\nMinimum tier: sandbox.",
        "operationId": "rankings",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok room ID"
          },
          {
            "name": "unique_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok username (alternative to room_id)"
          }
        ]
      }
    },
    "/webcast/room_id": {
      "post": {
        "summary": "Resolve a TikTok username to their current live room ID. The server resolves the \\",
        "description": "Resolve a TikTok username to their current live room ID. The server resolves the \\\n\nMinimum tier: sandbox.",
        "operationId": "room_id",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "unique_id"
                ],
                "properties": {
                  "unique_id": {
                    "type": "string",
                    "description": "TikTok username (without @)"
                  }
                }
              }
            }
          }
        },
        "parameters": []
      }
    },
    "/webcast/room_cover": {
      "get": {
        "summary": "Get the high-quality cover image (thumbnail) URL of an active live stream. Returns the same image TikTok displays on the",
        "description": "Get the high-quality cover image (thumbnail) URL of an active live stream. Returns the same image TikTok displays on the live feed before a user taps to watch.\n\n**Image quality:** Returns the highest resolution available from TikTok's CDN. Cover images are typically 720x960 or higher, served as JPEG/WebP from TikTok's image CDN.\n\n**Use cases:** Building live stream galleries, social media embeds, notification cards with stream previews, or monitoring dashboards that show stream thumbnails alongs\n\nMinimum tier: sandbox.",
        "operationId": "room_cover",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "unique_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok username"
          },
          {
            "name": "room_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok room ID"
          }
        ]
      }
    },
    "/webcast/hashtag_list": {
      "get": {
        "summary": "Get currently trending live stream hashtags from TikTok. Returns hashtag names, live viewer counts, and associated metad",
        "description": "Get currently trending live stream hashtags from TikTok. Returns hashtag names, live viewer counts, and associated metadata.\n\n**Response data:** Each hashtag includes \\\n\nMinimum tier: sandbox.",
        "operationId": "hashtag_list",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Number of results (default: 20, max: 50)"
          }
        ]
      }
    },
    "/webcast/gift_info": {
      "get": {
        "summary": "Get the **global TikTok gift catalog**: every gift name, diamond cost, icon URL, ID. The catalog is room-independent - c",
        "description": "Get the **global TikTok gift catalog**: every gift name, diamond cost, icon URL, ID. The catalog is room-independent - call the endpoint with **no params**, get the catalog back. **Tier-branched response:**\n\n- **Sandbox / Basic / Pro** → returns a **static 50-gift SAMPLE** so you can build + test your UI against the real schema without paying. Shape: \\\n\nMinimum tier: sandbox.",
        "operationId": "gift_info",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "(none required)",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Catalog is global - no params needed. Optional: `mode=sign` (Pro+) to get a signed URL back instead of the parsed catalog if you want to fetch upstream yourself."
          }
        ]
      }
    },
    "/webcast/gifts_by_country": {
      "get": {
        "summary": "Get the **gift catalog for a specific country/region**. TikTok scopes the gift panel to the region of the LIVE room it i",
        "description": "Get the **gift catalog for a specific country/region**. TikTok scopes the gift panel to the region of the LIVE room it is served from, so this endpoint anchors to a currently-live creator in the requested region's leaderboard and returns that room's catalog - each gift with **ID, icon URL, diamond value, USD value, and whether it is a streakable/combo gift**.\n\n**Tier-branched response:**\n- **Sandbox / Basic** → static 50-gift **sample** so you can build against the schema. Shape: \\\n\nMinimum tier: pro.",
        "operationId": "gifts_by_country",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "country",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ISO country code (US, GB, BR, JP, ...) or a tracked region code. One country per call."
          }
        ]
      }
    },
    "/webcast/live-shop": {
      "get": {
        "summary": "Get the **current TikTok LIVE Shop state** for a seller's room - the products the seller is showing on-screen right now,",
        "description": "Get the **current TikTok LIVE Shop state** for a seller's room - the products the seller is showing on-screen right now, their live stock levels, sold-out events, sales velocity, and whether a live auction is running. Anchor the lookup to a specific seller with \\\n\nMinimum tier: pro.",
        "operationId": "live_shop",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "unique_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok seller handle to anchor the lookup to a specific seller room. Provide this OR region."
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "ISO country code (US, GB, BR, ...) or a tracked region code - anchors to a currently-live seller in that region. Provide this OR unique_id."
          }
        ]
      }
    },
    "/webcast/gift_gallery": {
      "get": {
        "summary": "Get the **per-creator Gift Gallery** summary - the curated gift wishlist a TikTok creator picks BEFORE going LIVE so vie",
        "description": "Get the **per-creator Gift Gallery** summary - the curated gift wishlist a TikTok creator picks BEFORE going LIVE so viewers can help fulfill it. Returns whether the creator is qualified to use Gift Gallery, the total gallery size, how many gifts they've already lit this period, and their gallery league tier.\n\n**What is a Gift Gallery?** TikTok creators on the LIVE Gift Gallery program select a curated set of gifts (the \"wishlist\") before going live. Viewers see a dedicated gallery icon during t\n\nMinimum tier: sandbox.",
        "operationId": "gift_gallery",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "unique_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok @username (without the @). We resolve sec_uid + current room_id automatically."
          },
          {
            "name": "sec_uid",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Direct sec_uid (skip the username resolve hop). Required if unique_id not provided."
          },
          {
            "name": "room_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Current room_id. Optional - 0 is accepted for offline creators. Auto-filled when unique_id is provided."
          }
        ]
      }
    },
    "/webcast/user_earnings": {
      "get": {
        "summary": "Retrieve TikTok LIVE earnings data for a creator including diamonds received, coin equivalent, and period breakdowns. Th",
        "description": "Retrieve TikTok LIVE earnings data for a creator including diamonds received, coin equivalent, and period breakdowns. This is an authenticated endpoint that relays TikTok's creator earnings API.\n\n**Authentication required:** You must include TikTok session cookies via \\\n\nMinimum tier: sandbox.",
        "operationId": "user_earnings",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "unique_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "TikTok username"
          },
          {
            "name": "period",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Period filter: \"daily\" (default)"
          }
        ]
      }
    },
    "/webcast/feed": {
      "get": {
        "summary": "Discover currently live TikTok LIVE streams. Uses a two-step \"sign-and-return\" pattern - the API returns a signed URL wi",
        "description": "Discover currently live TikTok LIVE streams. Uses a two-step \"sign-and-return\" pattern - the API returns a signed URL with headers and cookies that you fetch from YOUR own IP to get the actual TikTok feed data.\n\n**Authentication:** Include your TikTok \\\n\nMinimum tier: pro.",
        "operationId": "feed",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "session_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Your TikTok sessionid cookie - strongly recommended. Get from browser DevTools → Application → Cookies → tiktok.com. Without it, results are sparse."
          },
          {
            "name": "channel_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Feed channel: 87 = Recommended \"For You\" (default), 86 = Suggested sidebar, 89 or 1111006 = Gaming, 42 = Following"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Rooms per page (default: 20, max: 50)"
          },
          {
            "name": "max_time",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Pagination cursor from previous TikTok response (data.extra.max_time). Omit or \"0\" for first page."
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Hint passed to TikTok (default: US). Note: actual results are geo-targeted by the IP making the final fetch, not this param."
          },
          {
            "name": "ttwid",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok ttwid visitor cookie. Server provides one if omitted."
          },
          {
            "name": "ms_token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "TikTok msToken cookie (optional, a placeholder is used if omitted)."
          }
        ]
      }
    },
    "/webcast/live_analytics/video_list": {
      "get": {
        "summary": "List historical live stream recordings for a TikTok account. Returns past streams with metadata including title, duratio",
        "description": "List historical live stream recordings for a TikTok account. Returns past streams with metadata including title, duration, viewer count, and stream date. Requires authenticated TikTok session cookies.\n\n**Authentication required:** Include session cookies via \\\n\nMinimum tier: sandbox.",
        "operationId": "video_list",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "unique_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "TikTok username"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Number of results (default: 20)"
          }
        ]
      }
    },
    "/webcast/live_analytics/video_detail": {
      "get": {
        "summary": "Get granular analytics for a specific past live stream session. Returns detailed performance metrics including total vie",
        "description": "Get granular analytics for a specific past live stream session. Returns detailed performance metrics including total views, peak concurrent viewers, gifts received, new followers gained, and engagement rates. Requires authenticated TikTok session cookies.\n\n**Authentication required:** Include session cookies via \\\n\nMinimum tier: sandbox.",
        "operationId": "video_detail",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "video_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Video/stream ID"
          }
        ]
      }
    },
    "/webcast/live_analytics/user_interactions": {
      "get": {
        "summary": "Get the real-time online audience roster for a live room, ranked by gift score (diamonds sent during this session). Retu",
        "description": "Get the real-time online audience roster for a live room, ranked by gift score (diamonds sent during this session). Returns each viewer's rank, score, and full profile. Requires authenticated TikTok session cookies.\n\n**How it works:** Uses the \"sign-and-return\" pattern. The API returns a \\\n\nMinimum tier: sandbox.",
        "operationId": "user_interactions",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "room_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Room ID of the stream"
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Filter to specific user ID"
          },
          {
            "name": "count",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Number of results (default: 50)"
          }
        ]
      }
    },
    "/webcast/eligible_creators": {
      "get": {
        "summary": "Find Eligible Creators to Recruit - the API behind the agency dashboard's recruiting page. Returns a paginated, score-ra",
        "description": "Find Eligible Creators to Recruit - the API behind the agency dashboard's recruiting page. Returns a paginated, score-ranked list of every creator currently tracked across the live league boards, so a scouting script can filter out low earners before reaching out.\n\n**Payload per creator:** \\\n\nMinimum tier: global.",
        "operationId": "eligible_creators",
        "tags": [
          "TikTok LIVE"
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "1-based page number (default 1)"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Results per page, 1-100 (default 50)"
          },
          {
            "name": "region",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Optional region code filter (e.g. US+, MENA, IT+)"
          },
          {
            "name": "min_score",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Optional - only return creators at or above this current_snapshot_score"
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "TikTok LIVE",
      "description": "Full TikTok LIVE data + real-time WebSocket"
    }
  ]
}