Skip to content

Marketplace listings checked field by field

Send a listing as one form. Its text fields and its photos are scored separately, and the listing gets one recommendation.

  • Text and photos in one request
  • Templates on Starter and up
Listingtemplate: "listings"
Sample data
photos2 files
title

Oak dining table, seats six

price

450

description

Solid oak, 1970s, minor scratches. More photos at https://t.me/seller

Links & contact details
Authoruser_81New
  1. 01Block banned authorsReject
  2. 02Zero tolerance for hateReject
  3. 03Illicit goodsReject
  4. 04No sexual contentReject
  5. 05Allow established authorsAllow
  6. 06Links from new accountsReview
Screening1 of 4 fields checked

Sample data

One preset covers the whole listing

The Listing preset comes with its fields, policies and rules filled in, and you can edit any of them before you publish.

Listing presetpreset: "listing"
Preset as shipped

Fields

4
Validated first
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

AI instructionsFirst lines, once per listingCheck that the title, description, price and photos describe the same offer...

Policies

17

FlagThe listing becomes FLAGGED.

  • Hate speech
  • Toxicity
  • Violence
  • Self-harm
  • Sexual content
  • Illicit & regulated goods
  • Personal data
  • Spam & advertising
  • Links & contact detailsin title
  • Swear wordsin description

ReviewAdds a review signal without flagging.

  • Duplicate content
  • Lookalike characters
  • Meaningless text
  • Screenshot instead of photo
  • Low image quality
  • Stock or third-party watermark
  • Made with AIin photosGrowth and up

Made with AI is experimental. On Starter the template is created without it.

Rules

6
First match decides
  1. 01Block banned authorsif author is not enabledReject
  2. 02Zero tolerance for hateif Hate speech is flaggedReject
  3. 03Illicit goodsif Illicit & regulated goods is flaggedReject
  4. 04No sexual contentif Sexual content is flaggedReject
  5. 05Allow established authorsif trust level is at least regularAllow
  6. 06Links from new accountsif trust level is at most new and Links & contact details is flaggedReview

Severity triagewhen no rule matches: review from 0.40, reject from 0.80

Preset as shipped

Messages and reviews get their own templates

A message and a review are judged differently from a listing, so each starts from its own preset and is published separately.

Three templates, one marketplace
Sample data
  • Listingslistingsfrom the listing preset, 4 fields, 6 rulesv1Active
  • Messagesmessagesfrom the message preset, 1 field, 2 rulesDraft
    Fields
    • Messagebody1 to 5,000 characters
    Rules
    1. 01Threats are rejectedReject
    2. 02Links from new accountsReview
    Policy settings
    • Personal dataObserve
    • Off-platform phrasesOff
  • Reviewsreviewsfrom the review preset, 2 fields, 1 ruleDraft
    Fields
    • Ratingrating1 to 5
    • Reviewbody5 to 3,000 characters
    Rules
    1. 01Zero tolerance for hateReject
    Policy settings
    • Off-topicReview

Sample data

A seller's history changes the decision

Send an author id with each listing, and the rules read the seller's trust level when they decide.

  • No author id means NewWithout author_id the allow rule never applies.

One listing, two sellers
Sample data
descriptionLinks & contact details0.90

Solid oak, 1970s, minor scratches. More photos at https://t.me/seller

user_81New
Moderations
2
Rejected
0
First seen
today

01 to 05 do not match

06Links from new accountsif trust level is at most new and Links & contact details is flagged
Rule 06Sent to reviewReview
user_42Regular
Moderations
24
Rejected
1
First seen
19 days ago

01 to 04 do not match

05Allow established authorsif trust level is at least regular
Rule 05PublishedAllow

Sample data

Go live with one template and one request

The only code is one request from your upload flow and a handler for the webhook that brings the result.

  1. Create the templateIn the dashboard, start a template from the Listing preset and publish its first version.

  2. Send the formPost the fields with the template's slug. A form with photos answers 202, and the result follows by webhook.

  3. Work the review queueEvery listing recommended for review becomes a queue item for your team to allow or reject.

POST /v1/moderationsJSON
{"template": "listings","content_id": "item_18342","author_id": "user_81","fields": {"title": "Oak dining table, seats six","description": "Solid oak, 1970s, minor scratches. More photos at https://t.me/seller","price": 450,"photos": ["https://cdn.example.com/1.jpg","https://cdn.example.com/2.jpg"]}}

What follows the requestSample data

  1. 202Accepted"status": "screening"
  2. POSTqueue_item.created"reason": "rule"
  3. POSTmoderation.completed"recommendation": "review"

Start moderating your users' content

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