How it works
From content ingestion to automated action in one pipeline.
1. Ingestion
Content arrives via API, webhook, or social platform connector.
2. AI Moderation
Smart routing sends content to the best provider. Standardized result returned.
3. Rules & Actions
Rules engine evaluates results. Actions execute automatically.
4. Manual Review
Edge cases flagged for human moderators to approve or reject.
Content arrives from anywhere
Submit content through any channel. Use the direct API for programmatic access, configure webhooks to receive content from external platforms, or set up native social media connectors that ingest comments and posts automatically.
- API: POST /v1/moderations for single or batch moderation
- Webhooks: Generic endpoint receives and normalizes external payloads
- Connectors: Native Facebook, YouTube, Discord integration
Example: Facebook comment
// Facebook sends comment via webhook
{
"source": "facebook",
"content_id": "comment_123",
"author_id": "user_456",
"text": "Comment text here...",
"metadata": {"post_url": "..."}
} AI moderates the content
Content is routed to the best available provider based on language, content type, category requirements, and cost. Each provider returns standardized results with scores from 0.0 to 1.0 across 17 content categories.
- Smart routing: Picks the best provider if not specified
- BYOK: Use your own provider API keys (or use platform keys)
- Standardized output: Same format regardless of provider behind the scenes
Standardized response
{
"model": "openai/omni-moderation-latest",
"results": [{
"category": "hate",
"score": 0.02,
"flagged": false
}],
"flagged": false,
"usage": {
"latency_ms": 243,
"provider": "openai"
}
} Rules enforce your policy
Configure rules that trigger automatic actions based on moderation results. Rules are evaluated by priority. The first matching rule executes its actions.
if hate > 0.8 → hide + flag_for_review
if sexual/minors > 0.5 → delete + notify_webhook
if spam > 0.7 → mark_as_spam (YouTube)
Rule configuration
{
"name": "Hide hate speech",
"priority": 10,
"conditions": [{
"category": "hate",
"operator": "gte",
"score": 0.8
}],
"actions": [{
"type": "hide"
}]
} Review edge cases manually
Content that doesn't trigger a definitive rule can be flagged for manual review. Human moderators access the review queue, see the content and its moderation results, and make final decisions.
- GET /v1/reviews/items — browse flagged content
- POST /v1/reviews/items/{id}/resolve — approve or reject
- Webhook notifications for new review items
Everything is logged
// Complete audit trail for every content item
{
"content_id": "...",
"source": "webhook",
"platform": "facebook",
"status": "actioned",
"moderation": {
"provider": "openai",
"flagged": true,
"results": [...]
},
"actions": [{
"rule": "Hide hate speech",
"type": "hide",
"status": "executed"
}]
} Ready to simplify your moderation stack?
Deploy in minutes with Docker or start a free trial. One API for every moderation provider, with no vendor lock-in.