Text moderation API that reads context, not just keywords.

Built for trust & safety teams. Check messages, comments, listings, reviews, and usernames in 50+ languages. Nora, your moderation agent, reviews every flag and recommends or takes action.

Incoming textLive
gg that last round was closeKeep · 22 ms
add me on wh4ts4pp +1 555 0199 for the real priceCircumvention · remove
¿Alguien sabe si sigue disponible?Keep · 31 ms
nobody wants you here, just leaveHarassment · flag
Great seller, shipped fastKeep · 19 ms
eBaySupercellPolymarketKalshiStravaRobinhoodStockXPhantom

Fast, accurate, and reliable at high volume.

Read the benchmark
  • 3.6B+text checks/month
  • <50mstext moderation
  • 98%catch rate
  • 99.999%uptime SLA
  • KalshiFed cut in Dec?
    Ttrader_kcpi print looks soft, buying yes
    Kept
    KalshiFed cut in Dec?
    Aalpha99DM me for insider picks, pay on telegram
    Removed · Scam
    Kalshi
  • Rahul SoodPay Seller
    Rahul SoodHey mate, yes it is. Happy to meet in Kogarah.
    Kept
    deals_auPay Seller
    deals_auPay via gumtree-pay.co/secure to hold it for you
    Removed · Scam
    Gumtree
  • Earnings talk2.1k members
    Llongterm_leeholding through earnings
    Kept
    Earnings talk2.1k members
    Jjen.wtext me +1 ••• •••• for my signals group
    PII masked · Platform bypass
    Robinhood

Stop scams, spam, and abuse in 50+ languages.

35+ harm categories out of the box, plus positive signals and any custom label you write in plain language.

#CategoryWhat it catches
01Harassment and abuseInsultsThreatsTrollingVulgarityBody shamingHumiliationSexual harassmentReputation harmNegative criticism
02Hate and discriminationHatredRacismMisogynyAbleismLGBTQIA+ phobia
03Violence and extremismTerrorismExtremismWeaponsDrugsIncluding references to terrorism.
04Child safetyCSAMPedophiliaIncluding references to pedophilia, and users who say they are underage.
05Self-harmContent about harming oneself.
06Sexual contentSexually explicit contentSextingDating solicitation
07Spam and fraudScamsSpamAdsFloodingLinksCounterfeit goodsPlatform bypassPlatform bypass means moving users off your platform.
08PrivacyPIIDoxxing
09Sensitive topicsPoliticsGeopoliticsFinanceHealth concernsCybersecurityBoycotts
10Positive signalsPositiveEncouragementSupportive messagesFair playSo you can measure community health.
11Your own lists and labelsCustomForbidden languageForbidden linksCustom labelsDescribe them in plain language, then set a severity:LowMediumHighCritical

Rules for what you already know.

Put deterministic rules on top of AI for the patterns you can name.

Explore the dashboard

Content rules

  • Blocklists with normalization

    Catch leetspeak and hidden characters.

    wh4ts4pp -> whatsapp
    blocklist matchMatch
  • Regex

    Match formats like phone numbers or codes.

    \+?\d[\d\s-]{7,}
    +1 555 0199Match
  • URL and domain protection

    Block links, with allowlists for trusted domains.

    bit.ly/gemzBlock
    getstream.ioAllow
  • Flood and duplicate-message rules

    Stop the same message posted over and over.

    3 in 30sFlood
  • Minimum text length

    Filter out empty or one-character spam.

    kToo short
    Great seller, shipped fastAllow

Two examples that become rules:

  • Spam
    @promo_99 · 0:00FREE GEMS click bit.ly/gemz
    Spam
    @promo_99 · 0:12FREE GEMS click bit.ly/gemz
    Spam
    @promo_99 · 0:24FREE GEMS click bit.ly/gemz
    Spam
    Becomes
    Spam floodEnabled
    WHENSame message 3+ times in 30s
    ANDLink not allowlisted
    THENRemoveShadowban 1 hour
  • Repeat harassment
    Sep 28you're trash, uninstall
    Insult
    Oct 2nobody wants you here
    Insult
    Todaygo cry somewhere else, loser
    Insult
    Becomes
    Repeat harassmentEnabled
    WHENLabel : Insult
    ANDSeverity ≥ medium
    AND2+ prior violations in 14 days
    THENBan 7 daysSend to team

Judged on context, not one message at a time.

Nora weighs conversation context, user history, and prior actions before acting, which cuts false positives.

Nora decisionThreat · classifier 0.77
“I'm going to destroy you in the final round tonight”
ContextTwo friends planning a match. Gaming idiom.
HistoryNo prior flags.
DismissedFalse positive · no action

Moderate any text, from any platform.

Send any text to the Check or Analyze API from your own backend: listings, reviews, comments, DMs, and bios.

Read the docs
const res = await client.moderation.check({
  entity_type: "review",
  entity_id: "review-551",
  entity_creator_id: "user-412",
  moderation_payload: {
    texts: ["add me on wh4ts4pp for the real price"],
  },
  config_key: "reviews",
});

// res.recommended_action -> "remove"

Stream moderation FAQs.

Test it on your own messages.

Run a sample of your flagged messages through Stream at no cost.