Content Moderation API
REST API for automatic user-generated content moderation. Detect and remove profanity, hate speech, extremism, drug references, and sexual content in text, audio and video — in seconds, through a single HTTP request.
6 moderation categories
profanity, hate_speech, extremism, drugs, sexual, insults. Four sensitivity presets — mild, standard, strict, max. Custom dictionaries and whitelist via API.
Text, audio, and video in one API
POST /analyze/text, /analyze/media, /censor/text, /censor/media. Up to 50,000 characters for text, up to 10 GB per file. Upload via file, URL or YouTube/VK/RuTube link.
Production-ready
HMAC-SHA256 webhook signing, X-Idempotency-Key, sliding-window rate limit, X-RateLimit-* headers, RFC 7807 Problem Details, X-Request-Id tracing.
Sandbox without credit cost
test-prefix keys — processing without deducting monthly quota. Use for CI and integration tests. live-prefix keys — for production.
Python + Node.js SDKs
pip install videocensor, npm install @videocensor/sdk. Sync + async clients, typed models, auto-retry with exponential backoff, progress callbacks.
Webhooks & Batch
POST /webhooks — HMAC-signed delivery on job completion. POST /batch — up to 100 requests per call to reduce latency and cost.
Code examples
import os
from videocensor import VideoCensor
client = VideoCensor(api_key=os.environ["VIDEOCENSOR_API_KEY"])
result = client.analyze_text("Sample text to moderate")
# result: AnalyzeTextResult(flagged_count=..., categories=...)import { VideoCensor } from "@videocensor/sdk";
const client = new VideoCensor({ apiKey: process.env.VIDEOCENSOR_API_KEY! });
const result = await client.analyzeText("Sample text to moderate");
// result: { flaggedCount: ..., categories: [...] }curl -X POST https://videocensor.ru/api/v1/analyze/text \
-H "X-API-Key: $VIDEOCENSOR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Sample text","language":"en"}'import os
from videocensor import VideoCensor
client = VideoCensor(api_key=os.environ["VIDEOCENSOR_API_KEY"])
result = client.analyze_media("/path/to/video.mp4")
# result: AnalyzeTextResult(flagged_count=..., categories=...)Who uses this API
UGC platforms
Forums, social networks, marketplaces, chats — moderate comments and messages before publication.
EdTech and kids apps
Filter profanity in chats, titles, and user content descriptions in real time.
Video hosting and streaming
Automatically scan uploads and remove profanity from audio tracks.
Podcast platforms
Moderate episode audio through /censor/media, get a clean version ready to publish.
YouTube monetization
Check videos for advertiser-friendly content via /analyze/media before uploading to YouTube.
Enterprise compliance
Profanity control in call recordings, webinars, internal videos — HR and PR policy enforcement.
Content Moderation API FAQ
What content categories does the API detect?+
Six categories: profanity, hate_speech, extremism, drugs, sexual, insults. Each category can be enabled or disabled independently via the categories parameter.
Which languages are supported?+
Russian and English are fully supported on all endpoints. Models are trained on both languages, morphological analysis catches profanity in all word forms.
How accurate is the detection?+
Standard mode — up to 97% precision on clean speech. Precise mode uses two AI providers in parallel for 99%+ precision. For songs, use enhanced mode — Demucs neural network separates vocals from music.
How does billing work?+
1 minute Standard = 1 credit, 1 minute Precise = 3 credits. Free plan — 100 credits/mo. Developer — 1,500 credits for $14.99. Business — 7,500 credits for $59.99. Top-up packs from $14.99.
Are there file size limits?+
Free — up to 50 MB. Developer — up to 500 MB. Business — up to 2 GB. Studio — up to 5 GB. Enterprise — up to 10 GB. Use webhooks instead of polling for long files.
How is the API secured?+
HTTPS only. API keys are passed in the X-API-Key header. Keys are stored as SHA-256 hashes — plain text is never recoverable. Sliding-window rate limit, X-Idempotency-Key for safe retries, HMAC-SHA256 signed webhooks.
Where are the docs?+
Full OpenAPI docs at /developers/docs, interactive playground at /developers, curl/Python/Node.js examples for every endpoint.
Integrate in 5 minutes
100 credits/month on the Free plan. Start with the Python or Node.js SDK — pip install videocensor.