Game chat moderation that knows trash talk from threats
A keyword filter cannot tell "I'm going to kill you" in a ranked lobby from a real threat, so it either censors the banter that makes your game fun or lets genuine abuse through. ModerateHQ reads each message with its context (the game, the channel, the recent conversation) and returns approved, flagged, or blocked in one API call.
500 free requests every month · No card to start
Moderating game chat is a different problem
Banter is part of the product
Competitive trash talk keeps players engaged. A filter that punishes "gg ez" punishes your most active players and pushes chat off-platform to places you cannot see.
Real harm hides in the noise
Slurs, hate speech, sexual harassment, and doxxing arrive in the same channel as taunts. The gaming policy acts only when it escalates beyond the game.
Scams target your players
Account phishing and trade scams cost players their accounts and cost you their trust. Typosquatted "support" links get blocked before anyone clicks.
What a verdict looks like
Real requests, real verdicts. The same words can be banter or a threat; the verdict follows the context you send.
“I'm going to kill you”
- channel
- ranked match chat
- history
- "gg that round was so close" · "haha you clutched it, rematch?"
In a ranked match this reads as trash talk about an in-game kill, not a real-world threat.
Drop the match context and the same line is flagged for human review.
“Your account has been flagged for a ban. Appeal within 24 hours at steamcommunlty-support.net or lose access permanently.”
A phishing lure using a typosquatted support domain to hijack player accounts.
“gg ez, you are actually terrible at this game”
Standard competitive trash talk, explicitly permitted by the gaming policy; it does not escalate beyond the game.
The whole integration
Send a POST with your API key, the content, and optional context. You get structured JSON back with the verdict, categories, and a reason. That is the entire integration.
$ curl https://api.moderatehq.com/v1/moderate/text \
-H "x-api-key: $MODERATEHQ_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "I'\''m going to kill you",
"policy": "gaming",
"context": {
"platform": "my-shooter",
"channelType": "ranked match chat",
"conversationHistory": [
"gg that round was so close",
"haha you clutched it, rematch?"
]
}
}'What the gaming policy covers
Competitive gaming context. Trash talk, taunting, and profanity are part of the culture and are permitted. Act only when it escalates beyond the game: credible real-world threats, slurs, hate speech, sexual harassment, doxxing, threats against someone's connection, or scams targeting players.
The full catalog, including the platform safety floor enforced on every request, is on the policies page and available programmatically without a key.
Frequently asked questions
Will this add lag to my chat?
Most verdicts return in a second or two. Many games display the message immediately and moderate in parallel, then remove it and act on the sender if the verdict comes back blocked. If you want to hold messages until they pass, budget for the round trip like any external call.
What does it cost at chat volume?
One credit per message checked; the Scale pack works out at $2.86 per 1,000 requests. You choose what to check: plenty of games moderate new accounts, reported players, and public channels heavily rather than every single message.
Can it moderate usernames and clan tags too?
Yes. It moderates any text you send, so usernames, clan names, and profile bios go through the same call as chat messages.
How does context actually change verdicts?
You can pass the platform, channel type, and recent messages with each request. The same words are then judged where they appear: a kill threat mid-match is banter, but without match context it goes to human review.
Keep the trash talk, lose the toxicity
Create an account, grab your API key, and send your first message with the gaming policy. The free tier needs no card.
Get started free