EmailVerify.SDK
1.0.0
dotnet add package EmailVerify.SDK --version 1.0.0
NuGet\Install-Package EmailVerify.SDK -Version 1.0.0
<PackageReference Include="EmailVerify.SDK" Version="1.0.0" />
<PackageVersion Include="EmailVerify.SDK" Version="1.0.0" />
<PackageReference Include="EmailVerify.SDK" />
paket add EmailVerify.SDK --version 1.0.0
#r "nuget: EmailVerify.SDK, 1.0.0"
#:package EmailVerify.SDK@1.0.0
#addin nuget:?package=EmailVerify.SDK&version=1.0.0
#tool nuget:?package=EmailVerify.SDK&version=1.0.0
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
Environment Variables (Recommended)
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 | Versions 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. |
-
.NETCoreApp 2.0
- Newtonsoft.Json (>= 13.0.4)
- System.Net.Http (>= 4.3.4)
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.4)
- System.Net.Http (>= 4.3.4)
-
net5.0
- Newtonsoft.Json (>= 13.0.4)
- System.Net.Http (>= 4.3.4)
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.