{"name":"tiktok-account-audit","id":"sfoln/tiktok-account-audit","title":"TikTok Engagement Rate & Audit","description":"Audit any public TikTok account in one row: followers, likes and bio plus average and median views, engagement rate, posting frequency, top videos, hashtags, sounds and best posting hour from its latest videos. $13 per 1,000 accounts; bigger samples $0.007 per extra page.","version":"0.1","status":"ready","family":{"id":"social-media-data","name":"Social media data","description":"Profiles, posts, comments, followers and account audits from X, Instagram, TikTok, YouTube, Reddit, Threads, LinkedIn, Facebook, Bluesky, Telegram, Hacker News and Substack.","actors":31},"categories":["SOCIAL_MEDIA","LEAD_GENERATION","AUTOMATION"],"availability":"on_request","seoTitle":"TikTok Engagement Rate API – $13 per 1,000 accounts","seoDescription":"TikTok engagement rate calculator and account audit API: average views, engagement, posting frequency and top videos of any public account. $13 per 1,000.","summary":"TikTok Engagement Rate & Audit gives a one-row audit of any public TikTok account: the profile (followers, following, total likes, videos, bio, link, verification, region) plus analytics computed over its latest videos: average and median views, average likes/comments/shares/saves, engagement rate by followers and by views, views per follower, posting frequency, average length, the three most played videos, top hashtags and sounds, paid-partnership share and the best posting hour (UTC). Built for influencer vetting, creator pricing, competitor benchmarking and agency reporting.","pricing":{"model":"pay-per-event","currency":"USD","billedBy":"Apify","freePlanMaxItemsPerRun":10,"events":[{"name":"tiktok-account-audit","title":"TikTok account audit","description":"Charged once per account: profile plus views, engagement rates, posting frequency, top videos, hashtags, sounds and best posting hour over its latest videos (first page of the feed).","priceUsd":0.013},{"name":"tiktok-audit-extra-page","title":"Extra videos page","description":"Charged per additional page of videos read when the first page does not reach sampleSize (page size is set by TikTok).","priceUsd":0.007},{"name":"tiktok-account-profile-only","title":"TikTok profile snapshot","description":"Charged instead of tiktok-account-audit when only the profile could be delivered (private account, no videos, or videos unavailable).","priceUsd":0.0065}]},"input":{"description":"List TikTok accounts. Each account produces one dataset record with its profile and statistics over its latest videos.","required":["handles"],"fields":[{"name":"handles","title":"Accounts","type":"array","required":true,"description":"TikTok handles (with or without @) or profile URLs (https://www.tiktok.com/@nasa), one per line. Duplicates are removed. Accounts on the Apify free plan can process up to 10 accounts per run.","prefill":["nasa"],"editor":"stringList"},{"name":"sampleSize","title":"Videos to analyze","type":"integer","required":false,"description":"Latest videos sampled per account (5–100). The first page of the feed is included in the audit price; each further page is charged as tiktok-audit-extra-page.","default":30,"minimum":5,"maximum":100},{"name":"includeVideos","title":"Include sampled videos","type":"boolean","required":false,"description":"Add the sampled videos (id, url, description, plays, likes, comments, shares, date, hashtags, sound) to each record.","default":false},{"name":"maxItems","title":"Max accounts","type":"integer","required":false,"description":"Safety cap on how many accounts are processed in this run.","default":500,"minimum":1,"maximum":5000},{"name":"concurrency","title":"Concurrency","type":"integer","required":false,"description":"Accounts processed in parallel (1–5).","default":3,"minimum":1,"maximum":5},{"name":"itemTimeoutSecs","title":"Per-account timeout (seconds)","type":"integer","required":false,"description":"Time limit per account; video paging stops early when it is near.","default":300,"minimum":60,"maximum":1800},{"name":"includeRaw","title":"Include raw upstream response","type":"boolean","required":false,"description":"Attach the unmodified profile and video payloads under `raw` (larger output).","default":false}]},"exampleInput":{"handles":["nasa"]},"outputFields":[{"name":"input","type":"string | object","title":"Input","description":"The input item this record corresponds to."},{"name":"status","type":"string","title":"Status","description":"ok (auditType full or profile-only, charged) | not_found (unknown account, not charged) | error | skipped_invalid | skipped_budget | skipped_free_plan","example":"ok"},{"name":"charged","type":"boolean","title":"Charged","description":"Whether this record incurred a pay-per-event charge."},{"name":"chargedEvent","type":"string","title":"Charged event","description":"Pay-per-event event charged for this record."},{"name":"source","type":"string","title":"Source","description":"Upstream data source (scrapecreators = ScrapeCreators, public TikTok data)."},{"name":"fetchedAt","type":"string","title":"Fetched at","description":"ISO timestamp."},{"name":"error","type":"object","title":"Error","description":"code / message when status is not ok (or a partial failure)."},{"name":"warnings","type":"array","title":"Warnings","description":"Non-fatal notes (partial data, stopped early, free-plan caps)."},{"name":"found","type":"boolean | null","title":"Found","description":"Account exists."},{"name":"auditType","type":"string | null","title":"Audit type","description":"full (profile + video stats) or profile-only (private / no videos / videos unavailable)."},{"name":"handle","type":"string | null","title":"Handle","description":"TikTok username."},{"name":"userId","type":"string | null","title":"User id","description":"Numeric TikTok id."},{"name":"secUid","type":"string | null","title":"secUid","description":"TikTok secure user id."},{"name":"profileUrl","type":"string | null","title":"Profile URL","description":"https://www.tiktok.com/@<handle>."},{"name":"nickname","type":"string | null","title":"Nickname","description":"Display name."},{"name":"bio","type":"string | null","title":"Bio","description":"Profile bio."},{"name":"bioLink","type":"string | null","title":"Bio link","description":"Link in bio."},{"name":"followers","type":"integer | null","title":"Followers","description":"Follower count."},{"name":"following","type":"integer | null","title":"Following","description":"Accounts followed."},{"name":"likes","type":"integer | null","title":"Total likes","description":"Lifetime likes received."},{"name":"videoCount","type":"integer | null","title":"Videos","description":"Total videos."},{"name":"friendCount","type":"integer | null","title":"Friends","description":"Mutual follows."},{"name":"isVerified","type":"boolean | null","title":"Verified","description":"Verified badge."},{"name":"isPrivate","type":"boolean | null","title":"Private","description":"Private account."},{"name":"isOrganization","type":"boolean | null","title":"Organization","description":"Organization account."},{"name":"isCommerceUser","type":"boolean | null","title":"Commerce","description":"Commerce / seller account."},{"name":"avatarUrl","type":"string | null","title":"Avatar","description":"Avatar image URL."},{"name":"region","type":"string | null","title":"Region","description":"Account region."},{"name":"language","type":"string | null","title":"Language","description":"Account language."},{"name":"createdAt","type":"string | null","title":"Created","description":"Account creation date (ISO), when reported."},{"name":"sampleSizeRequested","type":"integer | null","title":"Sample size requested","description":"sampleSize input."},{"name":"videosAnalyzed","type":"integer | null","title":"Videos analyzed","description":"Latest videos in the sample (pinned excluded)."},{"name":"pinnedExcluded","type":"integer | null","title":"Pinned excluded","description":"Pinned videos left out of the stats."},{"name":"avgViews","type":"integer | null","title":"Avg views","description":"Mean plays per sampled video."},{"name":"medianViews","type":"number | null","title":"Median views","description":"Median plays per sampled video."},{"name":"avgLikes","type":"number | null","title":"Avg likes","description":"Mean likes per sampled video."},{"name":"avgComments","type":"number | null","title":"Avg comments","description":"Mean comments per sampled video."},{"name":"avgShares","type":"number | null","title":"Avg shares","description":"Mean shares per sampled video."},{"name":"avgSaves","type":"number | null","title":"Avg saves","description":"Mean saves (collects) per sampled video."},{"name":"engagementRatePct","type":"number | null","title":"Engagement rate %","description":"(avgLikes + avgComments + avgShares) ÷ followers × 100."},{"name":"engagementRateByViewsPct","type":"number | null","title":"Engagement / views %","description":"Σ(likes + comments + shares) ÷ Σ plays × 100."},{"name":"viewsPerFollowerPct","type":"number | null","title":"Views / follower %","description":"avgViews ÷ followers × 100."},{"name":"postingFrequencyPerWeek","type":"number | null","title":"Posts per week","description":"Sampled videos ÷ weeks from the oldest sampled video to fetch time."},{"name":"sampleWindowDays","type":"number | null","title":"Sample window (days)","description":"Days from the oldest sampled video to fetch time."},{"name":"avgDurationSecs","type":"integer | null","title":"Avg duration (s)","description":"Mean video length."},{"name":"topVideos","type":"array","title":"Top videos","description":"Up to 3 most played sampled videos { videoId, url, description, views, likes, createdAt }."},{"name":"topHashtags","type":"array","title":"Top hashtags","description":"Up to 10 { tag, count }: sampled videos using the hashtag."},{"name":"topSounds","type":"array","title":"Top sounds","description":"Up to 5 { sound, count } ('title — author')."},{"name":"paidPartnershipSharePct","type":"number | null","title":"Paid partnership %","description":"Share of sampled videos flagged as paid partnership (when reported)."},{"name":"postingHoursUtc","type":"array","title":"Posting hours (UTC)","description":"{ hourUtc, posts, avgEngagement } for each hour with posts."},{"name":"bestPostingHourUtc","type":"integer | null","title":"Best hour (UTC)","description":"Hour with the highest mean likes + comments + shares (hours with ≥ 2 videos preferred)."},{"name":"mostActivePostingHourUtc","type":"integer | null","title":"Most active hour (UTC)","description":"Hour with the most sampled videos."},{"name":"newestVideoAt","type":"string | null","title":"Newest video","description":"ISO."},{"name":"oldestVideoAt","type":"string | null","title":"Oldest sampled video","description":"ISO."},{"name":"pagesFetched","type":"integer | null","title":"Pages fetched","description":"Video feed pages fetched."},{"name":"extraPagesCharged","type":"integer | null","title":"Extra pages charged","description":"Pages charged as tiktok-audit-extra-page."},{"name":"sampleStopReason","type":"string | null","title":"Sample stop reason","description":"limit | end | budget | deadline | aborted | empty_pages | max_pages | error."},{"name":"videos","type":"array","title":"Sampled videos","description":"Only with includeVideos: normalized videos (plays, likes, comments, shares, saves, hashtags, sound…)."}],"outputExample":{"input":"nasa","found":true,"auditType":"full","handle":"nasa","userId":"6750","profileUrl":"https://www.tiktok.com/@nasa","nickname":"NASA","bio":"Exploring the universe","followers":2300000,"following":5,"likes":41000000,"videoCount":640,"isVerified":true,"isPrivate":false,"region":"US","sampleSizeRequested":30,"videosAnalyzed":30,"pinnedExcluded":0,"avgViews":182000,"medianViews":96000,"avgLikes":14100.5,"avgComments":210.3,"avgShares":380.1,"avgSaves":920.4,"engagementRatePct":0.639,"engagementRateByViewsPct":7.95,"viewsPerFollowerPct":7.91,"postingFrequencyPerWeek":3.5,"sampleWindowDays":60,"avgDurationSecs":41,"topVideos":[{"videoId":"74…","url":"https://www.tiktok.com/@nasa/video/74…","description":"Artemis II rollout…","views":1900000,"likes":160000,"createdAt":"2026-09-30T16:00:00.000Z"}],"topHashtags":[{"tag":"space","count":18},{"tag":"nasa","count":15}],"topSounds":[{"sound":"original sound — nasa","count":22}],"paidPartnershipSharePct":0,"postingHoursUtc":[{"hourUtc":16,"posts":9,"avgEngagement":21000}],"bestPostingHourUtc":16,"mostActivePostingHourUtc":16,"newestVideoAt":"2026-10-13T16:00:00.000Z","oldestVideoAt":"2026-08-15T18:00:00.000Z","pagesFetched":1,"extraPagesCharged":0,"sampleStopReason":"limit","status":"ok","charged":true,"chargedEvent":"tiktok-account-audit","source":"scrapecreators","fetchedAt":"2026-10-14T10:00:00.000Z"},"faq":[],"mcpExamplePrompt":"Audit the TikTok accounts @nasa and @natgeo: compare their engagement rate, average views, posting frequency and top videos.","related":["instagram-account-audit","youtube-channel-audit","x-account-overview","tiktok-user-videos"],"urls":{"site":"https://www.sfoln.com/actors/tiktok-account-audit/","siteJson":"https://www.sfoln.com/actors/tiktok-account-audit.json","siteMarkdown":"https://www.sfoln.com/actors/tiktok-account-audit.md","runSync":"https://api.apify.com/v2/actors/sfoln~tiktok-account-audit/run-sync-get-dataset-items","runAsync":"https://api.apify.com/v2/actors/sfoln~tiktok-account-audit/runs","mcp":"https://mcp.apify.com?tools=sfoln/tiktok-account-audit","requestAccess":"mailto:contact@sfoln.com?subject=Access%20request%3A%20TikTok%20Engagement%20Rate%20%26%20Audit%20(sfoln%2Ftiktok-account-audit)&body=Please%20publish%20tiktok-account-audit.%20What%20we%20plan%20to%20use%20it%20for%3A"},"publisher":{"name":"SFOLN LLC","apifyUsername":"sfoln","url":"https://www.sfoln.com","apifyProfile":"https://apify.com/sfoln","email":"contact@sfoln.com"},"generatedAt":"2026-10-22T04:28:58.477Z"}