ZeroFlaw

Dokumentation

API & CI/CD

Überblick

Mit der ZeroFlaw-API kannst du Scans automatisch aus deiner Entwicklungsumgebung starten – zum Beispiel bei jedem Push, in GitHub Actions, GitLab CI oder Jenkins. So stellst du sicher, dass Sicherheitsprüfungen Teil deines Workflows werden.

API-Schlüssel erstellen

  1. Gehe im Dashboard zu „API & Integration".
  2. Klicke auf „Neuen Schlüssel erstellen".
  3. Gib dem Schlüssel einen Namen (z. B. „GitHub Actions").
  4. Kopiere den Schlüssel sofort – er wird nur einmal angezeigt!
Sicherheit Teile deinen API-Schlüssel niemals öffentlich. Speichere ihn als Secret in deinem CI-System (z. B. GitHub Secrets).

Scan starten (REST API)

Sende eine POST-Anfrage mit deinem Code als ZIP-Datei:

curl -X POST https://zeroflaw.net/api/v1/scans \
  -H "Authorization: Bearer DEIN_API_KEY" \
  -F "file=@projekt.zip"

Die Antwort enthält die Scan-ID:

{
  "id": 42,
  "status": "queued",
  "kind": "code"
}

Scan-Status abfragen

curl https://zeroflaw.net/api/v1/scans/42 \
  -H "Authorization: Bearer DEIN_API_KEY"

Mögliche Status-Werte: queued → running → done (oder error).

Ergebnisse abrufen

curl https://zeroflaw.net/api/v1/scans/42/findings \
  -H "Authorization: Bearer DEIN_API_KEY"

GitHub Actions Beispiel

name: Security Scan
on: [push]
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Create ZIP
        run: zip -r code.zip . -x '.git/*'
      - name: Run ZeroFlaw Scan
        run: |
          RESULT=$(curl -s -X POST https://zeroflaw.net/api/v1/scans \
            -H "Authorization: Bearer ${{ secrets.ZEROFLAW_KEY }}" \
            -F "file=@code.zip")
          echo "$RESULT"

Rate Limits

Die API-Rate-Limits hängen von deinem Plan ab:

PlanScans pro TagGleichzeitige Scans
Free51
Pro503
Team2005

Häufige Fragen

Kann ich die API auch für Domain-Scans nutzen?

Ja, sende einen POST an /api/v1/scans mit {"target": "example.com", "kind": "live"} statt einer Datei.

Gibt es ein SDK?

Aktuell bieten wir kein SDK an. Die REST-API ist einfach genug, um direkt mit curl oder einer HTTP-Bibliothek deiner Wahl zu nutzen.