Skip to main content
Image moderation evaluates a single image against the always-on AI Adult General prohibited-content check, which also covers any custom categories you have configured. When you enable the informational NSFW label, the job returns that as well.

Input

Submit a multipart/form-data request with:
The image field must be a public HTTP or HTTPS URL. URLs using another scheme, or resolving to a private or internal network address, are rejected with 400 INVALID_REQUEST.

Checks

AI Adult General

The image is analysed for the always-on AI Adult General policy, which covers prohibited adult content and content that depicts, or appears to depict, a minor in a sexual or exploitative context. Every enabled custom category is evaluated as part of the same check, so a custom match rejects the job like a built-in policy breach. This check cannot be disabled.

NSFW label

When the NSFW check is enabled, the informational nsfw boolean is returned alongside the decision. It never causes a rejection on its own. Disable it from the Moderation page and the check is skipped.

Output

On a rejection, a reason field explains what tripped. The nsfw field is only present when the NSFW check is enabled. There is no categories object on the response. See decision logic for how the prohibition decision is determined.