Grab the API key from your project and begin submitting text, images, or other media to your project for moderation.
Copy
<?phpuse ModerationAPI\Client;// Initialize the client with your secret key$client = new Client(secretKey: getenv('MODAPI_SECRET_KEY') ?: 'your-api-key');// Submit text for moderation$response = $client->content->submit([ 'content' => [ 'type' => 'text', 'text' => 'Hello world!' ], 'authorId' => '123', 'conversationId' => '456', 'metadata' => [ 'customField' => 'value' ]]);// Check if content was flaggedif ($response->evaluation->flagged) { echo "Content was flagged\n";}// Act on the recommendationswitch ($response->recommendation->action) { case 'allow': echo "Text content is safe.\n"; // Save to database or proceed... break; case 'review': echo "Text content needs review\n"; // Send to review queue break; case 'reject': echo "Text content rejected\n"; // Block the content, show an error, etc... break;}
The SDK automatically retries failed requests up to 2 times by default. You can configure retries globally when initializing the client with maxRetries: 0 or per-request using RequestOptions::with(maxRetries: 5).
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.