Skip to content

A template for every form your users fill in

A template says which fields a listing, a review or a message has, what each field must look like and which policies flag it or send it to review.

  • Templates are on Starter and up
  • Built, tested and published in the dashboard
  • AI instructions read the whole form at once
Acme Corp./Listings · Fields
Sample data
Form sent"template": "listings"1 of 4 fields valid
  • TitleLeather three-seat sofa
  • DescriptionBarely used, two years old.
  • Price450
  • Photos3 files
FieldTypeRuleValidationTriggers
TitletitleTextRequired5 to 120 charactersHate speech, flagsLinks & contact details, flags
DescriptiondescriptionTextRequiredUp to 5,000 charactersSwear words, flagsToxicity, flags
PricepriceNumberOptionalAt least 0
PhotosphotosImageOptionalUp to 10 files, 10 MB eachMade with AI, adds a review signal
Trigger effectFlagReview

Sample data

An invalid form never reaches a model

A form that fails validation comes back with an error for each field that failed, and costs no checks.

Text
Min characters, Max characters, Numbers only, Pattern
Image
Min files, Max files
Number
Minimum, Maximum
Enum
Allowed values
Boolean, URL, JSON
The value has to match its type
POST/v1/moderations
Sample data
validation_errors200 OK
  • title"Sofa"Title must be at least 5 charactersmin_length
  • description""Description is requiredrequired
  • price-5Price must be at least 0min
Rejectstatus "invalid"checks 0

Sample data

Eight presets to start from

A new template is an editable copy of the preset you pick, with its fields, policies and content rules.

AI instructions are what you would tell a moderator about this kind of content, in plain language. They are judged once per submission, across every field, and come back as the instructions policy with a score and an explanation.

Presets
Presets as shipped
Start from

Listing: 4 fields, AI instructions written for this content

ListingFields in this preset
FieldTypeRule
TitletitleTextRequired
DescriptiondescriptionTextRequired
PricepriceNumberOptional
PhotosphotosImageOptional

AI instructionsWritten for this content

Presets as shipped

Every edit is a draft until you publish it

The live version keeps answering requests while you edit, and every moderation records the version it ran on.

  • DraftSave it as often as you like, or discard it.

  • TestRun a sample against the draft or the live version.

  • PublishThe new version answers the next request and can no longer be edited.

  • HistoryOpen any version as JSON, or compare it with the live one.

Acme Corp./Listings
Sample data
FieldDescription · Text
InputWorst seller ever. You're a complete idiot. Write me on WhatsApp +44 7700 900123.
Author iduser_42
Nothing is stored, queued, delivered or charged.Run test
Testdraft · estimated 1 check
Worst seller ever. You're a complete idiot. Write me on WhatsApp +44 7700 900123.FlaggedTriggeredSent to reviewReviewRuleLinks from new accounts
Response
"id": null,"template": {"slug": "listings","version": 3},"usage": {"checks": 0,"estimated": 1,"cached": false},"test": true
There is a draft with pending changes.Show pending changes
  • v3Draftcreated Oct 2, 2026 · 09:14ViewCompare with live
  • v2PublishedLivepublished Sep 24, 2026 · 16:02View
  • v1Supersededpublished Sep 3, 2026 · 11:40ViewCompare with live
Changesv2draft
  • changedseverity.reviewBefore0.4After0.3
  • changedseverity.rejectBefore0.8After0.9
  • changedfields[title].validation.max_lengthBefore120After80

Sample data

Name the template in the request

A request that names a template runs that template and nothing else. Leave the name out and the project's default template runs.

field
Send one value and say which field it belongs to.
fields
Send the whole form. Each text or image field gets a result of its own.
POST/v1/moderations
Sample data
The request sendsWhat runs
  • "template": "listings"Listingsv2The slug comes from the name you gave the template.
  • No templateDefault templateThe one picked in project settings.
  • No template, no defaultBasic checkBuilt inThe same in every project.
  • "template": "listings"On the Free plan403plan_limit
  • "template": "nope"404template_not_found

Sample data

Start moderating your users' content

Create an API key, send your first request and get a verdict back.