Guide · Updated 13 October 2026

How to detect and remove explicit images automatically.

Check every image when it is uploaded, before anyone sees it: send its address to an image moderation API, and block, blur or hold it when the sexual flag comes back. Then check the images already on your site the same way. Detectivision does not keep the images it checks, and can return a blurred copy.

How it works
  1. Check on upload

    When a user uploads an image, send its address with the sexual flag, and add violence, hate or scam if your rules cover them.

  2. Decide by confidence

    The flag comes with its confidence, 0 to 1. Block above one line, hold what falls between for a moderator, publish the rest.

  3. Blur instead of deleting

    In censor mode the answer also gives a copy with what was found blurred, pixelated or boxed, to show in its place.

  4. Clean up what is already online

    Send the images already on your site with "async": true, at half the price; each result comes by webhook.

  5. Review and act

    Every check is in the dashboard’s Logs, where moderators act on it; your system gets each action by webhook.

When it is flagged

Four ways to handle an explicit image

ChoiceWhat happensFits
BlockThe upload is refused.Sites where explicit images are never allowed.
BlurThe censored copy is shown instead.Feeds and previews that should stay safe to scroll.
HoldThe image waits for a moderator.Confidences between your two lines.
Allow behind a warningThe image is shown after a click.Adult sites and art communities.
In code

Check an upload and get a blurred copy

Request
curl https://api.detectivision.ai/api/v1/moderation \
  -H "Api-Key: $DETECTIVISION_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "image_moderation",
    "input": "https://example.com/uploads/4410.jpg",
    "mode": "censor",
    "flags": ["sexual"],
    "metadata": { "uploadId": 4410 }
  }'
Response
{
  "id": 1043,
  "type": "image_moderation",
  "mode": "censor",
  "status": "completed",
  "flagged": true,
  "flags": [
    {
      "flag": "sexual",
      "confidence": 0.94,
      "detections": [
        {
          "label": "sexual",
          "confidence": 0.94,
          "bbox": [212, 140, 388, 301]
        }
      ]
    }
  ],
  "checked": ["sexual"],
  "unchecked": [],
  "censored": {
    "contentType": "image/jpeg",
    "regions": 1,
    "url": "https://api.detectivision.ai/api/v1/moderation/1043/censored"
  },
  "usage": { "charged": 4, "remaining": 9996 },
  "metadata": { "uploadId": 4410 }
}

The blurred copy is downloaded with your API key. In detect mode the answer has only the flags, for 1 credit by webhook or 2 at once.

Questions

Frequently asked

Which images can be checked?

JPEG, PNG, WebP, BMP and GIF, up to 10 MB, at an http or https address anyone can open. Signed links work while they are valid.

Are the images stored?

The image you send is downloaded, checked and not kept. In censor mode the censored copy is kept, for you to download.

What does a check cost?

An image is 1 credit in detect mode and 2 in capture or censor mode, by webhook; an answer given at once costs twice that.

Can I keep the image and only hide the explicit part?

Yes. censor mode returns a copy with each finding blurred (the default), pixelated or boxed.

Does Detectivision delete images from my site?

Every request shows in the dashboard’s Logs. You define your own actions, such as Approve or Ban; when a moderator takes one, your system gets a moderation.action webhook and carries it out. Detectivision never acts on your platform itself.

What about videos?

Videos are checked the same way, by their address, with the time and box of each finding.

Related