TikTok Shadow Ban Checker — $10/1K · Public Video Visibility
Pricing
from $10.00 / 1,000 results
TikTok Shadow Ban Checker — $10/1K · Public Video Visibility
Check public TikTok video signals and report observed score and coverage; no definitive shadow-ban diagnosis. Bulk export: JSON, CSV, Excel and API. PPE: $10/1K video checks; start fee, usage extra.
Pricing
from $10.00 / 1,000 results
Rating
0.0
(0)
Developer
Apivault Labs
Maintained by CommunityActor stats
0
Bookmarked
69
Total users
5
Monthly active users
19 days ago
Last modified
Categories
Security
Limited permissionsShare
TikTok Shadow Ban Checker — Video Visibility & Restriction Assessment
Assess observable public signals for specific TikTok videos. Receive matching video metadata, visibility and interaction observations, a nullable eligibility assessment, signal coverage and practical next steps. Supports full video URLs, official vm.tiktok.com / vt.tiktok.com share links, pasted lists and batch runs.
This independent public-data assessment cannot certify account status, guarantee reach, or establish appearance in every user's feed. Use TikTok's Account status and the video's in-app analytics for official notices. Private, removed, region-restricted or inaccessible videos may yield no assessment.
TikTok video-visibility checks for creator support workflows
Use this TikTok shadow ban checker as a public-signal assessment for a specific video. It can help a creator or support analyst organize visible metadata, restriction/interaction observations and questions to verify in TikTok's own interface. It does not establish an official account ban, explain the recommendation algorithm or prove that a post reached every audience.
| Workflow | What to inspect | What cannot be concluded |
|---|---|---|
| Review one accessible public video | Matching videoId and observed signals | Official account status or guaranteed reach |
| Investigate a reported visibility issue | assessmentStatus, unknown fields and coverage | Causation from low views alone |
| Compare a small submitted list | Per-video results plus SUMMARY failures | A paid result for every supplied URL |
| Prepare next verification steps | recommendations and source observations | Guaranteed recovery after following advice |
| Save a dated support worksheet | Requested video, check time and null verdicts | A persistent cross-run history maintained by the Actor |
A useful public assessment may still have shadowbanned=null. Keep unknown distinct from false. Interaction settings, source access, low engagement and official recommendation eligibility answer different questions.
Quick start
{"urls":["https://www.tiktok.com/@tiktok/video/7480279424202575159"],"includeRecommendations":true,"includeSummary":true,"maxRetries":3,"proxyCountry":"US"}
Replace the example with a currently accessible video. Alternatively paste newline/comma-separated links into urlText. Both fields are merged and deduplicated. Profile/account collection is unsupported; pass individual videos.
Understand the result
| Field | Meaning |
|---|---|
success | A matching video assessment was collected; this does not mean unrestricted. |
assessmentStatus | restriction_signal, no_restriction_signals, or unknown. |
shadowbanned | Compatibility field: true when an explicit eligibility restriction is observed; false only when all checked eligibility fields permit it; null when unresolved. Not an official account verdict. |
signalCoveragePercent | Weighted coverage of eligibility observations, not confidence, probability or collection success rate. |
videoHealthScore | 0–100 score over observed eligibility fields; null if none are available. Missing fields get no points. |
videoHealthStatus | Observed score band; unknown if no score is available. High score with low coverage is incomplete evidence. |
heuristicRestrictionRisk | Advisory privacy/moderation/interaction risk, not proof of recommendation suppression. |
banReasonHints | Observed restrictions/settings; disabled interactions alone do not prove a shadow ban. |
recommendations | Verification steps and settings to review. |
Version 1.4 changes score semantics: the old formula awarded partial credit to unknown fields and could return about 52–62 without eligibility evidence. A score of 100 with coverage of 44 still leaves unobserved signals. Neither number means 100% valid checks.
A matching video with observable interaction/privacy signals can have eligibility unknown. Such useful assessments enter the Dataset. Metadata without observable restriction signals, oEmbed-only records and failures go to SUMMARY without paid result rows. Missing metadata counters currently retain legacy zero defaults: do not interpret absent values as independently measured zero.
Diagnostics and pricing
The Actor output links to Dataset results and the SUMMARY Key-Value Store record. SUMMARY contains requested, analyzed, partial, failed, failures and partialResults. Batch metrics include eligibilityKnownCount and eligibilityUnknownCount. shadowbannedPct excludes unknown verdicts; avgHealthScore excludes null scores. A successful run can have partial coverage.
$10 per 1,000 collected assessments ($0.01 per Dataset row). Current pricing also includes $0.05 per 1,000 starts, with platform/proxy/storage resources separately paid by the user. See live Pricing for current terms. Failures, metadata-only records and aggregate summaries do not create result charges; resources may cost on an empty run.
Every HTTP dispatch, including allowed redirects and fallback, selects a proxy. Default uses Apify Residential; customProxyUrls supplies an optional round-robin list. A new proxy selection does not guarantee a distinct physical IP or access. proxyCountry requests a two-letter region; empty is automatic. More retries may help transient failures but cannot recover deleted/private videos or guarantee 100% coverage.
Automation and AI
Use Apify MCP to fetch the input schema, call apivault_labs/tiktok-shadow-ban-checker, wait, then read Dataset and SUMMARY. Preserve nulls and report coverage. Do not claim official account bans from interaction settings.
Python SDK and n8n community node are available. Their separate packages are not changed in this release; consumers should check handling of the new nullable fields.
Small public-video assessment inputs
Use a video that is currently accessible in your intended context. The recorded sample below can become unavailable. Start with one video and the minimum supported attempt count; more attempts or a requested country do not guarantee access and should not be used as evidence of a different account status.
Check one video with minimum attempts
{"urls": ["https://www.tiktok.com/@tiktok/video/7480279424202575159"],"includeSummary": true,"includeRecommendations": true,"maxRetries": 1,"proxyCountry": "US"}
maxRetries is the attempts-per-video setting in this contract, with minimum 1. Even a useful delivered assessment may have unknown eligibility. Read SUMMARY for metadata-only/failed entries instead of treating every submitted URL as a paid assessment.
Paste a video link as text
{"urlText": "https://www.tiktok.com/@tiktok/video/7480279424202575159","includeSummary": true,"includeRecommendations": true,"maxRetries": 1,"proxyCountry": "US"}
urlText accepts comma/newline-separated video links and merges them with urls. Profile/account URLs are not a substitute for individual video IDs. Short links can need a source redirect before identity is resolved.
Keep observations without advisory recommendations
{"urls": ["https://www.tiktok.com/@tiktok/video/7480279424202575159"],"includeSummary": true,"includeRecommendations": false,"maxRetries": 1,"proxyCountry": "US"}
This omits the recommendations array; it does not remove coverage limitations or provide a stronger official verdict. Preserve the raw nullable eligibility fields when exporting observations.
Deduplicate an exact repeated video input
{"urls": ["https://www.tiktok.com/@tiktok/video/7480279424202575159","https://www.tiktok.com/@tiktok/video/7480279424202575159"],"includeSummary": true,"includeRecommendations": true,"maxRetries": 1,"proxyCountry": "US"}
Identical supplied URLs are deduplicated. Do not assume every different short-link/alias form is a verified separate video or a free cross-run duplicate. Reconcile videoId in the results and failures before counting a batch.
Interpret restriction signals and unknown coverage
The compatibility field shadowbanned is not an official account ruling. An explicit observed eligibility restriction can make it true; false requires all checked eligibility observations to permit it; missing evidence leaves it null. heuristicRestrictionRisk separately summarizes privacy/moderation/interaction observations. Disabled comments, duets or shares can reflect settings rather than a hidden recommendation penalty.
signalCoveragePercent measures weighted availability of the checked eligibility observations. videoHealthScore scores observed eligibility fields, excluding missing ones. Neither is a probability, a calibrated accuracy score, a reach forecast or a percentage of successful checks. A score of 100 with low coverage is still incomplete evidence; no score can replace TikTok's official notices and the video's own analytics.
Keep the requested URL and returned videoId together. Matching video metadata without usable restriction/interaction observations is not a full assessment. Metadata-only/oEmbed fallback entries remain in SUMMARY rather than paid Dataset results. A missing or inaccessible video can reflect removal, privacy, region, login/source restrictions or a temporary failure; the Actor cannot turn that uncertainty into a specific ban reason.
Current metadata counters retain some legacy zero defaults when source fields are absent. Do not interpret those zeros as measured views/followers or build a precise engagement conclusion from them without source context. Low views or an engagement-rate change alone does not establish suppression, and comparing videos with different age/audience/content is not a controlled causal test.
For a support worksheet, save the run date, input, returned assessment status, observed/unknown fields and relevant diagnostics in your own destination. Use the in-app Account status and post analytics for official notices. Recommendations are suggestions to verify settings or notices, not a promise that changing them restores reach. These examples do not change a TikTok account, upload a post or send a message.
TikTok visibility checker API questions
Can I check my whole account from a username? This Actor accepts individual video URLs and supported share links. A sample of public videos cannot certify an account's overall distribution status.
Why was I charged when the verdict is unknown? A matching video with observable interaction/privacy signals can still form a useful collected assessment while official eligibility remains unresolved. Metadata-only records and failures are not result events. Review observedSignalCount, assessmentStatus and SUMMARY before interpreting a charged row.
What is the fee? One delivered assessment is $0.01, plus startup $0.00005 per GB with a one-event minimum and separately paid proxy/compute/storage. At 512 MB, one delivered row has $0.01005 in event fees before usage. A run with no paid assessment can still incur startup and resource costs.
Does proxyCountry simulate every viewer in that country? No. It requests routing context for the public check. It does not establish feed exposure, guarantee a distinct physical IP per attempt or prove that another region can see the same video. Custom proxy configuration, if supplied, has its own routing behavior.
Does a failure justify repeated retries? Inspect the actual error and wait for a relevant source/access change. More attempts cannot guarantee access to removed/private material. A source refusal is not evidence of recommendation suppression and should not be silently retried as if it were an empty valid result.
How should n8n or an agent summarize a batch? Count paid Dataset assessments separately from SUMMARY partialResults/failures. Exclude unknown verdicts from known-verdict percentages, preserve null scores, and report coverage. Use the existing matched integrations below; check that consumers handle nullable fields rather than coercing unknown into false.
n8n and developer integrations
Use this Actor in your automation or application with the existing community integrations below. An Apify account and API token are required; Actor and platform charges follow the current pricing.
- n8n community node: n8n-nodes-apivault-tiktok-shadowban. Install package name
n8n-nodes-apivault-tiktok-shadowbanin a self-hosted n8n instance that permits community packages. - Python client and examples: GitHub.
- n8n source and usage: GitHub.
- n8n source and usage: GitHub.
These are community packages. Publication on npm does not establish n8n verification or availability in n8n Cloud. Review the linked package README for supported inputs and setup.