Django Profanity Filter

Moderate form and API input in a Django view before saving to your models.

Quick start in Django

import os, requests
from django.http import JsonResponse

def create_comment(request):
    text = request.POST["text"]
    r = requests.post(
        "https://api.theprofanityapi.com/v1/check",
        headers={"Authorization": f"Bearer {os.environ['PROFANITY_API_KEY']}"},
        json={"text": text, "context": "comment", "mode": "balanced"},
    ).json()
    if r["flagged"]:
        return JsonResponse({"error": "flagged"}, status=422)
    # Comment.objects.create(...)

Why context-aware matters

A plain word list flags "this game is sick" or medical text full of anatomical terms. The Profanity API runs a five-layer pipeline that scores intent, so "die" in a gaming taunt and "die" in a real threat are handled differently. Pick a context and the engine adjusts strictness automatically.


Other integrations

Ready to ship moderation?

Get an API key and 300 free requests a month. No credit card required.

Get started free →