Die WebForensik-API liefert alle Scan-Funktionen als JSON — für CI/CD-Pipelines, Monitoring-Systeme und KI-Anwendungen (Schema.org-Format).
/api.php?action=scan&url={url}Startet einen Scan (synchron, Antwort nach 5–60 s). Rate-Limit: 5 Scans/Stunde pro IP. Parameter: force=1 umgeht den 1h-Cache, deep=1 scannt bis zu 3 Unterseiten mit.
Beispiel:
curl 'https://webforensik.de/api.php?action=scan&url=https%3A%2F%2Fexample.com'
Antwort (gekürzt):
{ "url": "…", "final_url": "…", "domain": "example.com", "overall_score": 87, "categories": { "https": {...}, "csp": {...}, … }, "scan_id": 123, "cached": false }
/api.php?action=result&id={id}Liefert ein gespeichertes Scan-Ergebnis. Kein Rate-Limit. HTTP 409, solange der Scan noch läuft.
Beispiel:
curl 'https://webforensik.de/api.php?action=result&id=123'
Antwort (gekürzt):
{ "overall_score": 87, "categories": {…}, "scan_id": 123, "created_at": "2026-06-11 09:00:00" }
/api.php?action=status&id={id}Status eines laufenden Scans (Polling für die Queue). Kein Rate-Limit. status ist pending, running, done oder failed.
Beispiel:
curl 'https://webforensik.de/api.php?action=status&id=123'
Antwort (gekürzt):
{ "scan_id": 123, "status": "done", "score": 87, "error": null }
/api.php?action=recent&limit={n}Die letzten n Scans (max. 50): ID, Domain, Score, Zeitstempel.
Beispiel:
curl 'https://webforensik.de/api.php?action=recent&limit=5'
Antwort (gekürzt):
{ "scans": [ { "id": 123, "domain": "…", "overall_score": 87, "created_at": "…" }, … ], "count": 5 }
/api.php?action=categoriesAlle Analyse-Kategorien mit ihren Scoring-Gewichten.
Beispiel:
curl 'https://webforensik.de/api.php?action=categories'
Antwort (gekürzt):
{ "categories": [ "https", "hsts", "csp", … ], "weights": { "https": 0.12, … } }
…&format=jsonldJede Antwort mit Score lässt sich als Schema.org-Review-Objekt abrufen (Content-Type application/ld+json) — direkt verwertbar für KI-Pipelines und Strukturdaten-Konsumenten. Die Rohdaten stecken in wf:rawScan.
Beispiel:
curl 'https://webforensik.de/api.php?action=result&id=123&format=jsonld'
Antwort (gekürzt):
{ "@context": "https://schema.org", "@type": "Review", "reviewRating": { "ratingValue": 87, "bestRating": 100 }, "itemReviewed": {…}, "wf:rawScan": {…} }