Locate post
Find where a post sits in a profile's timeline.
Upstream
/aweme/v1/post/locate/Every planParameters
| Name | Type | Description |
|---|---|---|
usernameone of these | string | The @username, without the @. e.g. acme |
sec_uidone of these | string | The stable account ID used by the mobile API. |
aweme_idrequired | string | The post to find. e.g. 7705852133855161377 |
Pricing
| Plan | Per call | Per 1,000 calls |
|---|---|---|
| Starter | 10 credits | $1.16 |
| Growth | 10 credits | $0.79 |
| Scale | 10 credits | $0.58 |
Response fields
| Field | Type | Description |
|---|---|---|
status_code | integer | Upstream TikTok mobile status code (0 indicates success). |
username | string | Decoded username value. |
target_aweme_id | string | Unique target aweme identifier. |
found | boolean | Whether found is enabled or true. |
index_in_window | integer | Decoded index in window value. |
cursor | string | Opaque pagination cursor to pass as cursor on the next request, or null at the end. |
items | object[] | Page of normalized records returned by this endpoint. |
items[].aweme_id | string | 64-bit TikTok Snowflake post ID (top 32 bits encode UTC creation timestamp). |
items[].desc | string | Post caption text including inline #hashtags and @mentions. |
items[].create_time | integer | Unix timestamp (seconds) when the item was created. |
items[].region | string | Two-letter ISO 3166-1 country code associated with the item or context. |
items[].is_ads | boolean | Whether ads is enabled or true. |
items[].share_url | string | HTTPS URL for share. |
log_pb | object | Upstream request trace envelope from the mobile gateway. |
log_pb.impr_id | string | Upstream TikTok impression / trace identifier. |
Responses
A 200 returns JSON with stable field names. Every response carries x-credits-cost, x-credits-tier and x-credits-remaining. Errors return a JSON body with a stable code and cost 0 credits. Error codes
import os
from tikultra import TikUltra
with TikUltra(api_key=os.environ["TIKULTRA_KEY"]) as client:
res = client.request("GET", "/v1/user/locate-post", params={
"username": "acme",
"aweme_id": "7705852133855161377",
})
print(res.credits_cost, res.data){
"status_code": 0,
"username": "acme",
"target_aweme_id": "7705852133855161377",
"found": true,
"index_in_window": 0,
"cursor": "1794158512000",
"items": [
{
"aweme_id": "7705852133855161377",
"desc": "Launch film, 1080p60 master #keyboards #desksetup",
"create_time": 1794158512,
"region": "US",
"is_ads": false,
"share_url": "https://www.tiktok.com/@acme/video/7705852133855161377",
"author": {
"uid": "6970000000000000001",
"unique_id": "acme",
"sec_uid": "MS4wLjABAAAAq8V3xLm2pR9wQ8mN4vK1zH7tB2yX",
"nickname": "Acme Studio",
"follower_count": 128431,
"verified": false
},
"statistics": {
"aweme_id": "7705852133855161377",
"play_count": 1482906,
"digg_count": 96442,
"comment_count": 1318,
"share_count": 4877,
"collect_count": 2210,
"repost_count": 614
},
"stats": {
"play_count": 1482906,
"digg_count": 96442,
"comment_count": 1318,
"share_count": 4877,
"collect_count": 2210,
"repost_count": 614
},
"music": {
"id": "7569924403851462401",
"title": "original sound - acme",
"author": "Acme Studio",
"duration_sec": 31,
"is_original_sound": true
},
"video": {
"codec": "bytevc1",
"width": 1080,
"height": 1920,
"fps": 60,
"duration_ms": 31840,
"bitrate_bps": 3842100,
"play_url": "https://v16-webapp-prime.tiktok.com/video/tos/useast2a/tos-useast2a-pve-0068/oQ8kLmN2xR9pV/?a=1233",
"play_addr": {
"uri": "v09044g40000csn8kLmN2xR9pV",
"width": 1080,
"height": 1920,
"data_size": 15291558,
"url_list": [
"https://v16-webapp-prime.tiktok.com/video/tos/useast2a/tos-useast2a-pve-0068/oQ8kLmN2xR9pV/?a=1233"
]
},
"cover_url": "https://p16-sign-va.tiktokcdn.com/tos-maliva-p-0068/o8kLmN2xR9pV~tplv-tiktokx-origin.image"
}
}
],
"log_pb": {
"impr_id": "202611120200419F8E7D6C5B4A3210"
}
}More in Users & profiles
GET/v1/userGet profile5 crGET/v1/user/postsProfile posts5 crGET/v1/user/with-postsProfile with posts10 crGET/v1/user/storiesExclusiveStories5 crPOST/v1/user/stories/batchBatch stories10 crGET/v1/user/repostsExclusiveReposts5 crGET/v1/user/favoritesFavorites5 crGET/v1/user/playlistsPlaylists5 crGET/v1/user/followersFollowers10 crGET/v1/user/followingsFollowings10 crGET/v1/user/followers/searchSearch followers10 crGET/v1/user/followings/searchSearch followings10 crGET/v1/user/similarSimilar creators10 crGET/v1/user/collectionsCollections5 crGET/v1/user/collections/videosCollection videos5 crGET/v1/user/seriesCreator series10 crGET/v1/user/auditCreator audit25 crGET/v1/user/visibilityVisibility check25 crGET/v1/user/compareCompare creators25 crGET/v1/user/check-usernameCheck username2 crPOST/v1/user/bulk-checkBulk profile check5 cr / item
Ready to build?
Start with 2,500 free credits and test every public endpoint, then pick a plan.