Content rules decide Allow, Review or Reject
An ordered list of rules on each template reads the scores, the author and the fields, and the first rule that matches decides.
- Rules and simulation on Starter and up
- Dry run on every plan
descriptionOak table, seats six. Cheaper if you write me on https://t.me/seller
- Author status
- Enabled
- Author trust level
- New
- Links & contact details0.90
- Toxicity0.12
- 01Block banned authorsif author is not enabledReject
- 02Zero tolerance for hateif Hate speech is flaggedReject
- 03Illicit goodsif Illicit & regulated goods is flaggedReject
- 04No sexual contentif Sexual content is flaggedReject
- 05Allow established authorsif trust level is at least regularAllow
- 06Links from new accountsif trust level is at most new and Links & contact details is flaggedReview
The response names the rule that decided.
Sample data
Six conditions a rule can check
A condition reads a policy's flag or score, the author's status or trust level, a field of the submission, or its language.
Every condition must holdA rule takes 1 to 20 conditions. For an either-or, write two rules.
Drafted, then publishedUp to 100 rules a template, edited in the dashboard and live once you publish the version.
- Policy is flaggedif Hate speech is flagged
policy_flagged - Policy scoreif Toxicity is at least 0.90
policy_score - Author statusif author is not enabled
author_status - Author trust levelif trust level is at least regular
author_trust - Field valueif Price is at least 1000000
field_value - Languageif language is one of Portuguese, Spanish
language
Sample data
When no rule matches, severity decides
Severity is the highest weighted policy score, set against two thresholds you choose for each template.
Observed policies stay outA policy in Observe mode does not count toward severity. A rule can still read it.
The response carries a label
severityis none, low, medium, high or critical. Critical starts at 0.95.
| Policy | Score | Weight | Weighted |
|---|---|---|---|
| Toxicity | 0.06 | × 1 | 0.06 |
| Swear words | 0.40 | × 0.8 | 0.32 |
| Meaningless text | 0.12 | × 0.5 | 0.06 |
Sample data
Simulate a draft on the last seven days
Simulation replays up to seven days of stored decisions against the draft's rules and thresholds, with no model call and nothing charged.
Covers rules, thresholds and triggersIt also replays rule order and policy modes, on the newest 20,000 moderations at most.
Reuses the stored scoresA new policy, guideline or wordlist, edited AI instructions and a changed weight are not replayed.
In this sampleDraft v4 switches off rule 05, Allow established authors.
Simulation
Replay last 7 days- Published
- 850
- live 900 · -50
- Sent to review
- 340
- live 300 · +40
- Rejected
- 50
- live 40 · +10
1,240 moderations replayed over 7 days50 would change
mod_1B7lY4kzM9n2Qx8sRt3wVuAllowReviewmod_4Tq8ZrW2nK6yHb1DsF9gLeAllowReviewmod_7Xc3VmP5aJ0uNd8RtY2kQhAllowReject
Sample data
Run the rules on live traffic before you enforce them
In dry run the published rules decide every request as usual, and each result is marked dry_run: true so your platform knows to hold off.
Two ways to switch it onFor a whole project in its settings, or on a single request with the
dry_runflag.Checks and webhooks keep runningA dry run costs the same checks, and each webhook carries
dry_run: true.
Storage and enforcement
Dry run
Results are computed and the review queue fills, but your platform is told not to enforce them.
Dry run is on for every request
Every response carries dry_run: true and author history is not updated. Turn it off once the rules look right.
{ "object": "moderation", "recommendation": "review", "rule": { "id": "r6", "action": "review" }, "usage": { "checks": 1 }, "dry_run": true}Sample data

Start moderating your users' content
Create an API key, send your first request and get a verdict back.