PHPackages                             emailverifyio/emailverify - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. emailverifyio/emailverify

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

emailverifyio/emailverify
=========================

PHP SDK for the EmailVerify.io API

v1.0.0(7mo ago)01MITPHPPHP &gt;=7.4

Since Oct 2Pushed 1mo agoCompare

[ Source](https://github.com/Clustox/emailverify-php-sdk)[ Packagist](https://packagist.org/packages/emailverifyio/emailverify)[ Docs](https://github.com/Clustox/emailverify-php-sdk)[ RSS](/packages/emailverifyio-emailverify/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

EmailVerify.io PHP SDK [![Get API Key](https://camo.githubusercontent.com/f403c3a3006bc757c7f3d8e62acc7c138b55361797114fdc86f869bbc61ba16c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4765742d4150492532304b65792d626c7565)](https://emailverify.io)
===================================================================================================================================================================================================================================================================

[](#emailverifyio-php-sdk-)

🚀 Official PHP client for EmailVerify.io — fast and accurate email verification API.

- Validate emails in real-time
- Detect disposable &amp; risky emails
- Run bulk verification
- Find professional email addresses

👉 Get free API key:

Why EmailVerify.io?
-------------------

[](#why-emailverifyio)

- ⚡ Fast API response
- 🎯 High accuracy validation
- 💰 Cost-effective vs competitors
- 🔌 Easy integration (PHP, Go, Ruby SDKs)

Features
--------

[](#features)

- Single email validation
- Email finder (find an email address using a name and domain)
- Batch email validation
- Account balance checking
- Robust error handling

Quick Start
-----------

[](#quick-start)

```
use EmailVerify\SDK\EmailVerify;
// Initialize
EmailVerify::Instance()->initialize('your-api-key');

// Validate email
$result = EmailVerify::Instance()->validate('test@example.com');

echo $result->status;
```

Requirements
------------

[](#requirements)

- PHP 7.4 or higher
- ext-json
- ext-curl

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require emailverifyio/emailverify
```

Quick Start
-----------

[](#quick-start-1)

```
use EmailVerify\SDK\EmailVerify;

// Initialize with your API key
EmailVerify::Instance()->initialize('');

// Validate an email address
$result = EmailVerify::Instance()->validate('test@example.com');
echo "Status: " . $result->status . "\n";  // valid, invalid, unknown, etc.
```

Detailed Usage
--------------

[](#detailed-usage)

### Initialize the SDK

[](#initialize-the-sdk)

Always initialize the SDK with your API key before making any API calls:

```
use EmailVerify\SDK\EmailVerify;
use EmailVerify\SDK\EVException;

try {
    // Initialize with your API key
    EmailVerify::Instance()->initialize('your-api-key');
} catch (EVException $e) {
    // Handle any initialization errors
    echo "Error: " . $e->getMessage() . "\n";
}
```

### Email Validation

[](#email-validation)

Validate a single email address to check its deliverability:

```
try {
    $result = EmailVerify::Instance()->validate('');

    echo "Email: " . $result->email . "\n";
    echo "Status: " . $result->status . "\n";
    echo "Sub-Status: " . $result->subStatus . "\n";

    // Determine if email is valid
    if ($result->status === 'valid') {
        echo "The email is valid and deliverable.\n";
    } else if ($result->status === 'invalid') {
        echo "The email is not deliverable.\n";
    } else {
        echo "The email validation is inconclusive.\n";
    }
} catch (EVException $e) {
    echo "Error Message: " . $e->getMessage() . "\n";
    echo "Error Code: " . $e->getErrorCode() . "\n";
    $context = $e->getErrorContext();
    echo "Error Context : " .  print_r($context, true)  . "\n";
}
```

### Email Finder

[](#email-finder)

Find an email address using a person's name and domain:

```
try {
    $result = EmailVerify::Instance()->findEmail('', '');

    if ($result->status === 'found') { // Status can found or not_found
        echo "Email found: " . $result->email . "\n";
        // Use the found email for your purposes
    } else {
        echo "No email found for this name and domain combination.\n";
    }
} catch (EVException $e) {
    echo "Error Message: " . $e->getMessage() . "\n";
    echo "Error Code: " . $e->getErrorCode() . "\n";
    $context = $e->getErrorContext();
    echo "Error Context : " .  print_r($context, true)  . "\n";
}
```

### Check Account Balance

[](#check-account-balance)

Check your API usage and remaining credits:

```
try {
    $result = EmailVerify::Instance()->checkAccountBalance();

    print_r($result);
    echo "Api Status: " . $result->apiStatus . "\n";
    echo "Daily Credit Limit: " . $result->dailyCreditsLimit . "\n";
    echo "Remaining Credits: " . $result->remainingCredits . "\n";
    echo "Referral Credits: " . $result->referralCredits . "\n";  //null for appsumo users
    echo "Remaining Daily Credits: " . $result->remainingDailyCredits . "\n"; //null for non-AppSumo users
    echo "Bonus Credits: " . $result->bonusCredits . "\n"; //null for non-AppSumo users
} catch (EVException $e) {
    echo "Account balance check error: " . $e->getMessage() . "\n";
}
```

### Batch Email Validation

[](#batch-email-validation)

Validate multiple emails at once for better performance:

```
try {
    $emails = [
        'user1@example.com',
        'user2@example.com',
        'invalid@example.com'
    ];

    $result = EmailVerify::Instance()->validateBatch('', $emails); // Title and emails are required field

    echo "Status: " . $result->status . "\n";
    echo "Task ID: " . $result->taskId . "\n"; # IMPORTANT SAVE THIS ID TO CHECK RESULT LATER
    echo "Count Submitted: " . $result->countSubmitted . "\n";
    echo "Count Duplicate Removed: " . $result->countDuplicateRemoved . "\n";
    echo "Count Processing: " . $result->countProcessing . "\n";
    echo "Full result object:\n";
    print_r($result);

    // Store the task ID to check results later
    // You can save this to your database or file
    $taskId = $result->taskId;
} catch (EVException $e) {
    echo "Batch validation error: " . $e->getMessage() . "\n";
}
```

### Get Batch Validation Results

[](#get-batch-validation-results)

Retrieve and process the results of a previously submitted batch job:

```
try {
    // Use the task ID from your previous batch submission
    $task_id = 2900;
    $result = EmailVerify::Instance()->getBatchResults($task_id);

    echo "Status: " . $result->status . "\n";
    echo "Count Check: " . $result->countChecked . "\n";
    echo "Count Total: " . $result->countTotal . "\n";
    echo "Name: " . $result->name . "\n";
    echo "TaskId: " . $result->taskId . "\n";
    echo "Progress: " . $result->progressPercentage . "\n";

    // Check if the batch processing is complete
    if ($result->status === 'verified') {
        echo "Batch processing complete. Results:\n";

        // Process each email result
        foreach ($result->results->emailBatch as $emailResult) {
            echo $emailResult['address'] . ": " . $emailResult['status'];
            if (isset($emailResult['sub_status'])) {
                echo " (" . $emailResult['sub_status'] . ")";
            }
            echo "\n";
        }
    } else {
        echo "Batch still processing. Check back later.\n";
    }
} catch (EVException $e) {
    echo "Batch results retrieval error: " . $e->getMessage() . "\n";
}
```

Error Handling
--------------

[](#error-handling)

The SDK uses custom exception classes for different error scenarios:

```
use EmailVerify\SDK\EVException;
use EmailVerify\SDK\EVMissingApiKeyException;
use EmailVerify\SDK\EVMissingParameterException;

try {
    $result = EmailVerify::Instance()->validate('test@example.com');
    // Process result...
} catch (EVMissingApiKeyException $e) {
    // Handle missing API key error
    echo "Please configure your API key first.\n";
} catch (EVMissingParameterException $e) {
    // Handle missing parameter error
    echo "Missing required parameter: " . $e->getMessage() . "\n";
} catch (EVException $e) {
    // Handle general API errors
    echo "API Error: " . $e->getMessage() . "\n";

    // Access detailed error context if available
    if ($e->hasErrorContext()) {
        $errorContext = $e->getErrorContext();
        echo "Error details: " . json_encode($errorContext) . "\n";
    }
} catch (\Exception $e) {
    // Handle any other unexpected errors
    echo "Unexpected error: " . $e->getMessage() . "\n";
}
```

Development
-----------

[](#development)

Install development dependencies

```
composer install --dev
```

The SDK includes PHPUnit tests to ensure functionality:

```
# Run all tests
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/

# Run a specific test file
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/EmailVerifyTest.php
```

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance79

Regular maintenance activity

Popularity1

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

228d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4f717de0e94088609c2008f5b909f74cebf9973a297893789198bc043b5d5be2?d=identicon)[emailverifyio](/maintainers/emailverifyio)

---

Top Contributors

[![salmanaslam25](https://avatars.githubusercontent.com/u/361774?v=4)](https://github.com/salmanaslam25 "salmanaslam25 (1 commits)")[![zainislamclustox](https://avatars.githubusercontent.com/u/225842008?v=4)](https://github.com/zainislamclustox "zainislamclustox (1 commits)")

---

Tags

api-clientapi-client-phpbulk-emailbulk-email-verificationbulk-email-verifieremail-finderemail-finder-apiemail-finder-toolemail-validationemail-validation-apiemail-validation-serviceemail-verificationemail-verification-apiemail-verificationsphpphp-libraryphp-sdkemail-verificationEmail Finderemailverifyemailverifyioemailverify sdkbatch verification

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/emailverifyio-emailverify/health.svg)

```
[![Health](https://phpackages.com/badges/emailverifyio-emailverify/health.svg)](https://phpackages.com/packages/emailverifyio-emailverify)
```

###  Alternatives

[minishlink/web-push

Web Push library for PHP

1.9k12.0M53](/packages/minishlink-web-push)[daveearley/daves-email-validation-tool

An easy to use, accurate-ish &amp; extensible email validation library for PHP 7+

284318.9k2](/packages/daveearley-daves-email-validation-tool)[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2587.7M12](/packages/laravel-notification-channels-twilio)[spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

4422.3M16](/packages/spatie-url-signer)[mattketmo/email-checker

Throwaway email detection library

2742.0M5](/packages/mattketmo-email-checker)[stymiee/email-validator

A robust PHP 7.4+ email validation library that extends beyond basic validation with MX record checks, disposable email detection, and free email provider validation. Features include strict typing, custom validator support, internationalization (i18n), and an extensible architecture. Perfect for applications requiring thorough email verification with customizable validation rules.

32426.6k1](/packages/stymiee-email-validator)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
