Email Intelligence API
Submit Email Batch
Submit Email Batch
curl --request POST \
--url https://api.sandbox.verisoul.ai/email \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"emails": [
{
"email": "john.doe@example.com",
"claims": {
"name": {
"first": "John",
"last": "Doe"
},
"country": "US"
}
},
{
"email": "jane.doe@example.com",
"claims": {
"name": {
"first": "Jane",
"last": "Doe"
},
"phone": "+14155551234"
}
},
{
"email": "unknown@example.com"
}
],
"batch_name": "onboarding-review-2026-03",
"identity_intelligence": true
}
'import requests
url = "https://api.sandbox.verisoul.ai/email"
payload = {
"emails": [{
"email": "john.doe@example.com",
"claims": {
"name": {
"first": "John",
"last": "Doe"
},
"country": "US"
}
}, {
"email": "jane.doe@example.com",
"claims": {
"name": {
"first": "Jane",
"last": "Doe"
},
"phone": "+14155551234"
}
}, { "email": "unknown@example.com" }],
"batch_name": "onboarding-review-2026-03",
"identity_intelligence": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
emails: [
{
email: 'john.doe@example.com',
claims: {name: {first: 'John', last: 'Doe'}, country: 'US'}
},
{
email: 'jane.doe@example.com',
claims: {name: {first: 'Jane', last: 'Doe'}, phone: '+14155551234'}
},
{email: 'unknown@example.com'}
],
batch_name: 'onboarding-review-2026-03',
identity_intelligence: true
})
};
fetch('https://api.sandbox.verisoul.ai/email', 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.sandbox.verisoul.ai/email",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'emails' => [
[
'email' => 'john.doe@example.com',
'claims' => [
'name' => [
'first' => 'John',
'last' => 'Doe'
],
'country' => 'US'
]
],
[
'email' => 'jane.doe@example.com',
'claims' => [
'name' => [
'first' => 'Jane',
'last' => 'Doe'
],
'phone' => '+14155551234'
]
],
[
'email' => 'unknown@example.com'
]
],
'batch_name' => 'onboarding-review-2026-03',
'identity_intelligence' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.verisoul.ai/email"
payload := strings.NewReader("{\n \"emails\": [\n {\n \"email\": \"john.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"John\",\n \"last\": \"Doe\"\n },\n \"country\": \"US\"\n }\n },\n {\n \"email\": \"jane.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"Jane\",\n \"last\": \"Doe\"\n },\n \"phone\": \"+14155551234\"\n }\n },\n {\n \"email\": \"unknown@example.com\"\n }\n ],\n \"batch_name\": \"onboarding-review-2026-03\",\n \"identity_intelligence\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.verisoul.ai/email")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"emails\": [\n {\n \"email\": \"john.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"John\",\n \"last\": \"Doe\"\n },\n \"country\": \"US\"\n }\n },\n {\n \"email\": \"jane.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"Jane\",\n \"last\": \"Doe\"\n },\n \"phone\": \"+14155551234\"\n }\n },\n {\n \"email\": \"unknown@example.com\"\n }\n ],\n \"batch_name\": \"onboarding-review-2026-03\",\n \"identity_intelligence\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.verisoul.ai/email")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"emails\": [\n {\n \"email\": \"john.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"John\",\n \"last\": \"Doe\"\n },\n \"country\": \"US\"\n }\n },\n {\n \"email\": \"jane.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"Jane\",\n \"last\": \"Doe\"\n },\n \"phone\": \"+14155551234\"\n }\n },\n {\n \"email\": \"unknown@example.com\"\n }\n ],\n \"batch_name\": \"onboarding-review-2026-03\",\n \"identity_intelligence\": true\n}"
response = http.request(request)
puts response.read_body{
"batch_id": "bbc73b22-bd47-48e4-b173-c9ca085efb2a",
"batch_name": "onboarding-review-2026-03",
"status": "pending",
"total_count": 3,
"webhook_configured": true
}This endpoint accepts a batch for processing and returns a
batch_id for correlation. Each email’s full analysis result is delivered asynchronously through the email.intelligence.completed webhook. See the Webhook Payload Reference for response fields and examples.Authorizations
Body
application/json
Array of Email Objects to analyze
Show child attributes
Show child attributes
Optional name for the batch. If not provided, one is auto-generated.
Enable deeper identity analysis for all emails in the batch. See Identity Intelligence.
Response
Batch accepted for processing
Unique identifier for this batch
Name of the batch (provided or auto-generated)
Always pending on creation
Number of emails in the batch
Whether the project has an active webhook subscription for email intelligence results. If false, results are still processed but no webhook will be delivered.
⌘I
Submit Email Batch
curl --request POST \
--url https://api.sandbox.verisoul.ai/email \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"emails": [
{
"email": "john.doe@example.com",
"claims": {
"name": {
"first": "John",
"last": "Doe"
},
"country": "US"
}
},
{
"email": "jane.doe@example.com",
"claims": {
"name": {
"first": "Jane",
"last": "Doe"
},
"phone": "+14155551234"
}
},
{
"email": "unknown@example.com"
}
],
"batch_name": "onboarding-review-2026-03",
"identity_intelligence": true
}
'import requests
url = "https://api.sandbox.verisoul.ai/email"
payload = {
"emails": [{
"email": "john.doe@example.com",
"claims": {
"name": {
"first": "John",
"last": "Doe"
},
"country": "US"
}
}, {
"email": "jane.doe@example.com",
"claims": {
"name": {
"first": "Jane",
"last": "Doe"
},
"phone": "+14155551234"
}
}, { "email": "unknown@example.com" }],
"batch_name": "onboarding-review-2026-03",
"identity_intelligence": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
emails: [
{
email: 'john.doe@example.com',
claims: {name: {first: 'John', last: 'Doe'}, country: 'US'}
},
{
email: 'jane.doe@example.com',
claims: {name: {first: 'Jane', last: 'Doe'}, phone: '+14155551234'}
},
{email: 'unknown@example.com'}
],
batch_name: 'onboarding-review-2026-03',
identity_intelligence: true
})
};
fetch('https://api.sandbox.verisoul.ai/email', 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.sandbox.verisoul.ai/email",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'emails' => [
[
'email' => 'john.doe@example.com',
'claims' => [
'name' => [
'first' => 'John',
'last' => 'Doe'
],
'country' => 'US'
]
],
[
'email' => 'jane.doe@example.com',
'claims' => [
'name' => [
'first' => 'Jane',
'last' => 'Doe'
],
'phone' => '+14155551234'
]
],
[
'email' => 'unknown@example.com'
]
],
'batch_name' => 'onboarding-review-2026-03',
'identity_intelligence' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.verisoul.ai/email"
payload := strings.NewReader("{\n \"emails\": [\n {\n \"email\": \"john.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"John\",\n \"last\": \"Doe\"\n },\n \"country\": \"US\"\n }\n },\n {\n \"email\": \"jane.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"Jane\",\n \"last\": \"Doe\"\n },\n \"phone\": \"+14155551234\"\n }\n },\n {\n \"email\": \"unknown@example.com\"\n }\n ],\n \"batch_name\": \"onboarding-review-2026-03\",\n \"identity_intelligence\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sandbox.verisoul.ai/email")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"emails\": [\n {\n \"email\": \"john.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"John\",\n \"last\": \"Doe\"\n },\n \"country\": \"US\"\n }\n },\n {\n \"email\": \"jane.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"Jane\",\n \"last\": \"Doe\"\n },\n \"phone\": \"+14155551234\"\n }\n },\n {\n \"email\": \"unknown@example.com\"\n }\n ],\n \"batch_name\": \"onboarding-review-2026-03\",\n \"identity_intelligence\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.verisoul.ai/email")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"emails\": [\n {\n \"email\": \"john.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"John\",\n \"last\": \"Doe\"\n },\n \"country\": \"US\"\n }\n },\n {\n \"email\": \"jane.doe@example.com\",\n \"claims\": {\n \"name\": {\n \"first\": \"Jane\",\n \"last\": \"Doe\"\n },\n \"phone\": \"+14155551234\"\n }\n },\n {\n \"email\": \"unknown@example.com\"\n }\n ],\n \"batch_name\": \"onboarding-review-2026-03\",\n \"identity_intelligence\": true\n}"
response = http.request(request)
puts response.read_body{
"batch_id": "bbc73b22-bd47-48e4-b173-c9ca085efb2a",
"batch_name": "onboarding-review-2026-03",
"status": "pending",
"total_count": 3,
"webhook_configured": true
}