Why moderation
A platform that creates or hosts content must stop harmful material before it reaches people. Omnifence automates that check. It analyses your content against the configured moderation categories and returns a singleis_prohibited
decision, with a reason when it rejects the content.
Modalities
Text moderation
Screen text against your configured moderation policies before you act on it, including any custom categories you have configured.- Input:
textfield - Output:
is_prohibiteddecision, plus areasonwhen the text is rejected
Image moderation
Screen a single image against the always-on AI Adult General prohibited-content check, which also covers any custom categories you have configured. The optional NSFW label runs alongside it.- Input:
imagefield, a public HTTP/HTTPS URL. The endpoint takes a URL, not a file upload. - Output:
is_prohibiteddecision, an informationalnsfwlabel, plus areasonwhen an image is rejected
Video moderation
Screen a video against the same checks as image moderation, applied to the whole clip.- Input:
videofield, a public HTTP/HTTPS URL up to 100 MB. The endpoint takes a URL, not a file upload. - Output:
is_prohibiteddecision and an informationalnsfwlabel
Audio moderation
Screen the speech in an audio clip with the same checks as text moderation, including any custom categories you have configured. Non-speech audio (music, sound effects) is not screened.- Input:
audiofield, a public HTTP/HTTPS URL up to 100 MB and 30 minutes - Output:
is_prohibiteddecision, plus areasonwhen a clip is rejected
Asynchronous processing
All modalities run asynchronously. When you submit a request, the API returns ajob_id immediately
with status: "queued". You can then:
- Poll the job status endpoint for results.
- Receive results via webhook when the job completes.
queued, processing, completed or failed. A moderation job
goes straight from queued to a terminal completed or failed, and it never reports percentage
progress, so poll for the terminal status rather than trying to render a progress bar.