{
"domain": "github.com",
"cached": false,
"checkedAt": "2026-10-21T14:09:42.267Z",
"grade": "D",
"score": 68,
"summary": {
"errors": 0,
"warnings": 3,
"infos": 2
},
"spf": {
"record": "v=spf1 ip4:192.30.252.0/22 include:spf.protection.outlook.com include:_netblocks.google.com include:_netblocks2.google.com include:mail.zendesk.com include:_spf.salesforce.com include:servers.mcsv.net include:mktomail.com include:sendgrid.net ip4:62.253.227.114 ip4:166.78.69.169 ip4:166.78.69.170 ip4:166.78.71.131 ~all",
"qualifierAll": "~",
"mechanisms": 14,
"dnsLookups": 10,
"lookupLimit": 10,
"includes": [
"spf.protection.outlook.com",
"_netblocks.google.com",
"_netblocks2.google.com",
"mail.zendesk.com",
"_spf.salesforce.com",
"servers.mcsv.net",
"mktomail.com",
"sendgrid.net"
],
"redirect": null,
"resolvedTree": [
{
"domain": "spf.protection.outlook.com",
"via": "include",
"depth": 1
},
{
"domain": "_netblocks.google.com",
"via": "include",
"depth": 1
},
{
"domain": "_netblocks2.google.com",
"via": "include",
"depth": 1
},
{
"domain": "mail.zendesk.com",
"via": "include",
"depth": 1
},
{
"domain": "_spf.salesforce.com",
"via": "include",
"depth": 1
},
{
"domain": "servers.mcsv.net",
"via": "include",
"depth": 1
},
{
"domain": "mktomail.com",
"via": "include",
"depth": 1
},
{
"domain": "sendgrid.net",
"via": "include",
"depth": 1
},
{
"domain": "ab.sendgrid.net",
"via": "include",
"depth": 2
}
]
},
"dmarc": {
"record": "v=DMARC1; p=quarantine; sp=reject; pct=100; rua=mailto:[email protected]; ruf=mailto:[email protected]; fo=1",
"policy": "quarantine",
"subdomainPolicy": "reject",
"effectivePolicyForQueriedDomain": "quarantine",
"pct": 100,
"rua": [
"mailto:[email protected]"
],
"alignment": {
"dkim": "r",
"spf": "r"
},
"inheritedFrom": null
},
"dkim": {
"selectorsChecked": [
"google",
"selector1",
"selector2",
"k1",
"k2",
"default",
"s1",
"s2",
"mail",
"dkim"
],
"selectorsProvided": false,
"keys": [
{
"selector": "google",
"found": true,
"record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAj6T5sl/RwdSqGoYWaWaFbS2UAeyPrEmd0gogocmRfS441qwR8/0KB81Hw89P0l4YiFRrXYk7NVIGfyCRHAYYZUzCkGeOysI2EjgzLFhd/NEsbRzOEc/kWkK/RO6JFq/5lOn6M9AZw/ap9tds4JG9ApgNNdSpPxp9DmvpsOSgNMVflRxQFrk3kdS4RNAPKu/OPoA7dlR/A/pECryjRoYgENtDXzdnK70HgCekems6UDzxDj61cjyoKoXtEMF/QsaHEQ1Gjfv014rDJBsubk/kT5VqHkWHa/ia68Z5r228Ety/wFfQNjXTx/J7KGZ9GkZlKED659eiJcLnWcKDSi…",
"keyType": "rsa",
"keyBits": 2048,
"revoked": false,
"testing": false
},
{
"selector": "selector1",
"found": true,
"record": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxZC/z2cK+2s1f/ktzSDSeFzkfIHrjwtGFsfKMAYvKaXjPVNzKykpbXBkX5nB7dVUTFttda7aROr2iSrIseQ27Ui+4rUZVzgFanE8RaXhYM9n5wPKNv8GtLJk7JgcsYZ7ErgID4uW2sEYyV/dnRYw6rDzOaeRKkKELTUfJI5ebLQIDAQAB;",
"keyType": "rsa",
"keyBits": 1024,
"revoked": false,
"testing": false
},
{
"selector": "k1",
"found": true,
"record": "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbNrX2cY/GUKIFx2G/1I00ftdAj713WP9AQ1xir85i89sA2guU0ta4UX1Xzm06XIU6iBP41VwmPwBGRNofhBVR+e6WHUoNyIR4Bn84LVcfZE20rmDeXQblIupNWBqLXM1Q+VieI/eZu/7k9/vOkLSaQQdml4Cv8lb3PcnluMVIhQIDAQAB;",
"keyType": "rsa",
"keyBits": 1024,
"revoked": false,
"testing": false
},
{
"selector": "k2",
"found": true,
"record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2aC2KjGKLOwTweBY5A9RpjsxaBXR9r7OAU6U8/zn92ivImI75naUujWbItRI/QmL1jy5PWGqLwoUA0b90ObWaLDc+i9MtTNmGeWO009hr20fIxhGg6XBT2kjZ1DTThopSe1nAndsupmcBwlQ5Q6LJ+ZAxLcujnPIxM0ZBLmgpkv8u6RfY4eFP8OLvdAW3oSuB0DyLDigQX4Sj8wBO4YIdQH6AAmBeOsidsKAFNFUCpc3vCxtBDR12U+cBg724l3sBkMQ8evnz6idnqxq9QAVYh8k4kJ+RP+6cqTdy7LjIm8xY/bQNpQIpGUAuDo2DjLcCDun9DAI4Q/3z+Q0o…",
"keyType": "rsa",
"keyBits": 2048,
"revoked": false,
"testing": false
},
{
"selector": "s1",
"found": true,
"record": "k=rsa; t=s; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyn3fMCVpb7ryIRKOGXhXVGYmsWUitNlSckqGHOwNFZgFadplOrD+Qzf1XQkP7MH/VB/97DsAAJGtEXW1Uq71Hjnfr/DuBN/YfjF/gU70qEFb7q1sdIiNtjFL2TkOpoW+X/bhhPNheW/fYwyFb6ZHFM6LTgXyuimWRHTOUP3VjZzhNVda79nt+2WZYbS4l8HdMgWpTNHjpVw5PtXESA9KBg/evSRk5fIaXIX5eRXW3baoV9yVzD8O29/IL/DiSk+yNvaO0EHL5c4yGuZJhGzvpiznb2IDVdemJK4Dqzdy5FTN/SGYZhAEr7MguG3Z314hMS2scgMsOMgB64uj/6+6Uw…",
"keyType": "rsa",
"keyBits": 2048,
"revoked": false,
"testing": false
},
{
"selector": "s2",
"found": true,
"record": "k=rsa; t=s; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnNt2/H6bKs99C6DAaokPp62KN9mKaD20D1PBakkObejkJvzM6Un/fKHPeI2/qXdvFFBPQE3mxMNoe+hwBVDgMgCuZEn8J6gZYI4amITure9/ny6+GaNVRoH2m6xAtWwKINkKxMayGiehkWlRVb7D23F0U8y+VDHKQFz1bnXA5jDpcDiMXy8i2lV5vEys+qt+1WGhDKCAwamT8c3xkZz8aXMJaXYCiN2HMgHDU81+mVCk4+u6mY+a98APVfFhsQ0KCq/mVZXaXTV06QrG9M5PtBHUFW7VtwXKp+AFrAut0KW1NnwaA5IGA5sc+n9dma7bSqdfGS+ixdSmJ69NwmYSHw…",
"keyType": "rsa",
"keyBits": 2048,
"revoked": false,
"testing": false
}
]
},
"mx": {
"records": [
{
"priority": 0,
"host": "github-com.mail.protection.outlook.com"
}
],
"nullMx": false,
"hasMail": true
},
"mtaSts": null,
"tlsRpt": null,
"bimi": null,
"issues": [
{
"severity": "warning",
"code": "spf_lookups_near_limit",
"message": "The SPF evaluation uses 10 of the 10 allowed DNS-querying terms; adding another include may break SPF."
},
{
"severity": "warning",
"code": "dkim_key_1024",
"message": "selector1._domainkey: the RSA key is 1024 bits; 2048 bits is the current recommendation."
},
{
"severity": "warning",
"code": "dkim_key_1024",
"message": "k1._domainkey: the RSA key is 1024 bits; 2048 bits is the current recommendation."
},
{
"severity": "info",
"code": "mta_sts_missing",
"message": "No MTA-STS record (_mta-sts TXT). MTA-STS lets receiving domains require TLS for inbound mail; it matters mainly for domains that receive mail."
},
{
"severity": "info",
"code": "tls_rpt_missing",
"message": "No TLS-RPT record (_smtp._tls TXT), so no reports about failed encrypted deliveries are received."
}
],
"note": "Reads public DNS records through DNS-over-HTTPS and judges the published records against RFC 7208 (SPF), RFC 7489 (DMARC), RFC 6376 (DKIM), RFC 8461 (MTA-STS), RFC 8460 (TLS-RPT) and the BIMI draft. The grade is a heuristic score of those records, not proof that mail authenticates. It does not send mail, verify message signatures, test deliverability, fetch the MTA-STS policy file or expand a/mx/exists targets in SPF. Without selector= only common DKIM selectors are tried. The DMARC organizational domain is approximated."
}
curl --location --request GET 'https://zylalabs.com/api/14333/email+authentication+check+api/35927/check+a+domain+spf+dmarc+dkim+and+bimi+records?domain=github.com' --header 'Authorization: Bearer YOUR_API_KEY'
{
"grade": "A",
"score": 90,
"summary": {
"errors": 0,
"warnings": 1,
"infos": 0
},
"spf": {
"record": "v=spf1 include:_spf.google.com ~all",
"qualifierAll": "~",
"mechanisms": 2,
"dnsLookups": 1,
"lookupLimit": 10,
"includes": [
"_spf.google.com"
],
"redirect": null
},
"dmarc": {
"record": "v=DMARC1; p=none; rua=mailto:[email protected]",
"policy": "none",
"subdomainPolicy": null,
"effectivePolicyForQueriedDomain": "none",
"pct": 100,
"rua": [
"mailto:[email protected]"
],
"alignment": {
"dkim": "r",
"spf": "r"
},
"inheritedFrom": null
},
"issues": [
{
"severity": "warning",
"code": "dmarc_policy_none",
"message": "p=none is monitoring only; spoofed mail is still delivered. Move to quarantine or reject once reports look clean."
}
],
"assumptions": {
"note": "Validated offline: no DNS queries were made, so include chains are not followed and the SPF lookup count only covers terms in the text you sent."
},
"checkedAt": "2026-10-21T14:09:46.208Z"
}
curl --location --request POST 'https://zylalabs.com/api/14333/email+authentication+check+api/35928/validate+spf+dmarc+and+dkim+record+text+you+send+in' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{"spf":"v=spf1 include:_spf.google.com ~all","dmarc":"v=DMARC1; p=none; rua=mailto:[email protected]"}'
Após se cadastrar, cada desenvolvedor recebe uma chave de acesso à API pessoal, uma combinação única de letras e dígitos para acessar nosso endpoint de API. Para autenticar com a Verificação de Autenticação de Email API basta incluir seu token Bearer no cabeçalho Authorization.
| Cabeçalho | Descrição |
|---|---|
Authorization
|
Obrigatório
Deve ser Bearer access_key. Veja "Sua chave de acesso à API" acima quando você estiver inscrito.
|
Sem compromisso de longo prazo. Faça upgrade, downgrade ou cancele a qualquer momento. O teste gratuito inclui até 50 requisições.
Verifique os registros SPF, DMARC e DKIM de qualquer domínio e obtenha problemas codificados, uma nota e uma pontuação, além de verificações MTA-STS, TLS-RPT, BIMI e MX
Registros SPF, DMARC e DKIM para um domínio, além de MTA-STS, TLS-RPT, BIMI e presença de MX. Ele retorna os registros analisados, problemas codificados, uma nota e uma pontuação
Ele lê apenas registros de DNS públicos. Ele não envia e-mails de teste não busca o arquivo de política MTA-STS e não pode provar que uma chave DKIM está ausente porque o seletor pode simplesmente ser desconhecido
Selecione um ou mais nomes separados por vírgulas, até 5, como google ou selector1,selector2. Sem isso, uma lista curta de seletores comuns é tentada
Ele verifica o texto do registro SPF DMARC ou DKIM que você envia no corpo da solicitação Está offline não faz consultas DNS e é útil para registros que você ainda não publicou
Sim Os resultados são armazenados em cache por 15 minutos Adicione o parâmetro fresc para 1 para contornar o cache por exemplo logo após você alterar um registro DNS
O endpoint GET retorna um relatório classificado incluindo registros SPF, DMARC, DKIM, MTA-STS, TLS-RPT, BIMI e MX, juntamente com um resumo de erros, avisos e informações O endpoint POST retorna um relatório semelhante com base no texto SPF, DMARC ou DKIM fornecido no corpo da solicitação
Os campos principais incluem "domínio", "grau", "pontuação", "resumo" (com erros, avisos, informações) e registros detalhados para SPF, DMARC e DKIM, que incluem mecanismos, qualificadores e informações de alinhamento
A resposta é estruturada no formato JSON com campos de nível superior para informações de domínio, classificação e um resumo. Cada tipo de registro (SPF, DMARC, DKIM) tem sua própria estrutura aninhada detalhando atributos específicos como mecanismos e políticas
O endpoint GET aceita um parâmetro "domínio" para especificar o domínio a ser verificado O endpoint POST requer pelo menos um dos parâmetros "spf" "dmarc" ou "dkim" no corpo da solicitação para validar os registros respectivos
Os casos de uso típicos incluem verificar as configurações de autenticação de email solucionar problemas de entrega de email e garantir a conformidade com os padrões de segurança de email verificando registros SPF DMARC e DKIM
A precisão dos dados é mantida consultando registros DNS públicos diretamente garantindo que as informações mais atuais sejam recuperadas A API também realiza verificações para problemas comuns e fornece avaliações classificadas com base em padrões estabelecidos
Os usuários podem analisar a "classificação" e "pontuação" para avaliar a eficácia de sua configuração de autenticação de e-mail A seção de "resumo" ajuda a identificar áreas que precisam de melhorias enquanto registros detalhados fornecem insights para configurações específicas
Os usuários podem esperar uma estrutura consistente nas respostas com notas geralmente variando de A a F Padrões comuns incluem múltiplos avisos para configurações incorretas em registros SPF ou DMARC e a presença de problemas de alinhamento nas configurações DKIM