Comparison

An OpenAI Moderation API alternative that applies your rules

OpenAI's moderation endpoint (omni-moderation-latest) is free and checks text and images for 13 fixed categories. It scores each message on its own and cannot learn your community's rules. VigiMod reads the previous messages, checks rules you write in plain language and is free during the beta.

Side by side

OpenAI ModerationVigiMod
PriceFreeFree during the beta
Categories13 fixed sub-categories8 categories, plus spam, slur lists and your rules
Community rulesNoUp to 10 rules in plain language per request, each with its own score
Conversation contextNo, each input is scored aloneUp to 10 previous messages
ThresholdsFixed flags; scores to use yourselfDefault thresholds you can change per request
Spam and repeated messagesNoPer-user spam score
AccountOpenAI account and API keyVigiMod account and API key

VigiMod moderates text: chat, comments, forum posts. If you also need images moderated, run an image service next to it. For text, VigiMod adds what generic endpoints do not have: your community's rules and the context of the conversation.

From OpenAI categories to VigiMod

OpenAIVigiModNote
harassmentinsult, toxicinsult for attacks on a person, toxic for general rudeness.
harassment/threateningthreatThreats against a person.
hate, hate/threateninghate (+ threat)Attacks on people for who they are.
self-harm, /intent, /instructionsself_harmOne category; tune its threshold for your audience.
sexualsexualSexual content.
sexual/minorschild_safetyOpt-in: add it to categories.
violence, violence/graphicthreatOnly threats are covered; for graphic descriptions add a rule.
illicit, illicit/violentrulesWrite it as a rule, for example “No selling drugs or weapons”.

The same call, before and after

OpenAI Moderation

from openai import OpenAI

client = OpenAI()
r = client.moderations.create(
    model="omni-moderation-latest",
    input=message,
)
result = r.results[0]
flagged = result.flagged
harassment = result.category_scores.harassment

VigiMod

import requests

r = requests.post(
    "https://api.vigimod.com/moderate",
    headers={"X-API-Key": VIGIMOD_KEY},
    json={
        "text": message,
        "context": previous_messages,   # optional: the last messages, oldest first
        "rules": {"no-spoilers": "No spoilers about films or series"},
    },
)
result = r.json()
flagged = result["flagged"]
insult = result["scores"]["insult"]
spoiler = result["scores"]["rule:no-spoilers"]

What you gain

  • Your community's rules, like “No spoilers” or “No selling accounts”, scored like any category.
  • The previous messages as context: jokes between friends and replies are read correctly.
  • Per-request thresholds, so each server or forum decides how strict to be.
  • A spam score per user, for repeated messages and floods.
  • Messages are checked and discarded: nothing is stored or used for training.

Switch in three steps

  1. 1

    Create a free account and an API key.

  2. 2

    Replace the moderations call with one POST to /moderate, adding the previous messages and your rules if you want them.

  3. 3

    Map the categories with the table above and check the thresholds on a few days of real messages.

Questions

Is the OpenAI Moderation API free?

Yes, OpenAI does not charge for its moderation endpoint. VigiMod is also free during the beta; the reason to switch is not the price but rules, context and community-specific thresholds.

Can the OpenAI Moderation API use custom categories?

No. Its categories are fixed. To enforce a community rule you need another layer, such as a language model prompt or an API that accepts rules, like VigiMod.

Can I use both?

Yes. A common setup is OpenAI for images and VigiMod for chat text with your rules and context.

Does VigiMod understand languages other than English?

It was trained on 26 languages and works best in Italian, English, Spanish, French, German and Portuguese.

How long does switching take?

Usually less than an hour: one HTTP call changes and the categories map as in the table above.

Try your own rules

Create a free key and test a rule on your messages in a couple of minutes.