User profiles, user photos, profile pics, live videos and more can be moderated User profiles, user photos, profile pics, live videos and more can be moderated

The Nudity Detection API that
really works

Detect and moderate explicit or implicit nudity, adult content and suggestive poses in photos and videos. Get fine-grained controls at best-in-class accuracy.

Have questions? Talk to sales

Powering some of the most innovative platforms worldwide

We outperform other solutions in client-led benchmarks

With 10 years of experience in Automated Moderation, we have built proprietary specialized models on the most difficult situations to match human-level accuracy. Advanced customization, fine-grained controls, and feedback loops with continuous improvement.

Sightengine has been key in powering our growth.

After extensively evaluating other solutions, we were extremely pleased by the accuracy of Sightengine's moderation models and the variety of situations they are able to correctly flag. Their models outperform other solutions and are simple and quick to integrate with. Aymeric Roffé

Instant analysis on 30+ criteria to assess nudity and suggestiveness in media

Reality is messy. Nudity is not a simple concept. There are tons of gray-area situations that each platform will need to handle differently. Sightengine helps you make sense of those and implement your own custom rules. To do so, our detection engine analyzes 30+ different concepts: context, clothing, action, poses, framing and more.

Suggestive neckline
Real photo
Outdoor context
Revealing neckline
Drawing
Sexual activity
Illustration
Sculpture
Sculpture
Real photo
Exposed genitals
Painting
Painting
Undressed female
Lateral cleavage
Bare male chest
Real photo
Pool context
Bare male chest
Most of chest visible
Bikini
Real photo
Sea context
Bikini
No close framing
miniskirt
Real photo
Miniskirt
Real photo
Lingerie
Indoor home
Suggestive neckline
Real photo
Outdoor context
Revealing neckline
Drawing
Sexual activity
Illustration
Sculpture
Sculpture
Real photo
Exposed genitals
Painting
Painting
Undressed female
Lateral cleavage
Bare male chest
Real photo
Pool context
Bare male chest
Most of chest visible
Bikini
Real photo
Sea context
Bikini
No close framing
miniskirt
Real photo
Miniskirt
Real photo
Lingerie
Indoor home
Suggestive neckline
Real photo
Outdoor context
Revealing neckline
Drawing
Sexual activity
Illustration
Sculpture
Sculpture
Real photo
Exposed genitals
Painting
Painting
Undressed female
Lateral cleavage
Bare male chest
Real photo
Pool context
Bare male chest
Most of chest visible
Bikini
Real photo
Sea context
Bikini
No close framing
miniskirt
Real photo
Miniskirt
Real photo
Lingerie
Indoor home

Streamline media filtering with pre-set severity levels

Set your limits.

Decide which levels are ok, and which ones are not.

Adapt your response to the severity level. You could for instance suspend or ban users submitting high-severity content.

Very explicit

Safe

Sexual Activity

Level 8

Sexual Display

Level 7

Sextoys

Level 6

Erotica

Level 5

Very Suggestive

Level 4

Suggestive

Level 3

Mildly Suggestive

Level 2

Safe

Level 1

or see our list of related concepts and definitions

Combine concepts to create your own custom rules

Build advanced workflows that take into account the level and type of nudity, the type of image/video, the clothing involved, the action, the context, the framing and more.

Adapt and change your rules at any time. See changes take effect immediately.

Example 1
Flag bare male chests in specific situations. Allow bare chests in beach settings, at swimming pools and on statues.
Example 2
Allow female swimwear only in specific cases. Reject suggestive poses in swimwear, suggestive framings, and reject photos of children in swimwear or women posing at home in their bikini.
if bare chest detected then
if context is swimming pool or sea / lake then accept
else if slightly revealed chest and outdoors then accept
else if sculpture then accept
else reject
GET STARTED NOW

Moderate based on context as well as content

Adapt filters to the context and location of the image. Swimwear, bikinis and bare chests might be ok at the beach or near a swimming-pool, but could be a no-no in other settings.

You get to determine if the context should be taken into account with your own custom rules.

REACH OUT

Use context to adapt your moderation filters

Bikini at beach

Sea-front context

Bikini at the beach
Bikini at home

Indoor home context

Bikini at home

Fine-grained limits so you can define exactly what you want to filter

Sightengine gives you fine-grained controls over each concept, allowing you to set custom limits that are adapted to your audience.

Bare male chests and torsos
3 different levels of suggestiveness depending on which parts of the torso are visible: slightly revealing, revealing or very revealing.
Cleavages and necklines
3 different levels of nudity depending on which parts of the neckline and breasts are visible: revealing, very revealing or erotica.
Visualization showing the different types of bare male chest situations based on which parts of the torso are visible

Automatically set stricter limits on content featuring young users

Adapt filters to the subject's estimated age range. Reject suggestive poses or swimwear pics featuring younger users.

Age is estimated based on both body and facial features. This helps achieve better results and makes it possible to filter images even when the subject's face is hidden or invisible.

REACH OUT

Differentiate based on the subject's estimated age

Adult in swimwear

Detected age above 18 yrs

Adult in swimwear
Minor in swimwear

Detected age below 18 yrs

Swimwear

Differentiate between real-life, drawings and art

Nudity can be present in real-life images or videos, in animated ones, or in artistic pieces such as in sculptures or paintings. You might want to handle those situations differently. With Sightengine, you can.

Real-life

Natural photo

Real life
Animated

Drawings, video games...

animated
Painting

Art

Painting
Sculpture

Art

Sculpture

Superior Accuracy, Superhuman Speed

Your customers expect their content to be validated correctly and immediately — not eventually.
We constantly monitor our accuracy and speed.
99.2% F1 accuracy on
porn detection

Best-in-class accuracy. Specialist models and A.I. trained specifically for Nudity Detection.

Always up to date. Continuously improved and optimized.

230ms median image
inference time

Instant response. No callback mechanisms for Image Moderation. No queues. No waiting.

Optimized for speed. Powerful Hardware for Media Analysis.

GET THE BEST MODERATION API

Works with all your images, videos and streams

Battle-tested to work on all your images and videos.
Compatible with all major formats, protocols.

User-submitted Photos

Filter user-submitted images based on their content. Define your own rules to accept or reject images. Automatically remove offending images or flag them for review. Works with any image, any size, any format. Intro to the Image Moderation API.

JPEG PNG WebP GIF...

Real-time Videos

Moderate streams in real-time and detect scenes containing suggestive nudity, porn or adult content immediately. Safeguard your viewers and protect your brand. Works with static and live videos. Works with most formats and protocols. More on Video Moderation.

H.264 avi mov mpeg HLS RTSP RTMP...

Combine with our other models to build the perfect Moderation Pipeline

Just a few lines of code to add filters on violence, hate, substances, weapons and more

Standard Moderation

Face / People related

Text analysis, QR codes and OCR

AI Generation and Editing

Content Description

Near-duplicate Detection

Fraud Detection

Audio

Quick and Easy to Integrate

Our API was designed by developers for developers. We have worked hard to make it simple and quick to integrate with. Access our detailed documentation, quickstart guides, easy-to-integrate SDKs or talk to our live support whenever needed.
    
    
# copy and paste this in your terminal
curl -X GET -G 'https://api.sightengine.com/1.0/check.json' \
     -d 'url=https://sightengine.com/assets/img/examples/example7.jpg' \
     -d 'models=nudity-2.1'
    
  
    
    
# install the SDK with "pip install sightengine"
client = SightengineClient('{api_user}', '{api_secret}')
output = client.check('nudity-2.1') \
               .set_url('https://sightengine.com/assets/img/examples/example7.jpg')
    
  
    
    
// install the SDK with "composer require sightengine/client-php"
use \Sightengine\SightengineClient;
$client = new SightengineClient('{api_user}', '{api_secret}');
$check = $client->check(['nudity-2.1']);
$output = $check->set_url('https://sightengine.com/assets/img/examples/example7.jpg');
    
  
    
    
// install the SDK with "npm install sightengine --save"
var sightengine = require('sightengine')('{api_user}', '{api_secret}');
sightengine.check(['nudity-2.1']).set_url('https://sightengine.com/assets/img/examples/example7.jpg').then(function(result) {
  // The API response (result)
}).catch(function(err) {
  // Handle error
});
    
  
SEE THE DOCUMENTATION SIGN UP

See why the world's best companies are using Sightengine

Empower your business with Powerful Content Analysis and Filtering.

GET STARTED
REQUEST DEMO