Detect profanity
API · /profanity-api
Profanity Filter API
Detect and censor profanity in user-generated text across 24 languages — for comment moderation, chat filtering, username and form validation, and trust-and-safety pipelines. Send any text and get back whether it contains profanity, the exact bad words found and which languages they belong to; or get the text back with every bad word masked (choose your own mask character). Matching is word-boundary aware (so "Scunthorpe" and "Penistone" are not flagged) and normalises common leetspeak (sh1t, @ss) before matching. Target a specific language (or several) or scan all 24 at once. Powered by the well-known LDNOOBW word lists, bundled in — so the service is fully self-contained: no third-party calls, no rate limits, always available. Live, no cache. 4 endpoints. No upstream key.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 71 ms
- Server probes · 24h
- Subscribers
- 3,531
- active
- Total calls
- 76
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 1,820 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 1,820 calls/month
- 2 req/sec
- 24 languages, check + clean
- No credit card
Starter
€6.50 /month
- 40,000 calls / month
- 8 requests / second
- Hard cap (429 above quota, no overage)
- 40k calls/month
- 8 req/sec
- Comment / chat moderation
- Email support
Pro
€23.00 /month
- 215,000 calls / month
- 20 requests / second
- Hard cap (429 above quota, no overage)
- 215k calls/month
- 20 req/sec
- Trust-and-safety pipelines
- Priority support
Mega
€57.00 /month
- 1,060,000 calls / month
- 50 requests / second
- Hard cap (429 above quota, no overage)
- 1.06M calls/month
- 50 req/sec
- Platform-scale moderation
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Emoji Strip API
Strip, extract and count emoji in any text. The strip endpoint removes every emoji from a string — or replaces each one with a marker you choose — and gets multi-code-point emoji right: ZWJ sequences like the family 👩👩👧👦, skin-tone modifiers (👍🏽), country flags (🇩🇪), keycaps (1️⃣) and variation selectors all count as a single emoji, so nothing is left half-deleted. The extract endpoint lists every emoji it finds with its position in the text and returns per-emoji and unique counts, ideal for analytics and moderation. A bare ©, ® or ™ is deliberately left alone unless it carries an emoji variation selector, and plain digits are never touched. Perfect for cleaning user input before search indexing or storage, sanitising usernames and display names, moderation and analytics, and preparing text for systems that choke on emoji. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This cleans and extracts emoji from text; to look an emoji up by name or shortcode use an emoji database API, and to count graphemes use a text-segmentation API.
api.oanor.com/emojistrip-api
NSFW Detection API
Moderate images automatically with on-device machine learning. Classify any image across five categories — neutral, drawing, sexy, porn and hentai — and receive per-class probabilities, the top class, a combined NSFW score and a clear verdict (safe, questionable or nsfw). A simpler check endpoint returns a single safe/unsafe decision against a threshold you choose, ideal for upload gates and user-generated-content pipelines. Supply an image by public URL, base64 or a raw binary request body; only public http/https URLs are accepted and private or internal hosts are blocked, and large images are downscaled automatically. Runs locally on TensorFlow (NSFWJS / MobileNetV2) — no third-party upstream and no per-image cloud cost — with a warm model that keeps inference fast. Ideal for community platforms, marketplaces, dating and chat apps, and any service that accepts user images.
api.oanor.com/nsfw-api
Keyboard Layout API
Re-map text between keyboard layouts — the fix for text typed with the keyboard set to the wrong layout. The remap endpoint takes text, a source layout and a target layout, and rewrites each character to the one produced by the same physical key on the other layout. So text accidentally typed on a Dvorak-configured keyboard while you meant QWERTY (or the reverse) is recovered exactly, and because the mapping is position-preserving it round-trips perfectly. It supports QWERTY (US), Dvorak and Colemak, including the shifted symbols, and leaves characters that are not on a remappable key (spaces and accents) untouched. The layouts endpoint returns the full key map for each layout. Everything is computed locally and deterministically, so it is instant and private. Ideal for fixing wrong-layout typing, building text editors and IME tools, layout-learning aids, and cross-layout search. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This remaps between keyboard layouts; for classical ciphers (Caesar, ROT13, Morse) use a cipher API.
api.oanor.com/keyboardlayout-api
Entropy API
Measure the information content of text. The analyze endpoint computes the Shannon entropy in bits per symbol, the total information in bits and bytes, the maximum possible entropy for the alphabet that was actually used, and a normalized 0–1 score that says how uniform (random-looking) the distribution is — over Unicode code points or raw UTF-8 bytes. The frequency endpoint returns the full character-frequency distribution, most common symbol first, with counts and percentages, showing control characters escaped and bytes as hex. It is exact, deterministic and runs entirely locally with no network calls, so it is instant and private. Ideal for randomness and password-quality checks, estimating how compressible data is, language and classical-cipher analysis, spotting low-variety or repetitive input, and feature extraction for text classification. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This measures information content; for password-strength scoring use a password API, for number statistics use a statistics API, and for grapheme/character counts use a text-segmentation API.
api.oanor.com/entropy-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Profanity Filter API?
What's the rate limit for Profanity Filter API?
How much does Profanity Filter API cost?
Can I cancel my subscription anytime?
Is Profanity Filter API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/profanity-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/profanity-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/profanity-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/profanity-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.