TikTok Story Viewer Scraper avatar

TikTok Story Viewer Scraper

Pricing

Pay per event + usage

Go to Apify Store
TikTok Story Viewer Scraper

TikTok Story Viewer Scraper

🎬 Check public TikTok profiles for story availability, story status codes, and profile metadata without login.

Pricing

Pay per event + usage

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Categories

Share

Track public TikTok profile story availability and export story-status metadata at scale.

What does TikTok Story Viewer Scraper do?

TikTok Story Viewer Scraper checks public TikTok profiles and returns profile story availability, account metadata, and diagnostic story fields from TikTok's public profile HTML.

Use it when you need to know whether a brand, creator, competitor, or campaign account currently exposes story-related signals without manually opening each profile.

The actor is built for public data. It does not require TikTok login cookies, passwords, or private API keys.

Who is it for?

  • 📣 Social media managers monitoring creator activity
  • 🧑‍💼 Influencer agencies checking campaign participants
  • 🕵️ Brand-monitoring teams watching competitor accounts
  • 📊 Analysts combining TikTok profile data with content calendars
  • 🤖 Automation teams that need repeatable story-status checks

Why use this actor?

TikTok Stories are temporary. Manual checks are slow, inconsistent, and hard to audit.

This actor turns a list of TikTok profile URLs or usernames into structured rows that can be exported to JSON, CSV, Excel, Google Sheets, Make, Zapier, or your own API workflow.

How the scraper works

The actor fetches each public TikTok profile page and reads the embedded __UNIVERSAL_DATA_FOR_REHYDRATION__ payload.

It extracts profile metadata and story-related status fields such as UserStoryStatus when TikTok exposes them in the public HTML.

Data you can extract

FieldDescription
profileUrlNormalized TikTok profile URL
usernameTikTok username
nicknameDisplay name
verifiedWhether TikTok marks the account verified
privateAccountWhether the profile is private
followerCountPublic follower count
storyStatusRaw TikTok story status code when available
hasActiveStoryNormalized active-story indicator when determinable
storyStatusLabelHuman-readable story status label
storyItemCountNumber of story items found in embedded data
storyIdsStory item IDs when embedded
storyUrlsStory media URLs when embedded
scrapedAtISO timestamp for the check

How much does it cost to scrape TikTok story status?

The actor uses pay-per-event pricing with a small run-start event and one result event per saved profile row.

A small monitoring run with 10 profiles is designed to be inexpensive. Larger recurring checks scale with the number of profile rows saved.

Input

You can provide either full TikTok profile URLs or usernames.

Example input:

{
"profileUrls": [
{ "url": "https://www.tiktok.com/@tiktok" },
{ "url": "https://www.tiktok.com/@tiktokforbusiness" }
],
"usernames": ["tiktok"],
"maxProfiles": 10,
"includeRawData": false
}

Output

Example output row:

{
"profileUrl": "https://www.tiktok.com/@tiktok",
"username": "tiktok",
"nickname": "TikTok",
"verified": true,
"followerCount": 94465285,
"storyStatus": 0,
"hasActiveStory": false,
"storyStatusLabel": "no_active_story",
"storyItemCount": 0,
"storyIds": [],
"storyUrls": [],
"scrapedAt": "2026-06-19T00:00:00.000Z"
}

Step-by-step usage

  1. Open the actor on Apify.
  2. Add TikTok profile URLs or usernames.
  3. Keep maxProfiles low for your first test.
  4. Run the actor.
  5. Export the dataset or connect it to an integration.

Tips for best results

  • Use profile URLs when you already have them.
  • Use usernames when your source system stores handles.
  • Schedule repeated runs for ephemeral story monitoring.
  • Keep raw diagnostics disabled unless you are debugging.
  • Expect some profiles to have no active public story at check time.

Integrations

Send results to Google Sheets for campaign monitoring.

Trigger Make scenarios when hasActiveStory changes.

Use Zapier to notify account managers about creator story activity.

Pull dataset items through the Apify API for BI dashboards.

API usage with Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/tiktok-story-viewer-scraper').call({
usernames: ['tiktok'],
maxProfiles: 5
});
console.log(run.defaultDatasetId);

API usage with Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/tiktok-story-viewer-scraper').call({
'usernames': ['tiktok'],
'maxProfiles': 5,
})
print(run['defaultDatasetId'])

API usage with cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~tiktok-story-viewer-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"usernames":["tiktok"],"maxProfiles":5}'

MCP usage

Use the actor from Claude through Apify MCP:

https://mcp.apify.com/?tools=automation-lab/tiktok-story-viewer-scraper

Claude Code setup:

$claude mcp add apify-tiktok-story-viewer https://mcp.apify.com/?tools=automation-lab/tiktok-story-viewer-scraper

Claude Desktop JSON config:

{
"mcpServers": {
"apify-tiktok-story-viewer": {
"url": "https://mcp.apify.com/?tools=automation-lab/tiktok-story-viewer-scraper"
}
}
}

Example prompts:

  • "Check these TikTok profiles for public story status."
  • "Create a table of TikTok accounts with active story signals."
  • "Monitor these creator handles and summarize story availability."

Scheduling workflow

Stories are temporary, so a scheduled run is often more useful than a one-time run.

Run the actor hourly or daily, then compare the newest dataset with previous runs in your own database or spreadsheet.

Troubleshooting

If a profile returns an error, confirm that the profile URL is public and accessible in a browser.

If hasActiveStory is null, TikTok did not expose enough public story data to make a definitive active/inactive decision.

If storyItemCount is zero, the profile may simply have no active public story at the time of the run.

Limitations

TikTok may change public HTML fields at any time.

The actor does not log in to TikTok.

The actor does not bypass private accounts.

Story media URLs are only returned when TikTok embeds them in the public profile payload.

Legality and responsible use

This actor extracts publicly available profile information. Use it responsibly, respect TikTok's terms, follow privacy rules, and avoid collecting data you are not allowed to process.

FAQ

Does this download TikTok stories?

It records story-status metadata and story media URLs only when they are exposed in public profile HTML. It is not a login-based downloader.

Do I need cookies?

No. The MVP is designed for public profile checks without cookies.

Can I monitor many profiles?

Yes. Add profile URLs or usernames and increase maxProfiles as needed.

Why do some rows say no active story?

Stories expire quickly, and many public profiles do not have an active story at the exact time of scraping.

Changelog

  • Initial version: public TikTok profile story-status extraction.