Per-account category toggles
Enable or disable individual moderation checks for your account
You can enable or disable the NSFW label, text moderation, and individual default policy categories. Default categories are enabled unless you explicitly disable them. Each category lists the moderation types it applies to. You can add custom categories alongside the default policy.
For image and video jobs, the AI Adult General check evaluates the enabled default and custom categories together. The separate Underage check remains enabled. See moderation categories.
Text jobs work differently: they have no image or video to evaluate, so their is_prohibited
decision comes from the text check alone. Disabling the text toggle therefore removes the only
check those jobs have, and every text job passes. Audio jobs are checked on their transcript by
the same text check, but that check is not covered by the text toggle and always runs.
By default, both optional checks are enabled.
Where to configure#
Open the Moderation page in the customer dashboard. Each check appears as a tile with a toggle. Changes are saved immediately and apply to all subsequent jobs.
Available toggles#
| Toggle | What it does |
|---|---|
nsfw |
Flags images and videos containing nudity, sexual content, or other adult material. Informational only. It never rejects a job itself. |
text |
Screens submitted text against your moderation policies, including your custom categories. |
How disabled checks behave#
nsfwdisabled: the NSFW check is skipped and thensfwfield is omitted from the job result and the webhook payload. The prohibited decision is unaffected.textdisabled: the text check is skipped for text jobs, and with it every custom category. Those jobs have no other check, so every one of them passes. Image, video, and audio jobs are unaffected. Audio still runs the same check on its transcript, custom categories included.- A
default_*category disabled: the category is not scored, so its key does not appear in the risk scores (scores) of the job result and the webhook payload.
Default categories#
The same dashboard page lists Default moderation categories above your custom categories. You
can toggle each listed default category. You cannot edit its criteria or view its prompt.
Child-safety categories are never listed: they always run, and a default_* key for one of them is
accepted but has no effect. Independent keyword filtering and the separate Underage check keep
their own behavior.
Call GET /api/v1/me/default-categories to discover category IDs, display names, enabled states,
and applicable workflows. This endpoint does not return policy prompts. Include the returned
default_* IDs in your enabled_categories configuration to change their state.
The optional scores object on a completed text or audio job holds an informational
risk score per enabled category. Its keys are the same IDs
without the default_ prefix: default_violence is scored as violence.
Child-safety categories are never scored.
Custom categories#
Custom categories have their own enable/disable flag, set per category rather than through this
endpoint. An enabled category runs on image, video, text and audio, but the text toggle still
wins over it. With text disabled, text jobs run no check at all, so the API evaluates none of your
custom categories on them. See custom categories.
API access#
You can also read and update your toggles from the API.
Read current settings#
curl https://api.omnifence.ai/api/v1/me/moderation-config \
-H "Authorization: Bearer $OMNIFENCE_API_KEY"
{
"enabled_categories": { "nsfw": false },
"catalogue": {
"nsfw": { "label": "NSFW", "description": "...", "icon": "..." },
"text": { "label": "Prompt Sanitisation", "description": "...", "icon": "..." }
}
}
The enabled_categories object contains only the checks you have explicitly disabled. Anything
missing is enabled. The catalogue provides human-readable labels and descriptions for each toggle.
Update settings#
curl -X PUT https://api.omnifence.ai/api/v1/me/moderation-config \
-H "Authorization: Bearer $OMNIFENCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "nsfw": false }'
The body must be a JSON object, and it replaces your whole configuration. Allowed keys are nsfw,
text, and default_* category IDs returned by /me/default-categories. Values must be booleans.
Sending an empty object {} resets all toggles to their default (enabled).