Erstellen Sie Integrationen für Skysnag mit API-Token mit eingeschränkten Berechtigungen.
Authentifizieren mit X-Api-Token Header — keine Bearer-Authentifizierung. Alle Antworten sind JSON mit vorhersehbaren Fehlerstrukturen.
Drei Schritte zu Ihrer ersten authentifizierten Anfrage.
API-Zugriff anfordern — Einreichen von API-Zugriffsanfragen. Ein Administrator aktiviert den API-Zugriff für Ihr Konto.
Bereichs-Token erstellen — Öffnen Sie API-Token, wählen Sie die Zugriffsbereiche aus und kopieren Sie das vollständige Token sofort (wird nur einmal angezeigt).
Fügen Sie ein Token ein, um die Jetzt ausprobieren-Konsole für die Abrufen-Endpunkte unten zu aktivieren (nur Lesezugriff). Anfragen werden gegen Ihr Live-Konto an https://developers.skysnag.com/api/v1 ausgeführt. Das Token wird nur in diesem Browser (localStorage) gespeichert und nirgendwohin außer an diese API gesendet.
Kein Schlüssel gesetzt
Basis-URL und Header
Alle v1-Pfade sind relativ zur unten angegebenen Basis-URL.
https://developers.skysnag.com/api/v1
https://api.skysnag.com/v1
Header
Wert
Notizen
Akzeptieren
application/json
Immer
Inhaltstyp
application/json
beim Senden eines Bodys
X-Api-Token
Ihr API-Token
Geschützte Endpunkte
X-Request-Id
UUID (optional)
Protokolle korrelieren; in Fehlermeldungen wiedergegeben
Antworten
Success payloads are wrapped in a data envelope.
JSON — Erfolgs-Envelope
{
"data": { ... }
}
JSON — GET /health
{
"data": {
"status": "ok",
"version": "v1"
}
}
Fehler
Errors return a stable code, human message, and request_id for support.
Each token is limited to 60 requests per minute by default.
Wenn das Limit überschritten wird, gibt die API HTTP 429 zurück. Implementieren Sie ein exponentielles Backoff. Kontaktieren Sie den Support, um höhere Limits zu erhalten.
Berechtigungen
Tokens werden mit zugewiesenen Scopes versehen. Endpunkte lehnen Anfragen ab, wenn der erforderliche Scope fehlt.
API v1 scopes
Geltungsbereich
Beschreibung
account:read
Read account and token metadata
me:read
Read current user profile, permissions, domains, and security
me:write
Update current user profile
users:read
List account users and domain access
users:write
Create, update, and delete account users
tokens:read
List active API tokens
tokens:write
Create and revoke API tokens
domains:read
List and read domains
domains:write
Create, update, and delete domains
Legacy scopes
Gültig für vorhandene Tokens älterer Integrationen. Nicht erforderlich für neue v1-Authentifizierungsendpunkte.
Geltungsbereich
Beschreibung
email-trust:read
Read DMARC/SPF/BIMI trust data
reports:read
Read aggregate and compliance reports
integrations:read
Read integration settings
integrations:write
Manage integrations
API-Referenz
Dokumentation der Endpunkte für die aktuelle v1-Oberfläche.
Systemprüfung
GET/health
Öffentliche Statusprüfung. Keine Authentifizierung erforderlich.
Teammitglieder des Kontos verwalten. Erfordert, dass das authentifizierte Konto Teambesitzer ist. Schemata: users, roles, teams, domain_accesses, password_securities, webauthn_credentials, user_detail_changes_history.
GET/rolesusers:read
Liste der Rollen, die beim Einladen oder Aktualisieren von Teammitgliedern zugewiesen werden können. Inhaber, Administrator und Editor sind ausgeschlossen.
GET/roles/{role_id}users:read
Details für eine einzelne zuweisbare Rolle abrufen.
GET/usersusers:read
Kontobenutzer des aktuellen Teams auflisten.
POST/usersusers:write
Erstelle eine Einladung für ein Kontomitglied. Standardmäßig wird eine Einladungs-E-Mail versendet.
Ruft das zuletzt von check-dns gespeicherte DNS-Abruf-Ergebnis ab (zwischengespeichert für 7 Tage). Der Antwortkörper von check-dns enthält bereits das vollständige Ergebnis; verwenden Sie diesen Endpunkt, um es später abzurufen, ohne die Prüfung erneut auszuführen.
Domain aus der Gruppe entfernen (die Domain wird keiner Gruppe mehr zugeordnet)
Gehostete DMARC-API
Verwalten Sie von Skysnag gehostete DMARC-DNS-Einträge, die Durchsetzungsrichtlinie, den Verlauf und Empfehlungen für eine Domain. Für Schreibvorgänge ist ein Team-Inhaber erforderlich.
GET/domains/{domain_id}/hosted-dmarcdomains:read
Gibt den Namen des gehosteten Datensatzes, den Wert, den Aktivierungsstatus und die aktuelle Richtlinie zurück.
Vorgeschlagenes Durchsetzungsniveau basierend auf den Übereinstimmungsstatistiken und dem Überwachungszeitraum.
Gehostete SPF-API
Verwalten Sie von Skysnag gehostete SPF‑Einträge, Include‑Einträge, IP‑Autorisierungsaktionen und SPF‑Flattening für eine Domain. Für Schreibvorgänge ist ein Team‑Besitzer erforderlich.
GET/domains/{domain_id}/hosted-spfdomains:read
Gibt den gehosteten SPF-Datensatz (Name/Wert), den auf Ihrer Domain zu veröffentlichenden Eintrag, den Aktivierungsstatus, den terminalen all-Qualifier und die Anzahl der Abfragen zurück.
POST/domains/{domain_id}/hosted-spfdomains:write
Richten Sie den von Skysnag gehosteten SPF-Eintrag für die Domain ein.
IP autorisieren oder blockieren. Body: {"ip": "203.0.113.10", "type": "Allow"} (type = Allow oder Reject).
POST/domains/{domain_id}/spf/flattendomains:read
Generiert einen abgeflachten SPF-Eintrag, indem Include‑Anweisungen in IP‑Bereiche aufgelöst werden. Gibt den abgeflachten Eintrag, die IPv4-/IPv6-Listen sowie die Anzahl der DNS‑Abfragen im Vergleich zum Limit zurück.
BIMI/VMC-API
BIMI-Einträge, SVG-Logos, VMC-Zertifikate und Bereitschaftsprüfungen verwalten. Für Schreibvorgänge ist ein Teaminhaber erforderlich.
GET/bimi/registrationsaccount:read
Partner-BIMI-Registrierungsanfragen für das Account-Team auflisten.
GET/domains/{domain_id}/bimidomains:read
Gibt BIMI-Datensatzdetails, DNS-Ziele, Logo-/VMC-Status und Ergebnisse der SVG-Überprüfung zurück.
POST/domains/{domain_id}/bimidomains:write
Hosted-BIMI für die Domain bereitstellen.
PATCH/domains/{domain_id}/bimidomains:write
BIMI neu synchronisieren oder bearbeiten. Veröffentlicht erneut anhand der hochgeladenen Dateien oder übergeben Sie record_value für eine manuelle Überschreibung.
DELETE/domains/{domain_id}/bimidomains:write
BIMI-Konfiguration, gehostete Dateien und Route53-Eintrag löschen.
Führen Sie die MTA-STS- und TLS-RPT-Validierung über den Prüfdienst durch. Optionaler Body: verify_dns, require_caa, deploy_policy (Standard: true bei DNS-Verifizierung).
TLS-RPT-API
Gehostetes TLS-RPT konfigurieren und empfangene TLS-Berichte abfragen. Für Schreibvorgänge ist ein Teaminhaber erforderlich.
GET/domains/{domain_id}/tls-rptdomains:read
Gibt TLS-RPT-Konfiguration, DNS-Ziele, Verifizierungsstatus und Gesamtzahl der Berichte zurück.
Paginierte Zeilen mit TLS-Fehlern (Fehleranzahl ungleich 0 oder Codes für Fehlerursachen)
Domain-Gesundheits- und Sicherheits-Score-API
Read-only domain health, email security score, mail volume, sending services, failing sources, and cached dashboard data. All endpoints are scoped to {domain_id} and require domains:read. Volume/source endpoints accept optional start_date/end_date (YYYY-MM-DD, default last 30 days).
Domain-Gesundheitsstatus abrufen
get/domains/{domain_id}/healthdomains:read
Aktueller Domain-Gesundheitsüberblick: eine pro Protokoll dargestellte Pass/Fail-Übersicht, ein qualitatives result-Label, der erkannte Mailanbieter und der aktuelle DMARC-Eintrag. Bezogen auf den neuesten Domain Guard-Scan; falls kein Scan vorliegt, greift die Live-Verifikation (das Feld source gibt Auskunft).
Rücksendungen
source (guard_history | live), result, mail_provider, eine protocols-Map mit booleschen Werten, protocols_passing/total_protocols, das dmarc_record und scanned_at.
Paginierter Verlauf der Domain Guard-Status-Snapshots, neueste zuerst. Jede Zeile erfasst den Bestanden/Nicht bestanden-Status des Protokolls und das Ergebnislabel zum Zeitpunkt des Scans, sodass Sie den Schutz im Zeitverlauf darstellen können.
Abfrageparameter
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
page:
OPTIONALinteger
Seitennummer, 1-basiert (Standard: 1).
limit:
OPTIONALinteger
Einträge pro Seite (1–100, Standard 25).
Rücksendungen
Ein paginiertes Array von Snapshot-Zeilen (id, result, mail_provider, die Map protocols, protocols_passing/total_protocols, scanned_at) sowie pagination.
Die aktuelle E-Mail-Sicherheitsbewertung (0–10) mit einer menschenlesbaren Interpretation und Meldung. Wird bei Bedarf aus zwischengespeicherten Ergebnissen externer Prüfer berechnet, daher kann der erste Aufruf nach einem Cache-Miss langsamer sein. Gibt 503score_unavailable zurück, wenn sie nicht berechnet werden kann.
Rücksendungen
score, max_score (10), interpretation (z. B. excellent), eine message und computed_at.
Eine abgeleitete Sicherheits-Score-Reihe, berechnet aus Domain Guard-Snapshots, wobei derived_score = passing protocols / 5 × 10. Verwenden Sie diese für eine Trendlinie, wenn Sie die vollständige live-checker-Bewertung nicht benötigen.
Abfrageparameter
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
Täglicher Verlauf des E-Mail‑Volumens, abgeleitet aus DMARC‑Aggregatdaten: Anzahl zugestellter / in Quarantäne befindlicher / abgelehnter Nachrichten sowie tägliche DMARC‑Ergebnisse (Bestanden/Nicht bestanden) und zusammengefasste Gesamtsummen für den gesamten Zeitraum.
Abfrageparameter
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
Rücksendungen
Ein totals-Objekt und ein timeline-Array, wobei jeder Eintrag durch date indiziert ist und Volumen sowie Anzahlen für bestanden/nicht bestanden enthält.
Senden von Quellen mit Volumen, DMARC-Metriken, einem compliance-Prozentsatz und einem status von compliant, partial oder failing. Das is_registered_threat-Flag markiert Quellen, die als bösartig bekannt sind.
Abfrageparameter
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
Quellen, die in diesem Zeitraum die DMARC-Ausrichtung nicht erfüllt haben, nach Anzahl der Fehler sortiert. Dies sind die vorrangigsten Quellen zur Untersuchung — entweder legitime Absender, deren Authentifizierung behoben werden muss, oder Fälscher.
Abfrageparameter
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
Gibt die vorab berechnete Dashboard-Snapshot-Payload für die Domain zurück, falls eine vorhanden ist. Dies ist der schnellste Weg, ein Dashboard darzustellen, ohne Aggregate neu zu berechnen. Wenn kein Snapshot vorhanden ist, ist cachedfalse und datanull.
Abfrageparameter
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
Rücksendungen
cached (boolean), cached_at, das angeforderte Zeitfenster und die Snapshot-data-Payload (oder null).
Read-only DNS connect/disconnect timeline, current records, record-value history, change events, and stored snapshots. All endpoints are scoped to {domain_id} and require domains:read. Filterable by record_type and start_date/end_date (YYYY-MM-DD).
DNS-Zeitleiste abrufen
get/domains/{domain_id}/dns/timelinedomains:read
Eine pro Protokoll-Status-Zusammenfassung (aktueller Status, Zeitstempel der letzten Verbindung/Trennung und Verbindungszahlen) sowie die neuesten Verbindungs-/Trennungs-Ereignisse. Dies ist die Übersichtsansicht, wie sich jeder Protokolleintrag im Laufe der Zeit verbunden und getrennt hat.
Abfrageparameter
record_type:
OPTIONALstring
Filtere Ereignisse nach einem der folgenden: dmarc, spf, mta_sts, tls_rpt, bimi.
action:
OPTIONALstring
Auf connected oder disconnected filtern.
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
Der aktuelle Zustand jedes Protokolleintrags: Verbindungsstatus, Verifizierungs-Flag, Zeitstempel der letzten Verbindung/Trennung und der zuletzt bekannte Eintragswert. SPF meldet zusätzlich seinen DNS-lookup_count (die Grenze von 10 DNS-Lookups ist für die Gültigkeit relevant).
Rücksendungen
Eine protocols-Map, nach Protokoll indiziert, jeweils mit current_status, verified, status, last_connected/last_disconnected und record_value.
Eine einheitliche, paginierte, chronologische Historie der Eintrags-Werte — vereint DMARC- und SPF-Momentaufnahmen, damit Sie genau sehen können, was jeder Eintrag zu jedem Zeitpunkt enthalten hat. SPF-Zeilen enthalten lookup_count.
Abfrageparameter
record_type:
OPTIONALstring
Auf dmarc oder spf beschränken (Standard: beide).
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
page:
OPTIONALinteger
Seitennummer, 1-basiert (Standard: 1).
limit:
OPTIONALinteger
Einträge pro Seite (1–100, Standard 25).
Rücksendungen
Ein paginiertes Array von Verlaufszeilen (record_type, record_value, occurred_at; bei SPF kommt lookup_count hinzu) sowie pagination.
Ein paginierter Feed von Verbindungs-/Trennungs-Änderungsereignissen über alle Protokolle hinweg, mit dem Statusübergang (status_before → status_after). Verwenden Sie dies für einen auditartigen Aktivitätsfeed zur DNS‑Gesundheit.
Abfrageparameter
record_type:
OPTIONALstring
Eines von dmarc, spf, mta_sts, tls_rpt, bimi.
action:
OPTIONALstring
Auf connected oder disconnected filtern.
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
page:
OPTIONALinteger
Seitennummer, 1-basiert (Standard: 1).
limit:
OPTIONALinteger
Einträge pro Seite (1–100, Standard 25).
Rücksendungen
Ein paginiertes Array von Änderungsereignissen (id, record_type, action, record_value, status_before/status_after, occurred_at) sowie pagination.
Die rohen gespeicherten Snapshot-Zeilen, nach Record-Typ gruppiert. Im Gegensatz zu /dns/history (das zusammenführt und paginiert) gibt dies die zugrunde liegenden Snapshot-Arrays dmarc und spf getrennt zurück.
Abfrageparameter
record_type:
OPTIONALstring
Auf dmarc oder spf beschränken (Standard: beide).
start_date:
OPTIONALstring · date
Beginn des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig 30 Tage zurück.
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD). Standardmäßig heute.
Read-only account API audit logs — every mutating API request (POST/PUT/PATCH/DELETE) plus sensitive reads are recorded with method, path, status, IP, token, and timestamp. Scoped to the token owner's account and require the account:read scope.
The audit log object
Jeder Endpunkt in diesem Abschnitt gibt Zeilen dieses Formats zurück. action ist ein stabiler, für Menschen lesbarer Bezeichner für die Operation; request_id entspricht der request_id, die im Antwort-Envelope des ursprünglichen Aufrufs zurückgesendet wurde.
Paginierte Audit-Protokolle für das Konto, neueste zuerst. Kombinieren Sie Filter, um den Feed einzuschränken — z. B. alle fehlgeschlagenen Schreibvorgänge in einem Datumsbereich.
Abfrageparameter
method:
OPTIONALstring
HTTP-Methode, z. B. POST.
action:
OPTIONALstring
Exakte Aktionsbezeichnung, z. B.: domain.hosted_spf.update.
path:
OPTIONALstring
Teilstring-Abgleich im Anfragepfad.
status_code:
OPTIONALinteger
Exakter HTTP-Status, z. B. 200.
status_class:
OPTIONALstring
Statusfamilie: 2xx, 3xx, 4xx, 5xx.
ip_address:
OPTIONALstring
Exakte Client-IP
token_id:
OPTIONALinteger
Auf ein einzelnes API-Token filtern.
q:
OPTIONALstring
Freitextsuche über Aktion, Pfad und IP-Adresse.
start_date:
OPTIONALstring · date
Inklusiver Fensterbeginn (YYYY-MM-DD).
end_date:
OPTIONALstring · date
Ende des inklusiven Zeitfensters (YYYY-MM-DD).
page:
OPTIONALinteger
Seitennummer (Standard: 1).
limit:
OPTIONALinteger
Einträge pro Seite (1–100, Standard 25).
Rücksendungen
Ein paginiertes Array von Audit-Log-Objekten sowie ein pagination-Objekt.
Durchsuche Audit-Protokolle über einen JSON-Body mit denselben Filtern wie beim List-Endpunkt. Verwende dies statt der Abfrage per Query-String, wenn du method als Array übergeben oder lange, strukturierte Abfragen erstellen musst.
Body-Parameter (JSON)
q:
OPTIONALstring
Freitextsuche über Aktion, Pfad und IP-Adresse.
method:
OPTIONALstring | array
Eine einzelne Methode oder ein Array, z. B. ["POST","PATCH","DELETE"].
Ruft einen einzelnen Audit-Log-Eintrag per ID ab, auf das Konto beschränkt. Gibt 404not_found zurück, wenn der Eintrag nicht zum authentifizierten Konto gehört.