NSFW video moderation API

SafeReel scans video for pornographic content and returns a verdict. You send a URL; we fetch the file, analyse its full duration, and answer clean or nsfw. No file-size limit, €0.020 per video-minute, and never more than 20 billed minutes for a single video however long it runs.

Most moderation APIs are image classifiers with video bolted on — they cap uploads at tens or hundreds of megabytes, sample a handful of frames, and price a feature-length file at several dollars. SafeReel was built video-first.

Submit a video in one call

curl -X POST https://api.safereel.ai/v1/videos \
  -H "Authorization: Bearer sr_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: upload-91af23" \
  -d '{"url": "https://cdn.example.com/uploads/91af23.mp4"}'
{ "id": "vid_a1b2c3d4", "status": "queued" }

Then either poll GET /v1/videos/{id} or receive a signed webhook when the job finishes:

{
  "id": "vid_a1b2c3d4",
  "status": "done",
  "verdict": "nsfw",
  "billed_seconds": 1200
}

The URL can be presigned — an S3 or R2 GET URL works, so the object never has to be made public. Full reference: API docs.

Why video-first changes the bill

Billing caps at 20 minutes per video. Analysis does not — the full duration is scanned either way.

Video length Analysed You pay
3 minutes 3 min €0.06
20 minutes 20 min €0.40
90 minutes 90 min €0.40
3 hours 3 hours €0.40

At the $0.10/minute that AWS Rekognition and Google Cloud Video Intelligence both publish for content/explicit detection, that 90-minute file costs $9.00. Working and sources: video moderation API pricing compared.

No file-size limit, because we fetch

You pass a URL rather than uploading bytes. Three things follow:

SafeReel handles the awkward real-world cases too: fragmented MP4s, moov atoms at the end of the file, and corrupt indexes that make naive frame extraction fail.

Accuracy, with the methodology attached

On 1,089 production videos: 95.5% accuracy, 92.2% recall, 0.41% false positives. On human-reviewed labels: 96.1% recall and 0% false positives (n=139).

Those numbers come with a written method and its caveats — read the accuracy report before you trust them, including ours. The false positive rate is the number worth arguing about: it is the one your users experience as wrongly blocked uploads.

What SafeReel does not do

Stated up front so you can rule it out in a minute rather than an afternoon:

If you need a broad multi-class policy engine, a platform like Sightengine or Hive fits better — see SafeReel vs Sightengine and SafeReel vs Hive.

Nothing is retained

Image bytes exist only in request memory. Video frames are deleted within minutes of the verdict. What persists is the verdict, quota counters, and non-reversible content fingerprints — never your media, and never sent to third-party AI providers. Inference runs on GPU hardware we operate in the EU. Details: Trust & privacy.

Reliability details you will need on day two

The reliable video worker guide builds a production worker that handles every one of these, including the failure modes.

Start without talking to anyone

A free key needs no card and includes 100 video-minutes a month plus 1,000 image checks — enough to run your own back-catalogue through it and compare verdicts against your human reviewers, which is the only benchmark that matters.

Image checks can be tried with no signup at all in the playground.