Search "best time to post on TikTok" and you'll get a dozen conflicting charts. The truth: the best time depends on your audience, not a global average. Here's how to find the times that actually drive engagement for any account — with data.
Those "post at 9am on Tuesday" infographics are aggregated across millions of unrelated accounts in different niches and time zones. Your audience has its own rhythm. A cooking creator in the US and a gaming creator in the UK have completely different peak windows. Averages wash all of that out.
When you post, TikTok shows your video to a small initial batch of viewers. If that batch engages quickly, the video gets pushed to a larger audience. Posting when your followers are awake and active gives that crucial early engagement the best chance — which is why timing compounds into reach.
Instead of guessing, look at when a creator's best-performing videos went up. Our free Best Time to Post tool does exactly that: enter any @handle and it buckets recent videos by hour and day of week, ranks them by the engagement each earned, and shows a clear heatmap of peak windows.
Every video returned by the API includes a create_time (Unix timestamp) and full engagement counts. That's all you need to compute posting-time performance. With a free API key:
import requests
from datetime import datetime, timezone
from collections import defaultdict
BASE = "https://api.tiktokapi.store/api/v1"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
videos = requests.get(f"{BASE}/user/posts",
headers=headers, params={"unique_id": "gordonramsayofficial", "count": 30}
).json()["data"]["videos"]
by_hour = defaultdict(list)
for v in videos:
hour = datetime.fromtimestamp(v["create_time"], timezone.utc).hour
engagement = v["digg_count"] + v["comment_count"] + v["share_count"]
by_hour[hour].append(engagement)
best = max(by_hour, key=lambda h: sum(by_hour[h]) / len(by_hour[h]))
print(f"Best hour to post: {best}:00 UTC")
Convert UTC to your audience's main time zone and you have a data-backed schedule. The same approach scales to building a full posting scheduler — see the API docs.
100 requests/day free. No credit card required. Instant API key.
Get your free API key