API documentatie
Volledige REST-API-referentie voor de zelfgehoste promptShield-engine. Alle eindpunten zijn beschikbaar op uw implementatie-URL.
Basis-URL
http://localhost:8000Vervang door de host en poort van uw implementatie.
Interactieve API-documentatie
Wanneer de server draait, bezoekt u /docs voor een automatisch gegenereerde interactieve Swagger UI waar u elk eindpunt rechtstreeks kunt testen.
PROMPTSHIELD_DEBUG_API_DOCS=1 promptshield serveIn API-key mode, /docs, /openapi.json, and /redoc require Authorization: Bearer <api-key>.
Authenticatie
Wanneer PROMPTSHIELD_API_KEY is ingesteld (via promptshield serve --api-key of de Docker-omgevingsvariabele), moet elke aanvraag die meegeven als Authorization: Bearer <api-key>; ontbrekende of verkeerde sleutels krijgen 401, en een sleutel die slechts tot bepaalde bewerkingen is beperkt, krijgt 403 op de rest. Het eindpunt /health is altijd vrijgesteld. Als er geen API-sleutel is ingesteld, draait de server zonder authenticatie en accepteert alle aanvragen — alleen gepast op een vertrouwd lokaal netwerk.
Snel aan de slag
Krijg de lokale API in minder dan 5 minuten draaiend.
Het pakket installeren
pip install promptshield-appEen taalmodel installeren
export PROMPTSHIELD_ASSETS_DIR="$HOME/.local/share/promptshield/assets"
promptshield models install spacy-en-mdUw API-sleutel instellen
export PROMPTSHIELD_API_KEY="ps_live_your_key_here"Uw API-sleutel is beschikbaar in het dashboard voor API-sleutels.
De server starten
promptshield serve --port 8000Uw eerste document verwerken
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/pdfOf draai met Docker (geen installatie)
docker run -e PROMPTSHIELD_API_KEY="ps_live_your_key_here" \
-p 8000:8000 -v promptshield-data:/data \
promptshield/promptshield-api:latestStapsgewijze handleiding
Een uitgebreide doorloop om de lokale API in te stellen en in uw workflow te integreren.
1. Vereisten
Zorg voordat u begint dat u het volgende hebt geïnstalleerd:
Optioneel. voor volledige formaatondersteuning:
2. De SDK installeren
Installeer het promptShield Python-pakket. De basisinstallatie verwerkt PDF-bestanden. Voeg de office-extra toe voor Word/Excel/PowerPoint.
pip install promptshield-apppip install "promptshield-app[office]"Installeer taalmodellen (entiteitenpakketten) via de CLI:
# 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-lgInstalleer extra taalpakketten op dezelfde manier:
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 # Portuguese3. Authenticatie
De lokale API gebruikt uw promptShield-API-sleutel voor licentievalidatie. Stel die in als omgevingsvariabele of geef die mee bij het starten van de server.
export PROMPTSHIELD_API_KEY="ps_live_your_key_here"$env:PROMPTSHIELD_API_KEY = "ps_live_your_key_here"De API-sleutel wordt bij het opstarten online gevalideerd en daarna tot 35 dagen lokaal gecachet, zodat de server na de eerste start volledig offline kan draaien.
4. De API-server starten
Start de lokale server met één enkele opdracht:
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 modeBeschikbare opties:
| --host | Bind-adres (standaard: 127.0.0.1) |
| --port | Bind-poort (standaard: 8000) |
| --api-key | API-sleutel (alternatief voor de omgevingsvariabele) |
Eenmaal gestart is de API beschikbaar op de getoonde URL. Interactieve Swagger-documentatie staat op /docs.
5. Docker-implementatie (alternatief)
Voor productie-implementaties biedt Docker een installatievrije ervaring met alle afhankelijkheden gebundeld.
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# 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:Maak een .env-bestand met uw API-sleutel:
PROMPTSHIELD_API_KEY=ps_live_your_key_hereDe Docker-image bevat:
6. API-workflow
De standaardworkflow voor documentverwerking heeft 5 stappen:
Volledig workflowvoorbeeld (cURL)
# 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-opdrachten
Verwerk documenten rechtstreeks vanaf de opdrachtregel zonder een server te starten:
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.psreviewpromptshield 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.pdfpromptshield detokenize contract-safe.pdf -o contract-restored.pdf
# Restored 42 tokens, saved to contract-restored.pdfAlle CLI-opdrachten valideren uw API-sleutel en verwerken documenten lokaal. Er verlaten geen gegevens uw apparaat.
Model-add-ons
Gebruik de ingebouwde opdracht models om entiteitenpakketten te bladeren, installeren en verwijderen. Stel PROMPTSHIELD_ASSETS_DIR in zodat zowel de CLI als de draaiende server ze vinden.
export PROMPTSHIELD_ASSETS_DIR="$HOME/.local/share/promptshield/assets"
# Windows: $env:PROMPTSHIELD_ASSETS_DIR = "$env:APPDATA\promptshield\assets"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) ...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_mdpromptshield models installed
# Installed models:
# spacy-en-md English (medium)
# spacy-fr-md French (medium)promptshield models remove spacy-fr-mdGeïnstalleerde pakketten worden automatisch opgepikt door detect, anonymize en de draaiende API-server. De opdracht install praat rechtstreeks met de licentieserver — geen draaiende sidecar nodig.
8. Eigen expressies
Ingebouwde regex en entiteiten dekken de meeste PII, maar elke organisatie heeft eigen identificatoren — contractnummers, interne projectcodes, fiscale nummers, vertrouwelijkheidsmarkeringen. Voeg ze toe als expressies en ze worden behandeld als eersteklas PII, gemarkeerd als type CUSTOM met volledig bbox + propagatie over pagina's heen. Beschikbaar op de CLI (-e / --expression), op de zelfgehoste HTTP-API (blacklist_terms) en via demo/setup.json-presets.
# 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]+"# 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.# 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.psreviewOver de naamgeving: expressions is nu de canonieke naam over alle drie de oppervlakken — CLI (-e / --expression), HTTP-API (expressions / expressions_action / expressions_fuzziness) en het label in de desktopinterface. De eerdere sleutels blacklist_terms / blacklist_action / blacklist_fuzziness op de HTTP-API werken nog steeds via een Pydantic-alias voor achterwaartse compatibiliteit, zodat bestaande integraties blijven werken.
Beoordelingsworkflow: API → desktop
Geautomatiseerde detectie op schaal is maar de helft van het verhaal. Automatische detectie haalt nooit 100% precisie — er zijn altijd valse positieven om af te wijzen en gemiste entiteiten om toe te voegen. promptShield sluit de cirkel met een draagbare .psreview-bundel: detecteer programmatisch, importeer in de desktop-app voor visuele menselijke QA en anonimiseer daarna.
Stap 1a — Detecteren en exporteren (CLI, in één keer)
# 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))Stap 1b — Detecteren en exporteren (HTTP-API)
# 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
/api/documents/{id}/export-reviewBeoordelingsbundel exporteren
Download het document en al zijn gebiedsannotaties als een draagbare .psreview-ZIP-bundel.
/api/documents/import-reviewBeoordelingsbundel importeren
Upload een .psreview-bundel. Pakt het document uit (voert OCR uit), injecteert de opgeslagen gebiedsannotaties en opent het document in de status REVIEWING — klaar voor visuele QA zonder de detectie opnieuw uit te voeren.
Stap 2 — Importeren in de desktop-app
Open de promptShield-desktop-app. Klik op het uploadscherm op Importeren voor beoordeling en selecteer het .psreview-bestand. Het document opent direct in beoordelingsmodus — alle gedetecteerde gebieden zijn vooraf ingevuld, geen detectiestap nodig.
Stap 3 — Beoordelen, bewerken en anonimiseren
Gebruik de gebiedszijbalk om valse positieven af te wijzen (actie op Annuleren zetten), teken nieuwe gebieden voor alles wat het model heeft gemist en klik daarna op Exporteren. De desktop-app voert de anonimisering uit en slaat de geredigeerde PDF op in uw map Downloads.
8. Python-SDK (directe import)
Voor geavanceerde integraties importeert u de kernmodules rechtstreeks in uw Python-code. Dat geeft u volledige controle over elke verwerkingsstap.
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.adetokenizeVoorbeeld van batchverwerking
Meerdere bestanden in een map verwerken:
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. Beveiliging & gegevensprivacy
promptShield is ontworpen voor zero-trust-omgevingen:
10. Probleemoplossing
Veelvoorkomende problemen en oplossingen:
Fout 'No spaCy model found' of 'no NER model loaded'
Stel PROMPTSHIELD_ASSETS_DIR in en installeer een pakket: promptshield models install spacy-en-md. Of voor een systeembrede installatie: python -m spacy download en_core_web_sm
OCR werkt niet op gescande PDF's
Installeer Tesseract OCR en zorg dat het in uw PATH staat. Op Windows voegt de installer het automatisch toe.
Office-bestanden converteren niet
Installeer LibreOffice. DOCX heeft een pure-Python-fallback, maar XLSX/PPTX vereisen LibreOffice.
'Invalid API key' bij het opstarten
Controleer of uw sleutel begint met ps_live_ en of uw abonnement actief is. Sleutels kunnen worden beheerd via /developers/api-keys.
Documenten
/api/documents/uploadDocument uploaden
Upload een document voor verwerking. Ondersteunt PDF-, DOCX-, XLSX-, PPTX- en afbeeldingsbestanden.
/api/documentsDocumenten opsommen
Haal alle geüploade documenten op met hun detectie- en anonimiseringsstatus.
/api/documents/{id}Document ophalen
Verkrijg gedetailleerde informatie over een specifiek document, inclusief paginatelling en detectiestatus.
/api/documents/{id}Document verwijderen
Verwijder een document en alle bijbehorende gegevens van de server.
Detectie
/api/documents/{id}/detectPII detecteren
Voer de PII-detectiepijplijn uit op een document. Accepteert een optionele JSON-body om detectie-instellingen (confidence_threshold, regex_enabled, ner_enabled, regex_types enz.) alleen voor deze run te overschrijven.
/api/documents/{id}/redetectPII opnieuw detecteren
Voer de detectie opnieuw uit met volledige parametercontrole. Accepteert confidence_threshold, regex_types, ner_types, blacklist_terms en meer.
/api/documents/{id}/detection-progressDetectievoortgang
Verkrijg de voortgang van een lopende detectietaak (percentage, huidige pagina en status).
/api/documents/{id}/regionsGebieden ophalen
Haal alle gedetecteerde PII-gebieden voor een document op met type, tekst, betrouwbaarheidsscore en selectiekader.
/api/documents/{id}/regions/batch-actionGebieden in batch bijwerken
Stel de actie (TOKENIZE, REMOVE of CANCEL) voor meerdere gebieden tegelijk in, gefilterd op entiteitstype.
Anonimiseren & exporteren
/api/documents/{id}/regions/syncGebieden synchroniseren
Vervang de gebiedslijst van een document volledig. Gebruik dit na het bewerken van gebieden aan de clientzijde om wijzigingen door te zetten vóór het anonimiseren.
/api/documents/{id}/anonymizeDocument anonimiseren
Anonimiseer een document door gedetecteerde PII door codes te vervangen. Geeft het verwerkte document terug.
/api/documents/{id}/download/{type}Geanonimiseerd document downloaden
Download de geanonimiseerde uitvoer. {type} is 'pdf' of 'text'. De uitvoer wordt altijd als PDF weergegeven (niet-PDF-invoer wordt geconverteerd), dus 'pdf' is het primaire formaat.
/api/documents/batch-anonymizeIn batch anonimiseren
Anonimiseer meerdere documenten in één enkele aanvraag. Tot 50 documenten gelijktijdig verwerkt.
Decoderen
/api/detokenizeTekst decoderen
Vervang codes in een tekstreeks door hun oorspronkelijke waarden uit de kluis.
/api/detokenize/fileBestand decoderen
Upload een gecodeerd document en ontvang een versie waarin alle codes naar de oorspronkelijke waarden zijn hersteld.
Kluis & coderegister
/api/vault/statusKluisstatus
Verkrijg kluisstatistieken: totaal aantal codes, totaal aantal documenten, registergrootte.
/api/vault/tokensCodes opsommen
Haal alle code-naar-origineel-toewijzingen op die in de kluis zijn opgeslagen.
/api/vault/exportKluis exporteren
Exporteer de volledige kluis als JSON-bestand voor back-up of migratie.
/api/vault/importKluis importeren
Importeer een eerder geëxporteerde kluis-JSON om codetoewijzingen te herstellen.
Gezondheid
/healthGezondheidscontrole
Geeft de gezondheidsstatus van de server terug. Gebruik dit voor bewaking en gezondheidscontroles van de load balancer.
Instellingen
/api/settingsInstellingen ophalen
Haal de huidige detectie- en verwerkingsconfiguratie op (drempels, ingeschakelde pijplijnen, taal enz.).
/api/settingsInstellingen bijwerken
Werk de globale detectie-instellingen gedeeltelijk bij. Wijzigingen gelden voor alle volgende detectieruns.
/api/settings/patternsEigen patronen opsommen
Haal alle door de gebruiker gedefinieerde regex-patronen op die voor eigen PII-detectie worden gebruikt.
/api/settings/patternsEigen patroon aanmaken
Voeg een nieuw eigen regex-patroon toe voor PII-detectie. Patronen worden samen met de ingebouwde regels geëvalueerd.
Voorbeeld
# 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/pdfPython-SDK
De klasse PromptShield voert de volledige pijplijn lokaal uit — detecteren, anonimiseren en detokeniseren in drie aanroepen. Alle verwerking gebeurt op uw apparaat; er verlaat geen gegevens uw apparaat.
from promptshield import PromptShield
ps = PromptShield()
# PII detecteren
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']}")
# Anonimiseren (omkeerbare tokenisering)
out = ps.anonymize("contract.pdf", "contract-safe.pdf")
print(f"Done: {out.tokens_created} tokens created")
# De oorspronkelijke waarden herstellen
restored = ps.detokenize("contract-safe.pdf", "contract-restored.pdf")
print(f"Restored {restored.tokens_replaced} tokens")Foutafhandeling
Alle foutreacties volgen een standaard JSON-formaat met een detail-veld dat de fout beschrijft.
Ongeldige aanvraag. Onjuiste parameters of een beschadigd / niet-ondersteund bestand.
Niet geautoriseerd. Ontbrekende of ongeldige API-sleutel (Authorization: Bearer) in de API-sleutelmodus.
Verboden. De API-sleutel mist de vereiste scope (detect / anonymize / detokenize).
Niet gevonden. De document-ID bestaat niet.
Niet verwerkbaar. Een verplicht veld ontbreekt, of het bestand is met een wachtwoord beveiligd.
Serverfout. Raadpleeg de serverlogboeken voor details.
Een vereist detectiemodel is niet geïnstalleerd. Installeer het met promptshield models install.
{
"detail": "Document not found: abc123"
}Snelheidslimieten
De zelfgehoste API heeft standaard geen snelheidslimieten. U kunt indien nodig snelheidsbeperking configureren via omgevingsvariabelen.