E-Mail-Prüfungen und Domain Intelligence nutzen dasselbe Credit-Guthaben. So funktionieren Credits

Kostenlos starten

MX-Lookup-API

Rufen Sie MX-Einträge und Maildaten einer Domain per API ab.

Rufen Sie MX-Einträge, Mailweg und Anbieter für eine Domain ab. Das JSON-Profil enthält auch SPF/DMARC, bekannte Domain-Signale sowie IP-Adressen und ASN. variant=extended ergänzt Registrierungsdaten aus der Registry.

Die JSON-Antwort erhält Status, Quelle und Aktualität jeder Beobachtung. Domain Intelligence öffnet keine SMTP-Sitzung, prüft kein Postfach und authentifiziert keine Nachricht.

GET für eine Domain · Strukturiertes JSON · Idempotency-Key erforderlich · Gemeinsame Credits

Eine Domain aus Ihrem Backend abfragen

Der Endpunkt ist GET /v1/domain/{domain}. Senden Sie die Domain im Pfad, den API-Zugang in Authorization: Bearer und einen obligatorischen Idempotency-Key. Der Zugang bleibt auf Ihrem Server. Die Anfrage hat keinen Body. Der optionale Query-Parameter variant akzeptiert standard als Standardwert oder extended.

curl -sS https://api.emvero.tech/v1/domain/example.com \
  -H "Authorization: Bearer emv_your_credential" \
  -H "Idempotency-Key: 3f0c9a52-6d1e-4b8e-a7f4-2c51d0e9b6aa"

example.com und die Werte der Dokumentation sind synthetisch. Geben Sie eine Domain an, keine E-Mail-Adresse, URL oder IP-Adresse. Jede Anfrage prüft eine Domain; eine Subdomain wird als eigene Domain abgefragt.

Für Registrierungsdaten ergänzen Sie ?variant=extended. Verwenden Sie für diesen separaten Vorgang einen neuen Key:

curl -sS "https://api.emvero.tech/v1/domain/example.com?variant=extended" \
  -H "Authorization: Bearer emv_your_credential" \
  -H "Idempotency-Key: 8c1d2e7a-4b9f-4f0e-9a3c-61e5d2b7c904"
Vollständige JSON-Antwort ansehen · Erweitert

Synthetisches Beispiel. Standard liefert registration: null und billing.variant: standard. Dieses Beispiel enthält Registrierungsdaten und kostet als neue vollständige erweiterte Abfrage 2 Credits.

{
  "schema_version": "1",
  "operation_id": "45eb36a9-b4e6-48ac-94a9-0ad145b6cf98",
  "domain": "example.com",
  "ascii_domain": "example.com",
  "status": "complete",
  "generated_at": "2026-10-02T10:00:00Z",
  "mail_routing": {
    "status": "routable",
    "method": "mx",
    "issues": [],
    "meta": {
      "status": "ok",
      "reason": null,
      "source": "dns",
      "source_version": null,
      "observed_at": "2026-10-02T10:00:00Z",
      "expires_at": "2026-10-02T10:05:00Z",
      "stale": false
    }
  },
  "mx": {
    "records": [
      {
        "host": "mx.example.com",
        "priority": 10,
        "provider_id": null
      }
    ],
    "provider_id": null,
    "provider_match": "unknown",
    "truncated": false,
    "meta": {
      "status": "ok",
      "reason": null,
      "source": "dns",
      "source_version": "catalog:17",
      "observed_at": "2026-10-02T10:00:00Z",
      "expires_at": "2026-10-02T10:05:00Z",
      "stale": false
    }
  },
  "email": {
    "classification": {
      "disposable": false,
      "public_provider": false,
      "meta": {
        "status": "ok",
        "reason": null,
        "source": "dataset",
        "source_version": "bundle:example-v1",
        "observed_at": null,
        "expires_at": null,
        "stale": false
      }
    },
    "catch_all": {
      "state": "unknown",
      "provider_id": null,
      "meta": {
        "status": "unknown",
        "reason": "not_observed",
        "source": null,
        "source_version": null,
        "observed_at": null,
        "expires_at": null,
        "stale": false
      }
    }
  },
  "email_authentication": {
    "spf": {
      "present": true,
      "syntax": "valid",
      "record": "v=spf1 -all",
      "all_qualifier": "fail",
      "includes": [],
      "redirect": null,
      "evaluation": "not_performed",
      "issues": [],
      "meta": {
        "status": "ok",
        "reason": null,
        "source": "dns",
        "source_version": "spf-syntax:1",
        "observed_at": "2026-10-02T10:00:00Z",
        "expires_at": "2026-10-02T10:05:00Z",
        "stale": false
      }
    },
    "dmarc": {
      "present": true,
      "syntax": "valid",
      "record": "v=DMARC1; p=reject",
      "policy_domain": "example.com",
      "inherited": false,
      "published_policy": "reject",
      "effective_policy": "reject",
      "testing": false,
      "adkim": "r",
      "aspf": "r",
      "evaluation": "not_performed",
      "issues": [],
      "meta": {
        "status": "ok",
        "reason": null,
        "source": "dns",
        "source_version": "dmarc-rfc9989:1",
        "observed_at": "2026-10-02T10:00:00Z",
        "expires_at": "2026-10-02T10:05:00Z",
        "stale": false
      }
    }
  },
  "network": {
    "mail": [
      {
        "host": "mx.example.com",
        "priority": 10,
        "addresses": [
          {
            "ip": "198.51.100.25",
            "asn": 64500
          },
          {
            "ip": "203.0.113.25",
            "asn": 64511
          },
          {
            "ip": "2001:db8::25",
            "asn": 64500
          }
        ]
      }
    ],
    "web": {
      "host": "example.com",
      "cname_chain": [],
      "addresses": [
        {
          "ip": "198.51.100.80",
          "asn": 64500
        },
        {
          "ip": "2001:db8::80",
          "asn": 64500
        }
      ],
      "truncated": false,
      "edge_provider": null,
      "meta": {
        "status": "ok",
        "reason": null,
        "source": "dns",
        "source_version": null,
        "observed_at": "2026-10-02T10:00:00Z",
        "expires_at": "2026-10-02T10:05:00Z",
        "stale": false
      }
    },
    "autonomous_systems": [
      {
        "asn": 64500,
        "handle": "EXAMPLE-ISP",
        "name": "Example Access",
        "country": "DE",
        "type": "isp"
      },
      {
        "asn": 64511,
        "handle": null,
        "name": null,
        "country": null,
        "type": "unknown"
      }
    ],
    "meta": {
      "status": "ok",
      "reason": null,
      "source": "dataset",
      "source_version": "example-routing-dataset",
      "observed_at": "2026-10-02T00:35:16Z",
      "expires_at": null,
      "stale": false
    }
  },
  "registration": {
    "registered_domain": "example.com",
    "registered_at": "2020-10-02T10:00:00Z",
    "age_days": 2191,
    "expires_at": "2027-10-02T10:00:00Z",
    "registrar": "Example Registrar",
    "statuses": [
      "client transfer prohibited"
    ],
    "meta": {
      "status": "ok",
      "reason": null,
      "source": "registry",
      "source_version": "rdap.example.com",
      "observed_at": "2026-10-02T10:00:00Z",
      "expires_at": "2026-11-01T10:00:00Z",
      "stale": false
    }
  },
  "billing": {
    "product": "domain-intelligence",
    "variant": "extended",
    "operation_credits": 2
  }
}

Mailweg, MX und Providerzuordnung lesen

mail_routing.status beschreibt den Mailweg der Domain. mx.records enthält empfangende Hosts und Prioritäten. Ein Mailweg belegt keine Annahme eines bestimmten Empfängers. Das MX-Glossar erklärt den DNS-Eintrag.

mx.provider_match ist matched, mixed, unknown oder not_applicable. Stimmen die bevorzugten Hosts überein, erkennt die Zuordnung den sichtbaren Eingangsbetreiber. Das kann ein Filtergateway vor dem Postfachhost sein. mx.truncated zeigt, dass die Liste gekürzt wurde. Der Artikel zum Ermitteln des E-Mail-Anbieters erklärt die Grenzen dieser Zuordnung.

email.classification enthält bekannte Wegwerf- und öffentliche Provider-Signale. Eine negative Einordnung bedeutet keinen Listentreffer, keinen Beweis für das Gegenteil. email.catch_all.state meldet den bereits vorhandenen Zustand der Domain; diese Abfrage erhebt ihn nicht durch eine neue SMTP-Probe.

email_authentication enthält unterstützte Veröffentlichungsdaten für SPF und DMARC. evaluation lautet not_performed. Die API testet weder Nachricht noch Absender, sucht keine DKIM-Schlüssel und folgt keinen SPF-Includes zur rekursiven Auswertung. Absenderreputation und Domain-Inhaberschaft gehören nicht zum Profil.

Netz- und Registrierungsfelder lesen

network.mail gruppiert öffentliche IP-Adressen und deren asn nach Mailhost. network.web enthält angefragten Host, cname_chain, Adressen, truncated und edge_provider. Die Abfrage ergänzt kein www. und prüft keine HTTP-Erreichbarkeit. Ein CDN oder Proxy kann den Ursprungsserver verdecken.

network.autonomous_systems beschreibt jede ASN mit handle, name, country und type. Das Land ist das Registrierungsland des Netzes, keine IP-Geolokalisierung. Unbekannte Angaben bleiben null oder unknown. Netzfehler ändern weder Gesamtstatus noch Preis. Prüfen Sie network.meta und network.web.meta separat.

Mit variant=extended enthält registration die Felder registered_domain, registered_at, age_days, expires_at, registrar, statuses und meta. Bei Subdomains gelten die Registry-Daten für die registrierbare übergeordnete Domain. Ohne Registrierungsdatum ist Erweitert unvollständig; registration.meta.reason erklärt fehlende oder nicht unterstützte Angaben. Standard liefert registration: null. Das Registrierungsalter belegt weder Firmenalter noch Inhaberschaft.

Gesamtstatus mit Feldmetadaten verwenden

Der Profilstatus ist complete oder partial. meta an jedem Teil enthält Status, Grund, Quelle, Beobachtungs- und Ablaufzeiten sowie die Kennzeichnung veralteter Werte. meta.reason erklärt, warum ein Wert nicht ermittelt werden konnte. Ersetzen Sie die ursprüngliche Beobachtungszeit nicht durch den Abrufzeitpunkt.

Ein partial-Profil kann einen brauchbaren Mailweg haben, während eine ergänzende Angabe fehlt, veraltet oder gekürzt ist. Eine unknown-Providerzuordnung oder ein nicht beobachteter Catch-all-Zustand macht das Gesamtprofil allein nicht unvollständig. complete beschreibt den Umfang der Abfrage, kein positives Domain-Urteil.

Fällt die Routingquelle aus, kann der Endpunkt 503 source_unavailable zurückgeben, statt einen fehlenden Mailweg zu vermuten. Behandeln Sie Anfragefehler getrennt von den Domain-Beobachtungen Ihrer Anwendung.

Denselben Vorgang mit demselben Schlüssel wiederholen

Innerhalb von 24 Stunden nach Abschluss liefern derselbe Key, dieselbe Domain und dieselbe Variante die gespeicherte Antwort unverändert zurück. Beobachtungen werden dabei nicht aktualisiert. Ein anderer Domain- oder Variantenwert mit demselben Key führt zu 409 idempotency_conflict. Läuft die erste Anfrage noch, warten Sie das angegebene Intervall ab und wiederholen dieselbe Anfrage mit demselben Key.

Eine vollständige standard-Abfrage kostet 1 Credit, extended 2. Ist nur der Standard-Teil vollständig und das Registrierungsdatum nicht verfügbar, kostet extended 1 Credit. Andere unvollständige Ergebnisse, gespeicherte Wiederholungen und bestätigte Ablehnungen kosten 0. Netzdaten ändern den Preis nicht. Bei einer Wiederholung bleibt billing.operation_credits erhalten; X-Credits-Charged beschreibt die aktuelle Anfrage.

Bei commit_unknown oder accounting_uncertain kann die Belastung bereits erfolgt sein. Die Antwort lässt X-Credits-Charged weg; ein fehlender Header belegt keinen Nullbetrag. Wiederholen Sie denselben Key, damit der Aufruf denselben Vorgang erreicht. Ein neuer Key beginnt neue Arbeit.

Den passenden Domain-Ablauf wählen

Die Seite zu Domain Intelligence im Konto erklärt die Abfrage ohne Programmierung. Wenn Sie nur wissen möchten, ob eine Domain Mail empfangen kann, gibt der kostenlose E-Mail-Domain-Checker ohne Konto eine engere Antwort.

Anfrageprüfung, vollständiges Schema und Fehlerbehandlung stehen im Leitfaden zur Domain Intelligence API. Keiner der beiden Domain-Abläufe prüft ein bestimmtes Postfach oder versendet eine E-Mail.

Fragen

Häufig gefragt.

Welche Domain-Felder liefert die API?

Das Profil enthält Mailweg, MX-Hosts und Prioritäten, Anbieterzuordnung, Wegwerf- und öffentliche Provider-Signale, vorhandenen Catch-all-Zustand, SPF/DMARC, Mail- und Website-IP-Adressen, CNAMEs, erkannte CDN-/Proxy-Anbieter und autonome Systeme. Erweitert ergänzt Registrierungsdaten. Quelle und Status bleiben je Beobachtung erhalten.

Belegt ein vorhandener Mailweg ein Postfach?

Nein. Der Mailweg beschreibt die Domain. Die Abfrage führt keine SMTP-Probe durch und belegt weder ein bestimmtes Postfach noch dessen Inhaberschaft oder künftige Zustellung im Posteingang.

Prüft die Abfrage, ob ein Absender SPF oder DMARC besteht?

Sie liest veröffentlichte Einträge und unterstützte Syntax- oder Richtlinienfelder. evaluation lautet not_performed. Sie wertet keine Nachricht aus, sucht keine DKIM-Schlüssel und folgt SPF-Includes nicht rekursiv.

Kann ich ein unvollständiges Profil nutzen?

Prüfen Sie Status und Metadaten des benötigten Teils. Ein partial-Ergebnis kann einen bekannten Mailweg enthalten, obwohl eine andere Beobachtung fehlt oder veraltet ist. Ein unbekannter Catch-all-Zustand allein macht das Gesamtprofil nicht zwingend unvollständig.

Was kosten vollständige Abfragen und Wiederholungen?

Eine vollständige standard-Abfrage kostet 1 Credit, extended 2. Ist nur der Standard-Teil vollständig und das Registrierungsdatum nicht verfügbar, kostet extended 1 Credit. Andere unvollständige Ergebnisse, gespeicherte Wiederholungen und bestätigte Ablehnungen kosten 0. Netzdaten ändern den Preis nicht. Bei einer Wiederholung bleibt billing.operation_credits erhalten; X-Credits-Charged beschreibt die aktuelle Anfrage. Bei commit_unknown oder accounting_uncertain ist die Belastung ungewiss und dieser Header fehlt. Wiederholen Sie denselben Key.

Domain-Abfrage anbinden

Nutzen Sie das Profil im Backend oder prüfen Sie es im Konto.

Bestätigen Sie ein neues Konto für 1.000 gemeinsame Credits ohne Karte. Standard kostet vollständig 1 Credit, Erweitert 2. Wird nur der Standard-Teil abgeschlossen, kostet Erweitert 1 Credit.