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/sdk

This 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);