Domini
Aggiungi domini di invio, leggi i loro record DNS e lo stato di verifica, e verificali.
Crea un dominio
Aggiunge un dominio di invio e restituisce i record DNS da pubblicare.
/domainsRichiede una chiave API full. Emailit genera una chiave DKIM a 2048 bit per il dominio. Pubblica i record di dns_records presso il tuo provider DNS, poi chiama Verifica un dominio. Puoi inviare dal dominio dopo che è stato verificato. Vedi Aggiungi un dominio e Record DNS.
Il numero di domini dipende dal piano: 3 con Pay as you go (25 dopo il primo acquisto di crediti), 100 con Pro e 1000 con Business. Genera un evento domain.created.
Parametri del corpo
namestringobbligatorioIl dominio da cui inviare, ad esempio acme.com o mail.acme.com, senza http://, https:// o www.. Viene salvato in minuscolo. Gli indirizzi from devono usare esattamente questo dominio.
tracking_keystringL’etichetta del sottodominio per il CNAME di tracciamento delle aperture e dei clic. Il valore predefinito è go, che dà go.acme.com. Lettere, cifre e trattini.
inbound_keystringL’etichetta del sottodominio per la ricezione delle email. Il valore predefinito è inbound, che dà inbound.acme.com. Lettere, cifre e trattini.
dmarc_reportsbooleanpredefinito: falseRaccoglie i report DMARC del dominio. Emailit crea un indirizzo di raccolta dei report e lo aggiunge al record DMARC suggerito. Disponibile nei piani Pro, Business e Custom. Vedi DMARC.
track_loadsbooleanpredefinito: falsefalse quando crei un dominio. Attiva il tracciamento con Aggiorna un dominio dopo la verifica del CNAME di tracciamento.track_clicksbooleanpredefinito: falsetrack_loads, per il tracciamento dei clic.I vecchi flag outgoing, incoming e use_for_any vengono accettati per compatibilità e non hanno alcun effetto.
Restituisce
Restituisce 201 con l’oggetto dominio, compreso dns_records. Un nuovo dominio ha lo stato pending, oppure pending_review con Pay as you go fino al primo controllo DNS.
curl https://api.emailit.com/v2/domains \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "acme.com",
"tracking_key": "links",
"inbound_key": "reply",
"dmarc_reports": true
}'{
"object": "domain",
"id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
"name": "acme.com",
"verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
"verification_method": "dns",
"verified_at": null,
"manually_verified_at": null,
"manual_review_required": false,
"verification_status": "pending",
"dkim_identifier_string": "emailit",
"dns_checked_at": null,
"spf_status": "pending",
"spf_error": null,
"dkim_status": "pending",
"dkim_error": null,
"mx_status": "pending",
"mx_error": null,
"return_path_status": "pending",
"return_path_error": null,
"dmarc_status": "pending",
"dmarc_error": null,
"tracking_status": "pending",
"tracking_error": null,
"tracking_key": null,
"inbound_status": "pending",
"inbound_error": null,
"inbound_key": null,
"track_loads": 0,
"track_clicks": 0,
"dmarc_reports": false,
"dmarc_address": null,
"created_at": "2026-10-01T09:12:03.551208Z",
"updated_at": "2026-10-01T09:12:03.551208Z",
"dns_records": [
{
"required": true,
"type": "MX",
"name": "emailit.acme.com",
"value": "feedback-smtp.ffdc-1.emailit.com",
"priority": 10,
"ttl": "auto",
"status": "pending",
"error": null
},
{
"required": true,
"type": "TXT",
"name": "emailit.acme.com",
"value": "v=spf1 include:_spf.emailit.com ~all",
"priority": null,
"ttl": "auto",
"status": "pending",
"error": null
},
{
"required": true,
"type": "TXT",
"name": "emailit._domainkey.acme.com",
"value": "v=DKIM1; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kQ...IDAQAB;",
"priority": null,
"ttl": "auto",
"status": "pending",
"error": null
},
{
"required": false,
"type": "TXT",
"name": "_dmarc.acme.com",
"value": "v=DMARC1; p=none;",
"priority": null,
"ttl": "auto",
"status": "pending",
"error": null
},
{
"required": false,
"type": "CNAME",
"name": "go.acme.com",
"value": "go.emailitmail.com",
"priority": null,
"ttl": "auto",
"status": "pending",
"error": null
},
{
"required": false,
"type": "MX",
"name": "inbound.acme.com",
"value": "inbound.emailitmail.com",
"priority": 10,
"ttl": "auto",
"status": "pending",
"error": null
}
]
}{
"error": "The domain must be in apex format (e.g., domain.com) without http://, https://, or www."
}{
"error": "plan_required",
"required_plan": "pro"
}{
"error": "Domain with this name already exists",
"existing": {
"object": "domain",
"id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
"name": "acme.com"
}
}{
"error": "Pay as you go includes 3 domain(s)."
}{
"error": "Tracking requires a verified custom CNAME. New messages are not rewritten to a shared tracking URL."
}Recupera un dominio
Recupera un dominio di invio con lo stato di verifica e i record DNS.
/domains/{id}Richiede una chiave API full. Gli stati dei record riflettono l’ultimo controllo DNS, che viene eseguito quando chiami Verifica un dominio e automaticamente una volta al giorno.
Parametri di percorso
idstringobbligatoriodom_…, oppure sd_… e sed_… per i domini meno recenti) o il nome del dominio, ad esempio acme.com.Restituisce
Restituisce l’oggetto dominio.
objectstringdomain.idstringnamestringverification_statusstringverified quando il dominio può inviare. pending finché SPF, DKIM o il return path non sono ancora corretti. pending_review con Pay as you go quando il dominio richiede una revisione manuale da parte di Emailit prima di poter essere verificato, ad esempio perché è stato registrato meno di 30 giorni fa.
verified_atstring | nullnull se il dominio non è verificato. Un controllo non riuscito lo azzera.manual_review_requiredbooleanmanually_verified_atstring | nullnull.dns_checked_atstring | nullspf_status, dkim_status, return_path_statusstringStato dei tre record obbligatori: pending (non ancora controllato), ok, missing o invalid. Perché il dominio sia verificato, tutti e tre devono essere ok.
mx_statusstringreturn_path_status.dmarc_statusstringpending, ok, missing, invalid o error. Facoltativo per la verifica.tracking_statusstringok prima che tu possa attivare il tracciamento.inbound_statusstringspf_error, dkim_error, mx_error, return_path_error, dmarc_error, tracking_error, inbound_errorstring | nullnull.tracking_keystring | nullnull per il valore predefinito go.inbound_keystring | nullnull per il valore predefinito inbound.track_loadsinteger1 se il tracciamento delle aperture è attivo per impostazione predefinita per le email da questo dominio, 0 in caso contrario.track_clicksinteger1 se il tracciamento dei clic è attivo per impostazione predefinita, 0 in caso contrario.dmarc_reportsbooleandmarc_addressstring | nullnull quando dmarc_reports è disattivato.verification_token, verification_method, dkim_identifier_stringstringverification_method è dns e dkim_identifier_string è il selettore DKIM, emailit.created_at, updated_atstringdns_recordsobject[]I record da pubblicare. Ognuno ha type (MX, TXT o CNAME), name, value, priority (per i record MX), ttl (auto), required (se è necessario per la verifica), e i valori attuali di status ed error.
| Record | Tipo | Nome | Valore | Obbligatorio |
|---|---|---|---|---|
| Return path | MX | emailit.acme.com |
feedback-smtp.ffdc-1.emailit.com, priorità 10 |
Sì |
| SPF | TXT | emailit.acme.com |
v=spf1 include:_spf.emailit.com ~all |
Sì |
| DKIM | TXT | emailit._domainkey.acme.com |
v=DKIM1; t=s; h=sha256; p=… |
Sì |
| DMARC | TXT | _dmarc.acme.com |
v=DMARC1; p=none;, più gli indirizzi per i report quando dmarc_reports è attivo |
No |
| Tracciamento | CNAME | go.acme.com |
go.emailitmail.com |
No |
| Ricezione | MX | inbound.acme.com |
inbound.emailitmail.com, priorità 10 |
No |
{
"object": "domain",
"id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
"name": "acme.com",
"verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
"verification_method": "dns",
"verified_at": "2026-10-01T03:00:12.000000Z",
"manually_verified_at": null,
"manual_review_required": false,
"verification_status": "verified",
"dkim_identifier_string": "emailit",
"dns_checked_at": "2026-10-01T03:00:12.000000Z",
"spf_status": "ok",
"spf_error": null,
"dkim_status": "ok",
"dkim_error": null,
"mx_status": "ok",
"mx_error": null,
"return_path_status": "ok",
"return_path_error": null,
"dmarc_status": "ok",
"dmarc_error": null,
"tracking_status": "ok",
"tracking_error": null,
"tracking_key": null,
"inbound_status": "invalid",
"inbound_error": "queryMx ENOTFOUND inbound.acme.com",
"inbound_key": null,
"track_loads": 1,
"track_clicks": 1,
"dmarc_reports": true,
"dmarc_address": "4KXUJdXRVlVgbkWQm4GHLy8BleP@dmarc.emailitmail.com",
"created_at": "2026-09-14T08:02:51.000000Z",
"updated_at": "2026-10-01T03:00:12.000000Z",
"dns_records": [
{
"required": true,
"type": "MX",
"name": "emailit.acme.com",
"value": "feedback-smtp.ffdc-1.emailit.com",
"priority": 10,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": true,
"type": "TXT",
"name": "emailit.acme.com",
"value": "v=spf1 include:_spf.emailit.com ~all",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": true,
"type": "TXT",
"name": "emailit._domainkey.acme.com",
"value": "v=DKIM1; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kQ...IDAQAB;",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": false,
"type": "TXT",
"name": "_dmarc.acme.com",
"value": "v=DMARC1; p=none; rua=mailto:4KXUJdXRVlVgbkWQm4GHLy8BleP@dmarc.emailitmail.com; ruf=mailto:4KXUJdXRVlVgbkWQm4GHLy8BleP@dmarc.emailitmail.com;",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": false,
"type": "CNAME",
"name": "go.acme.com",
"value": "go.emailitmail.com",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": false,
"type": "MX",
"name": "inbound.acme.com",
"value": "inbound.emailitmail.com",
"priority": 10,
"ttl": "auto",
"status": "invalid",
"error": "queryMx ENOTFOUND inbound.acme.com"
}
]
}{
"error": "Domain not found"
}Verifica un dominio
Controlla subito i record DNS del dominio, salva il risultato e restituisce il dominio con i nuovi stati.
/domains/{id}/verifyRichiede una chiave API full. Chiamalo dopo aver pubblicato i record ottenuti da Crea un dominio, e di nuovo ogni volta che li modifichi. La propagazione delle modifiche DNS può richiedere un po’ di tempo, quindi se un record risulta missing, attendi qualche minuto e riprova.
Il dominio diventa verified quando tutti e tre i record obbligatori sono ok:
- SPF: un record TXT su
emailit.<domain>che include_spf.emailit.com. - DKIM: un record TXT su
emailit._domainkey.<domain>con la chiave pubblica del dominio. - Return path: un unico record MX su
emailit.<domain>che punta afeedback-smtp.ffdc-1.emailit.com.
Con Pay as you go, un dominio registrato meno di 30 giorni fa riceve invece pending_review, ed Emailit lo esamina manualmente. Vengono controllati anche i record DMARC, di tracciamento e di ricezione, ma non influiscono sulla verifica.
Emailit ricontrolla inoltre ogni dominio una volta al giorno. Se un record obbligatorio smette di superare il controllo, il dominio non è più verificato, gli invii da quel dominio non riescono e il proprietario del workspace riceve un’email. Vedi Verifica del dominio.
Parametri di percorso
idstringobbligatorioRestituisce
Restituisce l’oggetto dominio con il risultato di questo controllo in verification_status, in ogni campo *_status e *_error, e in dns_records. Questa risposta non include dmarc_reports e dmarc_address; leggili con Recupera un dominio.
{
"object": "domain",
"id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
"name": "acme.com",
"verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
"verification_method": "dns",
"verified_at": null,
"manually_verified_at": null,
"manual_review_required": false,
"dkim_identifier_string": "emailit",
"dns_checked_at": "2026-10-01T09:20:41.000000Z",
"spf_status": "ok",
"spf_error": null,
"dkim_status": "missing",
"dkim_error": "queryTxt ENOTFOUND emailit._domainkey.acme.com",
"mx_status": "ok",
"mx_error": null,
"return_path_status": "ok",
"return_path_error": null,
"dmarc_status": "error",
"dmarc_error": "queryTxt ENOTFOUND _dmarc.acme.com",
"tracking_status": "invalid",
"tracking_error": "queryCname ENOTFOUND go.acme.com",
"tracking_key": null,
"inbound_status": "invalid",
"inbound_error": "queryMx ENOTFOUND inbound.acme.com",
"inbound_key": null,
"track_loads": 0,
"track_clicks": 0,
"created_at": "2026-10-01T09:12:03.000000Z",
"updated_at": "2026-10-01T09:20:41.000000Z",
"dns_records": [
{
"required": true,
"type": "MX",
"name": "emailit.acme.com",
"value": "feedback-smtp.ffdc-1.emailit.com",
"priority": 10,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": true,
"type": "TXT",
"name": "emailit.acme.com",
"value": "v=spf1 include:_spf.emailit.com ~all",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": true,
"type": "TXT",
"name": "emailit._domainkey.acme.com",
"value": "v=DKIM1; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kQ...IDAQAB;",
"priority": null,
"ttl": "auto",
"status": "missing",
"error": "queryTxt ENOTFOUND emailit._domainkey.acme.com"
},
{
"required": false,
"type": "TXT",
"name": "_dmarc.acme.com",
"value": "v=DMARC1; p=none;",
"priority": null,
"ttl": "auto",
"status": "error",
"error": "queryTxt ENOTFOUND _dmarc.acme.com"
},
{
"required": false,
"type": "CNAME",
"name": "go.acme.com",
"value": "go.emailitmail.com",
"priority": null,
"ttl": "auto",
"status": "invalid",
"error": "queryCname ENOTFOUND go.acme.com"
},
{
"required": false,
"type": "MX",
"name": "inbound.acme.com",
"value": "inbound.emailitmail.com",
"priority": 10,
"ttl": "auto",
"status": "invalid",
"error": "queryMx ENOTFOUND inbound.acme.com"
}
],
"verification_status": "pending"
}{
"error": "Domain not found"
}Aggiorna un dominio
Aggiorna le impostazioni di un dominio di invio. Cambiano solo i campi che invii.
/domains/{id}Richiede una chiave API full. Genera un evento domain.updated.
Parametri di percorso
idstringobbligatorioParametri del corpo
track_loadsbooleanAttiva o disattiva per impostazione predefinita il tracciamento delle aperture per le email da questo dominio. Per attivarlo serve un CNAME di tracciamento verificato (tracking_status è ok). Vedi Configura un dominio di tracciamento personalizzato.
track_clicksbooleantrack_loads.tracking_keystring | nullUna nuova etichetta di sottodominio per il CNAME di tracciamento, oppure null per il valore predefinito go. Se la cambi, tracking_status torna a pending, quindi pubblica il nuovo CNAME e verifica di nuovo il dominio.
inbound_keystring | nullnull per il valore predefinito inbound. Se la cambi, inbound_status torna a pending.dmarc_reportsbooleanRaccoglie i report DMARC del dominio. Se lo attivi, viene aggiunto un indirizzo di raccolta dei report al record DMARC suggerito, quindi aggiorna poi il record _dmarc. Solo nei piani Pro, Business e Custom. Se lo disattivi, l’indirizzo viene conservato per un uso futuro.
namestringUn nuovo nome di dominio. I record DNS passano al nuovo nome, quindi pubblicali lì e verifica di nuovo il dominio prima di inviare.
I vecchi flag outgoing, incoming e use_for_any vengono accettati e non hanno alcun effetto. I campi sconosciuti vengono ignorati. Una richiesta senza nessuno di questi campi restituisce 400.
Restituisce
Restituisce l’oggetto dominio aggiornato, compreso dns_records.
curl -X POST https://api.emailit.com/v2/domains/acme.com \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"track_loads": true, "track_clicks": true}'{
"object": "domain",
"id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
"name": "acme.com",
"verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
"verification_method": "dns",
"verified_at": "2026-10-01T03:00:12.000000Z",
"manually_verified_at": null,
"manual_review_required": false,
"verification_status": "verified",
"dkim_identifier_string": "emailit",
"dns_checked_at": "2026-10-01T03:00:12.000000Z",
"spf_status": "ok",
"spf_error": null,
"dkim_status": "ok",
"dkim_error": null,
"mx_status": "ok",
"mx_error": null,
"return_path_status": "ok",
"return_path_error": null,
"dmarc_status": "ok",
"dmarc_error": null,
"tracking_status": "ok",
"tracking_error": null,
"tracking_key": null,
"inbound_status": "invalid",
"inbound_error": "queryMx ENOTFOUND inbound.acme.com",
"inbound_key": null,
"track_loads": 1,
"track_clicks": 0,
"dmarc_reports": false,
"dmarc_address": null,
"created_at": "2026-09-14T08:02:51.000000Z",
"updated_at": "2026-10-01T10:44:20.000000Z",
"dns_records": [
{
"required": true,
"type": "MX",
"name": "emailit.acme.com",
"value": "feedback-smtp.ffdc-1.emailit.com",
"priority": 10,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": true,
"type": "TXT",
"name": "emailit.acme.com",
"value": "v=spf1 include:_spf.emailit.com ~all",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": true,
"type": "TXT",
"name": "emailit._domainkey.acme.com",
"value": "v=DKIM1; t=s; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx3kQ...IDAQAB;",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": false,
"type": "TXT",
"name": "_dmarc.acme.com",
"value": "v=DMARC1; p=none;",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": false,
"type": "CNAME",
"name": "go.acme.com",
"value": "go.emailitmail.com",
"priority": null,
"ttl": "auto",
"status": "ok",
"error": null
},
{
"required": false,
"type": "MX",
"name": "inbound.acme.com",
"value": "inbound.emailitmail.com",
"priority": 10,
"ttl": "auto",
"status": "invalid",
"error": "queryMx ENOTFOUND inbound.acme.com"
}
]
}{
"error": "No valid fields provided for update. Provide at least one of: name, outgoing, incoming, use_for_any, track_loads, track_clicks, tracking_key, inbound_key, dmarc_reports"
}{
"error": "plan_required",
"required_plan": "pro"
}{
"error": "Domain not found"
}{
"error": "Another domain with this name already exists"
}{
"error": "Tracking requires a verified custom CNAME. New messages are not rewritten to a shared tracking URL."
}Elenca i domini
Restituisce una pagina di domini di invio, a partire dal più recente, con il numero di domini consentito dal piano.
/domainsRichiede una chiave API full. Gli elementi dell’elenco non includono dns_records; per quelli usa Recupera un dominio.
Parametri di query
pageintegerpredefinito: 1limitintegerpredefinito: 10searchstringmatchstringpredefinito: allall o or. Come si combinano i filtri qui sotto.orderstringdirectionstringasc o desc.Filtri
Aggiungi i filtri nella forma key.condition=value, ad esempio dkim_status.exact=ok. Vedi Filtri e ordinamento.
| Chiave | Tipo | Valori e note |
|---|---|---|
name |
string | |
created_at |
date | |
spf_status |
enum | ok, missing, invalid |
dkim_status |
enum | ok, missing, invalid |
return_path_status |
enum | ok, missing, invalid |
Ogni chiave è anche una chiave di ordinamento.
Restituisce
dataobject[]dns_records.next_page_urlstring | nullnull. Vedi Paginazione.previous_page_urlstring | nullnull.domain_limitinteger | nullnull se non c’è limite.domain_countintegerplan_namestring | nullPay as you go o Pro.curl -G https://api.emailit.com/v2/domains \
-H "Authorization: Bearer $EMAILIT_API_KEY" \
-d dkim_status.not_exact=ok \
-d spf_status.not_exact=ok \
-d match=or{
"data": [
{
"object": "domain",
"id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
"name": "acme.com",
"verification_token": "vt_4KY8weirBN9sxnfbIt78tsFWteY",
"verification_method": "dns",
"verified_at": "2026-10-01T03:00:12.000000Z",
"manually_verified_at": null,
"manual_review_required": false,
"verification_status": "verified",
"dkim_identifier_string": "emailit",
"dns_checked_at": "2026-10-01T03:00:12.000000Z",
"spf_status": "ok",
"spf_error": null,
"dkim_status": "ok",
"dkim_error": null,
"mx_status": "ok",
"mx_error": null,
"return_path_status": "ok",
"return_path_error": null,
"dmarc_status": "ok",
"dmarc_error": null,
"tracking_status": "ok",
"tracking_error": null,
"tracking_key": null,
"inbound_status": "invalid",
"inbound_error": "queryMx ENOTFOUND inbound.acme.com",
"inbound_key": null,
"track_loads": 1,
"track_clicks": 1,
"dmarc_reports": true,
"dmarc_address": "4KXUJdXRVlVgbkWQm4GHLy8BleP@dmarc.emailitmail.com",
"created_at": "2026-09-14T08:02:51.000000Z",
"updated_at": "2026-10-01T03:00:12.000000Z"
}
],
"next_page_url": null,
"previous_page_url": null,
"domain_limit": 100,
"domain_count": 1,
"plan_name": "Pro"
}Elimina un dominio
Elimina definitivamente un dominio di invio.
/domains/{id}Richiede una chiave API full. Dopo l’eliminazione, gli invii dal dominio non riescono con Domain not verified e le chiavi API limitate al dominio non possono più inviare. Vengono rimossi anche la chiave DKIM del dominio, lo storico della salute degli invii e l’eventuale connessione a Cloudflare salvata. Le email già inviate restano nei log. Genera un evento domain.deleted.
Per inviare di nuovo dal dominio, crealo di nuovo. Riceverà una nuova chiave DKIM, quindi dovrai aggiornare il record DKIM.
Parametri di percorso
idstringobbligatorioRestituisce
objectstringdomain.idstringnamestringdeletedbooleantrue.{
"object": "domain",
"id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
"name": "acme.com",
"deleted": true
}{
"error": "Domain not found"
}