Verify a sending domain
Add your domain in the Sendzovo dashboard and publish the required DNS records. Your domain must be verified and ready for sending before you can send transactional email.
Sending domain:
example.com
Integrate transactional email and email verification into your application with Sendzovo REST APIs or SMTP.
https://api.sendzovo.com/v1
Sendzovo provides transactional email delivery through REST API and SMTP, plus a separate Email Verification API for checking recipient addresses.
https://api.sendzovo.com/v1
Add your domain in the Sendzovo dashboard and publish the required DNS records. Your domain must be verified and ready for sending before you can send transactional email.
Sending domain:
example.com
Create a domain-scoped Sending API key or SMTP credential from the verified domain workspace.
Sending API keys and SMTP credentials can only be used with their assigned sending domain.
Authorization: Bearer YOUR_SENDING_API_KEY
Send transactional email through the REST API using your Sending API key.
POST /messages
A send request accepts 1–50 recipients. At least
one of html or text
is required.
curl -X POST "https://api.sendzovo.com/v1/messages" \
-H "Authorization: Bearer YOUR_SENDING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "hello@example.com",
"from_name": "Example App",
"to": [
{
"email": "customer@example.net",
"name": "Customer"
}
],
"subject": "Welcome",
"html": "<h1>Welcome!</h1>",
"text": "Welcome!"
}'
<?php
require 'vendor/autoload.php';
use Sendzovo\Client;
$sendzovo = Client::withSendingKey(
$_ENV['SENDZOVO_SENDING_API_KEY']
);
$result = $sendzovo->messages()->send([
'from' => 'hello@example.com',
'from_name' => 'Example App',
'to' => [
[
'email' => 'customer@example.net',
'name' => 'Customer',
],
],
'subject' => 'Welcome',
'html' => '<h1>Welcome!</h1>',
'text' => 'Welcome!',
'tag' => 'welcome',
]);
$messageId = $result['id'];
const response = await fetch(
"https://api.sendzovo.com/v1/messages",
{
method: "POST",
headers: {
"Authorization": "Bearer YOUR_SENDING_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
from: "hello@example.com",
from_name: "Example App",
to: [
{
email: "customer@example.net",
name: "Customer"
}
],
subject: "Welcome",
html: "<h1>Welcome!</h1>",
text: "Welcome!"
})
}
);
const data = await response.json();
console.log(data);
import requests
response = requests.post(
"https://api.sendzovo.com/v1/messages",
headers={
"Authorization": "Bearer YOUR_SENDING_API_KEY",
"Content-Type": "application/json",
},
json={
"from": "hello@example.com",
"from_name": "Example App",
"to": [
{
"email": "customer@example.net",
"name": "Customer",
}
],
"subject": "Welcome",
"html": "<h1>Welcome!</h1>",
"text": "Welcome!",
},
)
print(response.json())
using System.Net.Http.Headers;
using System.Net.Http.Json;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue(
"Bearer",
"YOUR_SENDING_API_KEY"
);
var payload = new
{
from = "hello@example.com",
from_name = "Example App",
to = new[]
{
new
{
email = "customer@example.net",
name = "Customer"
}
},
subject = "Welcome",
html = "<h1>Welcome!</h1>",
text = "Welcome!"
};
var response = await client.PostAsJsonAsync(
"https://api.sendzovo.com/v1/messages",
payload
);
var result =
await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
A successful request returns a message ID that can be used to retrieve the message later.
Create a separate account-level Verification API key from Email Verification → Manage Verification API Keys in your Sendzovo dashboard.
Verification API keys are separate from domain-scoped Sending API keys.
GET /verifyEmail?email=user@example.com
Use the message ID returned by the send request to retrieve the current message status and details.
GET /messages/{message_id}
Sendzovo uses HTTP status codes to indicate whether a request succeeded, was rejected, or needs further action.
200 Request completed successfully
202 Email accepted and queued
400 Invalid request
401 Authentication failed
403 Request not permitted
422 Validation error
429 Rate limit exceeded
See HTTP Responses for the complete response reference supported by your API.
Create a free Sendzovo account, verify your domain and send your first email in minutes.