TikTok Search photo posts by keyword API
Search photo posts by keyword from TikTok, returned as JSON rows you can save to CSV.
Reposts, playlists, photos and explore (modes userReposts, userPlaylists, photoSearch, explore)
Video records with the video fields above, plus sourceProfile (reposts, playlists), playlistId and playlistTitle (playlists), keyword and imageUrls (photo posts: the slide image links, temporary; isSlideshow is true) or exploreCategory (explore). A video found twice in one run is delivered once.
The input that produced this run
Mode photoSearch. Parameters as sent, with what each one does.
| Parameter | Value | What it does |
|---|---|---|
mode | "photoSearch" | What to get: videos by keyword, hashtag, profile, sound, repost list, playlist, photo search or explore category; profiles by keyword or similar to a profile; sounds or places by keyword; the sounds a profile has made;... |
keywords | ["cats"] | Search keywords; each keyword is a separate search (or a separate suggestion lookup). Falls back to a sample keyword when empty (skincare; love for soundSearch, cats for photoSearch, paris for placeSearch). soundSearch... |
maxResults | 10 | Maximum items for each keyword, hashtag, profile, sound, video or category (up to 1000). Video details, profile details and analytics return one record per input, so the limit rarely matters there. A search inside... |
39 fields in every video
From the first record of the run above. Identity fields of ordinary users are masked on this site.
| Field | Type | Example |
|---|---|---|
type | str | video |
videoId | str | 7703307623151504662 |
url | str | https://www.tiktok.com/@catpuppyfin/video/770330762315150... |
description | str | #cutecat #smallcat #socute #fyp #meow |
hashtags | list | ["cutecat", "smallcat", "socute", "fyp", "meow"] |
createdAt | str | 2026-11-01T20:47:59Z |
durationSeconds | int | 0 |
playCount | int | 534400 |
likeCount | int | 152600 |
commentCount | int | 424 |
shareCount | int | 63400 |
collectCount | int | 11423 |
downloadCount | null | null |
authorHandle | str | <masked> |
authorName | str | <masked> |
authorFollowerCount | str | <masked> |
authorVerified | str | <masked> |
authorId | str | <masked> |
authorSecUid | str | <masked> |
authorAvatarUrl | str | <masked> |
authorBio | str | <masked> |
authorRegion | null | null |
musicTitle | str | som original |
musicAuthor | str | <masked> |
coverUrl | str | https://p16-common-sign.tiktokcdn-us.com/tos-no1a-i-photo... |
videoUrl | null | null |
textLanguage | str | un |
isPinned | null | null |
isSlideshow | bool | true |
mentions | list | [] |
width | int | 0 |
height | int | 0 |
musicId | str | 7451100017054731013 |
musicOriginal | bool | true |
authorFollowingCount | str | <masked> |
isPaidContent | null | null |
isAd | bool | false |
keyword | str | cats |
imageUrls | list | ["https://p19-common-sign.tiktokcdn-us.com/tos-no1a-i-photom |
A real run, 39 fields per record
Run on 2026-11-09 with input {"mode": "photoSearch", "keywords": ["cats"], "maxResults": 10}. Personal fields of ordinary users are masked here.
| musicTitle | keyword | textLanguage | description | createdAt | durationSeconds |
|---|---|---|---|---|---|
| som original | cats | un | #cutecat #smallcat #socute #fyp #meow | 2026-11-01T20:47:59Z | 0 |
| original sound | cats | en | Happy new year #fyp #catsoftiktok #toes | 2026-01-01T05:40:38Z | 0 |
| You Love Me | cats | en | He was making too much noise… the cat put a stop to that | 2026-10-23T22:54:17Z | 0 |
| i could be the one (Ambient) | cats | un | #cat #fyp | 2024-12-19T11:27:13Z | 0 |
| som original | cats | en | In a world where fate and reincarnation intertwine, Leo, ... | 2025-02-13T09:33:14Z | 0 |
| Literally Meow | cats | en | 🐱 Where to Pet a Cat Safely 🐾 1️⃣ Head and cheeks are the... | 2026-04-13T12:41:37Z | 0 |
All 39 fields in one record
typevideovideoId7703307623151504662urlhttps://www.tiktok.com/@catpuppyfin/video/770330762315150...description#cutecat #smallcat #socute #fyp #meowhashtagscreatedAt2026-11-01T20:47:59ZdurationSeconds0playCount534400likeCount152600commentCount424shareCount63400collectCount11423downloadCountauthorHandleauthorNameauthorFollowerCountauthorVerifiedauthorIdauthorSecUidauthorAvatarUrlauthorBioauthorRegionmusicTitlesom originalmusicAuthorcoverUrlhttps://p16-common-sign.tiktokcdn-us.com/tos-no1a-i-photo...videoUrltextLanguageunisPinnedisSlideshowmentionswidth0height0musicId7451100017054731013musicOriginalauthorFollowingCountisPaidContentisAdkeywordcatsimageUrls
What one video costs
Result (result) · $0.003 · For each video or profile-search record returned (search, hashtag, userPosts, userSearch, music, userReposts, userPlaylists, similarUsers, soundSearch, photoSearch, userSounds) and each videoAnalytics record.
Run this request yourself
The same input as above, three ways.