We currently don’t have an official SDK for Go, but you can use the OpenAPI Generator to generate a Go client or simply call the API directly using Go’s standard net/http package.
Grab the API key from your project and begin submitting text, images, or other media to your project for moderation.
package mainimport ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http")func main() { // Configure the client apiKey := "your-api-key" // Replace with your API key baseURL := "https://api.moderationapi.com/v1" // Prepare request body requestBody, err := json.Marshal(map[string]interface{}{ "content": map[string]interface{}{ "type": "text", "text": "Hello world!", }, "authorId": "user-123", "conversationId": "room-456", "metadata": map[string]interface{}{ "customField": "value", }, }) if err != nil { panic(err) } // Create request req, err := http.NewRequest("POST", baseURL+"/moderate", bytes.NewBuffer(requestBody)) if err != nil { panic(err) } // Set headers req.Header.Set("Authorization", "Bearer "+apiKey) req.Header.Set("Content-Type", "application/json") // Send request client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() // Read response body, err := ioutil.ReadAll(resp.Body) if err != nil { panic(err) } // Parse response var textAnalysis map[string]interface{} if err := json.Unmarshal(body, &textAnalysis); err != nil { panic(err) } evaluation := textAnalysis["evaluation"].(map[string]interface{}) if evaluation["flagged"].(bool) { fmt.Println("Text content flagged") // Block the content, show an error, etc... } else { fmt.Println("Text content is safe.") // Save to database or proceed... }}
Dry-run mode: If you want to analyze production data but don't want to block content, enable "dry-run" in your project settings.
With dry-run enabled, the API still analyzes content but it always returns flagged: false - yet content still shows in the review queue. This way you can implement your moderation workflows and start testing your project configuration without actually blocking content.