---
title: OpenAI Moderation API — Variants, pricing & model skill | RunAPI
description: Compare OpenAI Moderation API variants, pricing per call, and the OpenAI Moderation skill for app development. One API key, skills-first workflow.
url: https://runapi.ai/models/openai-moderation.md
canonical: https://runapi.ai/models/openai-moderation
locale: en
site: RunAPI
image: https://runapi.ai/assets/opengraph-f702f2b1.png
alternates:
  en: https://runapi.ai/models/openai-moderation
  zh-CN: https://runapi.ai/zh-CN/models/openai-moderation
  es: https://runapi.ai/es/models/openai-moderation
  ja: https://runapi.ai/ja/models/openai-moderation
  de: https://runapi.ai/de/models/openai-moderation
  fr: https://runapi.ai/fr/models/openai-moderation
  pt-BR: https://runapi.ai/pt-BR/models/openai-moderation
  ko: https://runapi.ai/ko/models/openai-moderation
  it: https://runapi.ai/it/models/openai-moderation
  nl: https://runapi.ai/nl/models/openai-moderation
  pl: https://runapi.ai/pl/models/openai-moderation
  tr: https://runapi.ai/tr/models/openai-moderation
  zh-TW: https://runapi.ai/zh-TW/models/openai-moderation
  zh-HK: https://runapi.ai/zh-HK/models/openai-moderation
  ar: https://runapi.ai/ar/models/openai-moderation
  x-default: https://runapi.ai/models/openai-moderation
model: OpenAI Moderation
provider: OpenAI
modality: utility
variant_count: 1
price_from_cents: 1
---

> HTML version: https://runapi.ai/models/openai-moderation
> Site index for agents: https://runapi.ai/llms.txt


# OpenAI Moderation API

Use the OpenAI Moderation API via RunAPI with a model skill, unified auth, and pay-as-you-go pricing.

- [Try in playground](https://runapi.ai/login)
- [API reference →](https://runapi.ai/docs/api/openai/moderations)

**Provider:** OpenAI
**Modality:** Utility
**Catalog:** 1 endpoints

The OpenAI Moderation API delivers a strong quality-to-cost ratio in the utility space. Multiple variants let you pick the tier that matches your latency, quality, and budget targets — start on a fast or lite variant for prototyping, then graduate to pro or max for production. Install the OpenAI Moderation skill to bring docs, typed schemas, pricing notes, and step-by-step setup into your coding workspace. The skill works with Claude Code, Codex, Gemini CLI, Cursor, and VS Code, so your agent has the right context before you write integration code. All variants share a single RunAPI API key, unified billing in USD, and the same async task lifecycle — submit, poll or stream, and receive results via webhook callback.

- Multiple variants for different speed, quality, and cost tiers
- Model skill includes docs, schemas, pricing, and setup notes
- Works with Claude Code, Codex, Gemini CLI, Cursor, and VS Code
- Single API key and unified billing across all variants
- Async task management with polling and webhook callbacks
- Failed generations are not charged

## Pricing

### `moderation`

- $0.01 / request



Failed generations are not charged

## Technical details

| Field | Value |
|---|---|
| Model ID | `omni-moderation-latest` |
| Provider | OpenAI |
| Modality | utility |
| Task type | synchronous |
| Billing unit | call |
| API endpoint | `/v1/moderations` |
| Commercial license | Yes — included via API |
| Catalog status | Operational |


## OpenAI Moderation API endpoints

Use the OpenAI or Anthropic SDK with your RunAPI key. No extra SDK required.

Base URL: `https://runapi.ai`

| Endpoint | Protocol |
|---|---|
| `POST /v1/moderations` | OpenAI Moderations |


## From model skill to first result in four steps

1. **Choose a model** — Browse the model catalog and pick the model and variant that match your output type, quality bar, and latency target. Each variant page shows its model ID, pricing, and parameter constraints so you can compare before committing.
2. **Configure** — Set your RunAPI API key as an environment variable and install the model skill in your coding workspace. The skill loads docs, typed schemas, pricing notes, and setup steps so your agent has the right context from the start.
3. **Call** — Use the skill instructions to add the model feature inside your application. Send a POST request with your prompt, model ID, and parameters. RunAPI routes the request, manages the async lifecycle, and returns structured JSON.
4. **Receive** — Poll by task ID for completion, stream results end-to-end when supported, or configure a webhook callback URL to receive results automatically. The CLI provides a built-in wait command, and the SDKs offer both polling and callback patterns.

## What is the OpenAI Moderation API?

The OpenAI Moderation API exposes a utility model from OpenAI, accessible through RunAPI with a single API key and per-call billing. Developers call OpenAI Moderation the same way they call any other model in the RunAPI catalog — set the model parameter, submit a request, and receive structured JSON. The model skill packages docs, typed schemas, pricing notes, and setup steps so your coding agent has the right context before you write integration code. Billing is unified across all providers, failed generations are never charged, and results are retrievable by task ID.

**Provider:** OpenAI
**Modality:** Utility

## Why route the OpenAI Moderation API through RunAPI

- **One auth, every provider** — A single RunAPI API key unlocks the whole model catalog across all providers. No separate accounts to create, no API keys to rotate per integration, and no credential management overhead. Add a new model to your app by changing one parameter.
- **Unified pricing & billing** — Per-call pricing in USD, billed monthly into a single invoice. No subscription tiers, no minimum spend, and failed generations are never charged. The pricing page and check_pricing API show exact costs before you commit to a model.
- **Schema-first SDK** — Typed schemas, parameter constraints, and setup notes are packaged in the model skill so your implementation starts from the right contract. The skill loads into Claude Code, Codex, Gemini CLI, Cursor, and VS Code — your agent knows the correct request shape before you write a line of code.

## Common questions

### What inputs can omni-moderation-latest classify?

It accepts text, text arrays, and mixed text-and-image content using image URLs or base64 data, and returns a synchronous OpenAI-compatible moderation result.

### Which variant should I start with?

Pick the cheapest variant that meets your quality bar. Most teams start on the fast variant and graduate to pro for production.

### Is there a free tier?

New accounts get free first calls on every model. After that, pay per call.

### Do you stream results?

Where streaming is available, RunAPI streams end-to-end.

### How are failures billed?

Failed generations are not charged.

### Are outputs cached?

Generated outputs are stored and retrievable by task ID. Inputs are not cached.

### Can I use commercially?

Yes — commercial use is included for every variant unless a model license explicitly restricts it, which is called out on the variant page.

### What about rate limits?

Per-key rate limits scale with usage tier. See pricing page for current limits.

### Where can I report issues?

Open an issue on the public GitHub repo or email support.


## If you like the OpenAI Moderation API, try these

- [Midjourney](https://runapi.ai/models/midjourney.md) — from $0.0000
- [OmniHuman](https://runapi.ai/models/omnihuman.md) — from $0.0000
- [Recraft](https://runapi.ai/models/recraft.md) — from $0.010
- [Topaz](https://runapi.ai/models/topaz.md) — from $0.140

## Start building with the OpenAI Moderation API.

- [Create free account](https://runapi.ai/login)
- [Read the quickstart →](https://runapi.ai/docs/api/openai/moderations)

### Endpoints

- `moderation`

### Same category

- [Midjourney](https://runapi.ai/models/midjourney.md)
- [OmniHuman](https://runapi.ai/models/omnihuman.md)
- [Recraft](https://runapi.ai/models/recraft.md)
- [Topaz](https://runapi.ai/models/topaz.md)

### From this provider

- [Embedding](https://runapi.ai/models/embedding.md)
- [GPT](https://runapi.ai/models/gpt.md)
- [GPT Image](https://runapi.ai/models/gpt-image.md)
- [GPT Image 2](https://runapi.ai/models/gpt-image-2.md)

### Docs

- [Quickstart](https://runapi.ai/docs/api/openai/moderations)
- [API reference](https://runapi.ai/docs/api/openai/moderations)
- [SDK README](https://github.com/runapi-ai)
- Changelog

---

## More from RunAPI

- [Home](https://runapi.ai/.md)
- [Models](https://runapi.ai/models.md)
- [AI Video API Comparison](https://runapi.ai/ai-video-api-comparison.md)
- [OpenClaw Integration](https://runapi.ai/openclaw.md)
- [Best API for OpenClaw](https://runapi.ai/best-api-for-openclaw.md)
- [OpenClaw Image Generation](https://runapi.ai/openclaw-image-generation.md)
- [Hermes Agent Integration](https://runapi.ai/hermes-agent.md)
- [Pricing](https://runapi.ai/pricing.md)
- [Claude API Pricing](https://runapi.ai/claude-api-pricing.md)
- [ChatGPT API Pricing](https://runapi.ai/chatgpt-api-pricing.md)
- [OpenAI API Pricing](https://runapi.ai/openai-api-pricing.md)
- [Gemini API Pricing](https://runapi.ai/gemini-api-pricing.md)
- [Claude Code Pricing](https://runapi.ai/claude-code-pricing.md)
- [Claude Code API](https://runapi.ai/claude-code-api.md)
- [Claude Code vs Cursor](https://runapi.ai/claude-code-vs-cursor.md)
- [Claude Max vs API](https://runapi.ai/claude-max-vs-api.md)
- [Requesty Alternative](https://runapi.ai/requesty-alternative.md)
- [Docs](https://runapi.ai/docs/guides)
- [SDK](https://runapi.ai/sdk.md)
- [Skills](https://runapi.ai/skills.md)
- [MCP Server](https://runapi.ai/mcp.md)
- [CLI](https://runapi.ai/cli.md)
- [Feedback](https://runapi.makethisbetter.dev)
- [Contact](mailto:support@runapi.ai)
- [Terms](https://runapi.ai/terms.md)
- [Privacy](https://runapi.ai/privacy.md)
- [Site index for agents](https://runapi.ai/llms.txt)

Contact: contact@runapi.ai

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "WebSite",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "potentialAction": {
      "@type": "SearchAction",
      "target": {
        "@type": "EntryPoint",
        "urlTemplate": "https://runapi.ai/models?q={search_term_string}"
      },
      "query-input": "required name=search_term_string"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "Organization",
    "name": "RunAPI",
    "url": "https://runapi.ai/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://runapi.ai/icon.svg"
    },
    "sameAs": [
      "https://github.com/runapi-ai"
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "SoftwareApplication",
    "name": "OpenAI Moderation",
    "applicationCategory": "DeveloperApplication",
    "operatingSystem": "Cross-platform",
    "hasVariant": [
      {
        "@type": "SoftwareApplication",
        "name": "OpenAI Moderation omni-moderation-latest"
      }
    ],
    "offers": {
      "@type": "AggregateOffer",
      "lowPrice": "$0.010",
      "priceCurrency": "USD"
    }
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Home",
        "item": "https://runapi.ai/"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Models",
        "item": "https://runapi.ai/models"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "OpenAI Moderation",
        "item": "https://runapi.ai/models/openai-moderation"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "HowTo",
    "name": "From model skill to first result in four steps",
    "description": "Compare OpenAI Moderation API variants, pricing per call, and the OpenAI Moderation skill for app development. One API key, skills-first workflow.",
    "totalTime": "PT5M",
    "step": [
      {
        "@type": "HowToStep",
        "position": 1,
        "name": "Choose a model",
        "text": "Browse the model catalog and pick the model and variant that match your output type, quality bar, and latency target. Each variant page shows its model ID, pricing, and parameter constraints so you can compare before committing.",
        "url": "https://runapi.ai/models/openai-moderation#how-step-1"
      },
      {
        "@type": "HowToStep",
        "position": 2,
        "name": "Configure",
        "text": "Set your RunAPI API key as an environment variable and install the model skill in your coding workspace. The skill loads docs, typed schemas, pricing notes, and setup steps so your agent has the right context from the start.",
        "url": "https://runapi.ai/models/openai-moderation#how-step-2"
      },
      {
        "@type": "HowToStep",
        "position": 3,
        "name": "Call",
        "text": "Use the skill instructions to add the model feature inside your application. Send a POST request with your prompt, model ID, and parameters. RunAPI routes the request, manages the async lifecycle, and returns structured JSON.",
        "url": "https://runapi.ai/models/openai-moderation#how-step-3"
      },
      {
        "@type": "HowToStep",
        "position": 4,
        "name": "Receive",
        "text": "Poll by task ID for completion, stream results end-to-end when supported, or configure a webhook callback URL to receive results automatically. The CLI provides a built-in wait command, and the SDKs offer both polling and callback patterns.",
        "url": "https://runapi.ai/models/openai-moderation#how-step-4"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "inLanguage": "en",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "What inputs can omni-moderation-latest classify?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "It accepts text, text arrays, and mixed text-and-image content using image URLs or base64 data, and returns a synchronous OpenAI-compatible moderation result."
        }
      },
      {
        "@type": "Question",
        "name": "Which variant should I start with?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Pick the cheapest variant that meets your quality bar. Most teams start on the fast variant and graduate to pro for production."
        }
      },
      {
        "@type": "Question",
        "name": "Is there a free tier?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "New accounts get free first calls on every model. After that, pay per call."
        }
      },
      {
        "@type": "Question",
        "name": "Do you stream results?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Where streaming is available, RunAPI streams end-to-end."
        }
      },
      {
        "@type": "Question",
        "name": "How are failures billed?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Failed generations are not charged."
        }
      },
      {
        "@type": "Question",
        "name": "Are outputs cached?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Generated outputs are stored and retrievable by task ID. Inputs are not cached."
        }
      },
      {
        "@type": "Question",
        "name": "Can I use commercially?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Yes — commercial use is included for every variant unless a model license explicitly restricts it, which is called out on the variant page."
        }
      },
      {
        "@type": "Question",
        "name": "What about rate limits?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Per-key rate limits scale with usage tier. See pricing page for current limits."
        }
      },
      {
        "@type": "Question",
        "name": "Where can I report issues?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Open an issue on the public GitHub repo or email support."
        }
      }
    ]
  }
]
```
