Appearance
Search by Hashtag
GET /v1/tiktok/search/hashtag
Searches for TikTok videos under a specific hashtag , useful for finding content by topic or trend. Returns aweme_list, an array of video objects each with aweme_id, desc (caption), statistics (play_count, digg_count/likes, comment_count, share_count), video info, and author details. Paginate with cursor from the previous response. TikTok may return duplicate results.
Authentication
All requests require the x-api-key header. Get your key at scrapecreators.com.
Query Parameters
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
hashtag | string | yes | Hashtag to search for (without #) | |
region | string | no | Region the proxy will be set to. Note: this isn't going to grab you all tiktoks from this region, you're just setting the proxy there. | US |
cursor | number | no | Cursor to get more videos. Get 'cursor' from previous response. | 10 |
trim | boolean | no | Set to true to get a trimmed response |
Example Request
curl
bash
curl 'https://api.scrapecreators.com/v1/tiktok/search/hashtag?hashtag=<hashtag>' \
-H 'x-api-key: $SCRAPECREATORS_API_KEY'Node / TypeScript
js
const params = new URLSearchParams({ hashtag: '...' });
const res = await fetch(`https://api.scrapecreators.com/v1/tiktok/search/hashtag?${params}`, {
headers: { 'x-api-key': process.env.SCRAPECREATORS_API_KEY }
});
const data = await res.json();
console.log(data);Python
python
import os, requests
r = requests.get(
'https://api.scrapecreators.com/v1/tiktok/search/hashtag',
headers={'x-api-key': os.environ['SCRAPECREATORS_API_KEY']},
params={'hashtag': '...'},
)
r.raise_for_status()
print(r.json())CLI
bash
scrapecreators tiktok search-hashtag --helpExample Response
json
{
"aweme_list": [
{
"aweme_id": "7277923990184742177",
"desc": "best boys #friends #joeytribbiani #chandlerbing #joeyandchandler #sitcom #mecore #uscore #bromance #matthewperry #mattleblanc ",
"desc_language": "en",
"region": "DE",
"statistics": {
"aweme_id": "7277923990184742177",
"collect_count": 385471,
"comment_count": 94635,
"digg_count": 2840077,
"download_count": 1318,
"forward_count": 0,
"lose_comment_count": 0,
"lose_count": 0,
"play_count": 12711728,
"repost_count": 0,
"share_count": 614428,
"whatsapp_share_count": 19390
},
"video": {
"CoverTsp": 7.68255116568915,
"ai_dynamic_cover": {
"uri": "tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739",
"url_list": [
"https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739~tplv-tiktokx-origin.image?dr=9229&refresh_token=c493f93a&x-expires=1750377600&x-signature=zaHE9yF93tRa0sZXJA%2FE5yrYa3I%3D&t=bacd0480&ps=4f5296ae&shp=d05b14bd&shcp=c0f880ed&idc=no1a&biz_tag=tt_video&s=CHALLENGE_AWEME&sc=dynamic_cover"
],
"url_prefix": null
},
"ai_dynamic_cover_bak": {
"uri": "tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739",
"url_list": [
"https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739~tplv-tiktokx-origin.image?dr=9229&refresh_token=c493f93a&x-expires=1750377600&x-signature=zaHE9yF93tRa0sZXJA%2FE5yrYa3I%3D&t=bacd0480&ps=4f5296ae&shp=d05b14bd&shcp=c0f880ed&idc=no1a&biz_tag=tt_video&s=CHALLENGE_AWEME&sc=dynamic_cover"
],
"url_prefix": null
},
"animated_cover": {
"uri": "tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739",
"url_list": [
"https://p16-sign-useast2a.tiktokcdn.com/tos-useast2a-p-0037-euttp/5a4c497ba73c4d3f90203a4debd33196_1694523739~tplv-tiktokx-origin.image?dr=9229&refresh_token=c493f93a&x-expires=1750377600&x-signature=zaHE9yF93tRa0sZXJA%2FE5yrYa3I%3D&t=bacd0480&ps=4f5296ae&shp=d05b14bd&shcp=c0f880ed&idc=no1a&biz_tag=tt_video&s=CHALLENGE_AWEME&sc=dynamic_cover"
],
"url_prefix": null
},
"big_thumbs": [],
"bit_rate": [
{
"HDR_bit": "",
"HDR_type": "",
"bit_rate": 364924,
"dub_infos": null,
"fid_profile_labels": "",
"fps": 30,
"gear_name": "adapt_540_1",
"is_bytevc1": 1,
"play_addr": {
"data_size": 759407,
"file_cs": "c:0-15397-6132",
"file_hash": "f44716c0f1de35c8618470f551dde04b",
"height": 576,
"uri": "v0f044gc0000ck062fbc77uc8kdoc7ig",
"url_key": "v0f044gc0000
... (truncated)Credits
Most ScrapeCreators endpoints consume 1 credit per successful response. Some heavier endpoints (transcripts, AI-driven enrichment, ad detail lookups) may cost more. Check GET /v1/credit-balance for your remaining balance.
Errors
| Status | Meaning | Action |
|---|---|---|
| 200 | Success. | Use the JSON payload. |
| 400 | Invalid or missing parameter. | Verify required parameters and value format. |
| 401 | Missing or invalid x-api-key. | Pass a valid API key in the header. |
| 402 | Out of credits. | Top up at scrapecreators.com or wait for plan reset. |
| 404 | Resource not found or private. | Confirm the handle, URL, or id and that the resource is public. |
| 429 | Rate limited. | Backoff and retry with exponential delay. |
| 500 | Server error or upstream platform failure. | Retry with backoff; report persistent errors to support. |