Auto-generated C# SDK for ModerationAPI -- multi-modal content moderation for text, images, video, and audio in 200+ languages.
OpenAPI spec from https://docs.moderationapi.com/openapi.json (3.1.0).
dotnet build ModerationAPI.slnx
dotnet test src/tests/IntegrationTests/API key via Bearer token. Constructor accepts API key directly:
var client = new ModerationAPIClient(apiKey); // MODERATIONAPI_API_KEY env varsrc/libs/ModerationAPI/openapi.yaml-- Downloaded OpenAPI specsrc/libs/ModerationAPI/generate.sh-- Downloads spec and runs autosdk generatesrc/libs/ModerationAPI/Generated/-- Never edit -- auto-generated codesrc/libs/ModerationAPI/Extensions/ModerationAPIClient.Tools.cs-- MEAIAIFunctiontoolssrc/tests/IntegrationTests/Examples/-- Example tests (also generate docs)
var client = new ModerationAPIClient(apiKey);
// Moderate content (text, image, video, audio, object)
client.NewModerateModerateAsync(request)
// Account
client.Account.AccountGetAsync()
// Actions
client.Actions.ActionsListAsync()
client.Actions.ActionsCreateAsync(request)
client.Actions.ActionsGetAsync(id)
client.Actions.ActionsExecuteAsync(id, request)
// Authors
client.Author.AuthorOpenListAuthorsAsync()
client.Author.AuthorOpenCreateAsync(request)
client.Author.AuthorOpenGetAuthorDetailsAsync(id)
// Review Queues
client.ReviewQueues.QueueViewOpenGetQueueAsync(id)
client.ReviewQueues.QueueViewOpenGetStatsAsync(id)
client.ReviewQueues.QueueViewOpenGetItemsAsync(id)
client.ReviewQueues.QueueViewOpenResolveItemAsync(id, itemId, request)
client.ReviewQueues.QueueViewOpenUnresolveItemAsync(id, itemId, request)
// Wordlists
client.Wordlist.WordlistListAsync()
client.Wordlist.WordlistGetAsync(id)
client.Wordlist.WordlistAddWordsAsync(id, request)
client.Wordlist.WordlistRemoveWordsAsync(id, request)AIFunction tools for use with any IChatClient:
AsModerateTextTool()-- Moderate text for toxicity, profanity, PII, spam, violence, hate, etc.AsModerateImageTool()-- Moderate image by URL for NSFW, violence, hate symbols, etc.AsGetQueueStatsTool()-- Get review queue statisticsAsListActionsTool()-- List available moderation actions
The Content property uses nested OneOf types. Construct content like this:
// Text content
OneOf<NewModerateModerateRequestContentContentLeafText, NewModerateModerateRequestContentContentLeafImage, NewModerateModerateRequestContentContentLeafVideo, NewModerateModerateRequestContentContentLeafAudio>?
textContent = new NewModerateModerateRequestContentContentLeafText("text to moderate");
var request = new NewModerateModerateRequest { Content = textContent };
// Image content
OneOf<...>? imageContent = new NewModerateModerateRequestContentContentLeafImage("https://example.com/image.jpg");- Base URL:
https://api.moderationapi.com/v1 - Auth: Bearer token via
--security-scheme Http:Header:Bearerin generate.sh - Single moderation endpoint (
POST /moderate) handles all content types via discriminated union - Response includes evaluation (flagged, severity_score), recommendation (allow/review/reject), and policy results