Sicurezza e affidabilità · Prodotto DomScan

API Conformità email

Analizza i record di autenticazione email inclusi SPF, DKIM e DMARC.

Cosa ottieni

Analizza i record di autenticazione email inclusi SPF, DKIM e DMARC.

SincronaRESTMCPSDK

Scegli questo prodotto quando

A chi è rivolto

Usa controlli passivi con limiti definiti per arricchire triage e analisi, non per sostituire test autorizzati o revisione umana.

Scegli questo prodotto quando

Sceglilo per una revisione orientata alle policy dei controlli email pubblici e dei segnali di conformità pubblicati.

Cosa ottieni

Analizza i record di autenticazione email inclusi SPF, DKIM e DMARC.

Endpoint

Esamina le operazioni, gli input, gli output, le modalità di esecuzione e i limiti di risposta supportati prima dell’integrazione.

GET /v1/email/compliance Vedi il riferimento API

Crediti e autenticazione

6 Autenticazione richiesta. Consulta il riferimento dell’operazione per il costo esatto e gli eventuali prezzi per elemento.

Operazione di esempio

Usa operazioni documentate per raccogliere, valutare, arricchire, verificare, confrontare, proteggere o monitorare prove pubbliche.

GET /v1/email/compliance Crediti: 6

Parametri di query

Parametro Tipo obbligatorio
domain string obbligatorio
selectors string facoltativo
providers string facoltativo

Campi della risposta

Campo Tipo
domain string
status string
score integer
grade string
checks_unknown integer
score_confidence string
provider_readiness object
provider_readiness.google object
provider_readiness.google.provider string
provider_readiness.google.display_name string
provider_readiness.google.status string
provider_readiness.google.dns_visible_status string
provider_readiness.google.requirements[] object[]
provider_readiness.google.requirements[] object
provider_readiness.google.requirements[].id string
provider_readiness.google.requirements[].label string
provider_readiness.google.requirements[].status string
provider_readiness.google.requirements[].severity string
provider_readiness.google.requirements[].category string
provider_readiness.google.requirements[].evidence string
provider_readiness.google.requirements[].recommendation string
provider_readiness.google.verification_required[] string[]
provider_readiness.google.notes[] string[]
provider_readiness.microsoft object
provider_readiness.microsoft.provider string
provider_readiness.microsoft.display_name string
provider_readiness.microsoft.status string
provider_readiness.microsoft.dns_visible_status string
provider_readiness.microsoft.requirements[] object[]
provider_readiness.microsoft.requirements[] object
provider_readiness.microsoft.requirements[].id string
provider_readiness.microsoft.requirements[].label string
provider_readiness.microsoft.requirements[].status string
provider_readiness.microsoft.requirements[].severity string
provider_readiness.microsoft.requirements[].category string
provider_readiness.microsoft.requirements[].evidence string
provider_readiness.microsoft.requirements[].recommendation string
provider_readiness.microsoft.verification_required[] string[]
provider_readiness.microsoft.notes[] string[]
summary object
summary.authentication object
summary.transport object
summary.dns_security object
summary.brand_trust object
action_items[] object[]
action_items[] object
action_items[].priority string
action_items[].category string
action_items[].title string
action_items[].detail string
action_items[].fix string
evidence object
evidence.email_auth object
evidence.dns_security object
proxy object
proxy.configured boolean
proxy.enriched boolean
proxy.checks[] string[]
limitations[] string[]
checked_at string
check_duration_ms integer

Richiesta di esempio

curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/email/compliance?domain=example.com&selectors=google%2Cselector1%2Csendgrid&providers=google%2Cmicrosoft"
const response = await fetch("https://domscan.net/v1/email/compliance?domain=example.com&selectors=google%2Cselector1%2Csendgrid&providers=google%2Cmicrosoft", {
  headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);
import os
import requests

response = requests.get(
    "https://domscan.net/v1/email/compliance?domain=example.com&selectors=google%2Cselector1%2Csendgrid&providers=google%2Cmicrosoft",
    headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/email/compliance?domain=example.com&selectors=google%2Cselector1%2Csendgrid&providers=google%2Cmicrosoft", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	data, err := io.ReadAll(resp.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Status, string(data))
}
require "json"
require "net/http"

uri = URI("https://domscan.net/v1/email/compliance?domain=example.com&selectors=google%2Cselector1%2Csendgrid&providers=google%2Cmicrosoft")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))

Risposta di esempio

{
  "domain": "example.com",
  "status": "warn",
  "score": 82,
  "grade": "B",
  "provider_readiness": {
    "google": {
      "provider": "google",
      "display_name": "Google/Gmail bulk sender readiness",
      "status": "pass",
      "dns_visible_status": "pass",
      "requirements": [
        {
          "id": "google_spf",
          "label": "SPF must be configured for bulk senders",
          "status": "pass",
          "severity": "critical",
          "category": "dns",
          "evidence": "SPF policy: softfail",
          "recommendation": "Publish one valid SPF record that covers every approved sending platform."
        },
        {
          "id": "google_alignment",
          "label": "From domain must align with either SPF or DKIM on live messages",
          "status": "unknown",
          "severity": "high",
          "category": "message",
          "evidence": "Alignment requires Authentication-Results from a real sent message",
          "recommendation": "Send a test message and verify SPF or DKIM alignment."
        }
      ],
      "verification_required": [
        "From domain must align with either SPF or DKIM on live messages",
        "Outbound mail must be transmitted over TLS"
      ],
      "notes": [
        "Status is based on DNS-visible controls. Live sending requirements still need message-header and sender-platform verification."
      ]
    },
    "microsoft": {
      "provider": "microsoft",
      "display_name": "Microsoft Outlook.com high-volume sender readiness",
      "status": "pass",
      "dns_visible_status": "pass",
      "requirements": [],
      "verification_required": [
        "DMARC must align with either SPF or DKIM"
      ],
      "notes": [
        "Status is based on DNS-visible controls. Live sending requirements still need message-header and sender-platform verification."
      ]
    }
  },
  "summary": {
    "authentication": {
      "spf": {
        "status": "pass",
        "record": "v=spf1 include:_spf.example.com ~all",
        "policy": "softfail",
        "lookup_count": 3,
        "lookup_limit_exceeded": false
      },
      "dkim": {
        "status": "pass",
        "selectors_checked": [
          "google",
          "selector1",
          "sendgrid"
        ],
        "selectors_found": [
          "google"
        ],
        "valid_selector_count": 1,
        "weak_selector_count": 0,
        "revoked_selector_count": 0,
        "providers_detected": [
          "Google Workspace"
        ]
      },
      "dmarc": {
        "status": "warn",
        "record": "v=DMARC1; p=none; rua=mailto:[email protected]",
        "policy": "none",
        "subdomain_policy": null,
        "percentage": 100,
        "rua": [
          "mailto:[email protected]"
        ],
        "alignment_mode": {
          "spf": null,
          "dkim": null
        }
      }
    },
    "transport": {
      "mta_sts": {
        "status": "pass",
        "mode": "enforce",
        "policy_fetch_ok": true,
        "policy_matches_mx": true
      },
      "tls_rpt": {
        "status": "pass",
        "rua": [
          "mailto:[email protected]"
        ]
      },
      "mx_records": [
        "aspmx.l.google.com"
      ],
      "client_access_secure_services": 1
    },
    "dns_security": {
      "dnssec": "pass",
      "caa": "pass",
      "zone_transfer": "pass",
      "authoritative_consistency": "pass",
      "blacklist": "pass"
    },
    "brand_trust": {
      "bimi": "unknown",
      "vmc": "unknown"
    }
  },
  "action_items": [
    {
      "priority": "medium",
      "category": "authentication",
      "title": "Move DMARC beyond monitoring mode",
      "detail": "DMARC is valid but still uses p=none.",
      "fix": "After reviewing aggregate reports, move to p=quarantine or p=reject."
    }
  ],
  "evidence": {
    "email_auth": {
      "spf": {
        "record": "v=spf1 include:_spf.example.com ~all"
      },
      "dmarc": {
        "record": "v=DMARC1; p=none; rua=mailto:[email protected]"
      }
    },
    "dns_security": {
      "security_score": 86,
      "security_grade": "B"
    }
  },
  "proxy": {
    "configured": true,
    "enriched": true,
    "checks": [
      "spf_walk",
      "mail_policies",
      "dkim_audit",
      "bimi_audit"
    ]
  },
  "limitations": [
    "DNS-visible checks cannot prove live message-level SPF, DKIM, DMARC alignment, RFC 5322 formatting, spam rate, or one-click unsubscribe behavior."
  ],
  "checked_at": "2026-04-26T12:00:00Z",
  "check_duration_ms": 642
}

Codici di stato HTTP

  • 200 OK
  • 400 Richiesta non valida
  • 401 Non autorizzato
  • 402 Pagamento richiesto
  • 429 Troppe richieste

Domande frequenti

Dove posso trovare il riferimento di richiesta e risposta di Conformità email?

Usa il riferimento API di Conformità email per esaminare parametri, campi di risposta, esempi, codici di stato e modalità operative supportate.

Come devo interpretare i risultati sconosciuti o incompleti di Conformità email?

I risultati sconosciuti o parziali indicano che le prove richieste non hanno potuto essere determinate completamente. Conserva stato del risultato, confidenza, aggiornamento e limiti nelle decisioni successive.

Come viene tariffato Conformità email?

Il prezzo dipende dall’operazione e dalla modalità di esecuzione. Consulta il riferimento dell’endpoint per il costo attuale in crediti, il requisito di autenticazione e le regole per elemento.

Usato da persone di queste aziende

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse