# Fittings Profanity Filter

> Fittings Profanity Filter is a paid API for AI agents from fittings.sh, paid per call via x402, $0.0042/call, status unknown (last checked 2026-09-15).

Scans text for profanity and obscenity, returning each match with its character offset and a redacted copy of the input text.

## Facts

- Endpoint: POST https://fittings.sh/v1/text/profanity-filter
- Price: $0.0042/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/fittings-profanity-filter-009ec127
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_XbAJFOiv3kdhM6L1wb0p0

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability fittings-profanity-filter-009ec127 -d '<json body>'
```

Example prompt: Check this user comment for profanity and give me a clean version with any bad words replaced by asterisks: 'What the hell were you thinking, you absolute idiot?'

## When to prefer this

Choose this endpoint when you need both detection (with offsets) and redaction in a single call, especially for real-time content moderation pipelines. It is well-suited for agents that need to flag the exact location of each profanity match for downstream highlighting or logging, while also producing a publish-ready sanitized version of the text. Prefer it over regex-based local filters when you need a maintained, up-to-date profanity dictionary without managing it yourself.

## Known failure modes

- Text exceeds 20000 UTF-8 bytes — request rejected
- Invalid or multi-character mask value — validation error
- Empty text input — may return empty match list
- Payment failure via x402 protocol — 402 response before processing
- Network timeout on large text near the byte limit

## How this service works

Check text for profanity and obscenity, returning each match with its offset and a redacted copy of the text.

## Output

Returns a list of profanity matches each with the matched word and its character offset in the original text, plus a fully redacted copy of the input text where each offensive word is replaced with the specified mask character (default '*').

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "mask": {
   "type": "string",
   "description": "Single character used for redaction, default *"
  },
  "text": {
   "type": "string",
   "description": "Text to check, up to 20000 UTF-8 bytes"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/fittings-profanity-filter-009ec127/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from fittings.sh](https://www.zero.xyz/host/fittings.sh/llms.txt)
