---
title: "Classifies if text and/or image inputs are potentially harmful. Learn more in the [moderation guide](/docs/guides/moderation)."
url: "https://kongair.terwilligar.com/apis/openai-api-2-3-0/versions/ea92d048-c746-4ead-a6a8-da28d93137d1/operations/createModeration"
---

> Full API specification: https://kongair.terwilligar.com/apis/openai-api-2-3-0/versions/ea92d048-c746-4ead-a6a8-da28d93137d1.md

# Classifies if text and/or image inputs are potentially harmful. Learn more in the [moderation guide](/docs/guides/moderation).

`POST` `/moderations`

Operation ID: `createModeration`

## Request body (required)

Content types: `application/json`

## Responses

- `200` - OK

## OpenAPI definition

```yaml
openapi: 3.0.0
info:
  title: OpenAI API
  version: 2.3.0
servers:
  - url: https://api.openai.com/v1
paths:
  /moderations:
    post:
      operationId: createModeration
      tags:
        - Moderations
      summary: |
        Classifies if text and/or image inputs are potentially harmful. Learn
        more in the [moderation guide](/docs/guides/moderation).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateModerationRequest"
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreateModerationResponse"
      x-oaiMeta:
        name: Create moderation
        group: moderations
        returns: A [moderation](/docs/api-reference/moderations/object) object.
        examples:
          - title: Single string
            request:
              curl: |
                curl https://api.openai.com/v1/moderations \
                  -H "Content-Type: application/json" \
                  -H "Authorization: Bearer $OPENAI_API_KEY" \
                  -d '{
                    "input": "I want to kill them."
                  }'
              python: >
                from openai import OpenAI

                client = OpenAI()


                moderation = client.moderations.create(input="I want to kill
                them.")

                print(moderation)
              node.js: >
                import OpenAI from "openai";


                const openai = new OpenAI();


                async function main() {
                  const moderation = await openai.moderations.create({ input: "I want to kill them." });

                  console.log(moderation);
                }

                main();
            response: |
              {
                "id": "modr-AB8CjOTu2jiq12hp1AQPfeqFWaORR",
                "model": "text-moderation-007",
                "results": [
                  {
                    "flagged": true,
                    "categories": {
                      "sexual": false,
                      "hate": false,
                      "harassment": true,
                      "self-harm": false,
                      "sexual/minors": false,
                      "hate/threatening": false,
                      "violence/graphic": false,
                      "self-harm/intent": false,
                      "self-harm/instructions": false,
                      "harassment/threatening": true,
                      "violence": true
                    },
                    "category_scores": {
                      "sexual": 0.000011726012417057063,
                      "hate": 0.22706663608551025,
                      "harassment": 0.5215635299682617,
                      "self-harm": 2.227119921371923e-6,
                      "sexual/minors": 7.107352217872176e-8,
                      "hate/threatening": 0.023547329008579254,
                      "violence/graphic": 0.00003391829886822961,
                      "self-harm/intent": 1.646940972932498e-6,
                      "self-harm/instructions": 1.1198755256458526e-9,
                      "harassment/threatening": 0.5694745779037476,
                      "violence": 0.9971134662628174
                    }
                  }
                ]
              }
          - title: Image and text
            request:
              curl: >
                curl https://api.openai.com/v1/moderations \
                  -X POST \
                  -H "Content-Type: application/json" \
                  -H "Authorization: Bearer $OPENAI_API_KEY" \
                  -d '{
                    "model": "omni-moderation-latest",
                    "input": [
                      { "type": "text", "text": "...text to classify goes here..." },
                      {
                        "type": "image_url",
                        "image_url": {
                          "url": "https://example.com/image.png"
                        }
                      }
                    ]
                  }'
              python: >
                from openai import OpenAI

                client = OpenAI()


                response = client.moderations.create(
                    model="omni-moderation-latest",
                    input=[
                        {"type": "text", "text": "...text to classify goes here..."},
                        {
                            "type": "image_url",
                            "image_url": {
                                "url": "https://example.com/image.png",
                                # can also use base64 encoded image URLs
                                # "url": "data:image/jpeg;base64,abcdefg..."
                            }
                        },
                    ],
                )


                print(response)
              node.js: >
                import OpenAI from "openai";

                const openai = new OpenAI();


                const moderation = await openai.moderations.create({
                    model: "omni-moderation-latest",
                    input: [
                        { type: "text", text: "...text to classify goes here..." },
                        {
                            type: "image_url",
                            image_url: {
                                url: "https://example.com/image.png"
                                // can also use base64 encoded image URLs
                                // url: "data:image/jpeg;base64,abcdefg..."
                            }
                        }
                    ],
                });


                console.log(moderation);
            response: |
              {
                "id": "modr-0d9740456c391e43c445bf0f010940c7",
                "model": "omni-moderation-latest",
                "results": [
                  {
                    "flagged": true,
                    "categories": {
                      "harassment": true,
                      "harassment/threatening": true,
                      "sexual": false,
                      "hate": false,
                      "hate/threatening": false,
                      "illicit": false,
                      "illicit/violent": false,
                      "self-harm/intent": false,
                      "self-harm/instructions": false,
                      "self-harm": false,
                      "sexual/minors": false,
                      "violence": true,
                      "violence/graphic": true
                    },
                    "category_scores": {
                      "harassment": 0.8189693396524255,
                      "harassment/threatening": 0.804985420696006,
                      "sexual": 1.573112165348997e-6,
                      "hate": 0.007562942636942845,
                      "hate/threatening": 0.004208854591835476,
                      "illicit": 0.030535955153511665,
                      "illicit/violent": 0.008925306722380033,
                      "self-harm/intent": 0.00023023930975076432,
                      "self-harm/instructions": 0.0002293869201073356,
                      "self-harm": 0.012598046106750154,
                      "sexual/minors": 2.212566909570261e-8,
                      "violence": 0.9999992735124786,
                      "violence/graphic": 0.843064871157054
                    },
                    "category_applied_input_types": {
                      "harassment": [
                        "text"
                      ],
                      "harassment/threatening": [
                        "text"
                      ],
                      "sexual": [
                        "text",
                        "image"
                      ],
                      "hate": [
                        "text"
                      ],
                      "hate/threatening": [
                        "text"
                      ],
                      "illicit": [
                        "text"
                      ],
                      "illicit/violent": [
                        "text"
                      ],
                      "self-harm/intent": [
                        "text",
                        "image"
                      ],
                      "self-harm/instructions": [
                        "text",
                        "image"
                      ],
                      "self-harm": [
                        "text",
                        "image"
                      ],
                      "sexual/minors": [
                        "text"
                      ],
                      "violence": [
                        "text",
                        "image"
                      ],
                      "violence/graphic": [
                        "text",
                        "image"
                      ]
                    }
                  }
                ]
              }
security:
  - ApiKeyAuth: []
components:
  schemas:
    CreateModerationRequest:
      type: object
      properties:
        input:
          description: >
            Input (or inputs) to classify. Can be a single string, an array of
            strings, or

            an array of multi-modal input objects similar to other models.
          oneOf:
            - type: string
              description: A string of text to classify for moderation.
              default: ""
              example: I want to kill them.
            - type: array
              description: An array of strings to classify for moderation.
              items:
                type: string
                default: ""
                example: I want to kill them.
            - type: array
              description: An array of multi-modal inputs to the moderation model.
              items:
                x-oaiExpandable: true
                oneOf:
                  - type: object
                    description: An object describing an image to classify.
                    properties:
                      type:
                        description: Always `image_url`.
                        type: string
                        enum:
                          - image_url
                        x-stainless-const: true
                      image_url:
                        type: object
                        description: Contains either an image URL or a data URL for a base64 encoded
                          image.
                        properties:
                          url:
                            type: string
                            description: Either a URL of the image or the base64 encoded image data.
                            format: uri
                            example: https://example.com/image.jpg
                        required:
                          - url
                    required:
                      - type
                      - image_url
                  - type: object
                    description: An object describing text to classify.
                    properties:
                      type:
                        description: Always `text`.
                        type: string
                        enum:
                          - text
                        x-stainless-const: true
                      text:
                        description: A string of text to classify.
                        type: string
                        example: I want to kill them
                    required:
                      - type
                      - text
          x-oaiExpandable: true
        model:
          description: |
            The content moderation model you would like to use. Learn more in
            [the moderation guide](/docs/guides/moderation), and learn about
            available models [here](/docs/models#moderation).
          nullable: false
          default: omni-moderation-latest
          example: omni-moderation-2024-09-26
          anyOf:
            - type: string
            - type: string
              enum:
                - omni-moderation-latest
                - omni-moderation-2024-09-26
                - text-moderation-latest
                - text-moderation-stable
          x-oaiTypeLabel: string
      required:
        - input
    CreateModerationResponse:
      type: object
      description: Represents if a given text input is potentially harmful.
      properties:
        id:
          type: string
          description: The unique identifier for the moderation request.
        model:
          type: string
          description: The model used to generate the moderation results.
        results:
          type: array
          description: A list of moderation objects.
          items:
            type: object
            properties:
              flagged:
                type: boolean
                description: Whether any of the below categories are flagged.
              categories:
                type: object
                description: A list of the categories, and whether they are flagged or not.
                properties:
                  hate:
                    type: boolean
                    description: Content that expresses, incites, or promotes hate based on race,
                      gender, ethnicity, religion, nationality, sexual
                      orientation, disability status, or caste. Hateful content
                      aimed at non-protected groups (e.g., chess players) is
                      harassment.
                  hate/threatening:
                    type: boolean
                    description: Hateful content that also includes violence or serious harm towards
                      the targeted group based on race, gender, ethnicity,
                      religion, nationality, sexual orientation, disability
                      status, or caste.
                  harassment:
                    type: boolean
                    description: Content that expresses, incites, or promotes harassing language
                      towards any target.
                  harassment/threatening:
                    type: boolean
                    description: Harassment content that also includes violence or serious harm
                      towards any target.
                  illicit:
                    type: boolean
                    nullable: true
                    description: Content that includes instructions or advice that facilitate the
                      planning or execution of wrongdoing, or that gives advice
                      or instruction on how to commit illicit acts. For example,
                      "how to shoplift" would fit this category.
                  illicit/violent:
                    type: boolean
                    nullable: true
                    description: Content that includes instructions or advice that facilitate the
                      planning or execution of wrongdoing that also includes
                      violence, or that gives advice or instruction on the
                      procurement of any weapon.
                  self-harm:
                    type: boolean
                    description: Content that promotes, encourages, or depicts acts of self-harm,
                      such as suicide, cutting, and eating disorders.
                  self-harm/intent:
                    type: boolean
                    description: Content where the speaker expresses that they are engaging or
                      intend to engage in acts of self-harm, such as suicide,
                      cutting, and eating disorders.
                  self-harm/instructions:
                    type: boolean
                    description: Content that encourages performing acts of self-harm, such as
                      suicide, cutting, and eating disorders, or that gives
                      instructions or advice on how to commit such acts.
                  sexual:
                    type: boolean
                    description: Content meant to arouse sexual excitement, such as the description
                      of sexual activity, or that promotes sexual services
                      (excluding sex education and wellness).
                  sexual/minors:
                    type: boolean
                    description: Sexual content that includes an individual who is under 18 years
                      old.
                  violence:
                    type: boolean
                    description: Content that depicts death, violence, or physical injury.
                  violence/graphic:
                    type: boolean
                    description: Content that depicts death, violence, or physical injury in graphic
                      detail.
                required:
                  - hate
                  - hate/threatening
                  - harassment
                  - harassment/threatening
                  - illicit
                  - illicit/violent
                  - self-harm
                  - self-harm/intent
                  - self-harm/instructions
                  - sexual
                  - sexual/minors
                  - violence
                  - violence/graphic
              category_scores:
                type: object
                description: A list of the categories along with their scores as predicted by
                  model.
                properties:
                  hate:
                    type: number
                    description: The score for the category 'hate'.
                  hate/threatening:
                    type: number
                    description: The score for the category 'hate/threatening'.
                  harassment:
                    type: number
                    description: The score for the category 'harassment'.
                  harassment/threatening:
                    type: number
                    description: The score for the category 'harassment/threatening'.
                  illicit:
                    type: number
                    description: The score for the category 'illicit'.
                  illicit/violent:
                    type: number
                    description: The score for the category 'illicit/violent'.
                  self-harm:
                    type: number
                    description: The score for the category 'self-harm'.
                  self-harm/intent:
                    type: number
                    description: The score for the category 'self-harm/intent'.
                  self-harm/instructions:
                    type: number
                    description: The score for the category 'self-harm/instructions'.
                  sexual:
                    type: number
                    description: The score for the category 'sexual'.
                  sexual/minors:
                    type: number
                    description: The score for the category 'sexual/minors'.
                  violence:
                    type: number
                    description: The score for the category 'violence'.
                  violence/graphic:
                    type: number
                    description: The score for the category 'violence/graphic'.
                required:
                  - hate
                  - hate/threatening
                  - harassment
                  - harassment/threatening
                  - illicit
                  - illicit/violent
                  - self-harm
                  - self-harm/intent
                  - self-harm/instructions
                  - sexual
                  - sexual/minors
                  - violence
                  - violence/graphic
              category_applied_input_types:
                type: object
                description: A list of the categories along with the input type(s) that the
                  score applies to.
                properties:
                  hate:
                    type: array
                    description: The applied input type(s) for the category 'hate'.
                    items:
                      type: string
                      enum:
                        - text
                      x-stainless-const: true
                  hate/threatening:
                    type: array
                    description: The applied input type(s) for the category 'hate/threatening'.
                    items:
                      type: string
                      enum:
                        - text
                      x-stainless-const: true
                  harassment:
                    type: array
                    description: The applied input type(s) for the category 'harassment'.
                    items:
                      type: string
                      enum:
                        - text
                      x-stainless-const: true
                  harassment/threatening:
                    type: array
                    description: The applied input type(s) for the category
                      'harassment/threatening'.
                    items:
                      type: string
                      enum:
                        - text
                      x-stainless-const: true
                  illicit:
                    type: array
                    description: The applied input type(s) for the category 'illicit'.
                    items:
                      type: string
                      enum:
                        - text
                      x-stainless-const: true
                  illicit/violent:
                    type: array
                    description: The applied input type(s) for the category 'illicit/violent'.
                    items:
                      type: string
                      enum:
                        - text
                      x-stainless-const: true
                  self-harm:
                    type: array
                    description: The applied input type(s) for the category 'self-harm'.
                    items:
                      type: string
                      enum:
                        - text
                        - image
                  self-harm/intent:
                    type: array
                    description: The applied input type(s) for the category 'self-harm/intent'.
                    items:
                      type: string
                      enum:
                        - text
                        - image
                  self-harm/instructions:
                    type: array
                    description: The applied input type(s) for the category
                      'self-harm/instructions'.
                    items:
                      type: string
                      enum:
                        - text
                        - image
                  sexual:
                    type: array
                    description: The applied input type(s) for the category 'sexual'.
                    items:
                      type: string
                      enum:
                        - text
                        - image
                  sexual/minors:
                    type: array
                    description: The applied input type(s) for the category 'sexual/minors'.
                    items:
                      type: string
                      enum:
                        - text
                      x-stainless-const: true
                  violence:
                    type: array
                    description: The applied input type(s) for the category 'violence'.
                    items:
                      type: string
                      enum:
                        - text
                        - image
                  violence/graphic:
                    type: array
                    description: The applied input type(s) for the category 'violence/graphic'.
                    items:
                      type: string
                      enum:
                        - text
                        - image
                required:
                  - hate
                  - hate/threatening
                  - harassment
                  - harassment/threatening
                  - illicit
                  - illicit/violent
                  - self-harm
                  - self-harm/intent
                  - self-harm/instructions
                  - sexual
                  - sexual/minors
                  - violence
                  - violence/graphic
            required:
              - flagged
              - categories
              - category_scores
              - category_applied_input_types
      required:
        - id
        - model
        - results
      x-oaiMeta:
        name: The moderation object
        example: |
          {
            "id": "modr-0d9740456c391e43c445bf0f010940c7",
            "model": "omni-moderation-latest",
            "results": [
              {
                "flagged": true,
                "categories": {
                  "harassment": true,
                  "harassment/threatening": true,
                  "sexual": false,
                  "hate": false,
                  "hate/threatening": false,
                  "illicit": false,
                  "illicit/violent": false,
                  "self-harm/intent": false,
                  "self-harm/instructions": false,
                  "self-harm": false,
                  "sexual/minors": false,
                  "violence": true,
                  "violence/graphic": true
                },
                "category_scores": {
                  "harassment": 0.8189693396524255,
                  "harassment/threatening": 0.804985420696006,
                  "sexual": 1.573112165348997e-6,
                  "hate": 0.007562942636942845,
                  "hate/threatening": 0.004208854591835476,
                  "illicit": 0.030535955153511665,
                  "illicit/violent": 0.008925306722380033,
                  "self-harm/intent": 0.00023023930975076432,
                  "self-harm/instructions": 0.0002293869201073356,
                  "self-harm": 0.012598046106750154,
                  "sexual/minors": 2.212566909570261e-8,
                  "violence": 0.9999992735124786,
                  "violence/graphic": 0.843064871157054
                },
                "category_applied_input_types": {
                  "harassment": [
                    "text"
                  ],
                  "harassment/threatening": [
                    "text"
                  ],
                  "sexual": [
                    "text",
                    "image"
                  ],
                  "hate": [
                    "text"
                  ],
                  "hate/threatening": [
                    "text"
                  ],
                  "illicit": [
                    "text"
                  ],
                  "illicit/violent": [
                    "text"
                  ],
                  "self-harm/intent": [
                    "text",
                    "image"
                  ],
                  "self-harm/instructions": [
                    "text",
                    "image"
                  ],
                  "self-harm": [
                    "text",
                    "image"
                  ],
                  "sexual/minors": [
                    "text"
                  ],
                  "violence": [
                    "text",
                    "image"
                  ],
                  "violence/graphic": [
                    "text",
                    "image"
                  ]
                }
              }
            ]
          }
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
```
