modwall documentation
modwall is an API for image and text moderation. You send an image (/v1/moderate) or text (/v1/moderate-text) and get back a raw score. We process content in memory and never store it — we log only metadata (time, score, size). Built to run in production from day one: clear error codes, webhooks, and an audit log.
Detection scope (images): nsfw (nudity / adult content) — always on; weapon (weapons) and violence (violence/gore, beta) — enabled per key profile, with results in the categories field. We don't detect offensive gestures. Text: toxicity, a multilingual model (understands Polish).
You choose the scope (images / text / both) in your plan — an endpoint outside your scope returns 403 capability_required.
Goal: a working request in 5 minutes. Sign up → generate a key → copy three lines from the Quickstart. You don't even need to write curl — there's a ready-made widget and copy-paste examples in Python, Node.js and PHP.
Two ways to integrate
| Server-side API | Widget (browser) | |
|---|---|---|
| Key | sk_live_ (secret, backend) | pk_live_ (public + domain allowlist) |
| Call | backend ↔ backend | from the user's browser |
| Use case | the compliance backbone, can't be bypassed | quick feedback on upload |
| Documentation | API reference | Website widget |
Recommendation: use the widget for UX, but real enforcement always happens server-side (the sk_live_ API). A public key plus domain checking is browser-side protection, not your compliance backbone.
Where to start
- Quick start — your key and first request in 5 minutes.
- API reference — endpoints, parameters, errors.
- Policy and moderation — thresholds, the HITL queue, reports, limits.
- Code examples — curl, Python, Node.js, PHP.
- openapi.json — machine-readable spec (OpenAPI 3.1).