Offene API

Jeder Site-Check ist auch programmatisch abrufbar. Ein Request, ein vollständiger JSON-Report — offenes CORS, ohne Anmeldung, ohne Tracking. Die geprüften URLs werden nicht geloggt.

Endpoint

GET https://check.leaster.it/api/check?url=<URL>

Alternativ POST /api/check mit JSON-Body { "url": "…" }. Antwort ist in beiden Fällen identisch.

ParameterDefaultBeschreibung
urlPflicht. Die zu prüfende Adresse (mit oder ohne https://).
render10 = ohne Browser-Rendering (schneller, aber ohne Tracker-/JS-/Perf-Signale).
psi10 = ohne PageSpeed-Insights-Abruf.

Beispiel

curl "https://check.leaster.it/api/check?url=example.com&psi=0"
{
  "host": "example.com",
  "finalUrl": "https://example.com/",
  "overallScore": 74,
  "categories": [
    {
      "id": "seo",
      "label": "SEO & Technik",
      "score": 91,
      "results": [
        {
          "id": "seo-title",
          "label": "Title-Tag",
          "status": "pass",
          "severity": "passed",
          "impact": 6,
          "effort": "low",
          "message": "Title vorhanden (28 Zeichen).",
          "why": "…",
          "fix": "…",
          "docUrl": "https://…"
        }
      ]
    }
  ],
  "quickWins": [ /* bis zu 5 wichtigste Sofort-Maßnahmen */ ],
  "meta": { "durationMs": 1631, "rendered": true, "psi": false, "crux": false }
}

Kategorien & Felder

Der Report enthält fünf Kategorien: seo, gaio (KI-Sichtbarkeit), privacy, performance, accessibility. Jeder Befund (results[]) trägt:

  • statuspass · warn · fail · info, plus severity fürs UI.
  • impact (1–10) und effort (low/medium/high) — treiben die quickWins.
  • message, optional evidence, why („warum wichtig"), fix („so beheben") und docUrl.

overallScore ist gewichtet (SEO 27 · GAIO 25 · Performance 22 · Privacy 16 · Accessibility 10). notCheckable: true bedeutet, dass das Ziel per Bot-Schutz blockiert — der Report ist dann nur eingeschränkt aussagekräftig.

Weitere Endpoints

  • POST /api/check/pdf — nimmt einen fertigen Report als JSON-Body und liefert ihn als gebrandetes PDF zurück (kein erneuter Scan).
  • GET /api/config — Feature-Flags des Dienstes (JSON).
  • GET /api/stats — aggregierte Nutzungszahlen des Dienstes (Checks/PDFs pro Tag, Gesamtzähler). Bewusst ohne URLs, IPs oder User-Agents — Transparenz statt Tracking.

Fair Use

Offen und ohne Key nutzbar. Es gilt ein Rate-Limit pro IP (Standard 15 Anfragen/Minute); bei Überschreitung antwortet der Dienst mit 429 und einem Retry-After-Header. Bitte fair einsetzen — der Dienst läuft ohne Werbung und ohne Tracking.