Moderate Listing Photos in One Call
Marketplaces, classifieds, and dating platforms deal with a constant stream of
user-uploaded photos. POST /moderate-listing/v1 bundles NSFW,
nudity, and image-property detection behind a single policy decision —
allow, flag, or block — so you don't have to orchestrate three calls and
write your own threshold logic.
Pick a Policy, or Define Your Own
General Marketplace
Blocks explicit exposure outright. Swimwear and fashion photos get flagged for review rather than auto-rejected, since they're common and expected.
"policy": "general_marketplace"
Dating Profile Photos
Same hard block on explicit exposure, with a more lenient flag threshold — swimwear and fitness photos are normal profile content.
"policy": "dating_profile_photos"
Classifieds Strict
No flag tier — any exposure above a low threshold is blocked outright. For platforms that want zero tolerance.
"policy": "classifieds_strict"
"policy": "custom" and define your own
per-category thresholds and actions from your
dashboard — no code changes needed
to tune your policy later.
Sample Response
{
"results": [
{
"image_url": "https://example.com/listing-photo.jpg",
"decision": "flag",
"reasons": [
{"category": "FEMALE_BREAST_EXPOSED", "score": 0.61, "action": "flag"}
],
"detections": {
"is_nsfw": false,
"is_nude": true,
"total_nudity_score": 0.61,
"properties": [
{"class": "FEMALE_BREAST_EXPOSED", "score": 0.61, "box": [120, 80, 200, 180]}
]
}
}
],
"overall_decision": "flag"
}
overall_decision is the worst decision across every image in the batch
(up to 10 per request — this endpoint runs three detectors per image, so batches are
capped lower than the single-detector endpoints). When the result is flag
or block, we send a signed listing.flagged webhook to your
configured URL — best-effort, single attempt, no retry.