01 / Start
Schnellstart
Erstellen Sie einen Schlüssel, setzen Sie zwei Umgebungsvariablen und senden Sie die erste Anfrage.
- Erstellen Sie einen Workspace und wählen Sie einen Tarif.
- Erstellen Sie einen API-Schlüssel mit dem kleinsten benötigten Verarbeitungsumfang. Kopieren Sie das Geheimnis sofort; es wird später nicht erneut angezeigt.
- Setzen Sie SCANVERION_API_URL und SCANVERION_API_KEY ausschließlich in Ihrer Serverumgebung.
- Senden Sie eine Multipart-Anfrage und speichern Sie die zurückgegebene requestId mit Ihrer eigenen Trace-ID.
curl --request POST "$SCANVERION_API_URL/api/v1/ai/document-processing" --header "Authorization: Bearer $SCANVERION_API_KEY" \
--header "Idempotency-Key: invoice-20260807-001" --form "File=@invoice.pdf;type=application/pdf" --form "Operations=Scanner" \
--form "Operations=Rotation" --form "ScannerFields=invoiceNumber" --form "ScannerFields=issueDate" --form "ScannerFields=dueDate" --form "ScannerFields=paymentReference" --form "ScannerFields=supplierIban" --form "ScannerFields=customerIban" --form "ScannerFields=supplierAddress" --form "ScannerFields=supplierStreetName" --form "ScannerFields=supplierStreetNumber" --form "ScannerFields=supplierPostalCode" --form "ScannerFields=supplierCity" --form "ScannerFields=customerAddress" --form "ScannerFields=supplierVatNumber" --form "ScannerFields=customerVatNumber" --form "ScannerFields=netTotal" --form "ScannerFields=vatTotal" --form "ScannerFields=vatBreakdown" --form "ScannerFields=lineItems" --form "ScannerFields=grossTotal"02 / Sicherheit
Authentifizierung und API-Schlüssel
Verwenden Sie eingeschränkte Maschinenzugänge sicher von einem vertrauenswürdigen Backend.
03 / Zuverlässigkeit
Idempotenz und Wiederholungen
Vergeben Sie pro Verarbeitungsversuch einen stabilen Schlüssel und behandeln Sie Duplikate bewusst.
Senden Sie bei jeder Verarbeitungsanfrage einen Idempotency-Key. Verwenden Sie denselben Wert nur beim Wiederholen desselben logischen Uploads mit denselben Operationen. Eine doppelte Reservierung liefert 409 Conflict; ein neuer Schlüssel kann einen zweiten abrechenbaren Versuch erzeugen.
04 / KI-Endpunkt
Dokumentverarbeitung
Laden Sie JPEG, PNG, WebP oder PDF zur synchronen Dokumentanalyse hoch.
Verwenden Sie die exakten ASP.NET-Multipart-Feldnamen: ein File, ein oder mehrere wiederholte Operations, optionale wiederholte ScannerFields, optionales CheckboxDefinitions-JSON und optionales DisableObjectSegmentation.
Scannerfelder nach Dokumenttyp
Verwenden Sie die folgenden kanonischen Feldschlüssel als wiederholte ScannerFields-Werte. Der Abgleich beachtet die Groß-/Kleinschreibung nicht; die kanonische Schreibweise hält Integrationen jedoch konsistent. Jede Kategorie unterstützt zusätzlich die gemeinsamen Felder. Ein angefordertes Feld kann bei unzureichender OCR-Evidenz null sein.
| Dokumenttyp | Erkannte Kategorie | Zusätzliche ScannerFields |
|---|---|---|
| Jedes Dokument | * | rawTextdocumentType |
| Rechnung | invoice | invoiceNumberissueDatedueDatedeliveryDatepaymentReferencecurrencysupplierNamesupplierAddresssupplierStreetNamesupplierStreetNumbersupplierCitysupplierCityPartsupplierPostalCodesupplierCountryCodesupplierCompanyRegistrationNumbersupplierTaxNumbersupplierVatNumbersupplierIbansupplierBiccustomerNamecustomerAddresscustomerStreetNamecustomerStreetNumbercustomerCitycustomerCityPartcustomerPostalCodecustomerCountryCodecustomerCompanyRegistrationNumbercustomerTaxNumbercustomerVatNumbercustomerIbancustomerBicdeliveryNamedeliveryAddressdeliveryStreetNamedeliveryStreetNumberdeliveryCitydeliveryCityPartdeliveryPostalCodedeliveryCountryCodenetTotalvatTotalvatBreakdowngrossTotallineItemsbankAccounts |
| Reisepass | passport | documentNumberdateOfBirthsexnationalitynationalityNamepersonalNumberdateOfIssuedateOfExpiryissuedByplaceOfBirth |
| EU-Personalausweis, Vorderseite | euidfront | documentNumberdateOfBirthsexnationalitynationalityNamepersonalNumberdateOfIssuedateOfExpiryissuedByplaceOfBirth |
| EU-Personalausweis, Rückseite | euidback | addressstreetNamestreetNumbercitycityPartpostalCodecountryCodemaidenNameplaceOfBirthbloodTypepersonalNumbermaritalStatusissuedBydocumentNumbernationalitynationalityNamedateOfBirthsexdateOfExpiry |
| EU-Führerschein, Vorderseite | eudriverlicensefront | dateOfBirthplaceOfBirthdateOfIssuedateOfExpiryissuedBydocumentNumberlicenseAllowedCategories |
| Zulassungsbescheinigung, Teil I, Vorderseite | eutechnicallicensefront | vinlicensePlateaddressownerdocumentNumber |
| Zulassungsbescheinigung, Teil I, Rückseite | eutechnicallicenseback | vinmanufacturervariantmodelvalidUntilvehicleCategoryengineVolumeenginePerformancefuelTypenumberOfSeatsmaximumSpeedlargestWeightKg |
| Zulassungsbescheinigung, Teil II, Vorderseite | bigtechnicallicensefront | registrationCertificatePartdocumentNumberlicensePlatedateOfFirstRegistrationvinvehicleKindvehicleCategorymanufacturermodeltypeVariantVersionvehicleManufacturertypeApprovalNumbertypeApprovalDateengineManufacturerengineTypeengineVolumeCm3catalystenginePerformanceKwengineSpeedRpmfuelTypetransmission |
| Zulassungsbescheinigung, Teil II, Rückseite | bigtechnicallicenseback | bodyTypecolorproductionNumbernumberOfSeatsnumberOfStandingPlacesnumberOfBedsroofLoadKgfuelTankVolumeLlengthMmwidthMmheightMmoperationalWeightKgmaximumWeightKgmaximumBrakedTrailerWeightKgmaximumUnbrakedTrailerWeightKgnumberOfAxleswheelbaseMmfrontTyresrearTyresfrontRimsrearRimsmaximumSpeedKphstationaryNoiseDbdriveByNoiseDbemissionStandardco2GKmfuelConsumptionL100Km |
| Aufenthaltstitel, Vorderseite | residencepermitfront | documentNumbersexnationalitynationalityNamedateOfBirthpersonalNumbertypeOfPermitdateOfExpirynotescardAccessNumber |
| Aufenthaltstitel, Rückseite | residencepermitback | documentNumbersexnationalitynationalityNamedateOfBirthdateOfExpirydateOfIssueissuedByplaceOfBirthaddresspersonalNumbercountryCode |
| Behindertenausweis | disabilitycard | dateOfBirthdateOfIssuedocumentNumberissuedByaddress |
| Vollbild oder nicht erkanntes Dokument | fullimage / other | - |
Unterstützte Dokumente
Sehen Sie, was Scanverion lesen kann.
Eindeutig ungültige KI-Muster basieren auf verlinkten öffentlichen Dokumentlayouts. API-Kategorie und getestete strukturierte Extraktion werden getrennt dargestellt.

Reisepass
Universelle ICAO-TD3-MRZ und getestetes österreichisches Drucklayout
Beispielfelder
Passport
namedocumentNumbernationalityNamedateOfBirthdateOfExpiryplaceOfBirth
Personalausweis
Getestetes österreichisches Vorder- und Rückseitenlayout
Beispielfelder
EUIdFrontEUIdBack
namedocumentNumberpersonalNumbernationalityNameaddressdateOfExpiry
Rechnung
Layoutbasierte Rechnungsextraktion
Beispielfelder
Invoice
invoiceNumbersupplierNamecustomerNamepaymentReferencelineItemsgrossTotalDie KI-Muster verwenden fiktive Daten, sichtbare VZOR/SPECIMEN-Hinweise und ungültige maschinenlesbare Werte. Es sind keine echten Kundendokumente.

Generische Dokumente
Visuelle Operationen funktionieren auch ohne bekannten Dokumenttyp.
Checkboxen, Barcodes, Unterschriften, Gesichter, Unschärfe und Drehung können auf Formularen, Verträgen und unbekannten Dokumenten analysiert werden.
Detection: Locate documents and other objects.Rotation: Measure document orientation.Blur: Evaluate image sharpness.BarcodeReading: Read QR and linear barcodes.CheckboxDetection: Evaluate checkbox regions supplied in the request.SignatureDetection: Detect a visible signature.FaceDetection: Locate visible faces.FaceExtraction: Return detected face regions.
Beispielfelder
CheckboxDetection verwendet CheckboxDefinitions aus der Anfrage. Die Vollbildverarbeitung kann auch angeforderte ScannerFields zurückgeben.
Layoutreferenz: Original Scanverion Austrian AI application form · Fictional demoLänderunterstützung
Diese österreichischen Dokumentlayouts sind verifiziert.
Reisepässe verwenden einen globalen MRZ-Standard. Die angezeigten nationalen Dokumente sind auf Kategorien beschränkt, die mit österreichischen Layouts getestet wurden.
Reisepässe
Alle Ausstellerländer mit lesbarer ICAO-TD3-MRZPersonalausweis
Strukturierte Extraktion für die getestete österreichische Vorder- und Rückseite05 / KI-Endpunkt
Fahrzeugverarbeitung
Führen Sie Erkennung oder Unschärfeprüfung für ein Fahrzeugbild aus.
Die Anfrage entspricht der Dokumentverarbeitung, aber für Fahrzeuge sind nur Detection und Blur zulässig. Nicht unterstützte Kombinationen liefern 422 Unprocessable Entity.
06 / Mehrere Dateien
Stapelverarbeitung
Verarbeiten Sie mehrere Dokumente oder Fahrzeugbilder in einer synchronen Anfrage.
Wiederholen Sie das Feld Files für jeden Upload. Dateien werden nacheinander verarbeitet, jedes Ergebnis bleibt in der Stapelantwort zuordenbar und die Nutzung wird für die gesamte Anfrage zusammengefasst.
curl --request POST "$SCANVERION_API_URL/api/v1/ai/document-processing/batches" \
--header "Authorization: Bearer $SCANVERION_API_KEY" \
--header "Idempotency-Key: onboarding-batch-42" \
--form "Files=@front.jpg;type=image/jpeg" \
--form "Files=@back.jpg;type=image/jpeg" \
--form "Operations=Scanner"Verzeichnis der Verarbeitungsendpunkte
| Methode | Pfad | Dateifeld | Vertrag |
|---|---|---|---|
POST | /api/v1/ai/document-processing | File | JPEG, PNG, WebP oder PDF; maximal 10 MB |
POST | /api/v1/ai/vehicle-processing | File | JPEG, PNG oder WebP; nur Detection und Blur |
POST | /api/v1/ai/document-processing/batches | Files | Mehrere Dateien; Ergebnisse bleiben nach Datei gruppiert |
POST | /api/v1/ai/vehicle-processing/batches | Files | Mehrere Fahrzeugbilder; nur Detection und Blur |
GET | /api/v1/ai/capabilities | - | Unterstützte MIME-Typen, Operationen und maximale Dateigröße |
07 / Funktionen
Operationen und Abhängigkeiten
Wählen Sie unterstützte Operationen und verstehen Sie automatisch ergänzte Abhängigkeiten.
| Operation | Zweck | Abhängigkeit oder Einschränkung |
|---|---|---|
| Detection | Findet und klassifiziert Dokument- oder Fahrzeugobjekte. | Wird bei den meisten Dokumentabläufen automatisch ergänzt. |
| Scanner | Extrahiert typisierte Felder aus unterstützten Dokumenten. | Wird von LostOrStolenCardCheck benötigt. |
| Rotation | Meldet die Dokumentausrichtung. | Wird von FaceExtraction ergänzt. |
| Blur | Bewertet die Unschärfe eines Bildes. | Für Dokumente und Fahrzeuge unterstützt. |
| FaceDetection | Findet Gesichter in einem erkannten Dokument. | Wird von FaceExtraction ergänzt. |
| FaceExtraction | Gibt extrahierte Gesichtsdaten oder Bilder zurück. | Ergänzt FaceDetection und Rotation. |
| BarcodeReading | Liest unterstützte ein- und zweidimensionale Codes. | Nur für Dokumentverarbeitung. |
| CheckboxDetection | Bewertet konfigurierte Kontrollkästchenbereiche. | CheckboxDefinitions muss gültiges JSON sein. |
| SignatureDetection | Findet Signaturen in einem Dokument. | Nur Erkennung; Signaturvergleich ist nicht verfügbar. |
08 / Schema
Antwortmodell
Lesen Sie Objektergebnisse, Operationsstatus, Laufzeit und berechnete Credits.
objects erhält die Beziehung zwischen jedem erkannten Objekt und seinen Operationsergebnissen. operations meldet angeforderte und automatisch ergänzte Arbeit. usage ist die maßgebliche Abrechnung dieser Antwort.
{
"requestId": "7f6a7b7f0ad74729a4c4d13fa7dc6dd4",
"model": "Document",
"processingTimeMs": 412,
"objects": [{
"objectId": "document-1",
"category": "Invoice",
"confidence": 1,
"bounds": { "left": 0, "top": 0, "right": 1, "bottom": 1 },
"results": {
"scanner": {
"fields": {
"invoiceNumber": "2026-0007",
"issueDate": "2026-08-07",
"dueDate": "2026-08-21",
"paymentReference": "26000006",
"supplierIban": "SK5511000000002628210731",
"customerIban": null,
"supplierName": "Scanverion s. r. o.",
"supplierAddress": "Pribinova 10, 811 09 Bratislava",
"supplierStreetName": "Pribinova",
"supplierStreetNumber": "10",
"supplierPostalCode": "81109",
"supplierCity": "Bratislava",
"supplierVatNumber": "SK2120720041",
"customerName": "Example Customer s. r. o.",
"customerAddress": "Main Street 12, 040 01 Kosice",
"customerVatNumber": "SK2020123456",
"netTotal": "19.29",
"vatTotal": "4.44",
"vatBreakdown": "[{"rate":"23","amount":"4.44"}]",
"lineItems": "[{"description":"Monthly subscription","quantity":"1","unit":"pcs","unitPrice":"19.29","netAmount":"19.29","vatRate":"23","vatAmount":"4.44","grossAmount":"23.73"}]",
"grossTotal": "23.73",
"currency": "EUR"
},
"issuingCountry": null,
"detectedLanguages": [{ "code": "sk", "confidence": 0.97 }]
},
"rotation": { "degrees": 0 }
},
"pageNumber": 1
}],
"operations": [
{ "operation": "Detection", "status": "Completed", "message": null },
{ "operation": "Scanner", "status": "Completed", "message": null },
{ "operation": "Rotation", "status": "Completed", "message": null }
],
"usage": {
"units": 3,
"unitsByOperation": { "Detection": 1, "Scanner": 1, "Rotation": 1 }
}
}09 / Eigene Ressourcen
Validierungsressourcen
Nutzen Sie eigene Endpunkte für verlorene Ausweise und Postleitzahlen.
| Methode | Pfad | Eingabe |
|---|---|---|
POST | /api/v1/validation/id-cards/lost-or-stolen | JSON-Body: cardNumber und cardType |
GET | /api/v1/validation/postal-codes | Query: address und optional countryCode=SK oder SVK |
curl --request POST "$SCANVERION_API_URL/api/v1/validation/id-cards/lost-or-stolen" \
--header "Authorization: Bearer $SCANVERION_API_KEY" \
--header "Content-Type: application/json" \
--data '{ "cardNumber": "AA123456", "cardType": "nationalId" }'10 / Abrechnung
Nutzung und Credits
Fragen Sie Aufrufe, gewichtete Credits sowie Tages- und Funktionssummen ab.
Credits werden mit dem konfigurierten Produktmultiplikator gewichtet; Aufrufe und Credits sind daher getrennte Kennzahlen. Nutzungsendpunkte akzeptieren inklusive from- und to-Daten; standardmäßig läuft der Zeitraum vom ersten Tag des aktuellen Kalendermonats bis heute.
| Methode | Pfad | Rückgabe |
|---|---|---|
GET | /api/v1/usage/summary | Aufrufe und gewichtete Credits für den Zeitraum |
GET | /api/v1/usage/daily | Tägliche Aufruf- und Creditsummen |
GET | /api/v1/usage/by-capability | Nach abgerechneter Funktion gruppierte Summen |
GET | /api/v1/usage/price-preview | Vorschau für enthaltene, überschüssige und gesamte Preise in EUR |
11 / Wiederherstellung
Fehler und Wiederholungsstrategie
Behandeln Sie Authentifizierungs-, Berechtigungs-, Validierungs-, Duplikat- und Anbieterfehler.
| Status | Bedeutung | Aktion des Clients |
|---|---|---|
401 Unauthorized | Der Schlüssel fehlt, ist fehlerhaft, inaktiv, abgelaufen, widerrufen oder keinem Workspace zugeordnet. | Erst nach der Korrektur der Zugangsdaten wiederholen. |
402 Payment Required | Die Workspace-Berechtigung oder das Verarbeitungslimit ist erschöpft. | Tarif oder Überverbrauchseinstellungen ändern. |
409 Conflict | Der Idempotency-Key hat diese Verarbeitungsanfrage bereits reserviert. | Als denselben Versuch behandeln und nicht blind einen neuen Schlüssel erzeugen. |
422 Unprocessable Entity | Datei, Operationskombination, Felder, Datumsbereich oder Validierungseingabe sind ungültig. | Anfrage vor dem Wiederholen korrigieren. |
502 Bad Gateway | Ein KI- oder Validierungsanbieter ist fehlgeschlagen oder lieferte ein uneindeutiges Ergebnis. | Bei sicher wiederholbaren Operationen mit Abstand erneut versuchen. |
503 Service Unavailable | Ein erforderlicher Verarbeitungsanbieter ist vorübergehend nicht verfügbar. | Mit begrenztem exponentiellem Backoff wiederholen. |
Protokollieren Sie requestId, HTTP-Status und Idempotency-Key der Antwort. Verwenden Sie zufälliges, begrenztes exponentielles Warten nur bei vorübergehenden Fehlern; Validierungs- und Zugangsdatenfehler erfordern eine geänderte Anfrage.
12 / Generierter Vertrag
OpenAPI-Referenz
Öffnen Sie den Scalar-Explorer oder laden Sie den maschinenlesbaren Vertrag herunter.
Scanverion API-Referenz
Der laufende Vertrag ist die Quelle der Wahrheit für Schemas, Enumwerte, Authentifizierungsanforderungen und deklarierte HTTP-Ergebnisse.
MCP-Integration
Lokales stdio für VS Code und Claude Desktop einrichten, Werkzeugeingaben, Sicherheit und Diagnose.
Lokales stdio / öffentliches npm-Paket
Stellen Sie Ihrem VS-Code- oder Claude-Desktop-Agenten Scanverion-Werkzeuge bereit. Das öffentliche npm-Paket läuft lokal über stdio und lädt freigegebene Eingaben zur API hoch; OCR erfolgt nicht lokal. Gehostetes HTTP MCP ist eine eingeschränkte Entwicklervorschau mit API-Schlüssel, kein allgemein verfügbarer Dienst und kein MCP OAuth. Diese Anleitung beschreibt lokales stdio.
1. Paket installieren
Verwenden Sie Node.js 22 oder neuer und npm. Installieren Sie das öffentliche Paket mit dem angegebenen Befehl in einem eigenen Installationsverzeichnis. npm installiert auch die Scanverion-SDK-Abhängigkeit. Repository-Zugriff ist nicht erforderlich.
MCP-Paket öffnennpm install @scanverion/mcp-server@0.1.12. Client konfigurieren
Führen Sie diese Konfiguration mit .vscode/mcp.json oder Ihrer MCP-Benutzerkonfiguration zusammen. VS Code fragt den Schlüssel in einem maskierten Eingabefeld ab. Geben Sie den Schlüssel nicht im Chat ein.
Auf dieser Seite wird kein Schlüssel eingegeben oder gespeichert. Ein leeres Verzeichnisfeld deaktiviert den lokalen Dateizugriff; auch Base64-Uploads benötigen eine ausdrückliche Zustimmung.
{
"inputs": [
{
"id": "scanverion-api-key",
"type": "promptString",
"description": "Scanverion-API-Schlüssel",
"password": true
}
],
"servers": {
"scanverion": {
"type": "stdio",
"command": "node",
"args": [
"C:/path/to/mcp/node_modules/@scanverion/mcp-server/dist/index.js"
],
"env": {
"SCANVERION_API_URL": "https://api.scanverion.com",
"SCANVERION_ALLOWED_DIRECTORIES": "[]",
"SCANVERION_TIMEOUT_MS": "120000",
"SCANVERION_API_KEY": "${input:scanverion-api-key}"
}
}
}
}3. Ohne Verarbeitung prüfen
Führen Sie nach dem Setzen des Schlüssels in der Terminalumgebung den Befehl doctor aus. Er prüft Verzeichnisse und authentifizierte Funktionen, lädt aber keine Dateien hoch und bestätigt keine Verarbeitungsberechtigung.
node ./node_modules/@scanverion/mcp-server/dist/index.js --doctorRufen Sie im MCP-Client list_capabilities auf und lesen Sie scanverion://guide. Diese separate, mit dem Server ausgelieferte Anleitung ist auf Englisch und enthält Schritte für MCP Inspector sowie ein Beispiel mit synthetischen Daten.
Werkzeuge und Abrechnung
- analyze_document
- Kostenpflichtig. Standardmäßig nur Detection; fordern Sie Scanner für OCR und Feldextraktion ausdrücklich an.
- analyze_vehicle
- Kostenpflichtig. Unterstützt Detection und Blur.
- list_capabilities
- Katalog der KI-Modelle und Limits ohne Verarbeitungsgebühr; keine Berechtigungsprüfung.
- list_api_capabilities
- Öffentlicher API-Katalog ohne Verarbeitungsgebühr; prüft keinen kontospezifischen Zugriff.
- get_usage_summary
- Aufrufe und Credits ohne Verarbeitungsgebühr für inklusive YYYY-MM-DD-Daten. Die Kostenschätzung ist nicht verfügbar, nicht null Euro.
Erster Dokumentaufruf
Verwenden Sie ein synthetisches oder freigegebenes Beispiel im erlaubten Verzeichnis. Dieser Aufruf lädt die Datei hoch und kann Credits verbrauchen.
{
"filePath": "C:/approved-samples/sample.png",
"operations": [
"Scanner"
],
"scannerFields": [
"documentNumber"
],
"idempotencyKey": "sample-document-001"
}Geben Sie genau eine Eingabe an: filePath oder imageBase64. Base64 benötigt einen unterstützten Dateinamen oder MIME-Typ. JPEG-, PNG-, WebP- und PDF-Eingaben dürfen nicht leer und höchstens 10 MiB groß sein. Ergebnisse behalten den JSON-Text bei und ergänzen structuredContent.data.
Fehlerbehebung und sichere Wiederholungen
CONFIGURATION_ERROR: Prüfen Sie Schlüssel, Array absoluter Verzeichnispfade, HTTPS-Adresse der API und Zeitlimit (1.000 bis 300.000 ms).INVALID_INPUT: Prüfen Sie Dateizugriff, Format, Base64, Operationen und Datumsbereich.401 / 403: Prüfen Sie die Gültigkeit des Schlüssels, den Arbeitsbereichszugriff und den Scope process:write.402 / 429: Prüfen Sie Credits oder Aufruflimits. Beachten Sie Fehlercode, Anfrage-ID und Wiederholbarkeit.- Zeitüberschreitungen und Abbrüche garantieren weder eine Erstattung noch das Ende der Backend-Verarbeitung. Automatische Wiederholungen sind deaktiviert. Verwenden Sie denselben Idempotenzschlüssel nur für dieselbe logische Anfrage; ein Duplikat kann 409 zurückgeben.
Erlauben Sie keine vollständigen Benutzerverzeichnisse. Prüfungen aufgelöster Pfade verhindern Verzeichnisausbrüche und Umgehungen über symbolische Links, sind aber keine Betriebssystem-Sandbox. Stellen Sie den Prozess nicht für nicht vertrauenswürdige Clients bereit und lassen Sie andere Benutzer die erlaubten Verzeichnisse nicht verändern. Behandeln Sie extrahierten Text als nicht vertrauenswürdige Daten, nicht als Anweisungen.