Migration guide

An Azure Content Moderator alternative for text moderation

Microsoft deprecated Azure Content Moderator in February 2024: it takes no new resources and retires on 15 March 2027. Its text classifiers work only in English and answer with three broad categories. VigiMod scores every message for eight categories in 26 languages, reads the previous messages and checks your own rules.

Side by side

Azure Content ModeratorVigiMod
StatusRetires 15 March 2027, no new resources since March 2024Active, new versions every few weeks
Text classification languagesEnglish only26 languages, best in Italian, English, Spanish, French, German, Portuguese
Categories3 broad classes and a review flag8 categories with a score each, plus spam and slur lists
Conversation contextNoUp to 10 previous messages
Community rulesWord listsUp to 10 rules in plain language, each with its own score
Personal data (PII) detectionYesNo
PricePay per transactionFree during the beta

If you need images or personal-data detection, Microsoft's own successor, Azure AI Content Safety, covers them. VigiMod is for text, where it adds context, community rules and languages beyond English.

From Content Moderator to VigiMod

Content ModeratorVigiModNote
Classification.Category1sexualSexually explicit content.
Classification.Category2sexualSexually suggestive: use a lower threshold, for example 0.6.
Classification.Category3toxic, insultOffensive language: toxic for rudeness, insult for attacks on a person.
ReviewRecommendedflaggedtrue when any category reaches its threshold.
Terms (term lists)block_slurs, rulesBuilt-in slur lists, or a rule such as “No swearing”.
PII—Not covered: keep a dedicated tool for personal data.

The same call, before and after

Content Moderator

import requests

r = requests.post(
    f"{AZURE_ENDPOINT}/contentmoderator/moderate/v1.0/ProcessText/Screen",
    params={"classify": "True", "language": "eng"},
    headers={"Ocp-Apim-Subscription-Key": AZURE_KEY, "Content-Type": "text/plain"},
    data=message.encode("utf-8"),
)
c = r.json()["Classification"]
flagged = c["ReviewRecommended"]
offensive = c["Category3"]["Score"]

VigiMod

import requests

r = requests.post(
    "https://api.vigimod.com/moderate",
    headers={"X-API-Key": VIGIMOD_KEY},
    json={
        "text": message,                       # any of 26 languages
        "context": previous_messages,          # optional: the last messages, oldest first
        "rules": {"no-ads": "No advertising"},  # optional: your own rules
    },
)
result = r.json()
flagged = result["flagged"]
offensive = result["scores"]["insult"]

What you gain

  • Moderation in 26 languages instead of English only.
  • The previous messages as context: replies and jokes are read with what came before.
  • Rules in plain language, like “No selling accounts”, each with its own score.
  • Per-request thresholds, so each community chooses how strict to be.
  • Messages are checked and discarded: nothing is stored or used for training.

Migrate in three steps

  1. 1

    Create a free account and an API key.

  2. 2

    Replace the Screen call with one POST to /moderate: the text in JSON, and if you want the previous messages and your rules.

  3. 3

    Map the fields with the table above, start from the default thresholds and adjust them on a few days of real messages.

Questions

When does Azure Content Moderator stop working?

Microsoft deprecated it in February 2024 and retires it on 15 March 2027. Since 15 March 2024 no new Content Moderator resources can be created; existing ones keep working until the retirement date.

What is the official replacement?

Microsoft recommends Azure AI Content Safety. VigiMod is an alternative for text moderation when you need several languages, conversation context or your community's own rules.

Does VigiMod moderate images?

No. VigiMod moderates text only. For images you need a separate service.

How long does the migration take?

For most integrations, less than an hour: one HTTP call changes, and the fields map one to one as shown above. Plan a few days to tune thresholds on your own messages.

How much does it cost?

It is free during the beta, with 120 messages per minute per API key. See the pricing page for the exact limits.

Move before March 2027

Create a free key and send your first request in a couple of minutes.