Content Moderation Infrastructure
Moderate UGC with speed, control, and auditability.
Tamis combines deterministic rules, sidecar AI, and a hard manual review queue so you can ship safer communities without sacrificing latency.
202 async ingest
Fast message intake
SSE + webhooks
Realtime event fanout
Full audit trail
Decisions stay traceable
Live moderation states
pending · inreview · accepted · rejected
The Problem
Unsafe content moves faster than manual teams.
If moderation is only manual, response time collapses at scale. If moderation is only AI, edge cases and policy exceptions become operational risk.
The Tamis Approach
Blend fast automation with hard human control.
Every message follows a deterministic pipeline: heuristics and AI where safe, explicit human approval where required, and complete visibility from trigger to outcome.
- InReview is a true hold state: no hidden AI reprocessing.
- Project-scoped tokens and scopes separate runtime responsibilities.
- Webhook envelopes and SSE streams keep downstream systems in sync.
Capabilities
Everything needed for production moderation pipelines.
Built for teams that need predictable behavior, reliable integrations, and auditable decisions.
Pluggable AI classifiers
Run toxicity, language, and spam sidecars with threshold and action control per classifier.
Deterministic rule engine
Apply regex, language, and heuristic constraints before expensive async work.
Post-decision transformations
Mask, redact, or replace content with ordered and auditable transformation steps.
Realtime moderation streams
Broadcast `message.finalized` and review events via SSE for operator dashboards.
Manual review queue
Approve or reject `inreview` messages explicitly with decision metadata.
Scoped project credentials
Issue and rotate access or stream tokens with least-privilege scopes.
Workflow
From message intake to final decision in four clear stages.
The pipeline stays readable under load, and every state transition is observable.
Ingest
Your app submits content with metadata and receives a fast asynchronous acknowledgement.
POST /api/v1/projects/:id/messages
Analyze
Rules and classifiers evaluate risk while preserving original content and score details.
status: pending
Review when required
Policy-sensitive messages move to manual hold for explicit approve/reject decisions.
status: inreview
Finalize and notify
Final outcomes trigger webhook envelopes, stream events, and immutable audit entries.
message.finalized
Developers
Integrate in minutes with a concise API surface.
Message ingest, stream subscriptions, and review actions are designed to stay simple in production.
Send messages
Asynchronous intake endpoint for your app traffic.
curl -X POST http://localhost:5001/api/v1/projects/PROJECT_ID/messages -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Content-Type: application/json" -d '{"content":"Message from app","external_id":"user_42"}'Subscribe to outcomes
Receive moderation results in realtime.
curl -N http://localhost:5001/api/v1/projects/PROJECT_ID/events/stream?token=YOUR_STREAM_TOKEN -H "Accept: text/event-stream"Resolve manual holds
Explicit approve/reject flow for `inreview` messages.
curl -X POST -H "Authorization: Bearer YOUR_ACCESS_TOKEN" "http://localhost:5001/api/v1/projects/PROJECT_ID/reviews/MESSAGE_ID/approve"Governance
Built for teams that need confidence and traceability.
Audit-first design
Configuration changes, decisions, and exports remain queryable in project activity logs.
Policy separation
Rules, classifiers, transformations, and review actions remain isolated and testable.
Operational safety
Cooldowns, scopes, retention controls, and signed event envelopes reduce integration risk.
Start moderating with a system your team can trust.
Create your workspace, issue credentials, and connect your first message stream today.