Search TikTok by hashtag

Search TikTok videos by hashtag (not free-text keyword — use tiktok.search.videos.list for that).

GET/v1/tiktok/search/hashtags
1credit
x-api-keystringheader

API key (`sfk_...`)

Parameters
4
hashtagstringrequiredquery

Hashtag to search for. A leading # is optional.

min 1 chars · max 256 chars

regionstringoptionalquery

Optional ISO 3166-1 country code for the request. This sets the proxy region and does not filter results to that country only.

cursorstringoptionalquery

Pagination cursor returned by a previous response.

min 1 chars

trimbooleanoptionalquery

Whether to request a smaller response with fewer fields.

Response fields
53

Endpoint-specific response payload.

datahashtag
string

Hashtag evaluated for this response, without a leading #.

dataregion
stringnullable

Region applied for this response when one was requested.

TikTok videos matching the hashtag in order. Duplicate video ids may appear when the platform returns them.

datavideos[]id
string

TikTok video identifier.

min 1 chars

datavideos[]caption
stringnullable

Caption text shown for the TikTok video.

datavideos[]createdAt
stringnullable

ISO-8601 timestamp when the video was created, when available.

datavideos[]url
stringnullable

Canonical public TikTok URL for the video.

datavideos[]thumbnailUrl
stringnullable

Source-platform CDN thumbnail or cover URL when available. It can expire or be rejected outside the original retrieval context; it is not a SocialFetch-hosted asset. For durable hosted copies on this list route, pass `hostMedia=true`.

datavideos[]durationMs
integernullable

Video duration in milliseconds, when available.

≥ 0

datavideos[]pinned
boolean

Whether the video is pinned on the profile.

datavideos[]isAd
boolean

Whether TikTok marks the video as an ad.

Engagement metrics for the video.

datavideos[]statsviews
integer

View count reported by TikTok for the video.

≥ 0

datavideos[]statslikes
integer

Like count reported by TikTok for the video.

≥ 0

datavideos[]statscomments
integer

Comment count reported by TikTok for the video.

≥ 0

datavideos[]statsshares
integer

Share count reported by TikTok for the video.

≥ 0

datavideos[]statssaves
integer

Save or collection count reported by TikTok for the video.

≥ 0

Download-related media URLs for the video.

datavideos[]mediadownloadUrl
stringnullable

Source-platform CDN download URL, usually with watermark, when available. It can expire or be rejected outside the original retrieval context; it is not a SocialFetch-hosted asset. For durable hosted copies on this list route, pass `hostMedia=true`.

datavideos[]mediadownloadWithoutWatermarkUrl
stringnullable

Source-platform CDN download URL without watermark when available. It can expire or be rejected outside the original retrieval context; it is not a SocialFetch-hosted asset. For durable hosted copies on this list route, pass `hostMedia=true` (preferred over the watermarked URL when both are present).

datavideos[]details
objectoptional

Additional TikTok-native fields for this video (for example author, music, challenges, and full `video` and `statistics` objects). Keys that only duplicate the top-level fields are omitted.

Present only when `hostMedia=true`. Hosted copies and/or per-asset failures for this video.

datavideos[]hostedMedia[]status
string

Whether SocialFetch stored a durable copy of this asset.

one of: stored, failed

datavideos[]hostedMedia[]type
string

Normalized media kind.

one of: image, video

datavideos[]hostedMedia[]role
stringoptional

Which source field this asset was derived from.

one of: display, thumbnail, video

datavideos[]hostedMedia[]originalUrl
stringoptional

Source-platform CDN URL that was requested for hosting. Still transient; prefer `url` when status is stored.

datavideos[]hostedMedia[]url
stringoptional

Time-limited SocialFetch delivery URL when status is stored. Re-request hostMedia (or a future refresh route) before this expires if you still need access; object retention may outlive the delivery URL.

datavideos[]hostedMedia[]expiresAt
stringoptional

ISO-8601 timestamp when the returned delivery URL stops working.

datavideos[]hostedMedia[]retainedUntil
stringoptional

ISO-8601 timestamp when the stored object is deleted from SocialFetch storage (90-day tier).

datavideos[]hostedMedia[]mime
stringoptional

MIME type of the stored bytes when status is stored.

min 1 chars

datavideos[]hostedMedia[]bytes
integeroptional

Stored size in bytes when status is stored.

≥ 0

datavideos[]hostedMedia[]width
integernullableoptional

Pixel width when known.

≥ 0

datavideos[]hostedMedia[]height
integernullableoptional

Pixel height when known.

≥ 0

datavideos[]hostedMedia[]entityId
stringoptional

Opaque parent entity id for this asset (post, reel, photo, or video id).

min 1 chars

datavideos[]hostedMedia[]postId
stringoptional

Legacy Instagram media id alias for `entityId`. Prefer `entityId`.

min 1 chars

datavideos[]hostedMedia[]errorCode
stringoptional

Typed failure code when status is failed.

min 1 chars

datavideos[]hostedMedia[]errorMessage
stringoptional

Short customer-safe failure message when status is failed.

min 1 chars

Author metadata for this hashtag search result.

datavideos[]authorid
stringnullable

TikTok user id for the video author when available.

datavideos[]authorhandle
stringnullable

TikTok handle for the video author when available.

datavideos[]authordisplayName
stringnullable

Display name for the video author when available.

datavideos[]authoravatarUrl
stringnullable

Avatar image URL for the video author when available.

datavideos[]authorverified
boolean

Whether the author is verified on TikTok.

datatotalVideos
integer

Number of video rows returned in this response.

≥ 0

Pagination information for the current hashtag search page.

datapagenextCursor
stringnullable

Cursor to pass in the next request when more videos are available.

datapagehasMore
boolean

Whether another page of videos is available.

Metadata describing the request and billing outcome.

metarequestId
string

Unique request identifier for tracing this API call.

min 1 chars

metacreditsCharged
integer

Credits charged for this request.

≥ 0

metaversion
string

Public API version that served the response.

one of: v1

metacached
booleanoptional

True when served from shared response cache. Credits still apply (full endpoint price); Age header may be present.

Code example

curl "https://api.socialfetch.dev/v1/tiktok/search/hashtags?hashtag=fyp" \
  -H "x-api-key: YOUR_API_KEY"

Responses

Hashtag search results for the requested tag.