Ruby Profanity Filter

Context-aware moderation for Ruby apps using only the standard library — no gems required.

Quick start in Ruby

require "net/http"
require "json"

uri = URI("https://api.theprofanityapi.com/v1/check")
req = Net::HTTP::Post.new(uri, {
  "Authorization" => "Bearer #{ENV['PROFANITY_API_KEY']}",
  "Content-Type"  => "application/json",
})
req.body = { text: text, context: "comment", mode: "balanced" }.to_json

res  = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
data = JSON.parse(res.body)
# data["flagged"], data["intent"]

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 →