All use cases

Brand safety checks with an API: screen creators and content

November 8, 2026

Short answer

A brand safety check reads a creator's recent captions, video transcripts and comment threads, tags anything in your risk categories, and weights each hit by severity and age before a human decides. A deep screen of 100 creators across X, TikTok and Instagram takes about 5,300 credits on ScrapeIO, about $9.96 on the $47 pack.

A brand safety check asks one question before a partnership: is there anything in this creator's public content that the brand would not want next to its name? You answer it by reading their posts, what they say in their videos, and how their audience talks, then scoring what you find. The data takes a few dozen API calls per creator. The judgment stays with a person.

Who does this and why

  • Brand and legal teams sign off on creator partnerships and sponsorships.
  • Agencies screen a roster before pitching it to a client.
  • Creator marketplaces review sellers and applicants at scale.

This complements creator vetting, which checks whether reach and engagement are real. Brand safety checks the content itself.

The data you need

StepPlatformEndpointCredits
1. Posts and captionsXX user posts1 per page
1. Posts and captionsTikTok, InstagramTikTok profile videos, Instagram user posts1 per page
1. Posts and captionsYouTube, ThreadsYouTube channel videos, Threads user posts1 per page
2. What they say on cameraTikTok, YouTubeTikTok transcript, YouTube transcript1
2. What they say on cameraInstagram, XInstagram transcript (2), X post transcript (1)1 or 2
3. The audience around themTikTok, YouTubeTikTok comments, YouTube comments1 per page
4. Their other accountsCross-platformfind social profiles10

Worked example: 100 creators, deep screen

Per creator: 5 pages of X posts (5), 5 pages of TikTok videos (5), 3 pages of Instagram posts (3), transcripts of 30 TikTok videos (30), and comments on 10 posts (10). That is 53 credits per creator.

  • 100 creators x 53 = 5,300 credits = $9.96 on the $47 pack.
  • Monthly re-screen of the 20 you sign, new content only: 1 page per platform (3) + 8 transcripts (8) = 11 credits each, 220 credits a month, about $0.41.

Transcripts are most of the cost and most of the value. Much of the risk in video content is said, not written.

A risk taxonomy

Agree the categories and severities with the brand before you screen anyone. A starting set:

CategoryExamplesDefault severity
Hate and harassmentSlurs, targeted abuse, pile-ons5
Violence and dangerous actsThreats, dangerous challenges5
Adult contentExplicit material, links to it4
MisinformationHealth or election claims your brand cannot stand behind4
Drugs, alcohol, gamblingPromotion, especially to young audiences3
ProfanityHeavy swearing1 or 2, depending on brand
Competitor tiesRecent paid work for a direct competitor2
PoliticsPartisan content, if the brand stays neutral1 to 3

The score

Recent behavior matters more than a post from five years ago. Weight each hit by severity and age:

risk = sum( severity_i x 0.5 ^ (age_days_i / 180) )

A severity-4 post from today adds 4. The same post from 180 days ago adds 2, and from a year ago, 1. Then sort creators into three bands: green (no hits above severity 2), amber (score under your threshold, with hits a person should read) and red (any severity-5 hit in the last year, or a score above threshold). Every amber and red result gets a human review with the links in front of them.

Comments are scored separately. A creator is not responsible for every commenter, but a comment section full of abuse tells you what the brand would be standing next to.

Code: find risky transcript lines

import requests, re

KEY = "YOUR_KEY"
H = {"x-api-key": KEY}
TERMS = re.compile(r"\b(casino|betting|vape|giveaway scam)\b", re.I)

vids = requests.get("https://scrapeio.com/v3/tiktok/profile/videos",
                    params={"handle": "creatorhandle"}, headers=H, timeout=60).json()
for v in vids["data"]["items"][:10]:
    t = requests.get("https://scrapeio.com/v1/tiktok/video/transcript",
                     params={"url": v["url"]}, headers=H, timeout=60).json()
    text = str(t.get("data", ""))
    for m in TERMS.finditer(text):
        start = max(0, m.start() - 80)
        print(v["url"], "...", text[start:m.end() + 80].replace("\n", " "))

A keyword list finds candidates fast and cheaply. Pass each hit, with its surrounding text, to an LLM or a person to judge context.

Pitfalls

  • Context. Sarcasm, quoting someone to criticize them, and reclaimed slang all trip keyword lists. Never auto-reject on a keyword alone.
  • Language. Run lists in every language the creator posts in, or use a multilingual classifier.
  • Absence is not proof. Deleted posts are not visible. A clean screen means nothing was found in what is public now.
  • Fairness. Give the creator a chance to explain an old post before you drop them. People change.
  • Untrusted text. When an LLM reads posts or comments, any of them can contain instructions aimed at it. Keep the model's job narrow: classify, do not act.

Run it from an AI agent

The creator-vetting skill includes brand-safety checks. With the MCP server connected:

Screen @creatorhandle on TikTok and X for a family snack brand.
Read the last 100 X posts and transcripts of the last 20 TikToks.
Tag anything in these categories: hate, violence, adult, gambling,
alcohol, misinformation. Give each hit a link, a quote and a date.
Do not decide; list the evidence.

Asking for evidence instead of a verdict keeps the decision with you and makes the agent's mistakes easy to spot.

Doing it with ScrapeIO

Posts, transcripts and comments from X, TikTok, Instagram, YouTube and Threads come from one key with the same field names. A deep screen is about 53 credits per creator, and private or missing accounts are not charged.

100 free credits, no card. Credits never expire.

Get API key