curl -fsSL https://getstream.io/cli.sh | bash
getstream skillsModeration
Stream Moderation screens text, images and video with AI engines and configurable rules, and queues borderline cases for human review. Use it with Stream Chat, or send any platform's content through the API.
Start here
How the pieces fit together
Your backend sends content through a moderation check, and the response recommends an action based on your policy: keep the content, queue it for human review, or remove it. The getting started guide walks through creating your first policy.
flowchart LR
content[User content] --> check[Moderation check]
check --> rec{recommended_action}
rec -->|keep| keep[Your app keeps it]
rec -->|flag| queue[Review queue]
rec -->|remove| removed[Your app removes it]
removed -.->|for audit and appeals| queue
SDKs
Server Side SDKs
Moderation is configured, queried and enforced from your backend.
Build with AI
Your AI agent can work with Stream from the terminal with the Stream CLI. There's also an Agent Skills pack so it can look up docs and configure your app.
Platform
Users, auth and the rest of the account-level machinery work the same in every Stream product, so they are documented once in the platform docs. Moderation setups touch these first:
FAQ
Does Moderation require Stream Chat?
No. The Chat integration is built in, but the API checks content from any platform.
What can it check?
Text, images and video, judged by AI engines and the rules in your policy.
Does AI remove content on its own?
Your policy decides. A check returns keep, flag or remove; flagged content waits in a review queue for a human.
Is there a client SDK?
No. Moderation is configured, queried and enforced from your backend with a server-side SDK or the REST API.
Can I read these docs as markdown?
Append .md to any page URL. /llms.txt indexes every page.