PromptShieldpromptShieldpromptShield
In Aktion erlebenFunktionenSo funktioniert'sKI-WorkflowsSorgenfreiheitLizenzverwaltungCompliance-Überwachung
PreiseHerunterladen
Entwickler
ÜberblickAPI-DokumentationAPI-Schlüssel
FAQ
AnmeldenKostenlos starten
Developers
API-Referenz

API Dokumentation

Vollständige REST-API-Referenz für die selbst gehostete promptShield-Engine. Alle Endpunkte sind unter der URL Ihrer Bereitstellung verfügbar.

Basis-URL

http://localhost:8000

Ersetzen Sie sie durch Host und Port Ihrer Bereitstellung.

Interaktive API-Dokumentation

Wenn der Server läuft, besuchen Sie /docs für eine automatisch erzeugte interaktive Swagger-Oberfläche, in der Sie jeden Endpunkt direkt testen können.

PROMPTSHIELD_DEBUG_API_DOCS=1 promptshield serve

In API-key mode, /docs, /openapi.json, and /redoc require Authorization: Bearer <api-key>.

Authentifizierung

Wenn PROMPTSHIELD_API_KEY gesetzt ist (über promptshield serve --api-key oder die Docker-Umgebungsvariable), muss jede Anfrage ihn als Authorization: Bearer <api-key> mitführen; fehlende oder falsche Schlüssel erhalten 401, und ein Schlüssel, der nur auf bestimmte Operationen beschränkt ist, erhält bei den übrigen 403. Der /health-Endpunkt ist stets ausgenommen. Ist kein API-Schlüssel gesetzt, läuft der Server ohne Authentifizierung und akzeptiert alle Anfragen – nur in einem vertrauenswürdigen lokalen Netzwerk angebracht.

Schnellstart

Bringen Sie die lokale API in unter 5 Minuten zum Laufen.

1

Das Paket installieren

bash
pip install promptshield-app
2

Ein Sprachmodell installieren

bash
export PROMPTSHIELD_ASSETS_DIR="$HOME/.local/share/promptshield/assets"
promptshield models install spacy-en-md
3

Ihren API-Schlüssel setzen

bash
export PROMPTSHIELD_API_KEY="ps_live_your_key_here"

Ihr API-Schlüssel ist verfügbar im API-Schlüssel-Dashboard.

4

Den Server starten

bash
promptshield serve --port 8000
5

Ihr erstes Dokument verarbeiten

bash
AUTH="Authorization: Bearer ps_live_your_key_here"

curl -X POST http://localhost:8000/api/documents/upload \
  -H "$AUTH" \
  -F "file=@contract.pdf"
# → {"doc_id": "abc123", "filename": "contract.pdf", "page_count": 5, "status": "REVIEWING"}

curl -X POST http://localhost:8000/api/documents/abc123/detect \
  -H "$AUTH" \
  -H "Content-Type: application/json" \
  -d '{"confidence_threshold": 0.7}'
# → {"doc_id": "abc123", "total_regions": 42, "regions": [...]}

curl -X POST http://localhost:8000/api/documents/abc123/anonymize \
  -H "$AUTH"
# → {"doc_id": "abc123", "tokens_created": 42, "regions_removed": 0, "output_path": "..."}

curl -o contract-safe.pdf \
  -H "$AUTH" \
  http://localhost:8000/api/documents/abc123/download/pdf

Oder mit Docker ausführen (keine Installation)

bash
docker run -e PROMPTSHIELD_API_KEY="ps_live_your_key_here" \
  -p 8000:8000 -v promptshield-data:/data \
  promptshield/promptshield-api:latest

Schritt-für-Schritt-Anleitung

Eine umfassende Anleitung, um die lokale API einzurichten und in Ihren Workflow einzubinden.

1. Voraussetzungen

Stellen Sie vor dem Beginn sicher, dass Folgendes installiert ist:

Python 3.11 oder neuer
pip (in Python enthalten)
Ein promptShield-API-Schlüssel (Plan Basic oder Pro)

Optional. für volle Formatunterstützung:

Tesseract OCR. für gescannte/bildbasierte PDFs
LibreOffice. für die Konvertierung von .docx, .xlsx, .pptx

2. Das SDK installieren

Installieren Sie das promptShield-Python-Paket. Die Basisinstallation verarbeitet PDF-Dateien. Fügen Sie das office-Extra für Word/Excel/PowerPoint hinzu.

Basisinstallation (nur PDF)
bash
pip install promptshield-app
Mit Office-Formatunterstützung
bash
pip install "promptshield-app[office]"

Installieren Sie Sprachmodelle (NER-Packs) über die CLI:

bash
# Set the install directory (add to your shell profile)
export PROMPTSHIELD_ASSETS_DIR="$HOME/.local/share/promptshield/assets"
# Windows: $env:PROMPTSHIELD_ASSETS_DIR = "$env:APPDATA\promptshield\assets"

# English pack — required (medium is recommended)
promptshield models install spacy-en-md

# For maximum accuracy (larger download)
promptshield models install spacy-en-lg

Installieren Sie zusätzliche Sprach-Packs auf dieselbe Weise:

bash
promptshield models install spacy-fr-md   # French
promptshield models install spacy-de-md   # German
promptshield models install spacy-es-md   # Spanish
promptshield models install spacy-it-md   # Italian
promptshield models install spacy-nl-md   # Dutch
promptshield models install spacy-pt-md   # Portuguese

3. Authentifizierung

Die lokale API verwendet Ihren promptShield-API-Schlüssel zur Lizenzprüfung. Setzen Sie ihn als Umgebungsvariable oder übergeben Sie ihn beim Start des Servers.

macOS / Linux
bash
export PROMPTSHIELD_API_KEY="ps_live_your_key_here"
Windows (PowerShell)
bash
$env:PROMPTSHIELD_API_KEY = "ps_live_your_key_here"

Der API-Schlüssel wird beim Start online geprüft und dann bis zu 35 Tage lokal zwischengespeichert, sodass der Server nach dem ersten Start vollständig offline laufen kann.

4. Den API-Server starten

Starten Sie den lokalen Server mit einem einzigen Befehl:

bash
promptshield serve
# Starting promptShield API server on 127.0.0.1:8000
# Health endpoint: http://127.0.0.1:8000/health
# Docs: enable with PROMPTSHIELD_DEBUG_API_DOCS=1 in non-API-key mode

Verfügbare Optionen:

--hostBindeadresse (Standard: 127.0.0.1)
--portBindeport (Standard: 8000)
--api-keyAPI-Schlüssel (Alternative zur Umgebungsvariable)

Nach dem Start ist die API unter der angezeigten URL erreichbar. Die interaktive Swagger-Dokumentation finden Sie unter /docs.

5. Docker-Bereitstellung (Alternative)

Für Produktionsbereitstellungen bietet Docker ein Erlebnis ohne Installation, mit allen gebündelten Abhängigkeiten.

Einzelner Container
bash
docker run -d --name promptshield \
  -e PROMPTSHIELD_API_KEY="ps_live_your_key_here" \
  -p 8000:8000 \
  -v promptshield-data:/data \
  promptshield/promptshield-api:latest
Mit Docker Compose
bash
# docker-compose.yml
services:
  promptshield:
    image: promptshield/promptshield-api:latest
    ports:
      - "8000:8000"
    volumes:
      - promptshield-data:/data
    environment:
      - PROMPTSHIELD_API_KEY=${PROMPTSHIELD_API_KEY}
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
      interval: 30s

volumes:
  promptshield-data:

Erstellen Sie eine .env-Datei mit Ihrem API-Schlüssel:

.env
bash
PROMPTSHIELD_API_KEY=ps_live_your_key_here

Das Docker-Image enthält:

Tesseract OCR mit 7 Sprach-Packs (EN, FR, DE, ES, IT, NL, PT)
LibreOffice für die Konvertierung von Office-Formaten
Vorinstallierte spaCy-NLP-Modelle
Nicht-Root-Nutzer, Health-Checks, persistentes Datenvolumen

6. API-Workflow

Der Standard-Workflow zur Dokumentverarbeitung hat 5 Schritte:

1Upload. Senden Sie Ihr Dokument an den Server
2Erkennung. Führen Sie die PII-Erkennungspipeline aus (Regex + NER + optionales LLM)
3Prüfung. Begutachten Sie die erkannten Regionen, bearbeiten oder bestätigen Sie sie
4Anonymisierung. Ersetzen Sie PII durch Codes
5Download. Rufen Sie das anonymisierte Dokument ab

Vollständiges Workflow-Beispiel (cURL)

cURL
bash
# 1. Upload
AUTH="Authorization: Bearer ps_live_your_key_here"

DOC_ID=$(curl -s -X POST http://localhost:8000/api/documents/upload \
  -H "$AUTH" \
  -F "file=@contract.pdf" | python -c "import sys,json; print(json.load(sys.stdin)['doc_id'])")

echo "Document ID: $DOC_ID"

# 2. Detect PII (with optional inline overrides)
curl -X POST http://localhost:8000/api/documents/$DOC_ID/detect \
  -H "$AUTH" \
  -H "Content-Type: application/json" \
  -d '{"confidence_threshold": 0.7, "regex_enabled": true, "ner_enabled": true}'
# → {"doc_id": "...", "total_regions": 42, "regions": [...]}

# 3. Review detected regions
curl -H "$AUTH" http://localhost:8000/api/documents/$DOC_ID/regions | python -m json.tool
# → [{"id": "...", "pii_type": "PERSON", "text": "John Smith", "confidence": 0.98,
#     "action": "TOKENIZE", ...}, ...]

# 3b. Bulk-update region actions before anonymizing (region_ids from step 3)
curl -X PUT http://localhost:8000/api/documents/$DOC_ID/regions/batch-action \
  -H "$AUTH" \
  -H "Content-Type: application/json" \
  -d '{"region_ids": ["<id1>", "<id2>"], "action": "REMOVE"}'

# 4. Anonymize
curl -X POST http://localhost:8000/api/documents/$DOC_ID/anonymize \
  -H "$AUTH"
# → {"doc_id": "...", "tokens_created": 42, "regions_removed": 0}

# 5. Download the anonymized document
curl -o contract-safe.pdf \
  -H "$AUTH" \
  http://localhost:8000/api/documents/$DOC_ID/download/pdf

echo "Done! Anonymized file saved to contract-safe.pdf"

7. CLI-Befehle

Verarbeiten Sie Dokumente direkt über die Kommandozeile, ohne einen Server zu starten:

PII erkennen und einen JSON-Bericht speichern
bash
promptshield detect invoice.pdf
# Detected 23 PII entities across 5 pages

promptshield detect invoice.pdf -o report.json
# Report saved to report.json

# Tune the pipeline per run — every desktop-app setting is also a CLI flag.
promptshield detect contract.pdf \
  --language en --countries US \
  --ner-backend Davlan/bert-base-multilingual-cased-ner-hrl \
  --no-llm --fuzziness 0.5 \
  --ner-types PERSON,ORG \
  -e SA-2026-0847 -e "84-329-1057" \
  --export-review -o contract.psreview

# Or load all of the above from demo/setup.json by locale:
promptshield detect contract.pdf --preset en --export-review -o contract.psreview
Ein Dokument in einem Schritt anonymisieren
bash
promptshield anonymize contract.pdf -o contract-safe.pdf
# Anonymized: 42 tokens created, saved to contract-safe.pdf

# Permanently redact PII (black boxes, irreversible)
promptshield anonymize contract.pdf --redact -o contract-redacted.pdf
Codes in einem zuvor anonymisierten Dokument wiederherstellen
bash
promptshield detokenize contract-safe.pdf -o contract-restored.pdf
# Restored 42 tokens, saved to contract-restored.pdf

Alle CLI-Befehle prüfen Ihren API-Schlüssel und verarbeiten Dokumente lokal. Keine Daten verlassen Ihre Maschine.

Modell-Add-ons

Nutzen Sie den integrierten models-Befehl, um NER-Sprach-Packs zu durchsuchen, zu installieren und zu entfernen. Setzen Sie PROMPTSHIELD_ASSETS_DIR, damit sowohl die CLI als auch der laufende Server sie finden.

Legen Sie das Installationsverzeichnis einmal fest (fügen Sie es Ihrem Shell-Profil hinzu):
bash
export PROMPTSHIELD_ASSETS_DIR="$HOME/.local/share/promptshield/assets"
# Windows: $env:PROMPTSHIELD_ASSETS_DIR = "$env:APPDATA\promptshield\assets"
Verfügbare Packs mit Installationsstatus durchsuchen
bash
promptshield models list
# Language packs (NER)
#   [ ]  spacy-en-sm   English (small)    (12 MB)
#   [installed]  spacy-en-md   English (medium)   (33 MB)
#   [ ]  spacy-fr-md   French (medium)    (16 MB)  ...
Ein Pack herunterladen und installieren (kein Server erforderlich)
bash
promptshield models install spacy-fr-md
# Installing spacy-fr-md (French (medium))...
#   Downloading... 16.0/16.0 MB (100%)
#   Verifying integrity...
#   Extracting...
#   Installed to ~/.local/share/promptshield/assets/spacy/fr_core_news_md
In PROMPTSHIELD_ASSETS_DIR installierte Packs auflisten
bash
promptshield models installed
# Installed models:
#   spacy-en-md   English (medium)
#   spacy-fr-md   French (medium)
Ein Pack entfernen
bash
promptshield models remove spacy-fr-md

Installierte Packs werden von detect, anonymize und dem laufenden API-Server automatisch erkannt. Der install-Befehl kommuniziert direkt mit dem Lizenzserver – kein laufender Sidecar nötig.

8. Eigene Ausdrücke

Integrierte Regex und NER decken die meisten PII ab, doch jede Organisation hat eigene Kennungen – Vertragsnummern, interne Projektcodes, Steuernummern, Vertraulichkeitsmarkierungen. Fügen Sie sie als Ausdrücke hinzu, und sie werden als vollwertige PII behandelt, als CUSTOM-Typ markiert, mit vollständiger bbox + Propagierung über die Seiten hinweg. Verfügbar über die CLI (-e / --expression), über die selbst gehostete HTTP-API (blacklist_terms) und über demo/setup.json-Voreinstellungen.

CLI — wiederholbares Flag -e / --expression
bash
# Literal text — case-insensitive substring match
promptshield detect contract.pdf -e SA-2026-0847 -e "84-329-1057"

# Repeatable — pass as many -e flags as you need
promptshield detect contract.pdf \
  -e ACME-CONFIDENTIAL \
  -e "Internal Use Only" \
  -e CUST-12345

# Regex — prefix with "re:" for full regex semantics
promptshield detect contract.pdf \
  -e "re:CASE-\d{4}-[A-Z]{3}" \
  -e "re:Project [A-Z][a-z]+"
HTTP-API — Body von POST /api/documents/{id}/detect
bash
# Same feature on the self-hosted HTTP API.
curl -X POST http://localhost:8000/api/documents/$DOC_ID/detect \
  -H "$AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "expressions": ["SA-2026-0847", "84-329-1057"],
    "expressions_action": "tokenize",
    "expressions_fuzziness": 1.0
  }'
# expressions_action:   "none" | "tokenize" | "remove"
# expressions_fuzziness: 1.0 = exact match, 0.5 = fuzzy edit-distance match
#
# Back-compat: the legacy keys "blacklist_terms" / "blacklist_action" /
# "blacklist_fuzziness" still work and map to the same fields via
# Pydantic alias — existing integrations don't need changes.
Voreinstellungsdatei — bei jedem --preset <locale>-Aufruf angewendet
bash
# demo/setup.json
{
  "en": {
    "language": "en",
    "countries": ["US"],
    "ner_backend": "Davlan/bert-base-multilingual-cased-ner-hrl",
    "expressions": ["SA-2026-0847", "84-329-1057"],
    "fuzziness": 0.5
  }
}

# Then any time:
promptshield detect contract.pdf --preset en --export-review -o contract.psreview

Zur Benennung: expressions ist nun der kanonische Name auf allen drei Oberflächen — CLI (-e / --expression), HTTP-API (expressions / expressions_action / expressions_fuzziness) und der Beschriftung in der Desktop-Oberfläche. Die früheren Schlüssel blacklist_terms / blacklist_action / blacklist_fuzziness der HTTP-API funktionieren zur Abwärtskompatibilität weiterhin über einen Pydantic-Alias, sodass bestehende Integrationen weiterlaufen.

Prüf-Workflow: API → Desktop

Automatisierte Erkennung im großen Maßstab ist nur die halbe Geschichte. Die automatische Erkennung erreicht nie 100 % Präzision – es gibt immer Fehltreffer zu verwerfen und übersehene Entitäten zu ergänzen. promptShield schließt den Kreis mit einem portablen .psreview-Bündel: programmatisch erkennen, zur visuellen menschlichen Qualitätsprüfung in die Desktop-App importieren, dann anonymisieren.

📂
Stapel-Erkennung
API oder CLI
📦
.psreview-Bündel
Dokument + Anmerkungen
🖥️
Desktop-Prüfung
Fehltreffer verwerfen · übersehene PII ergänzen
✅
Anonymisierte PDFs

Schritt 1a — Erkennen und exportieren (CLI, in einem Durchgang)

bash
# Detect + bundle in one command
promptshield detect contract.pdf --export-review -o contract.psreview
# Ingesting contract.pdf...
#   Detecting PII on page 1/3...
#   Detecting PII on page 2/3...
#   Detecting PII on page 3/3...
# Detected 14 PII region(s) across 3 page(s) in 1240ms.
# Review bundle saved to contract.psreview (14 region(s))

Schritt 1b — Erkennen und exportieren (HTTP-API)

bash
# 1. Upload document
curl -X POST http://localhost:8000/api/documents/upload \
  -H "Authorization: Bearer $PROMPTSHIELD_API_KEY" \
  -F "file=@contract.pdf"
# → {"doc_id": "abc123ef", "page_count": 3, ...}

# 2. Run detection
curl -X POST http://localhost:8000/api/documents/abc123ef/detect \
  -H "Authorization: Bearer $PROMPTSHIELD_API_KEY"

# 3. Download the review bundle
curl http://localhost:8000/api/documents/abc123ef/export-review \
  -H "Authorization: Bearer $PROMPTSHIELD_API_KEY" \
  -o contract.psreview

.psreview API

GET
/api/documents/{id}/export-review

Prüfbündel exportieren

Laden Sie das Dokument und alle seine Regionen-Anmerkungen als portables .psreview-ZIP-Bündel herunter.

POST
/api/documents/import-review

Prüfbündel importieren

Laden Sie ein .psreview-Bündel hoch. Es extrahiert das Dokument (führt OCR aus), spielt die gespeicherten Regionen-Anmerkungen ein und öffnet das Dokument im Status REVIEWING – bereit zur visuellen Qualitätsprüfung, ohne die Erkennung erneut auszuführen.

Schritt 2 — In die Desktop-App importieren

Öffnen Sie die promptShield-Desktop-App. Klicken Sie auf dem Upload-Bildschirm auf Zur Prüfung importieren und wählen Sie die .psreview-Datei. Das Dokument öffnet sich sofort im Prüfmodus – alle erkannten Regionen sind vorbefüllt, es ist kein Erkennungsschritt nötig.

Schritt 3 — Prüfen, bearbeiten und anonymisieren

Nutzen Sie die Regionen-Seitenleiste, um Fehltreffer zu verwerfen (Aktion auf Abbrechen setzen), zeichnen Sie neue Regionen für alles, was das Modell übersehen hat, und klicken Sie dann auf Exportieren. Die Desktop-App führt die Anonymisierung aus und speichert das geschwärzte PDF in Ihrem Downloads-Ordner.

8. Python-SDK (direkter Import)

Für fortgeschrittene Integrationen importieren Sie die Kernmodule direkt in Ihren Python-Code. Das gibt Ihnen die volle Kontrolle über jeden Verarbeitungsschritt.

Vollständiges Python-Beispiel
bash
from promptshield import PromptShield

ps = PromptShield()

def process(input_path: str, output_path: str):
    # Step 1 — Detect PII (runs the full local pipeline)
    result = ps.detect(input_path)
    print(f"Loaded: {result.file} ({result.pages} pages)")
    print(f"Total PII entities: {result.total_regions}")
    for page in result.regions:
        for entity in page["entities"]:
            print(f"  Page {page['page']}: [{entity['type']}] {entity['text']}")

    # Step 2 — Anonymize (reversible tokens by default; pass redact=True
    # for permanent removal). Output is always a PDF.
    out = ps.anonymize(input_path, output_path)
    print(f"Anonymized: {out.tokens_created} tokens, saved to {out.output_file}")

    # Step 3 — Restore the originals later from the local token vault
    restored = ps.detokenize(output_path, "contract-restored.pdf")
    print(f"Restored {restored.tokens_replaced} tokens")

process("contract.pdf", "contract-safe.pdf")

# Async variants are available too: ps.adetect / ps.aanonymize / ps.adetokenize

Beispiel für Stapelverarbeitung

Mehrere Dateien in einem Verzeichnis verarbeiten:

batch_process.py
bash
from pathlib import Path
from promptshield import PromptShield

ps = PromptShield()

def batch_process(input_dir: str, output_dir: str):
    input_path = Path(input_dir)
    output_path = Path(output_dir)
    output_path.mkdir(parents=True, exist_ok=True)

    files = list(input_path.glob("*.pdf"))
    print(f"Processing {len(files)} files...")

    for i, file in enumerate(files, 1):
        print(f"[{i}/{len(files)}] {file.name}")
        out_file = output_path / f"anon_{file.stem}.pdf"
        result = ps.anonymize(str(file), str(out_file))
        print(f"  → {result.tokens_created} tokens, saved to {out_file.name}")

    print("Batch complete!")

batch_process("./documents", "./anonymized")

9. Sicherheit & Datenschutz

promptShield ist für Zero-Trust-Umgebungen konzipiert:

Die gesamte Verarbeitung geschieht lokal. niemals werden Dokumentinhalte an externe Server gesendet
Das Code-Register bleibt auf Ihrer Maschine — dieselbe Vertrauensgrenze wie Ihre Quelldokumente, niemals hochgeladen
Die Authentifizierung per API-Schlüssel verhindert unbefugten Zugriff im selbst gehosteten Modus
Docker läuft als Nicht-Root-Nutzer mit minimalen Rechten
Der API-Schlüssel wird einmal online geprüft, dann lokal für die Offline-Nutzung zwischengespeichert (35-Tage-TTL)

10. Fehlerbehebung

Häufige Probleme und Lösungen:

Fehler 'No spaCy model found' oder 'no NER model loaded'

Setzen Sie PROMPTSHIELD_ASSETS_DIR und installieren Sie ein Pack: promptshield models install spacy-en-md. Alternativ für eine systemweite Installation: python -m spacy download en_core_web_sm

OCR funktioniert bei gescannten PDFs nicht

Installieren Sie Tesseract OCR und stellen Sie sicher, dass es in Ihrem PATH liegt. Unter Windows fügt der Installer es automatisch hinzu.

Office-Dateien lassen sich nicht konvertieren

Installieren Sie LibreOffice. DOCX hat einen reinen Python-Fallback, aber XLSX/PPTX erfordern LibreOffice.

'Invalid API key' beim Start

Stellen Sie sicher, dass Ihr Schlüssel mit ps_live_ beginnt und dass Ihr Abonnement aktiv ist. Schlüssel lassen sich unter /developers/api-keys verwalten.

Dokumente

POST
/api/documents/upload

Dokument hochladen

Laden Sie ein Dokument zur Verarbeitung hoch. Unterstützt PDF-, DOCX-, XLSX-, PPTX- und Bilddateien.

GET
/api/documents

Dokumente auflisten

Rufen Sie alle hochgeladenen Dokumente mit ihrem Erkennungs- und Anonymisierungsstatus ab.

GET
/api/documents/{id}

Dokument abrufen

Rufen Sie detaillierte Informationen zu einem bestimmten Dokument ab, einschließlich Seitenzahl und Erkennungsstatus.

DELETE
/api/documents/{id}

Dokument löschen

Entfernen Sie ein Dokument und alle zugehörigen Daten vom Server.

Erkennung

POST
/api/documents/{id}/detect

PII erkennen

Führen Sie die PII-Erkennungspipeline auf einem Dokument aus. Akzeptiert einen optionalen JSON-Body, um die Erkennungseinstellungen (confidence_threshold, regex_enabled, ner_enabled, regex_types usw.) nur für diesen Durchlauf zu überschreiben.

POST
/api/documents/{id}/redetect

PII erneut erkennen

Führen Sie die Erkennung mit voller Parameterkontrolle erneut aus. Akzeptiert confidence_threshold, regex_types, ner_types, blacklist_terms und mehr.

GET
/api/documents/{id}/detection-progress

Erkennungsfortschritt

Rufen Sie den Fortschritt eines laufenden Erkennungsauftrags ab (Prozentsatz, aktuelle Seite und Status).

GET
/api/documents/{id}/regions

Regionen abrufen

Rufen Sie alle erkannten PII-Regionen eines Dokuments mit Typ, Text, Konfidenzwert und Begrenzungsrahmen ab.

PUT
/api/documents/{id}/regions/batch-action

Regionen im Stapel aktualisieren

Legen Sie die Aktion (TOKENIZE, REMOVE oder CANCEL) für mehrere Regionen auf einmal fest, gefiltert nach Entitätstyp.

Anonymisieren & Exportieren

PUT
/api/documents/{id}/regions/sync

Regionen synchronisieren

Ersetzen Sie die Regionenliste eines Dokuments vollständig. Nutzen Sie dies nach dem clientseitigen Bearbeiten von Regionen, um Änderungen vor dem Anonymisieren zu übermitteln.

POST
/api/documents/{id}/anonymize

Dokument anonymisieren

Anonymisieren Sie ein Dokument, indem erkannte PII durch Codes ersetzt werden. Gibt das verarbeitete Dokument zurück.

GET
/api/documents/{id}/download/{type}

Anonymisiertes herunterladen

Laden Sie die anonymisierte Ausgabe herunter. {type} ist 'pdf' oder 'text'. Die Ausgabe wird stets als PDF gerendert (Nicht-PDF-Eingaben werden konvertiert), daher ist 'pdf' das primäre Format.

POST
/api/documents/batch-anonymize

Stapel-Anonymisierung

Anonymisieren Sie mehrere Dokumente in einer einzigen Anfrage. Bis zu 50 Dokumente werden gleichzeitig verarbeitet.

Decodieren

POST
/api/detokenize

Text decodieren

Ersetzen Sie Codes in einer Textzeichenfolge durch ihre ursprünglichen Werte aus dem Tresor.

POST
/api/detokenize/file

Datei decodieren

Laden Sie ein codiertes Dokument hoch und erhalten Sie eine Version, in der alle Codes auf ihre ursprünglichen Werte wiederhergestellt sind.

Tresor & Code-Register

GET
/api/vault/status

Tresorstatus

Rufen Sie die Tresorstatistik ab: Gesamtzahl der Codes, Gesamtzahl der Dokumente, Registergröße.

GET
/api/vault/tokens

Codes auflisten

Rufen Sie alle im Tresor gespeicherten Code-zu-Original-Zuordnungen ab.

POST
/api/vault/export

Tresor exportieren

Exportieren Sie den gesamten Tresor als JSON-Datei zur Sicherung oder Migration.

POST
/api/vault/import

Tresor importieren

Importieren Sie ein zuvor exportiertes Tresor-JSON, um Code-Zuordnungen wiederherzustellen.

Health

GET
/health

Health-Check

Gibt den Gesundheitsstatus des Servers zurück. Nutzen Sie ihn für Überwachung und die Health-Probes von Load Balancern.

Einstellungen

GET
/api/settings

Einstellungen abrufen

Rufen Sie die aktuelle Erkennungs- und Verarbeitungskonfiguration ab (Schwellenwerte, aktivierte Pipelines, Sprache usw.).

PATCH
/api/settings

Einstellungen aktualisieren

Aktualisieren Sie die globalen Erkennungseinstellungen teilweise. Änderungen gelten für alle nachfolgenden Erkennungsdurchläufe.

GET
/api/settings/patterns

Eigene Muster auflisten

Rufen Sie alle benutzerdefinierten Regex-Muster ab, die zur eigenen PII-Erkennung verwendet werden.

POST
/api/settings/patterns

Eigenes Muster erstellen

Fügen Sie ein neues benutzerdefiniertes Regex-Muster zur PII-Erkennung hinzu. Muster werden zusammen mit den integrierten Regeln ausgewertet.

Beispiel

cURL — Upload, Detect, Anonymize
bash
# 1. Upload a document
curl -X POST http://localhost:8000/api/documents/upload \
  -F "file=@contract.pdf"
# → {"doc_id": "abc123", "filename": "contract.pdf", "page_count": 5, "status": "REVIEWING"}

# 2. Run PII detection
curl -X POST http://localhost:8000/api/documents/abc123/detect
# → {"doc_id": "abc123", "total_regions": 42, "regions": [...]}

# 3. Get detected regions
curl http://localhost:8000/api/documents/abc123/regions
# → [{"id": "...", "pii_type": "PERSON", "text": "John Smith", "confidence": 0.98,
#     "page_number": 1, "bbox": {...}, "source": "NER", "action": "TOKENIZE"}, ...]

# 4. Anonymize the document
curl -X POST http://localhost:8000/api/documents/abc123/anonymize
# → {"doc_id": "abc123", "tokens_created": 42, "regions_removed": 0}

# 5. Download anonymized PDF
curl -o contract-safe.pdf \
  http://localhost:8000/api/documents/abc123/download/pdf

Python-SDK

Die PromptShield-Klasse führt die gesamte Pipeline lokal aus — erkennen, anonymisieren und decodieren in drei Aufrufen. Die gesamte Verarbeitung geschieht auf Ihrer Maschine; keine Daten verlassen sie.

Python SDK
bash
from promptshield import PromptShield

ps = PromptShield()

# PII erkennen
result = ps.detect("contract.pdf")
print(f"{result.total_regions} entities across {result.pages} pages")
for page in result.regions:
    for entity in page["entities"]:
        print(f"  [{entity['type']}] {entity['text']}")

# Anonymisieren (umkehrbare Tokenisierung)
out = ps.anonymize("contract.pdf", "contract-safe.pdf")
print(f"Done: {out.tokens_created} tokens created")

# Die ursprünglichen Werte wiederherstellen
restored = ps.detokenize("contract-safe.pdf", "contract-restored.pdf")
print(f"Restored {restored.tokens_replaced} tokens")

Fehlerbehandlung

Alle Fehlerantworten folgen einem Standard-JSON-Format mit einem detail-Feld, das den Fehler beschreibt.

400

Ungültige Anfrage. Falsche Parameter oder eine beschädigte / nicht unterstützte Datei.

401

Nicht autorisiert. Fehlender oder ungültiger API-Schlüssel (Authorization: Bearer) im API-Schlüssel-Modus.

403

Verboten. Dem API-Schlüssel fehlt der erforderliche Scope (detect / anonymize / detokenize).

404

Nicht gefunden. Die Dokument-ID existiert nicht.

422

Nicht verarbeitbar. Ein erforderliches Feld fehlt, oder die Datei ist passwortgeschützt.

500

Serverfehler. Prüfen Sie die Serverprotokolle auf Details.

503

Ein erforderliches Erkennungsmodell ist nicht installiert. Installieren Sie es mit promptshield models install.

Error Response Format
bash
{
  "detail": "Document not found: abc123"
}

Ratenbegrenzungen

Die selbst gehostete API hat standardmäßig keine Ratenbegrenzungen. Bei Bedarf können Sie die Ratenbegrenzung über Umgebungsvariablen konfigurieren.

promptShieldpromptShieldpromptShield

KI-gestützte Dokument-Anonymisierung. Erkennen und schwärzen Sie sensible Daten offline, mit vollständiger Privatsphäre.

Produkt

  • Funktionen
  • Preise
  • Herunterladen
  • Entwickler
  • So funktioniert's
  • KI-Workflows
  • Sorgenfreiheit
  • vs Microsoft Presidio
  • Alternativen
  • Blog
  • Team

Konto

  • Anmelden
  • Registrieren
  • Dashboard

Rechtliches

  • Datenschutzerklärung
  • Nutzungsbedingungen
  • Sicherheit
  • Auftragsverarbeitung (DPA)
  • Erstattungsrichtlinie
  • Kontakt
  • Wechselkurse
Canada flagProudly Canadian
promptShield Inc. · 222, Wayman, Gaspé (QC) G4X 1T1, Canada · IP geolocation by DB-IP
© 2026 promptShield inc. Alle Rechte vorbehalten.