Content Moderator to Content Safety: what changes before 15 March 2027
Last updated:
⏳ 161 days left — the old API shuts down March 15, 2027.
Microsoft points Content Moderator customers to Azure AI Content Safety, but it is not a new version of the same API. It uses a different endpoint (text:analyze), a different JSON body and a different taxonomy (Hate, Sexual, Violence and SelfHarm severities). PII, video and human review each move to a different Microsoft product, so every workflow needs its own migration decision (Microsoft migration guide).
Facts on this page were checked against the linked Microsoft Learn pages on October 4, 2026.
Which date? Microsoft gives two retirement dates:
- Content Moderator's documentation says it "will be retired on March 15, 2027" (Microsoft Learn).
- The lifecycle table lists April 1, 2027, 06:59 Pacific time (lifecycle).
Plan for the earlier date, and check the retirement notice for your own subscription.
If you would rather not rewrite the text-screening call before then, a wire-compatible Content Moderator replacement keeps ProcessText/Screen working with only a host and key change.
Where each Content Moderator feature goes
| Content Moderator feature | Microsoft's replacement | Like for like? |
|---|---|---|
Text classification (Category1/2/3, ReviewRecommended) | Content Safety text:analyze (Hate, Sexual, Violence, SelfHarm) | No. New taxonomy and scale; re-tune thresholds. |
| Profanity terms and custom term lists | Content Safety blocklists (up to 10,000 terms in total across all lists, per the blocklist guide; regex patterns supported) | Partly. No built-in profanity list with offsets. |
| PII in text | Azure AI Language PII detection | No. A separate service and API. |
| Image moderation | Content Safety image analysis | No. Different categories and response. |
| OCR on images | Azure AI Vision | No. A separate service. |
| Face detection | Azure AI Face | No. A separate service. |
| Video moderation | None. The guide says to extract frames and use the image API. | No direct equivalent |
| Review API and human review tool | Content Safety Studio (web-based monitoring) | No. A different workflow. |
Source: Microsoft's migration guide. Content Safety's free F0 tier includes 5,000 text records a month; a text record is up to 1,000 characters (pricing).
The two requests side by side
Content Moderator (retiring):
curl -X POST "https://<region>.api.cognitive.microsoft.com/contentmoderator/moderate/v1.0/ProcessText/Screen?language=eng&classify=True&PII=True" \
-H "Ocp-Apim-Subscription-Key: $KEY" -H "Content-Type: text/plain" \
--data-binary 'Is this a crap email abcdef@abcd.com?'Content Safety (Microsoft's replacement), per Microsoft's text quickstart:
curl -X POST "<endpoint>/contentsafety/text:analyze?api-version=2024-09-01" \
-H "Ocp-Apim-Subscription-Key: $KEY" -H "Content-Type: application/json" \
-d '{"text": "Is this a crap email abcdef@abcd.com?", "categories": ["Hate", "Sexual", "SelfHarm", "Violence"], "outputType": "FourSeverityLevels"}'Content Safety returns categoriesAnalysis (for example {"category": "Hate", "severity": 2}) and blocklistsMatch. Text severities are 0, 2, 4, 6 (four levels) or the full 0–7 scale (eight levels) (harm categories).
Field-by-field mapping
Content Moderator ProcessText/Screen | Content Safety text:analyze | Notes |
|---|---|---|
Raw text body (text/plain, html, xml, markdown) | JSON {"text": "..."} | Body format changes |
Query language, classify, PII, autocorrect, listId | JSON categories, blocklistNames, haltOnBlocklistHit, outputType | Different parameters |
Terms[] (built-in profanity list, ListId 0, with Index/OriginalIndex) | blocklistsMatch[] from your own blocklists | No built-in profanity list with offsets |
PII (Email, IPA, Phone, Address, SSN with indexes) | None | Use a separate PII service, such as Azure AI Language PII detection |
Classification.Category1 (explicit), Category2 (suggestive), Category3 (offensive), each 0–1 | Sexual, Hate, Violence, SelfHarm severity levels | No 1:1 mapping; re-tune thresholds |
Classification.ReviewRecommended | None | Derive from your own severity thresholds |
NormalizedText, AutoCorrectedText, Misrepresentation | None | |
Status.Code 3000, TrackingId | HTTP status and error body | Error handling changes |
| Image moderation | Image analysis (separate endpoint) | Video has no direct equivalent |
Which way to go
| Situation | Path |
|---|---|
| You can rewrite the call and re-tune thresholds before March 2027 | Move to Content Safety (Microsoft's supported path; free F0 tier of 5,000 text records a month (a text record is up to 1,000 characters)) |
Your code, stored results or dashboards depend on Terms, PII or Category1/2/3 | Keep the format with a wire-compatible replacement ($1 per 1,000 texts) and migrate later on your own schedule |
| You use PII detection, video, OCR, faces or the review tool | The Microsoft service in the table above; the wire-compatible replacement covers text screening only |
| You only need a free generic moderation signal | OpenAI's omni-moderation-latest (free), also with a different API |
The minimal change with the wire-compatible replacement:
- POST https://<region>.api.cognitive.microsoft.com/contentmoderator/moderate/v1.0/ProcessText/Screen?language=eng&classify=True
- Ocp-Apim-Subscription-Key: $AZURE_KEY
+ POST https://dropin-apis--content-moderator-compat.apify.actor/contentmoderator/moderate/v1.0/ProcessText/Screen?language=eng&classify=True
+ Authorization: Bearer $APIFY_TOKENFAQ
Is Azure Content Safety the same API as Content Moderator?
No. Content Safety uses POST /contentsafety/text:analyze with a JSON body and returns severity levels for Hate, Sexual, Violence and SelfHarm. Content Moderator's ProcessText/Screen took a raw text body and returned Terms, PII and Classification scores.
Does Content Safety detect PII like Content Moderator did?
Not in text:analyze. Microsoft's guide moves PII detection to Azure AI Language. A wire-compatible replacement can keep the old PII field (email, IP, US/UK phone, US SSN, US address).
How do Content Moderator categories map to Content Safety?
Roughly: Category1 (sexually explicit) and Category2 (suggestive) relate to Sexual, and Category3 (offensive) overlaps with Hate and Violence. The scales differ (0–1 scores versus severity levels), so thresholds must be re-tuned on your own data.
When does Azure Content Moderator stop working?
Microsoft's Content Moderator documentation says March 15, 2027, while its lifecycle table lists April 1, 2027. Plan for March 15 and check the notice for your subscription.
Can I keep using ProcessText/Screen after the retirement?
Not on Azure. A wire-compatible replacement accepts the same ProcessText/Screen request and returns the same JSON from a new host.
What replaces Content Moderator video moderation and the review tool?
Video has no direct replacement. Microsoft suggests extracting frames and sending them to the image API. The Review API and human review tool move to Content Safety Studio, which is a different workflow.
Related
- Up: all retiring-API guides
- Next: Perspective API shutdown checklist
- Keep ProcessText/Screen on Apify ($1 per 1,000 texts, text screening only)