Guides / Working with data / IDs and the resolver
IDs and the resolver
TikTok IDs are 64-bit Snowflakes; the top 32 bits are the creation time. The resolver turns any link into typed IDs.
Resolve any link
GET /v1/resolve?input=… takes a video, profile, LIVE or Shop link (tiktok.com, vm.tiktok.com, vt.tiktok.com) or an @username and returns its kind, canonical URL, every ID it can find and the decoded creation time.
Response
{
"kind": "video",
"canonical_url": "https://www.tiktok.com/@acme/video/7705852133855161377",
"aweme_id": "7705852133855161377",
"uid": "6970000000000000001",
"sec_uid": "MS4wLjABAAAAq8V3xLm2pR9wQ8mN4vK1zH7tB2yX",
"unique_id": "acme",
"room_id": null,
"product_id": null,
"music_id": "7569924403851462401",
"snowflake_timestamp_utc": "2026-11-08T17:21:52Z"
}Resource endpoints still take typed IDs first (aweme_id, username, room_id, product_id); many also take an optional url.
Reading the timestamp
Shift an ID right by 32 bits to get Unix seconds. 7705852133855161377 >> 32 is 1794158512, which is Nov 8, 2026 17:21:52 UTC.
JavaScript
const id = 7705852133855161377n
const seconds = Number(id >> 32n)
console.log(new Date(seconds * 1000).toISOString())sec_uid
sec_uid is the stable account ID used by the mobile API. The resolver returns it for any profile link or @handle.