Unprofane

Spanish profanity filter API from Spain to Chile

It knows each country’s insults, reads their disguises, and reads a word rude in one country as yours does.

Live on the real engine One word, two countries

coger

In Spain"country": "ES"

¡Te voy a coger!

I’m going to catch you!

allow

In Mexico"country": "MX"

¡Te voy a coger!

I’m going to fuck you!

review · moderate
Or pick

Name the country your users are in and the same sentence reads as theirs reads it. Without one, the rules read the words around the word. The words read by country.Each answer is the rules alone, the fast mode, checking a comment with language: "es". In balanced mode, the default, the model reads what the rules leave open.

Every Spanish disguise, read back

Each spelling as typed, what the rules read in it, the tricks they named and their answer.

Every country’s own insult

Spain, Mexico, Argentina, Chile, Colombia and Peru each insult people their own way.

WhereTypedWhat it saysThe rules
SpainEres un gilipollas.You’re a dickhead.block · strong
Mexico¡Chinga tu madre!Fuck your mother!block · strong
ArgentinaSos un pelotudo.You’re a dumbass.block · moderate
Chile¡Conchetumare!Your mother’s cunt!block · strong
Colombia¡Malparido!Bastard!block · strong
PerucsmConcha su madre, abbreviatedblock · strong

Spanish words a list would block

A list matching inside words finds a rude string in each; the rules read the whole word.

  • computadoraA computer
  • conocerTo know
  • notarioA notary
  • VergaraA surname, and a Basque town
  • pincherA dog breed
  • ampollaA blister
  • vehículoA vehicle
  • CuliacánA city in Mexico

A list matching inside words8 of 8blocked

Unprofane, rules alone8 of 8allow

Measured in Spanish

The same Spanish texts given to every system, and the open benchmark’s Spanish items.

94.3%

Unprofane

Flagged 1.8% of clean Spanish texts

74.6%

Perspective API

Flagged 2.3% of clean Spanish texts

42.0%

OpenAI moderation

Flagged 9.6% of clean Spanish texts

The share of 193 toxic Spanish texts each caught; the same set holds 219 clean ones. The judged development set, read on , engine 2026-09-29, each system at Unprofane’s overall false-alarm rate. Unprofane was tuned on this set, so its figures here flatter it.How it was measured

0.978F1 on the Scunthorpe Test’s 51 Spanish items, rules aloneThe public split, run of , engine 2026-10-18. Every language’s score

Other APIs and Spanish

Name Spanish in the call

Send language "es" and a bare word reads as Spanish writes it. Every language is still read.

Get your API key

100 checks a day, no card

curl -X POST https://api.unprofane.com/v1/check \
  -H "Authorization: Bearer up_test_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"¡Chinga tu madre, pendejo!","context":"comment","language":"es"}'
Response200
{
  "allowed": false,
  "action": "block",
  "severity": "strong",
  "matches": [
    {
      "text": "Chinga tu madre",
      "normalized": "chinga tu madre",
      "category": "insult",
      "severity": "strong"
    },
    {
      "text": "pendejo",
      "normalized": "pendejo",
      "category": "insult",
      "severity": "strong"
    }
  ],
  "censored": "¡***************, *******!",
  "language": {
    "detected": "es",
    "confidence": 0.75
  }
}

Other languages

Filter Spanish before anyone reads it

Every language Unprofane covers is read on every call, Spanish with its disguises included.

Get your API key