curl https://tawked.com/v1/email/domains/acme.sa \
-H "Authorization: Bearer tk_live_xxxxxxxxxxxxxxxxxxxx"const res = await fetch("https://tawked.com/v1/email/domains/acme.sa", {
headers: {
Authorization: "Bearer tk_live_xxxxxxxxxxxxxxxxxxxx",
},
});
const data = await res.json();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tawked.com/v1/email/domains/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}import requests
res = requests.get(
"https://tawked.com/v1/email/domains/acme.sa",
headers={"Authorization": "Bearer tk_live_xxxxxxxxxxxxxxxxxxxx"},
)
data = res.json(){
"id": "0199f1c2-7a41-7c3e-9d2b-5e8f1a2b3c4d",
"name": "acme.sa",
"state": "verified",
"created_at": "2026-10-23T09:00:00+00:00",
"verified_at": "2026-10-23T09:12:00+00:00",
"pending_until": null,
"records": [
{
"purpose": "dkim",
"type": "TXT",
"name": "tawked._domainkey.acme.sa",
"value": "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…",
"state": "found"
},
{
"purpose": "return_path",
"type": "MX",
"name": "send.acme.sa",
"value": "feedback-smtp.eu-west-1.amazonses.com",
"priority": 10,
"state": "found"
},
{
"purpose": "return_path",
"type": "TXT",
"name": "send.acme.sa",
"value": "v=spf1 include:_spf.tawked.com ~all",
"state": "found"
},
{
"purpose": "tracking",
"type": "CNAME",
"name": "links.acme.sa",
"value": "track.tawked.com",
"state": "found"
}
],
"defaults": {
"from_name": "متجر أكمي",
"from_local": "orders"
},
"authentication": {
"dkim": "pass",
"return_path": "working",
"dmarc": "none"
},
"tracking": {
"opens": true,
"clicks": true,
"subdomain": "links.acme.sa",
"state": "active",
"problem": null,
"checked_at": "2026-10-23T10:00:00+00:00"
},
"receiving": null
}{
"error": "invalid_request"
}{
"error": "unauthorized"
}{
"error": "live_key_required"
}{
"error": "not_found"
}{
"error": "email_access_required"
}{
"error": "too_many_requests"
}{
"error": "internal_error"
}Get a domain
Reads one sending domain of the application: its state, its records and each one’s state, its defaults, how its mail authenticates and, while it is on, its open and click tracking. A removed domain, or another application’s, answers 404. A live key of the application with email:read (or email:send, or email:manage).
curl https://tawked.com/v1/email/domains/acme.sa \
-H "Authorization: Bearer tk_live_xxxxxxxxxxxxxxxxxxxx"const res = await fetch("https://tawked.com/v1/email/domains/acme.sa", {
headers: {
Authorization: "Bearer tk_live_xxxxxxxxxxxxxxxxxxxx",
},
});
const data = await res.json();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tawked.com/v1/email/domains/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}import requests
res = requests.get(
"https://tawked.com/v1/email/domains/acme.sa",
headers={"Authorization": "Bearer tk_live_xxxxxxxxxxxxxxxxxxxx"},
)
data = res.json(){
"id": "0199f1c2-7a41-7c3e-9d2b-5e8f1a2b3c4d",
"name": "acme.sa",
"state": "verified",
"created_at": "2026-10-23T09:00:00+00:00",
"verified_at": "2026-10-23T09:12:00+00:00",
"pending_until": null,
"records": [
{
"purpose": "dkim",
"type": "TXT",
"name": "tawked._domainkey.acme.sa",
"value": "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…",
"state": "found"
},
{
"purpose": "return_path",
"type": "MX",
"name": "send.acme.sa",
"value": "feedback-smtp.eu-west-1.amazonses.com",
"priority": 10,
"state": "found"
},
{
"purpose": "return_path",
"type": "TXT",
"name": "send.acme.sa",
"value": "v=spf1 include:_spf.tawked.com ~all",
"state": "found"
},
{
"purpose": "tracking",
"type": "CNAME",
"name": "links.acme.sa",
"value": "track.tawked.com",
"state": "found"
}
],
"defaults": {
"from_name": "متجر أكمي",
"from_local": "orders"
},
"authentication": {
"dkim": "pass",
"return_path": "working",
"dmarc": "none"
},
"tracking": {
"opens": true,
"clicks": true,
"subdomain": "links.acme.sa",
"state": "active",
"problem": null,
"checked_at": "2026-10-23T10:00:00+00:00"
},
"receiving": null
}{
"error": "invalid_request"
}{
"error": "unauthorized"
}{
"error": "live_key_required"
}{
"error": "not_found"
}{
"error": "email_access_required"
}{
"error": "too_many_requests"
}{
"error": "internal_error"
}Authorizations
Authorization: Bearer . An application key (tk_live_, tk_test_) has full access, which covers every product and any product added later, or custom access, chosen when the key is created: one or more of the scopes verify:check, verify:send (includes verify:check), notifications:read, notifications:send (includes notifications:read), email:read, email:send (includes email:read), email:manage (includes email:send), webhooks:manage, email:inbound, notifications:templates (includes notifications:read), chat:menus, chat:attendant. No key made on the API keys page holds notifications:templates, full access included: the three template writes answer such a key 403 insufficient_scope. A connected app's key holds it. Nor chat:menus: the five conversation menu operations answer such a key 403 insufficient_scope, and a connected app's key holds it once the client approved it. Nor chat:attendant: the five auto-attendant operations answer such a key 403 insufficient_scope too, and a connected app's key holds it once the client approved it. email:manage and webhooks:manage are held only by a key someone chose them for: a full-access key, old or new, never holds them. email:inbound, which reads, deletes and forwards received e-mail, is opt-in on every key, full access included: a key holds it only when it was turned on when the key was created. A call outside the key's access answers 403 insufficient_scope and names the scope it needs in the WWW-Authenticate response header. A partner key (tk_partner_) always has full access. Whatever its access, a key is a server-side secret.
Path Parameters
The domain's id (a uuid) or its name (acme.sa).
Response
The domain