Get Verification
curl --request GET \
--url https://api.example.com/api/v1/email-verification/{id}import requests
url = "https://api.example.com/api/v1/email-verification/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/email-verification/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/email-verification/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/email-verification/{id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/email-verification/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/email-verification/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"totalEmails": 123,
"processedEmails": 123,
"creditsDeducted": 123,
"createdAt": "<string>",
"completedAt": "<string>",
"results": [
{}
],
"analytics": {
"valid": 123,
"invalid": 123,
"risky": 123,
"unknown": 123
}
}Verification
Get Verification
Get verification status and results
GET
/
api
/
v1
/
email-verification
/
{id}
Get Verification
curl --request GET \
--url https://api.example.com/api/v1/email-verification/{id}import requests
url = "https://api.example.com/api/v1/email-verification/{id}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/v1/email-verification/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/email-verification/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/email-verification/{id}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/email-verification/{id}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/email-verification/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"totalEmails": 123,
"processedEmails": 123,
"creditsDeducted": 123,
"createdAt": "<string>",
"completedAt": "<string>",
"results": [
{}
],
"analytics": {
"valid": 123,
"invalid": 123,
"risky": 123,
"unknown": 123
}
}Retrieve the status and results of a batch verification. Poll this endpoint until
status is completed or failed.
Path Parameters
The verification batch ID (e.g.,
ver_abc123).Examples
import { MailBreeze } from "mailbreeze";
const mailbreeze = new MailBreeze({ apiKey: "sk_live_xxx" });
const status = await mailbreeze.verification.get("ver_abc123");
console.log(`Status: ${status.status}`);
console.log(`Progress: ${status.processedEmails}/${status.totalEmails}`);
if (status.status === "completed") {
console.log(`Completed at: ${status.completedAt}`);
// View analytics summary
console.log("Analytics:", status.analytics);
// { valid: 85, invalid: 10, risky: 3, unknown: 2 }
// Access individual results
for (const result of status.results) {
console.log(`${result.email}: ${result.result} (${result.isValid ? "✓" : "✗"})`);
}
}
from mailbreeze import MailBreeze
client = MailBreeze(api_key="sk_live_xxx")
status = await client.verification.get("ver_abc123")
print(f"Status: {status.status}")
print(f"Progress: {status.processed_emails}/{status.total_emails}")
if status.status == "completed":
print(f"Completed at: {status.completed_at}")
# View analytics summary
print("Analytics:", status.analytics)
# {"valid": 85, "invalid": 10, "risky": 3, "unknown": 2}
# Access individual results
for result in status.results:
mark = "✓" if result.is_valid else "✗"
print(f"{result.email}: {result.result} ({mark})")
client := mailbreeze.NewClient("sk_live_xxx")
status, err := client.Verification.Get(ctx, "ver_abc123")
if err != nil {
log.Fatal(err)
}
fmt.Printf("Status: %s\n", status.Status)
fmt.Printf("Progress: %d/%d\n", status.ProcessedEmails, status.TotalEmails)
if status.Status == "completed" {
fmt.Printf("Completed at: %s\n", status.CompletedAt)
// View analytics summary
fmt.Printf("Analytics: %+v\n", status.Analytics)
// Access individual results
for _, result := range status.Results {
mark := "✗"
if result.IsValid {
mark = "✓"
}
fmt.Printf("%s: %s (%s)\n", result.Email, result.Result, mark)
}
}
$mailbreeze = new MailBreeze('sk_live_xxx');
$response = $mailbreeze->verification->get('694fc0cb9e63563857ae8d03');
$status = $response['data'];
echo "Status: " . $status['status'] . "\n";
echo "Type: " . $status['type'] . "\n";
echo "Total Emails: " . $status['totalEmails'] . "\n";
if ($status['status'] === 'completed') {
echo "Completed at: " . $status['completedAt'] . "\n";
// View analytics summary
$analytics = $status['analytics'];
echo "Clean: " . $analytics['cleanCount'] . "\n";
echo "Dirty: " . $analytics['dirtyCount'] . "\n";
echo "Unknown: " . $analytics['unknownCount'] . "\n";
}
let client = Client::new("sk_live_xxx");
let status = client.verification().get("ver_abc123").await?;
println!("Status: {}", status.status);
println!("Progress: {}/{}", status.processed_emails, status.total_emails);
if status.status == "completed" {
if let Some(completed_at) = status.completed_at {
println!("Completed at: {}", completed_at);
}
// View analytics summary
if let Some(analytics) = status.analytics {
println!("Analytics: {:?}", analytics);
}
// Access individual results
if let Some(results) = status.results {
for result in results {
let mark = if result.is_valid { "✓" } else { "✗" };
println!("{}: {} ({})", result.email, result.result, mark);
}
}
}
curl "https://api.mailbreeze.com/api/v1/email-verification/694fc0cb9e63563857ae8d03" \
-H "Authorization: Bearer sk_live_xxx"
Response
Verification batch ID.
Current status:
pending- Not yet startedprocessing- In progresscompleted- Finished successfullyfailed- Verification failed
Total emails in the batch.
Number of emails processed so far.
Credits used for this batch.
ISO 8601 timestamp when batch was created.
ISO 8601 timestamp when batch completed (if finished).
Array of verification results (only when completed).
Example Response
{
"success": true,
"data": {
"id": "694fc0cb9e63563857ae8d03",
"type": "single",
"status": "completed",
"totalEmails": 1,
"analytics": {
"cleanCount": 0,
"dirtyCount": 1,
"unknownCount": 0,
"cleanPercentage": 0
},
"creditsDeducted": 2,
"startedAt": "2025-12-27T11:19:39.878Z",
"completedAt": "2025-12-27T11:19:39.878Z",
"createdAt": "2025-12-27T11:19:39.881Z"
},
"meta": {
"timestamp": "2025-12-27T13:39:37.291Z",
"requestId": "c6929eab-e9a5-4970-8cc6-089636f541ff",
"path": "/api/v1/email-verification/694fc0cb9e63563857ae8d03"
}
}
Polling Strategy
For optimal performance, use exponential backoff:async function waitForCompletion(verificationId: string) {
let delay = 1000; // Start with 1 second
const maxDelay = 10000; // Max 10 seconds
while (true) {
const status = await mailbreeze.verification.get(verificationId);
if (status.status === "completed" || status.status === "failed") {
return status;
}
await new Promise(r => setTimeout(r, delay));
delay = Math.min(delay * 1.5, maxDelay);
}
}
Errors
| Code | HTTP Status | Description |
|---|---|---|
NOT_FOUND | 404 | Verification batch doesn’t exist |
⌘I