Der EU-Compliance-Scan API.
Senden Sie einen GET-Request mit einer URL und erhalten Sie neun technische Prüfungen für GDPR, NIS2, DORA und EAA als JSON zurück. Jedes CMS, jeder Stack. Kein Schlüssel, keine zu kaufende Quote, kein Konto.
Request senden Im Browser ausprobierenEin Aufruf prüft eine Website
Das ist die gesamte Schnittstelle. Die URL ist der einzige Parameter, und sie funktioniert mit oder ohne Schema.
# One GET request. That is the entire API.
curl "https://eucomply-scan.mahope-eeb.workers.dev/scan?url=webflow.com"
Möchten Sie einen Body senden, oder ist Ihre URL länger, als ein Query-String hergibt? POST nimmt dasselbe url Feld als JSON.
curl -X POST "https://eucomply-scan.mahope-eeb.workers.dev/scan" \
-H "Content-Type: application/json" \
-d '{"url":"https://webflow.com"}'
In Python, mit nichts als der Standardbibliothek:
import json, urllib.parse, urllib.request
API = "https://eucomply-scan.mahope-eeb.workers.dev"
def scan(url):
qs = urllib.parse.urlencode({"url": url})
with urllib.request.urlopen(f"{API}/scan?{qs}") as response:
return json.load(response)
report = scan("webflow.com")
print(report["platform"], report["score"])
for name, check in report["checks"].items():
print(("PASS" if check["pass"] else "FAIL"), name, "-", check["label"])
CORS ist offen, das funktioniert also direkt aus dem Browser — kein Proxy nötig. Geprüft: ein Preflight für GET liefert Access-Control-Allow-Origin: *.
Was zurückkommt
Eine 200 mit einem JSON-Objekt. Jedes Feld am laufenden Dienst gemessen, am 28. September 2026:
| Field | Type | Was es enthält |
|---|---|---|
url | string | Die URL, wie sie nach den Weiterleitungen aufgelöst wurde. |
platform | string | Erkannte Plattform, z. B. Webflow, Shopify, WordPress. |
scannedAt | string | ISO-8601-Zeitstempel des Scans. |
durationMs | number | Wie lange der Scan gedauert hat. |
score | object | passed, total, pct über alle neun Prüfungen. |
checks | object | Neun Einträge, geschlüsselt nach Prüf-ID. Jeder hat pass, warn, label, detail, fix. |
disclaimer | string | Wird mit jeder Antwort mitgesendet. Lassen Sie sie sichtbar — sie ist die Zeile, die verhindert, dass dies als Rechtsberatung gelesen wird. |
Eine fehlgeschlagene Prüfung ist der nützliche Teil, deshalb hier eine wortgetreu zurückgegebene, auf die ersten drei Felder gekürzt:
"consent_mode_v2": {
"pass": false,
"warn": false,
"label": "No Google Consent Mode v2 detected",
"detail": "No Consent Mode v2 signals found. Since March 2024, Google requires Consent Mode v2 for ad personalization in the EEA. Without it, Google Ads conversion tracking may be restricted.",
Ein ehrlicher Unterschied zur CLI
Das JSON score teilt die bestandenen Prüfungen durch alle neun, einschließlich der vier, die nur für manche Websites gelten — Cookies, programmatische Werbung, Google Ads, DORA. Eine Website, die für ihren Typ alles richtig gemacht hat, kann trotzdem eine mittelmäßige Zahl zeigen.
Die CLI ist die Version, die das aufteilt, und sie nennt, welche Prüfungen sie nicht mitgezählt hat und warum. Ist Ihnen die Zahl wichtiger als die JSON-Form, nehmen Sie die CLI. Diese API wird derzeit von einer älteren Version derselben Engine ausgeliefert als die im Repository, sie liefert diese Aufteilung also noch nicht.
Die anderen drei Endpunkte
Alle sind ohne Authentifizierung und CORS-offen, genau wie /scan.
GET/stats
Gibt zurück scans und die zwanzig am häufigsten geprüften Hosts. Unsere eigenen Smoke-Test-Domains stehen nicht auf der Liste.
Lesen Sie das nicht als Nutzerzahl. Der Zähler wird sowohl von unseren automatisierten Testläufen als auch von Besuchern hochgezählt — gemessen am 28. September 2026 kamen rund drei Viertel der Summe aus automatisierten Läufen gegen reservierte IP-Adressen. Das ist eine Lebendprüfung, keine Popularitätsaussage.
POST/subscribe
Speichert eine E-Mail-Adresse für Compliance-Updates. Body: email, optional url, score, source.
Gibt 400 bei einer fehlerhaften Adresse und 422 bei einer Test- oder Wegwerfdomain zurück, sodass Testläufe nie auf der Liste landen.
GET/config
Öffentliche Laufzeitkonfiguration. Die enthaltenen Checkout-URLs sind in der Produktion leer, und das ist Absicht: die Website hat die Vertragslinks fest im Code, und die Zahlungsseiten werden nicht aus einer Worker-Variable gesteuert.
Grenzen und Fehler
Kein Schlüssel, kein Konto und ein Grenzwert, der zählt: 10 requests per minute per IP, serverseitig gezählt.
| Status | Wann Sie ihn bekommen | Body |
|---|---|---|
400 | Kein brauchbarer url Parameter | {"error": "Please provide a valid public http(s) URL, e.g. ?url=example.com"} |
404 | Jeder andere Pfad als die vier oben | {"error": "Not found. Use GET /scan?url=example.com"} |
422 | /subscribe mit einer Testadresse | {"error": "Test address rejected."} |
429 | Mehr als 10 Requests pro Minute von einer IP | {"error": "Rate limit reached. Try again in a few minutes."} |
502 | Die geprüfte Website konnte nicht gelesen werden | {"error": "Scan failed: ..."} |
Ein 502 heißt, dass die abgefragte Website fehlgeschlagen ist, nicht die API. Die Antwort enthält die eigentliche Meldung — lesen Sie sie, bevor Sie es erneut versuchen: Ein Host hinter einer Bot-Sperre scheitert dauerhaft, und mehr Versuche helfen nicht.
Was diese API nicht tut
Sie ist ein einzelner Request für eine einzelne Website in einem einzelnen Moment. Sie speichert keine Historie, läuft nicht nach Zeitplan, sendet keine Webhooks und nimmt keine Zahlung an. Brauchen Sie eines davon, ist das kostenpflichtige Produkt derzeit das WordPress-Plugin: Es prüft Ihre eigene Website einmal täglich, behält die letzten 12 Scans, meldet per E-Mail, wenn eine Prüfung bricht, und erzeugt einen HTML-Bericht, den Sie an einen Kunden schicken können. Überwachtes Hosting ist nicht Teil davon.
Die neun Prüfungen sind technische Signale aus dem ausgelieferten HTML. Die DORA-Prüfung sucht öffentliche Textmarken und ist keine Bewertung von irgendetwas.
Brauchen Sie Historie, Zeitplan und einen Bericht?
Die API oben bleibt kostenlos. Pro ist eine Lizenz für das WordPress-Plugin: tägliche Re-Scans in Ihrem eigenen WordPress, die letzten 12 Scans gespeichert, eine E-Mail, wenn eine Prüfung bricht, und ein HTML-Bericht aus dem letzten Scan. Es schaltet außerdem die editierbaren HTML-Dokumentvorlagen frei.
Pro kaufen — $79/Jahr pro Website →