EmailVerify.SDK 1.0.0

dotnet add package EmailVerify.SDK --version 1.0.0
                    
NuGet\Install-Package EmailVerify.SDK -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EmailVerify.SDK" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EmailVerify.SDK" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="EmailVerify.SDK" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EmailVerify.SDK --version 1.0.0
                    
#r "nuget: EmailVerify.SDK, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EmailVerify.SDK@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EmailVerify.SDK&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=EmailVerify.SDK&version=1.0.0
                    
Install as a Cake Tool

EmailVerify C# SDK

The official C# SDK for EmailVerify.io - A comprehensive email validation, verification, and finder service.

Features

  • Single Email Validation - Validate individual email addresses in real-time
  • Batch Email Validation - Process up to 5,000 emails efficiently
  • Account Balance Checking - Monitor your API credits and limits
  • Email Finder - Discover email addresses using names and domains

Installation

Package Manager Console

Install-Package EmailVerify.SDK

.NET CLI

dotnet add package EmailVerify.SDK

Initialize the SDK

using EmailVerifySDK;

// Initialize with your API key generated from Emailverify.io
EmailVerify.Instance.Initialize("<YOUR_API_KEY>");

Validate a Single Email

EmailVerify.Instance.Validate("<EMAIL_ADDRESS>", //Email address to verify
    response =>
    {
        Console.WriteLine(response);
        Console.WriteLine($"Email: {response.Email}");
        Console.WriteLine($"Status: {response.Status}");
        Console.WriteLine($"Sub Status: {response.SubStatus}");
    },
    error =>
    {
        Console.WriteLine($"Error: {error}");
    });

Sample Response:

EVValidateResponse {
    email='email@gmail.com', 
    status='do_not_mail', 
    subStatus='mailbox_quota_exceeded'
}

You can access the values by:

email: {response.Email}
status: {response.Status}
Substatus: {response.SubStatus}

Status can be any of the following:

  • valid
  • invalid
  • catch_all
  • do_not_mail
  • unknown
  • role_based
  • skipped

Sub Status can be any of the following:

  • permitted
  • failed_syntax_check
  • mailbox_quota_exceeded
  • mailbox_not_found
  • no_dns_entries
  • disposable
  • none
  • opt_out
  • blocked_domain

Check Account Balance and api status

EmailVerify.Instance.CheckBalance(
    response =>
    {
        Console.WriteLine($"Response: {response}");
        Console.WriteLine($"API Status: {response.ApiStatus}");
        Console.WriteLine($"Daily Credit Limit: {response.DailyCreditsLimit}");

        
        if (response.IsAppSumoUser)
        {
            Console.WriteLine($"Remaining Daily Credits: {response.RemainingDailyCredits}");
            Console.WriteLine($"Bonus Credits: {response.BonusCredits}");
        }
        else
        {
            Console.WriteLine($"Referral Credits: {response.ReferralCredits}");
            Console.WriteLine($"Remaining Credits: {response.RemainingCredits}");
        }            
    },
    error =>
    {
        Console.WriteLine($"Error: {error}");
    });

For simple users sample response:

EVBalanceResponse {
    apiStatus='enabled', 
    dailyCreditsLimit=0, 
    remainingCredits=9741, 
    referralCredits=0, 
    isAppSumoUser=False
}

You can get the values by:

Api Status: {response.ApiStatus}
Referral Credits: {response.ReferralCredits}
Remaining Credits: {response.RemainingCredits}
Daily Credits Limit: {response.DailyCreditsLimit}

For appsumo users sample response:

EVBalanceResponse {
    apiStatus='enabled', 
    dailyCreditsLimit=1000, 
    remainingDailyCredits=998, 
    bonusCredits=35000, 
    isAppSumoUser=True
}

You can get the values by:

Api Status: {response.ApiStatus}
Daily Credit Limit: {response.DailyCreditsLimit}
Bonus Credits: {response.BonusCredits}
is appsumo user: {response.IsAppSumoUser}

Batch Email Validation

var emails = new List<string>
{
    "user1@example.com",
    "user2@example.com", 
    "user3@example.com"
};

EmailVerify.Instance.ValidateBatch("<TITLE_OF_TASK>", emails, // Title and emails are required filed
    response =>
    {
        Console.WriteLine($"Response: {response}");        
        Console.WriteLine($"Task ID: {response.TaskId}");
        Console.WriteLine($"Status: {response.Status}");
        Console.WriteLine($"Emails submitted: {response.CountSubmitted}");
        Console.WriteLine($"Duplicates removed: {response.CountDuplicatesRemoved}");
        Console.WriteLine($"Rejected emails: {response.CountRejectedEmails}");
        Console.WriteLine($"Processing: {response.CountProcessing}");
    },
    error =>
    {
        Console.WriteLine($"Error: {error}");
    });

Sample Response:

EVBatchSubmitResponse {
    status='queued', 
    taskId=2940, 
    countSubmitted=3, 
    countDuplicatesRemoved=0, 
    countRejectedEmails=0, 
    countProcessing=3
}

5. Get Batch Results

int task_id = <TASK_ID>; // Task Id you get while using batch validation api 
                         // MUST BE integer
EmailVerify.Instance.GetBatchResult(task_id,
    response =>
    {
        Console.WriteLine($" Response: {response}");
        Console.WriteLine($" Task Name: {response.Name}");
        Console.WriteLine($" Task ID: {response.TaskId}");
        Console.WriteLine($" Status: {response.Status}");
        Console.WriteLine($" Progress: {response.ProgressPercentage}");
        Console.WriteLine($" Checked: {response.CountChecked}/{response.CountTotal}");
        
        if (response.Results?.EmailBatch != null && response.Results.EmailBatch.Count > 0)
        {
            Console.WriteLine("\n📊 Individual Results:");
            Console.WriteLine("----------------------");
            for (int i = 0; i < response.Results.EmailBatch.Count; i++)
            {
                var result = response.Results.EmailBatch[i];
                Console.WriteLine($"{result.Address}:{result.Status}: ({result.SubStatus})");
            }
        }
    },
    error =>
    {
        Console.WriteLine($"Error: {error}");
    });

Sample Response when verification completed:

EVBatchResultResponse {
    countChecked=3, 
    countTotal=3, 
    name='Task Title', 
    progressPercentage='100', 
    taskId='2940', 
    status='verified', 
    results=EVBatchResults{
        emailBatch=
            [EVBatchEmailResult {
                address='user1@example.com', 
                status='do_not_mail', 
                subStatus='mailbox_quota_exceeded'
             }, 
            EVBatchEmailResult{
                address='user2@example.com', 
                status='do_not_mail', subStatus='mailbox_quota_exceeded'
            }, 
            EVBatchEmailResult{
                address='user3@example.com', 
                status='do_not_mail', subStatus='mailbox_quota_exceeded'
            }]
    }
}

Sample Response when verification pending:

EVBatchResultResponse{countChecked=0, countTotal=3, name='Task Title', progressPercentage='0.0', taskId='2941', status='queued', results=null}

Single Email Finder

 EmailVerify.Instance.FindEmail("<USER_NAME>", "<DOMAIN.COM>",
    response =>
    {
        Console.WriteLine($"Response: {response}");
        Console.WriteLine($"Status: {response.Status}");
        Console.WriteLine($"Result: {response.Email}");

        if (response.IsFound) // IF email found
        {
            Console.WriteLine($"✓ Found: {response.Email}");
            
        }
        else
        {
            Console.WriteLine($"Not Found");
        }
    },
    error =>
    {
        Console.WriteLine($" Error: {error}");
    });

Sample Response when email not found:

EVFinderResponse {
    email='null', 
    status='not_found', 
    isFound=False
}

Sample Response when email found:

EVFinderResponse {
    email='user@example.com', 
    status='found', 
    isFound=True
}

Response Models

EVValidateResponse

public class EVValidateResponse
{
    public string Email { get; set; }        // Email address validated
    public string Status { get; set; }       // Validation status (valid, invalid, etc.)
    public string SubStatus { get; set; }    // Detailed sub-status
}

EVBalanceResponse

public class EVBalanceResponse
{
    public string ApiStatus { get; set; }           // API status (enabled/disabled)
    public int DailyCreditsLimit { get; set; }      // Daily credits limit
    public int? ReferralCredits { get; set; }       // Referral credits (regular users)
    public int? RemainingCredits { get; set; }      // Remaining credits (regular users)
    public int? RemainingDailyCredits { get; set; } // Remaining daily credits (AppSumo users)
    public int? BonusCredits { get; set; }          // Bonus credits (AppSumo users)
    public bool IsAppSumoUser { get; }              // True if AppSumo user
}

EVBatchSubmitResponse

public class EVBatchSubmitResponse
{
    public string Status { get; set; }              // Submission status
    public string TaskId { get; set; }              // Task ID for tracking
    public int CountSubmitted { get; set; }         // Emails submitted
    public int CountDuplicatesRemoved { get; set; } // Duplicates removed
    public int CountRejectedEmails { get; set; }    // Rejected emails
    public int CountProcessing { get; set; }        // Emails being processed
}

EVBatchResultResponse

public class EVBatchResultResponse
{
    public int CountChecked { get; set; }        // Emails processed
    public int CountTotal { get; set; }          // Total emails in batch
    public string Name { get; set; }             // Task name
    public string ProgressPercentage { get; set; } // Progress percentage
    public string TaskId { get; set; }           // Task ID
    public string Status { get; set; }           // Task status
    public EVBatchResults Results { get; set; }  // Batch results
}

EVFinderResponse

public class EVFinderResponse
{
    public string Email { get; set; }    // Found email or "null"
    public string Status { get; set; }   // Status (found/not_found)
    public bool IsFound { get; }         // True if email was found
}

Configuration

For security, use environment variables instead of hardcoding API keys:

string apiKey = Environment.GetEnvironmentVariable("EMAILVERIFY_API_KEY");
EmailVerify.Instance.Initialize(apiKey);

Testing

dotnet test
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 is compatible.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 283 10/1/2025

Initial release of EmailVerify.io C# SDK with support for email validation, batch validation, balance checking, and email finder.