TikTok Latest Post Scraper & Activity Tracker avatar

TikTok Latest Post Scraper & Activity Tracker

Pricing

from $1.00 / 1,000 tiktok profile results

Go to Apify Store
TikTok Latest Post Scraper & Activity Tracker

TikTok Latest Post Scraper & Activity Tracker

Find the latest public TikTok post date, video link, caption, and profile stats from usernames or URLs. Check creator activity in bulk, flag inactive accounts, and export JSON, CSV, or Excel for influencer research and competitor monitoring.

Pricing

from $1.00 / 1,000 tiktok profile results

Rating

0.0

(0)

Developer

Newbs

Newbs

Maintained by Community

Actor stats

3

Bookmarked

42

Total users

1

Monthly active users

8 hours ago

Last modified

Share

TikTok latest post dates and profile activity

Find the latest public TikTok post exposed for each profile and see how recently a creator has posted. Enter usernames or profile URLs to get post dates, video links, captions, cover images, follower counts, and a clear activity flag. Export the results as JSON, CSV, or Excel, or use the Actor through the Apify API.

Try the TikTok latest post tracker with two profiles. No TikTok login or TikTok developer API key is needed for public-profile checks.

Quick start

  1. Add TikTok usernames, @handles, or profile URLs to TikTok profiles.
  2. Choose an Activity window, such as 7 or 30 days, and click Start.
  3. Open Output to see the latest post date and activity flag. Use Export to download your results.
{
"channel": ["@dior", "https://www.tiktok.com/@zara"],
"activityWindowDays": 30
}

Names are case-insensitive: DIOR and dior refer to the same profile. Duplicate inputs reuse the same fetch but keep separate output rows in your original input order. Remove duplicates from your input if you only need one billable row per profile.

An empty input runs the examples dior, adidas, and neymarjr. The legacy channels field and comma- or newline-separated strings remain supported through the API.

What can you use it for?

  • Influencer research: check whether shortlisted creators are still publishing before reviewing their content for a campaign.
  • Competitor monitoring: compare the newest post dates across public brand profiles.
  • Inactive-account checks: filter rows where isActiveWithinWindow is false. Unavailable timestamps produce null so they are not mistaken for inactivity.
  • New-post detection: save the previous latestPostId in your spreadsheet or workflow and compare it with the next run.
  • Agency reporting: add post dates, captions, and profile statistics to client reports without collecting a full video history.

Input options

OptionDefaultPurpose
channelThree example profilesUp to 1,000 usernames or TikTok profile URLs per run.
activityWindowDays30Number of days used for the activity flag; between 1 and 3,650.
maxConcurrency10Concurrent profile requests; between 1 and 10.
httpTimeoutSecs6Timeout per HTTP request; between 3 and 60 seconds.
useManagedFallbacktrueAllow a separately charged child Actor for unresolved profiles on Apify.
managedFallbackTimeoutSecs60Child run timeout; between 30 and 600 seconds.
proxyNone requiredOptional proxy for blocked embed retries and final direct requests.
maxRequestRetries0Extra final direct-request attempts for transient errors; at most 3.

For runs with many difficult profiles, increase the run timeout in Apify's Run options. Results are saved after each batch of up to 50 inputs, and the summary is updated as those batches complete. A maximum-charge limit can stop processing before all inputs are handled.

Example output

This shortened example illustrates the output format. Post dates and statistics change on each run.

{
"input": "dior",
"channel": "dior",
"displayName": "Dior",
"profileUrl": "https://www.tiktok.com/@dior",
"status": "ok",
"lastPostTime": 1789196400,
"lastPostTimeISO": "2026-09-12T07:00:00.000Z",
"latestPostUrl": "https://www.tiktok.com/@dior/video/7683943983852129558",
"latestPostId": "7683943983852129558",
"timestampPrecision": "exact",
"hoursSinceLastPost": 75.1,
"isActiveWithinWindow": true,
"activityWindowDays": 30,
"source": "official_embed",
"scrapedAt": "2026-09-15T10:05:59.254Z"
}
Output fieldMeaning
lastPostTime, lastPostTimeISOPost time as Unix seconds and UTC ISO-8601.
latestPostId, latestPostUrlPost identifier and link for comparisons and follow-up.
latestPostText, latestPostCoverUrlCaption and cover image when exposed by TikTok.
timestampPrecisionexact for a reported creation timestamp, video_id_estimate for a time decoded from the post ID, or null.
hoursSinceLastPost, isActiveWithinWindowTime since the exposed post and whether it falls inside your activity window.
followerCount, heartCount, videoCountProfile statistics when available.
status, error, attemptHistoryAvailability and recovery details for the profile.

The OUTPUT summary reports successful timestamps, processed inputs, skipped inputs, duplicate fetches avoided, fallback use, and timing. Existing fields such as lastPostTime and lastPostTimeISO remain available for integrations.

TikTok latest post API

Use your Apify API token to run the Actor and retrieve JSON results. Keep your token in an environment variable.

curl --fail --request POST \
'https://api.apify.com/v2/acts/newbs~Latest-Post-Time-TikTok/run-sync-get-dataset-items?timeout=180' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data '{"channel":["dior","zara"],"activityWindowDays":30}'

Python example

import json
import os
import urllib.request
url = "https://api.apify.com/v2/acts/newbs~Latest-Post-Time-TikTok/run-sync-get-dataset-items?timeout=180"
request = urllib.request.Request(
url,
data=json.dumps({"channel": ["dior", "zara"], "activityWindowDays": 30}).encode(),
headers={
"Authorization": "Bearer " + os.environ["APIFY_TOKEN"],
"Content-Type": "application/json",
},
)
with urllib.request.urlopen(request, timeout=240) as response:
for profile in json.load(response):
print(profile["channel"], profile["lastPostTimeISO"], profile["status"])

For larger runs, start the Actor asynchronously and fetch its dataset after completion. Apify supports saved tasks, schedules, webhooks, and connections to tools such as Make and n8n. Save your input as a task, schedule your checks, and compare latestPostId values in your destination workflow to trigger new-post notifications.

Pricing and efficiency

The Actor fee is $1 per 1,000 profile result rows ($0.001 each), plus Apify platform usage. A result row may contain a timestamp or an availability/error status. Duplicate input rows also count as results. Check the Pricing tab for current terms.

The fast path uses public TikTok embeds without launching a browser. Repeated handles share a fetch, and only unresolved profiles continue through recovery. If you configure a proxy, blocked embeds get a proxy attempt before a paid child run.

The optional managed fallback provider has separate pricing, which may depend on your Apify plan. It receives only unresolved unique profiles and requests at most one result per profile. Set useManagedFallback to false to prevent child Actor calls. Proxy use can add proxy charges.

Accuracy and troubleshooting

Does this always find the latest TikTok post?

TikTok's Creator Profile Embed exposes a selection of up to ten recent videos. The Actor selects the newest valid post from that selection, then requests its detail embed for the reported creation time. It compares timestamps rather than assuming the first item is newest, since older pinned posts can appear first.

A public embed can omit content or lag behind TikTok. status: "ok" means a post was retrieved; it does not prove complete or instantaneous coverage of every video, photo, Story, or LIVE. This tool is intended for public-profile activity checks, not a complete account archive. timestampPrecision describes the timestamp itself, not completeness of the post selection.

Why is the timestamp missing?

  • private, no_posts, or not_found: TikTok or the fallback provider reports an unavailable account or no public posts.
  • post_list_unavailable: profile metadata was retrieved, but no accessible post list was returned.
  • blocked, timeout, http_error, or profile_data_missing: a network restriction, challenge, or unavailable page prevented collection.
  • input_error: use a TikTok handle or a tiktok.com/@handle URL.

Private and underage accounts cannot be embedded. Availability can also vary by region. For transient failures, retry later, configure a suitable proxy, or enable the managed fallback. Check attemptHistory and the run summary for the routes attempted. The deprecated useBrowserFallback option is accepted but ignored.

For a problem or feature request, open an issue with your run link, example public handle, and expected result. Never include API tokens or proxy passwords.

For other platforms, see Newbs' Instagram latest post tracker and X/Twitter latest post tracker.