TikTok Story Monitor - New Story Alerts for Any Account
Pricing
from $5.00 / 1,000 new stories
TikTok Story Monitor - New Story Alerts for Any Account
Monitor TikTok accounts for new stories on a schedule. Get only stories posted since the last run, with no-watermark video, cover, caption and views.
Pricing
from $5.00 / 1,000 new stories
Rating
0.0
(0)
Developer
Seemu Scraping
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Watch a list of TikTok accounts and get alerted the moment they post a new story. Put the actor on a schedule and every run returns only the stories posted since the previous run: the no-watermark video or photos, cover image, caption, posting and expiry time, and views. No login, no TikTok account, and the creator never sees you in their viewer list.
TikTok stories disappear after 24 hours. Run this monitor every hour (or every few hours) and you'll never miss one, without getting the same story twice.
What you get
One row per new story with:
- Story:
storyId,type(videoorimage),createdAt,expiresAt,hoursLeft,captionand on-screen sticker text - Media:
playUrl(no-watermark video),cover,imageUrlsfor photo stories, duration, width and height - Saved files (optional): with Save story files on, each new video or photo is saved to your Apify storage and
mediaFileUrl/downloadedFileshold permanent links that keep working after the story expires - Engagement: views, likes, comments, shares and saves, when TikTok shows them
- Monitoring fields:
isNew,firstSeenAt(when this monitor first saw the story),monitorIdandcheckedAt - Account: username, display name, user ID and profile link
Every run also saves a SUMMARY record in the Key-value store tab: accounts checked, new stories, saved files, errors, and a per-account breakdown (ok, private, not_found, error, not_processed).
Use cases
- Competitor and brand monitoring: get notified whenever a rival brand posts a TikTok story
- Influencer marketing: confirm sponsored creators posted the agreed story, with proof and view counts, without checking manually
- Story archiving: save every story before it disappears after 24 hours
- Fan and creator alerts: push new stories from favourite creators to Slack, Discord, email or a Google Sheet
- Social media reporting: build a running log of story activity for a roster of accounts
How to use
- Enter the TikTok usernames (with or without @) or profile URLs to watch, one per line
- Give the watch list a Monitor name (for example
competitors). Runs with the same name share one memory of stories already returned - Optionally turn on Save story files to keep permanent copies of the videos and photos
- Run the actor once. The first run returns every story that is live right now
- Set up a schedule (below). From now on each run returns only new stories, and an empty dataset means nothing new was posted
How the monitor remembers stories
The monitor keeps the IDs of stories it has already returned in a named key-value store in your own Apify account, called tiktok-story-monitor-<monitor name> (for example tiktok-story-monitor-competitors). It survives between runs and schedules, and story IDs are forgotten after 48 hours because stories expire after 24.
- Use a different monitor name for each schedule or task so separate watch lists don't hide each other's stories
- To start fresh, delete that key-value store in Storage → Key-value stores, or pick a new monitor name
- Avoid running two runs with the same monitor name at the same time
Step 1: Schedule it
- Save your input as a task: Actions → Save as a new task
- Go to Schedules → Create new
- Pick a frequency. Every hour (
0 * * * *) catches stories within the hour. Every 6 hours (0 */6 * * *) is enough to never miss one, since stories last 24 hours - Add your task to the schedule and save
Step 2: Get alerts
Open your task → Integrations and choose how you want to hear about new stories:
- Slack, email, Google Sheets, Zapier or Make: pick the integration, trigger it on Run succeeded, and it receives the run's dataset of new stories
- Webhook (your own server, n8n, Discord bot, etc.): Add integration → HTTP webhook, event type Run succeeded, and your URL. Your endpoint receives the run details, including
resource.defaultDatasetId. Fetch the new stories fromhttps://api.apify.com/v2/datasets/<defaultDatasetId>/items, or read the counts fromhttps://api.apify.com/v2/key-value-stores/<defaultKeyValueStoreId>/records/SUMMARY
To alert only when there is something new, check newStories > 0 in the SUMMARY record (or that the dataset has items) before sending the notification. The run's status message also says how many new stories were found.
Output example
{"monitorId": "competitors","username": "jamescharles","nickname": "James Charles","userId": "190068318278651904","storyId": "7697745590247017742","isNew": true,"firstSeenAt": "2026-10-18T20:27:19.124Z","createdAt": "2026-10-17T21:04:35.000Z","expiresAt": "2026-10-18T21:04:35.000Z","hoursLeft": 0.6,"type": "video","caption": null,"stickerText": [],"durationSeconds": 25,"width": 720,"height": 1280,"playUrl": "https://v16-webapp-prime.tiktok.com/video/tos/...","cover": "https://p19-common-sign.tiktokcdn.com/...","imageUrls": [],"views": 65800,"likes": 1331,"comments": 0,"shares": 20,"saves": 0,"musicTitle": "original sound","musicAuthor": "Painted","mediaFileUrl": "https://api.apify.com/v2/key-value-stores/.../records/jamescharles-7697745590247017742","downloadedFiles": [{"url": "https://api.apify.com/v2/key-value-stores/.../records/jamescharles-7697745590247017742","fileName": "jamescharles-7697745590247017742.mp4","contentType": "video/mp4","sizeBytes": 1755048}],"profileUrl": "https://www.tiktok.com/@jamescharles","checkedAt": "2026-10-18T20:27:19.124Z"}
A photo story has type: "image", its pictures in imageUrls, and one saved file per photo.
Pricing
Pay-per-event, so you only pay for what each run actually does:
| Event | When it's charged |
|---|---|
| Run | Once per run |
| Account check | Each account checked successfully, with or without new stories |
| New story | Each story returned for the first time. Stories you've already received are never charged again |
| Saved file | Each video or photo saved when Save story files is on |
| Account lookup | Rarely: when an account's ID can't be confirmed for free, at most once a week per account |
Private accounts, invalid input and failed checks are free (failed accounts are retried on the next run). Usernames that don't exist are free unless they needed an account lookup to confirm. Even then, the result is remembered for 24 hours so you aren't charged again. A schedule that checks 10 accounts every hour mostly costs the run and account-check fees, plus new stories when they appear.
Free Apify plans can watch up to 10 accounts per run (3 runs a day). Upgrade to a paid plan to remove these limits and schedule as often as you like.
FAQ
Why is my dataset empty? None of the accounts posted a new story since the previous run with this monitor name. That's the expected result for a monitor. Check the SUMMARY record to see every account that was checked.
Why did the first run return so many stories? The first run with a new monitor name has no memory yet, so every live story counts as new. Later runs return only what's new.
I want to see the same stories again. Turn on Also return already-seen stories (they come back free with isNew: false), use a new monitor name, or delete the monitor's key-value store.
Will the creator know I viewed their story? No. Stories are fetched anonymously, without a TikTok account, so you never appear in the viewer list.
Can I monitor private accounts? No. Only public stories are available.
How long do the links work? playUrl, cover and imageUrls are TikTok's temporary links and stop working after a few hours. Turn on Save story files for permanent links in your Apify storage. Very large video files (over 13 MB) are not saved, but their playUrl is still returned.
Does the video have a watermark? No. playUrl and the saved file are the no-watermark version.