# HALOWERK Profanity Check

> HALOWERK Profanity Check is a paid API for AI agents from medien.halowerk.com, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-31).

Analyzes an audio/video recording of up to 120 minutes and returns every instance of profanity, slurs, insults, or explicit language with category, severity, timestamp, and ad-suitability summary.

## Facts

- Endpoint: POST https://medien.halowerk.com/v1/profanity-check?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-profanity-check-48c00ce2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_M7onXmkLChDJpNlUb7qp5

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 halowerk-profanity-check-48c00ce2 -d '<json body>'
```

Example prompt: Can you scan this podcast episode — I'll give you the URL — it's about 47 minutes long, spoken in English, and tell me every instance of profanity or explicit language with the timestamp, how severe each one is, and whether the episode is safe for advertisers?

## When to prefer this

Choose this endpoint when you need timestamped, categorized profanity and explicit language detection on audio or video recordings up to 120 minutes long, especially when context sensitivity (quoted vs. used language) and ad-suitability decisions matter. It is well-suited for podcast screeners, broadcast compliance workflows, and UGC moderation where a structured per-instance report with severity ratings is needed rather than a simple yes/no flag.

## Known failure modes

- File too long (over 120 minutes) — request rejected
- URL inaccessible or not a public HTTP/HTTPS link — fetch failure
- Unsupported audio/video format — decoding error
- base64 payload too large — use URL instead
- duration_minutes not provided or mismatched with actual file length — billing and processing issues
- Language detection fails on low-quality audio — may return reduced accuracy results

## How this service works

Takes a recording of up to 120 minutes and returns every instance of profanity, slurs, personal insults and explicit sexual or violent language, each with category, severity (mild, moderate, strong), the quote and timestamp, plus a summary for ad-suitability decisions. Context matters and is considered: quoting or discussing a word is marked as such.

## Output

A structured report listing every detected offensive language instance with: the exact quote, timestamp, category (profanity/slur/personal insult/explicit sexual or violent language), severity (mild/moderate/strong), and a context flag indicating whether the word was used vs. quoted/discussed. Also includes an overall ad-suitability summary for the recording.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "source": {
   "type": "object",
   "properties": {
    "url": {
     "type": "string",
     "maxLength": 2048,
     "description": "Public http(s) URL of the file."
    },
    "filename": {
     "type": "string",
     "maxLength": 260
    },
    "content_base64": {
     "type": "string",
     "maxLength": 12000000,
     "description": "The file inline, base64. Larger files by url."
    }
   },
   "description": "The recording. Either url or content_base64.",
   "additionalProperties": false
  },
  "language": {
   "type": "string",
   "maxLength": 12,
   "description": "Spoken language (BCP-47). Omit to detect."
  },
  "output_language": {
   "enum": [
    "de",
    "en",
    "es",
    "fr",
    "it",
    "nl",
    "pt",
    "pl",
    "tr",
    "sv",
    "da",
    "cs",
    "ru",
    "uk",
    "ja",
    "zh",
    "ko",
    "ar"
   ],
   "type": "string",
   "description": "Language of labels and explanations. Default: spoken language."
  },
  "duration_minutes": {
   "type": "integer",
   "maximum": 120,
   "minimum": 1,
   "description": "Length in started minutes — this is what you are billed for."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-profanity-check-48c00ce2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from medien.halowerk.com](https://www.zero.xyz/host/medien.halowerk.com/llms.txt)
