Skip to main content
Striking turns policy violations into user-level actions. Use it after you have a deployment and the policies you want to score.

Prerequisites

Before you configure striking, make sure you have:
  • Deployment with the policies you want to score
  • Policies with the right flagged content
  • User metadata in your content checks
  • A plan for how your app will apply the resulting action
White Circle does not enforce account restrictions directly. Your application must apply the returned action state to your users.

Set it up

1

Set severity levels

Open the Policies page and assign each policy a severity level: Critical, High, Medium, or Low.Use severity to express how much a violation should contribute to a user’s strike history.
2

Review actions

Decide which effective actions your app will honor.You can keep the default actions (none, throttle, warn, suspend, ban), delete some of them, or define your own custom actions.Keep the thresholding simple so support and moderation teams can explain the result quickly.
3

Submit user metadata

Include stable identifiers in metadata.user on content checks so White Circle can connect sessions, strikes, and appeals to the same user.
4

Check created actions

Use Risk Scoring to inspect the current action and strike history, or subscribe to Webhooks for strike.action.updated and strike.action.expired.

How striking works in production

Once configured, the strike system runs as a loop:
  1. You send content checks with stable user identifiers.
  2. White Circle evaluates policy violations and updates strike state.
  3. White Circle calculates the current effective action for that user.
  4. Your application applies that action and keeps it in sync over time.

How points and actions are calculated

Use these rules to understand exactly how strike points become user actions:
  1. If a session has multiple violations, only the violation with the highest severity contributes points for that session.
  2. A strike contributes points until the strike expiration time configured in that severity level.
  3. White Circle sums only active strike points for each user.
  4. When the sum of active points exceeds an action threshold, that action is applied to the user.
  5. The action expiration time is the later of the configured action duration or the moment when active points drop below that action’s threshold.
  6. Permanent actions never expire.
  7. Severity-level and action configuration changes are not retroactive. Existing strikes and actions stay unchanged, and updated settings apply only to new strikes and actions.

Worked example timeline

Assume your setup is:
  • Critical = 10 points, strike expires in 30 days
  • High = 6 points, strike expires in 14 days
  • Medium = 3 points, strike expires in 7 days
  • Low = 1 point, strike expires in 3 days
  • Warn threshold = 6 points, configured duration = 24 hours
  • Suspend threshold = 10 points, configured duration = 3 days
  • Ban threshold = 20 points, permanent
In this example, Suspend lasts until Day 32, not Day 5, because action expiration uses the later of:
  • configured action duration, and
  • the moment active points drop below the threshold.
If Ban is applied, it never expires automatically.
Configuration updates are not retroactive. Existing strikes and actions keep their original values, and new settings apply only to new strikes and actions.
The most common integration pattern is:
  • Use Check Content for normal moderation traffic.
  • Use Create Strike when you need to add strikes directly from your own workflows.
  • Use Risk Scoring to fetch the current action and full strike history.
  • Use Webhooks to react to real-time action changes (strike.action.updated, strike.action.expired).

Core endpoints

Check Content

Evaluate user/assistant content and generate policy violations.

Create Strike

Add a strike directly when your internal workflow requires manual insertion.

Risk Scoring

Read current action, strike points, and strike timeline for a user.

Appeals

Use appeals to let users challenge strikes and route those challenges to your reviewers.

Endpoints

Create Appeal

Create a new appeal for a strike.

Get Appeal

Retrieve current appeal status and reviewer outcome fields.

Strike relationship

An appeal does not replace the strike record. It adds workflow state to the strike so you can show whether the strike is under review, resolved, or canceled. When an appeal changes strike impact, refresh the user state with Risk Scoring and apply updated restrictions in your own system.

Typical flow

  1. Create a strike with Create Strike or via session checks.
  2. Let the user submit an appeal with Create Appeal.
  3. Review the appeal in your tooling and track status with Get Appeal.
  4. If outcome changes enforcement, consume webhook updates and apply the new action to the user account.

Next steps

Risk Scoring

See the user-level strike response and appeal data.

Webhooks

Sync effective actions and strike changes in real time.