· 6 min read

OpenAI Moderation API: omni-moderation-latest, categories, pricing and limits

The OpenAI Moderation API tells you whether a piece of text or an image is potentially harmful, and in which category. It is free, quick to call and a common first step for teams that need to moderate user content. This guide sums up what it detects, what it returns, and what it leaves for you to build.

The short answer

  • Model: omni-moderation-latest, which accepts text and image inputs. It does not classify audio.
  • Price: free. OpenAI states that "the moderation endpoint is free to use", and image files can be up to 20 MB.
  • Output: a flagged boolean plus, for each category, a boolean and a confidence score between 0 and 1.
  • Categories: 13, six of which also apply to images.

How to call it

Send a POST request to the /v1/moderations endpoint with the model name and your input.

curl https://api.openai.com/v1/moderations   -H "Content-Type: application/json"   -H "Authorization: Bearer $OPENAI_API_KEY"   -d '{
    "model": "omni-moderation-latest",
    "input": "The comment you want to check"
  }'

You can also turn on inline moderation through the moderation parameter of the Responses API. In that case the result contains separate input and output sections, and either one can be an error object instead of scores.

What the response contains

  • flagged: true if the model classifies the content as potentially harmful, false otherwise.
  • categories: one boolean per category, telling you whether that category is violated.
  • category_scores: one confidence score per category, from 0 to 1. Higher means more confident.
  • category_applied_input_types: for each category, which input types (text, image) the score applies to.

The 13 categories

When you send only an image, text-only categories return a score of 0.

Category What it covers Inputs
harassment Harassing language towards any target. Text
harassment/threatening Harassment that also includes violence or serious harm towards any target. Text
hate Hate based on race, gender, ethnicity, religion, nationality, sexual orientation, disability or caste. Hateful content aimed at non-protected groups counts as harassment. Text
hate/threatening Hateful content that also includes violence or serious harm towards the targeted group. Text
illicit Advice or instructions on how to commit illicit acts. Text
illicit/violent Illicit content that also references violence or procuring a weapon. Text
self-harm Content that promotes, encourages or depicts acts of self-harm. Text and images
self-harm/intent The speaker expresses that they are engaging, or intend to engage, in self-harm. Text and images
self-harm/instructions Content that encourages self-harm or gives instructions on how to do it. Text and images
sexual Content meant to arouse sexual excitement, or that promotes sexual services (sex education and wellness excluded). Text and images
sexual/minors Sexual content that includes an individual under 18. Text
violence Content that depicts death, violence or physical injury. Text and images
violence/graphic Content that depicts death, violence or physical injury in graphic detail. Text and images

Points to keep in mind

  • OpenAI warns that custom policies relying on category_scores may need recalibration over time, as the model evolves.
  • Scores are not included in partial streamed output deltas when you use inline moderation.
  • With tool calls, arguments and tool outputs are moderated, but tool names, descriptions and schemas are not.
  • Do not send known or suspected child sexual abuse material to the Moderation API.

What the Moderation API leaves to you

A score is not a moderation decision. Once you have it, you still need to decide where to set the threshold for each category, what to do with the comments in between, how to apply rules that are specific to your community, and how to explain each removal to its author. Under the Digital Services Act, hosting services must give a statement of reasons for every removal and say whether automated means were used.

OpenModeration adds that missing layer, on top of its own moderation AI cross-checked by other models: rules written in plain language, two thresholds per category with a grey zone reviewed by our team, a console where you see every decision in real time, a written reason for every decision and a complete audit log. When a better or cheaper AI model comes out, we plug it in, without any change to your integration.

Source: OpenAI Moderation guide, consulted on October 20, 2026.

FAQ

Is the OpenAI Moderation API free?

Yes. OpenAI states that the moderation endpoint is free to use. Image inputs can be up to 20 MB.

What is omni-moderation-latest?

omni-moderation-latest is OpenAI's current moderation model. It accepts text and image inputs, but it does not classify audio.

Which categories does the OpenAI Moderation API detect?

Thirteen: harassment, harassment/threatening, hate, hate/threatening, illicit, illicit/violent, self-harm, self-harm/intent, self-harm/instructions, sexual, sexual/minors, violence and violence/graphic. Six of them also apply to images.

What does the OpenAI Moderation API not do?

It returns scores and flags, nothing more. Deciding what to hide, writing your community rules, reviewing borderline cases, explaining each decision to the author and keeping an audit trail for the DSA are left to you. OpenModeration adds that layer, with its own moderation AI cross-checked by other models and doubtful cases handled by our team.

By use case

All use cases →

Protect your brand in a few minutes.

Connect your site or your pages and tell us your rules and use cases. We set up the moderation and run it for you: our team handles the doubtful cases and reports, and you see every decision and its reason in real time.

No credit card required · DSA-compliant · GDPR-compliant

Questions? contact@openmoderation.com

Book a call 60 min · free · no commitment