Image moderation API, scored in 300ms.

Every listing photo, profile picture, and upload scored against your policy without slowing the sender down.

New uploadsLive
Mountain lake photo
KEEP
Hooded figure in fog
Disturbing · 0.82
Portrait photo
KEEP
Product photo
KEEP
Trail runner photo
KEEP
Chat message with a payment handle and phone number
OCR: scam
Sent to review2 images -> media queue
eBaySupercellPolymarketKalshiStravaRobinhoodStockXPhantom

Moderating user-generated content at scale.

Read the benchmark
  • 2B+images moderated/month
  • 40msAPI latency for image
  • 100%recall on extreme violence, gore and hate symbols
  • Vintage film camera listing photoKept
    Listing photo with a handwritten note asking for off-platform paymentOCR · Scam
    eBay
  • Red high-top sneaker listing photoKept
    Black high-top sneakers listing photoKept
    StockX
  • Polymarket app trending markets screenshotKept
    Group chat screenshot offering paid picksOCR · Platform bypass
    Polymarket

Explicit, violent, and unsafe images, with thresholds you set.

Set a confidence threshold per category, so you decide what gets removed and what goes to review.

#CategoryWhat it catchesThreshold
01CSAM supportDetect child sexual abuse material in uploaded images and act on it under your policy.Always detected
02Explicit content and non-explicit nudityExplicit nudityExplicit sexual activitySex toysIntimate body partsIntimate kissing90
03Swimwear and underwearRevealing swimwearUnderwear95
04Violence and visually disturbing contentWeaponsPhysical violenceGraphic violenceSelf-harmGore and bloodCrashes75
05Drugs, tobacco, and alcoholDrug productsParaphernaliaTobaccoAlcoholic beveragesAlcohol use85
06Rude gesturesMiddle fingerOffensive gestures90
07GamblingCards and diceSlot machines85
08Hate symbolsExtremist symbolsHate group imagery70

Catch the scam hidden in the screenshot.

OCR reads text inside images in 50+ languages, such as phone numbers, payment handles, and scam offers, and runs it through your text policy. OCR hits are labeled separately in the queue.

Marketplace listing with a payment handle and phone number written on the product photo
OCRScamPlatform bypass

Stop the same image from coming back.

Duplicate detection matches identical images by content, not URL, so re-uploads and spam waves get caught.

Skier photo
cdn.app.com/a81f.jpgRemoved Oct 2
Skier photo
cdn.app.com/q20x.jpgDuplicate · flagged

A review queue built for trust & safety teams.

Flagged images land in a dedicated media queue with user history, bulk actions, and an audit log.

Explore the dashboard
ModerationText queue128Media queue42Users9RulesAudit log
Media queue42 pending3 selectedRemove all
Woman in a one-piece swimsuit on a beach
Swimwear · 0.91
Comment offering a gift card scam
OCR: scam
Knives on a table
Weapons · 0.71
Mountain landscape photo
Nora: kept
Poker chips and dice
Gambling · 0.88
Skier photo
Duplicate

Moderate any image, from any platform.

Send any image to the Check or Analyze API, by URL or raw bytes: listing photos, profile pictures, and user uploads.

Read the docs
const res = await client.moderation.check({
  entity_type: "listing_photo",
  entity_id: "photo-8231",
  entity_creator_id: "user-412",
  moderation_payload: {
    images: ["https://cdn.app.com/8231.jpg"],
  },
  config_key: "marketplace",
});

// res.recommended_action -> "flag"

Stream moderation FAQs.

Send us a sample of your flagged images.

See how Stream scores them against your current tool, at no cost.