PHP SDK Documentation
Official PHP SDK for InboxRisk API. Works with PHP 7.4+ and includes Laravel, WordPress support.
Installation
Install using Composer:
composer require inboxrisk/sdkThis SDK requires PHP 7.4 or higher and the Guzzle HTTP client (installed automatically as a dependency).
Quick Setup
Initialize the SDK:
<?php
require 'vendor/autoload.php';
use InboxRisk\Client;
// Initialize client
$client = new Client([
'api_key' => 'your_api_key_here'
]);
// Or use environment variable
$client = new Client(); // Uses $_ENV['INBOXRISK_API_KEY']💡 Tip: Store your API key in environment variables or use .env file with phpdotenv.
Usage Examples
Email Risk Check
Comprehensive email risk assessment:
$result = $client->email()->riskCheck([
'email' => 'user@example.com'
]);
echo 'Risk Score: ' . $result['risk_score'];
echo 'Risk Level: ' . $result['risk_level'];
echo 'Is Disposable: ' .
($result['is_disposable'] ? 'Yes' : 'No');
echo 'Fraud Reports: ' . $result['fraud_reports'];Disposable Email Detection
Quick check for temporary emails:
$result = $client->email()->disposableCheck([
'email' => 'user@tempmail.com'
]);
if ($result['is_disposable']) {
echo 'This is a temporary email';
echo 'Provider: ' . $result['provider'];
}Bulk Email Checking
Check multiple emails at once:
$emails = [
'user1@example.com',
'user2@example.com',
'user3@tempmail.com'
];
$result = $client->email()->bulkCheck([
'emails' => $emails
]);
foreach ($result['results'] as $email) {
echo $email['email'] . ': Risk ' .
$email['risk_level'];
}Laravel Integration
Validate emails using Laravel validation:
// Create custom validation rule
php artisan make:rule InboxRiskValidation
// In app/Rules/InboxRiskValidation.php
use InboxRisk\Client;
class InboxRiskValidation {
public function passes($attribute, $value) {
$client = new Client();
$result = $client->email()->riskCheck([
'email' => $value
]);
return $result['risk_level'] !== 'critical' &&
!$result['is_disposable'];
}
}
// Use in your form request
public function rules() {
return [
'email' => ['required', new InboxRiskValidation()]
];
}Or register as a custom validation in Laravel:
// In AppServiceProvider.php
Validator::extend('inboxrisk', function($attribute, $value, $parameters) {
$client = new Client();
$result = $client->email()->riskCheck(['email' => $value]);
return $result['risk_level'] !== 'critical' &&
!$result['is_disposable'];
});WordPress Integration
Validate emails during user registration:
// Add to your plugin or theme functions.php
require 'vendor/autoload.php';
use InboxRisk\Client;
add_action('register_post', function($login, $email, $errors) {
$client = new Client();
try {
$result = $client->email()->riskCheck([
'email' => $email
]);
if ($result['is_disposable']) {
$errors->add('disposable_email',
__('Disposable emails are not allowed'));
}
if ($result['risk_level'] === 'critical') {
$errors->add('risky_email',
__('This email appears to be risky'));
}
} catch (Exception $e) {
// Log error and allow registration
error_log('InboxRisk error: ' . $e->getMessage());
}
}, 10, 3);