Domínios
Adicione domínios de envio, consulte os registros DNS e o status de verificação deles, e verifique-os.
Criar um domínio
Adiciona um domínio de envio e retorna os registros DNS a publicar para ele.
/domainsRequer uma chave de API com escopo full. O Emailit gera uma chave DKIM de 2048 bits para o domínio. Publique os registros de dns_records no seu provedor de DNS e depois chame Verificar um domínio. Você pode enviar do domínio assim que ele for verificado. Consulte Adicionar um domínio e Registros DNS.
O número de domínios depende do seu plano: 3 no Pay as you go (25 após a sua primeira compra de créditos), 100 no Pro e 1.000 no Business. Dispara um evento domain.created.
Parâmetros do corpo
namestringobrigatórioO domínio de envio, como acme.com ou mail.acme.com, sem http://, https:// ou www.. Armazenado em minúsculas. Os seus endereços from devem usar exatamente este domínio.
tracking_keystringO rótulo do subdomínio para o CNAME de rastreamento de aberturas e cliques. O padrão é go, que resulta em go.acme.com. Letras, dígitos e hifens.
inbound_keystringO rótulo do subdomínio para o recebimento de e-mails. O padrão é inbound, que resulta em inbound.acme.com. Letras, dígitos e hifens.
dmarc_reportsbooleanpadrão: falseColeta relatórios DMARC do domínio. O Emailit cria um endereço de relatórios e o adiciona ao registro DMARC sugerido. Disponível nos planos Pro, Business e Custom. Consulte DMARC.
track_loadsbooleanpadrão: falsefalse ao criar um domínio. Ative o rastreamento com Atualizar um domínio depois que o CNAME de rastreamento for verificado.track_clicksbooleanpadrão: falsetrack_loads, para o rastreamento de cliques.As flags antigas outgoing, incoming e use_for_any são aceitas por compatibilidade e não têm efeito.
Retorno
Retorna 201 com o objeto de domínio, incluindo dns_records. Um domínio novo tem o status pending, ou pending_review no Pay as you go até a primeira verificação de 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."
}Obter um domínio
Obtém um domínio de envio com o status de verificação e os registros DNS.
/domains/{id}Requer uma chave de API com escopo full. Os status dos registros refletem a última verificação de DNS, que roda quando você chama Verificar um domínio e automaticamente uma vez por dia.
Parâmetros de caminho
idstringobrigatóriodom_…, ou sd_… e sed_… para domínios mais antigos) ou o nome do domínio, como acme.com.Retorno
Retorna o objeto de domínio.
objectstringdomain.idstringnamestringverification_statusstringverified quando o domínio pode enviar. pending enquanto o SPF, o DKIM ou o return path ainda não estiverem corretos. pending_review no Pay as you go quando o domínio precisa de uma análise manual do Emailit antes de ser verificado, por exemplo porque foi registrado há menos de 30 dias.
verified_atstring | nullnull se o domínio não estiver verificado. Uma verificação com falha limpa o valor.manual_review_requiredbooleanmanually_verified_atstring | nullnull.dns_checked_atstring | nullspf_status, dkim_status, return_path_statusstringStatus dos três registros obrigatórios: pending (ainda não verificado), ok, missing ou invalid. Os três devem estar ok para que o domínio seja verificado.
mx_statusstringreturn_path_status.dmarc_statusstringpending, ok, missing, invalid ou error. Opcional para a verificação.tracking_statusstringok antes que você possa ativar o rastreamento.inbound_statusstringspf_error, dkim_error, mx_error, return_path_error, dmarc_error, tracking_error, inbound_errorstring | nullnull.tracking_keystring | nullnull para o padrão go.inbound_keystring | nullnull para o padrão inbound.track_loadsinteger1 se o rastreamento de aberturas estiver ativado por padrão para os e-mails deste domínio, 0 se não estiver.track_clicksinteger1 se o rastreamento de cliques estiver ativado por padrão, 0 se não estiver.dmarc_reportsbooleandmarc_addressstring | nullnull quando dmarc_reports está desativado.verification_token, verification_method, dkim_identifier_stringstringverification_method é dns e dkim_identifier_string é o seletor DKIM, emailit.created_at, updated_atstringdns_recordsobject[]Os registros a publicar. Cada um tem type (MX, TXT ou CNAME), name, value, priority (para registros MX), ttl (auto), required (se é necessário para a verificação), além do status e do error atuais.
| Registro | Tipo | Nome | Valor | Obrigatório |
|---|---|---|---|---|
| Return path | MX | emailit.acme.com |
feedback-smtp.ffdc-1.emailit.com, prioridade 10 |
Sim |
| SPF | TXT | emailit.acme.com |
v=spf1 include:_spf.emailit.com ~all |
Sim |
| DKIM | TXT | emailit._domainkey.acme.com |
v=DKIM1; t=s; h=sha256; p=… |
Sim |
| DMARC | TXT | _dmarc.acme.com |
v=DMARC1; p=none;, mais os endereços de relatórios quando dmarc_reports está ativado |
Não |
| Rastreamento | CNAME | go.acme.com |
go.emailitmail.com |
Não |
| Recebimento | MX | inbound.acme.com |
inbound.emailitmail.com, prioridade 10 |
Não |
{
"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"
}Verificar um domínio
Consulta agora os registros DNS do domínio, salva o resultado e retorna o domínio com os novos status.
/domains/{id}/verifyRequer uma chave de API com escopo full. Chame-o depois de publicar os registros de Criar um domínio e de novo sempre que alterá-los. As alterações de DNS podem levar um tempo para se propagar; se um registro mostrar missing, aguarde alguns minutos e tente de novo.
O domínio passa a verified quando os três registros obrigatórios estão ok:
- SPF: um registro TXT em
emailit.<domain>que inclui_spf.emailit.com. - DKIM: um registro TXT em
emailit._domainkey.<domain>com a chave pública do domínio. - Return path: um único registro MX em
emailit.<domain>apontando parafeedback-smtp.ffdc-1.emailit.com.
No Pay as you go, um domínio registrado há menos de 30 dias recebe pending_review em vez disso, e o Emailit o analisa manualmente. Os registros DMARC, de rastreamento e de recebimento também são verificados, mas não afetam a verificação.
O Emailit também verifica de novo cada domínio uma vez por dia. Se um registro obrigatório deixar de passar, o domínio deixa de estar verificado, os envios a partir dele falham e o proprietário do workspace recebe um e-mail. Consulte Verificação de domínio.
Parâmetros de caminho
idstringobrigatórioRetorno
Retorna o objeto de domínio com o resultado desta verificação em verification_status, em cada campo *_status e *_error e em dns_records. Esta resposta não inclui dmarc_reports nem dmarc_address; consulte-os com Obter um domínio.
{
"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"
}Atualizar um domínio
Atualiza as configurações de um domínio de envio. Só mudam os campos que você enviar.
/domains/{id}Requer uma chave de API com escopo full. Dispara um evento domain.updated.
Parâmetros de caminho
idstringobrigatórioParâmetros do corpo
track_loadsbooleanAtiva ou desativa por padrão o rastreamento de aberturas para os e-mails deste domínio. Para ativá-lo, é preciso um CNAME de rastreamento verificado (tracking_status igual a ok). Consulte Domínio de rastreamento personalizado.
track_clicksbooleantrack_loads.tracking_keystring | nullUm novo rótulo de subdomínio para o CNAME de rastreamento, ou null para o padrão go. Alterá-lo redefine tracking_status para pending, então publique o novo CNAME e verifique de novo.
inbound_keystring | nullnull para o padrão inbound. Alterá-lo redefine inbound_status para pending.dmarc_reportsbooleanColeta relatórios DMARC do domínio. Ativar adiciona um endereço de relatórios ao registro DMARC sugerido, então atualize o seu registro _dmarc em seguida. Apenas nos planos Pro, Business e Custom. Desativar mantém o endereço para uso futuro.
namestringUm novo nome de domínio. Os registros DNS passam para o novo nome, então publique-os nele e verifique de novo antes de enviar a partir dele.
As flags antigas outgoing, incoming e use_for_any são aceitas e não têm efeito. Campos desconhecidos são ignorados. Uma requisição sem nenhum desses campos retorna 400.
Retorno
Retorna o objeto de domínio atualizado, incluindo 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."
}Listar domínios
Retorna uma página de domínios de envio, dos mais recentes para os mais antigos, com a cota de domínios do seu plano.
/domainsRequer uma chave de API com escopo full. Os itens da listagem não incluem dns_records; use Obter um domínio para obtê-los.
Parâmetros de consulta
pageintegerpadrão: 1limitintegerpadrão: 10searchstringmatchstringpadrão: allall ou or. Como os filtros abaixo se combinam.orderstringdirectionstringasc ou desc.Filtros
Adicione filtros no formato key.condition=value, por exemplo dkim_status.exact=ok. Consulte Filtragem.
| Chave | Tipo | Valores e observações |
|---|---|---|
name |
string | |
created_at |
date | |
spf_status |
enum | ok, missing, invalid |
dkim_status |
enum | ok, missing, invalid |
return_path_status |
enum | ok, missing, invalid |
Toda chave também serve para ordenar.
Retorno
dataobject[]dns_records.next_page_urlstring | nullnull. Consulte Paginação.previous_page_urlstring | nullnull.domain_limitinteger | nullnull se não houver limite.domain_countintegerplan_namestring | nullPay as you go ou 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"
}Excluir um domínio
Exclui permanentemente um domínio de envio.
/domains/{id}Requer uma chave de API com escopo full. Após a exclusão, os envios do domínio falham com Domain not verified, e as chaves de API restritas ao domínio não podem mais enviar. A chave DKIM do domínio, o histórico de saúde de envio e a conexão com o Cloudflare armazenada, se houver, também são removidos. Os e-mails já enviados continuam nos seus logs. Dispara um evento domain.deleted.
Para enviar do domínio de novo, crie-o outra vez. Ele recebe uma nova chave DKIM, então será preciso atualizar o registro DKIM.
Parâmetros de caminho
idstringobrigatórioRetorno
objectstringdomain.idstringnamestringdeletedbooleantrue.{
"object": "domain",
"id": "dom_4K468YrjOkR1wwdhqiO0G9XEUey",
"name": "acme.com",
"deleted": true
}{
"error": "Domain not found"
}