Skip to main content
The simplest way to send content for moderation is as plain text strings. This works for any text-based content — AI responses, user messages, documents, and more.

Basic Text Format

Pass the content directly as a string in the content field:
This is the most common format and works for the majority of use cases.

Multi-turn Content

For multi-turn interactions, include all relevant messages to give White Circle the full context:
Only the last message in the array is evaluated for policy violations and metrics. Earlier messages provide context but are not themselves checked.
Don’t want to send the entire history every time? Use Context Merging to send only new messages and let White Circle automatically combine them with the previous content.

Structured Text Format

You can also use the explicit structured format with type: "input_text". This is equivalent to the string format but allows you to mix text with images in the same message:
This format becomes necessary when you need to combine text and images in a single message. See Image Content for details.

Group Conversations

When moderating content from multiple users (e.g., group chats, forums, collaborative documents), include the user.id in each message’s metadata to identify who sent what:
Including user.id in metadata enables Risk Scoring. You can also include user.email and user.ip for stronger cross-session correlation.

Why User IDs Matter in Group Content

Without user IDs, White Circle only knows that someone in the group sent violating content. With user IDs:
  • Pinpoint the source — know exactly which user triggered the violation
  • Track repeat offenders — build risk profiles per user across all their sessions
  • Enable targeted actions — take action against specific users, not the whole group

Best Practices

If your AI has a system prompt, include it in the check. This helps White Circle understand the intended behavior and detect violations that involve circumventing instructions.
Moderate both sides of the interaction:
  • User messages may contain harmful requests, attempts to jailbreak the AI, or policy-violating content
  • Assistant messages may contain inappropriate responses, leaked information, or harmful advice
For ongoing interactions, use external_session_id to:

Response

For text-only requests, the response still uses the session envelope. In that case, artifacts is typically empty:
For the full session envelope shape, see Check Content.