FastPix detects NSFW content and profane language in video and audio through its in-video AI moderation pipeline, returning a list of flagged categories with per-category confidence scores. You enable moderation at upload time or on existing media, then read results from the video.mediaAI.moderation.ready webhook or the Get Media by ID endpoint.
video.mediaAI.moderation.ready eventsmediaId to every uploaded asset. You use it to enable moderation on existing media at /on-demand/<mediaId>/moderation.type to video, audio, or av (both). This controls which category set applies.moderationResult array.video.mediaAI.moderation.ready when moderation analysis completes.To run moderation on an upload, call Create Media from URL or Upload Media from Device and include a moderation object in the request. For the full event schema, see video.media.ai.moderation.ready.
Required fields in the JSON body:
video, audio, or av (both audio and video)Request body for creating new media from URL
Request body for creating new media by direct upload
For a direct device upload, the inputs section contains the upload settings:
To analyze media already uploaded to FastPix, call the Enable video moderation endpoint:
mediaId of the asset you want to analyze.PATCH request to /on-demand/<mediaId>/moderation, replacing <mediaId> with the asset ID.Example request body:
Input parameters:
video, audio, or av (both).The filter applies different category sets depending on media type.
Audio files are evaluated against:
Video files are evaluated against:
FastPix assigns a confidence score from 0 to 1 to every detected category:
Set a threshold that matches your tolerance. UGC platforms often block or queue for review at 0.8 and above, surface warnings at 0.5 to 0.8, and ignore anything below 0.5. Tune these values against your own content sample before rolling out in production.
Example of NSFW detection
A sample video run through the NSFW filter produced these category scores:
Scores range from 0 to 1, where higher values indicate stronger confidence that the content belongs to the detected category.
For more context, see the blog post: AI content moderation using NSFW and profanity filters.
Evaluate whether your use case actually requires moderation on long videos. Most platforms for user-generated content (UGC) prioritize short-form video, where the current sampling model produces the strongest results. TikTok and Instagram Reels, for example, both operate well within the 3-minute threshold.
Video duration across common UGC platforms:
The average video on both platforms sits well below the 3-minute threshold, which matches the shape of most UGC workloads that use NSFW detection. Focusing moderation on short-form video gives you higher accuracy with lower processing cost.
To read moderation output for an asset, call the Get Media by ID endpoint.
Alternatively, subscribe to the video.mediaAI.moderation.ready webhook — FastPix emits this event with the full moderation payload, including categories and confidence scores, as soon as analysis completes.
Example event payload:
The moderationResult field holds an array of detected categories with per-category confidence scores.
To run NSFW and profanity moderation without calling the API:
Open the media item: From the FastPix dashboard, go to Media → [your media item] and open the Media Details page.
Open the InVideo AI tab
On the Media Details page, click the NSFW & Profanity detection tab to view moderation controls and history.
Enable NSFW & profanity checks
Click Generate under NSFW & Profanity Detection.
View results and events
When moderation completes, results appear in the InVideo AI tab (categories, confidence scores). FastPix emits the video.mediaAI.moderation.ready event in the Events tab.
accessPolicy or playback rules when the event indicates a high-confidence detection. For manual review, forward the event payload to your review queue or ticketing system.video, audio, or av. Different categories apply to each type./on-demand/<mediaId>/moderation, confirm the mediaId matches the asset you intend to analyze.accessPolicy and maxResolution are optional but help you control access and analysis resolution.How does FastPix detect inappropriate content in video?
FastPix runs multimodal indexing over sampled video frames and audio, then classifies each sample against NSFW and profanity categories. The API returns an array of matched categories with a confidence score between 0 and 1 for each.
What is the NSFW filter and what does it flag?
The NSFW filter is the component of FastPix in-video AI that labels unsafe content. It flags categories such as Sexual Content, Violence, Violence/Graphic, Self-Harm, and for audio - Harassment, Hate, Illicit, and Sexual/Minors.
How do I choose a confidence threshold?
Start at 0.8 for automatic blocking, 0.5 to 0.8 for manual review, and ignore below 0.5. Sample your own catalog before fixing these values, thresholds that work for short-form UGC may be too loose for kids or education platforms.
Which languages does profanity detection cover?
Profanity detection runs over the audio transcript produced by speech-to-text. Coverage matches the languages supported by FastPix speech-to-text, start with English for the most reliable results in Beta, and test other languages against your content before relying on them.
How do I get moderation results over webhooks?
Subscribe your webhook endpoint to video.mediaAI.moderation.ready. FastPix posts the event with the moderationResult array once analysis completes, use it to update accessPolicy, queue for review, or trigger downstream workflows.