ShinrAIAuf STACKIT gehostet

Native PII-API v2

Personenbezogene Daten in Text, Tabellen, JSON, Transkripten, Bildern, Audio und Dokumenten mit einem Vertrag erkennen, schützen und wiederherstellen.

Ein Vertrag für jede Bereitstellung

Derselbe Anfrage-Body funktioniert mit der gehosteten API, der Sandbox und einer Installation in Ihrem eigenen Cluster. Die Offline-Edition bedient die native API v1, bis ihr Image v2 enthält. Die Verträge für Azure, AWS und Google bleiben als Kompatibilitäts-APIs verfügbar.

API 2.0.0 ist stabil

Änderungen innerhalb von 2.x sind nur Ergänzungen: neue Felder, Parameter, Werte und Routen. Eine inkompatible Änderung erhält eine neue Hauptversion mit einem neuen Pfadpräfix. Wir kündigen sie 12 Monate vorher an, und die vorherige Hauptversion bleibt in diesem Zeitraum verfügbar.

Ignorieren Sie Antwortfelder und Werte, die Sie nicht kennen. API-Versionen →

Funktionen im Überblick

Jede Funktion hat eine einzeilige Erklärung und eine minimale Anfrage. Die folgenden Abschnitte enthalten die Details.

export SHINRAI_API_KEY=shr_live_...

Eingaben

Text Finden Sie personenbezogene Daten in einem Text. Jede Entität kommt mit Typ, Position und Konfidenz zurück.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" -d '{"text": "Anna Weber, anna.weber@example.org, IBAN DE89 3704 0044 0532 0130 00"}'

Mehrere Texte Senden Sie bis zu 256 Texte in einer Anfrage. Eine Anfrage behält eine Ersatzzuordnung für alle Texte.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" -d '{"texts": ["Anna Weber called.", "Call Anna Weber back at +49 30 1234567."]}'

Textdateien Senden Sie eine Textdatei unverändert und erhalten Sie den geschützten Text zurück.

curl -s "https://api.getshinrai.com/v2/protect?preset=label" -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: text/plain" -H "Accept: text/plain" --data-binary @letter.txt

Tabellen Schützen Sie Zeilen und Spalten. Jede Entität nennt ihre Zeile und Spalte.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"inputs": [{"kind": "table", "columns": [{"name": "name"}, {"name": "email"}], "rows": [["Anna Weber", "anna@example.org"]]}]}'

JSON Schützen Sie jede Zeichenkette in einem JSON-Wert, zum Beispiel in einem Tool-Aufruf. Jede Entität trägt einen JSON Pointer auf ihre Zeichenkette.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"inputs": [{"kind": "json", "value": {"customer": {"name": "Anna Weber", "email": "anna@example.org"}}}]}'

Transkripte Senden Sie ein Transkript mit Zeitangaben pro Wort. Jede Entität kommt mit den Zeitangaben ihrer Wörter zurück.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"inputs": [{"kind": "transcript", "forms": {"display": "Call Anna Weber"}, "atoms_form": "display", "time_unit": "ms",
       "atoms": [{"text": "Call", "t0": 0, "t1": 300}, {"text": "Anna", "t0": 350, "t1": 600}, {"text": "Weber", "t0": 600, "t1": 950}]}]}'

Seiten Senden Sie den Text einer Seite mit den Wortboxen aus Ihrer eigenen OCR oder der PDF-Textebene. Jede Entität kommt mit ihren Boxen zurück.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"inputs": [{"kind": "page", "text": "Anna Weber", "box_unit": "px",
       "atoms": [{"start": 0, "end": 4, "page": 1, "box": [10, 20, 40, 12]}, {"start": 5, "end": 10, "page": 1, "box": [54, 20, 50, 12]}]}]}'

Bilder Finden Sie personenbezogene Daten in einem Screenshot oder Scan. Die OCR liest 14 Sprachen, und jede Entität kommt mit Pixelboxen zurück.

curl -s "https://api.getshinrai.com/v2/detect?language=de" -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: image/png" --data-binary @screenshot.png

Geschwärzte Bilder Erhalten Sie das geschwärzte Bild zurück, in dem jede Entität schwarz gefüllt ist.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: image/png" -H "Accept: image/png" --data-binary @screenshot.png -o redacted.png

Audio Senden Sie eine Aufnahme von bis zu 5 Minuten und erhalten Sie sie zurück, in der jede personenbezogene Angabe überpiept ist.

curl -sS "https://api.getshinrai.com/v2/protect?language=de" -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: audio/mpeg" -H "Accept: audio/wav" --data-binary @call.mp3 -o call.redacted.wav

Audio-Transkripte Erhalten Sie das Transkript einer Aufnahme und die Zeitangaben jeder Entität, ohne das Audio.

curl -sS "https://api.getshinrai.com/v2/detect?language=de" -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: audio/mpeg" --data-binary @call.mp3

Erkennung

Sprache und Modell Legen Sie für die besten Ergebnisse die Sprache fest, und fixieren Sie eine Modellversion, wenn Sie über längere Zeit dieselben Ergebnisse brauchen.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber wohnt in Darmstadt.", "detection": {"language": "de", "model": "latest"}}'

Typen Schließen Sie Typen über ihre ShinrAI-Namen oder über die Namen von Google, AWS, Azure oder Presidio ein oder aus.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber, anna@example.org, +49 30 1234567", "detection": {"types": {"include": ["EMAIL_ADDRESS", "PHONE_NUMBER"], "vocabulary": "google"}}}'

Mindestkonfidenz Legen Sie eine Mindestkonfidenz für alle Typen, pro Typ oder pro Sprache fest.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber, Darmstadt", "detection": {"thresholds": {"default": 0.5, "per_type": {"CITY": 0.8}}}}'

Ignorierte Werte und eigene Werte Lassen Sie Werte wie Ihren Firmennamen nie melden, und finden Sie eigene Werte mit einem Typ.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Innovius support: case K-4711 for Anna Weber", "detection": {"exclude_values": {"values": ["Innovius"]},
       "custom": {"user_values": [{"value": "K-4711", "type": "CUSTOMER_ID"}]}}}'

Eigene Bereiche Schützen Sie die Bereiche, die Ihr eigener Detektor gefunden hat, allein oder zusammen mit der ShinrAI-Erkennung.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"inputs": [{"kind": "text", "text": "Ticket for Anna Weber", "entities": [{"type": "PERSON", "span": {"start": 11, "end": 21}}]}],
       "detection": {"mode": "provided"}}'

Lange Texte Wählen Sie, wie das Modell einen langen Text liest: automatisch, Satz für Satz oder am Stück.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber called. She lives in Darmstadt.", "detection": {"spans": {"segment": "sentence"}}}'

Schutz

Pseudonymisierung Pseudonymisieren Sie und behalten Sie die Zuordnung, damit Sie eine Antwort später wiederherstellen können.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber lives in Darmstadt.", "policy": {"preset": "pseudonymize"}, "output": {"include": ["entities", "mapping"]}}'

Labels und Masken Ersetzen Sie jeden Wert durch ein nummeriertes Label wie [PERSON_1], oder maskieren Sie ihn mit einem Zeichen.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber, anna@example.org", "policy": {"preset": "label", "rules": [{"types": ["EMAIL"], "action": "mask", "mask": {"char": "*"}}]}}'

Teilwerte und verallgemeinerte Werte Behalten Sie die E-Mail-Domain und die letzten vier Ziffern einer Karte, und verallgemeinern Sie Namen und Orte.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber aus Biberach, anna@example.org, Karte 4111 1111 1111 1111", "language": "de",
       "policy": {"default": {"action": "generalize"}, "rules": [{"types": ["EMAIL", "CREDIT_CARD"], "action": "partial"}]}}'

Regeln pro Typ Wählen Sie eine Aktion pro Typ: durch einen festen Text ersetzen, entfernen oder behalten.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber from Darmstadt, +49 30 1234567, anna@example.org", "policy": {"preset": "pseudonymize",
       "rules": [{"types": ["PHONE"], "action": "replace", "replace": {"value": "[phone]"}}, {"types": ["EMAIL"], "action": "remove"},
                 {"types": ["CITY"], "action": "keep"}]}}'

Ausgaben

Annotationen Erhalten Sie Jahre, Beträge, Rechtsverweise und Bias-Begriffe als Annotationen. Protect ändert sie nie.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "In 2019 Anna Weber paid 1,200 EUR.", "output": {"include": ["entities", "annotations"]}}'

Verknüpfungsrisiko Schätzen Sie, wie wahrscheinlich ein Text eine Person herausgreift. Es ist eine Heuristik, keine Zählung.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "The 34-year-old head surgeon from Biberach joined in 2019.", "output": {"include": ["entities", "linkage_risk"]}}'

Offsets, Texte und Statistiken Erhalten Sie Positionen in UTF-16 oder UTF-8, die Entitätstexte, Statistiken und eine kürzere Entitätenliste.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber, anna@example.org", "output": {"offset_unit": "utf16", "include_text": true, "include": ["entities", "stats"], "max_entities": {"per_input": 10}}}'

Wiederherstellung und Sitzungen

Wiederherstellung Stellen Sie einen Text wieder her, der die Ersatzwerte enthält. Senden Sie die Einträge aus mapping.delta als Paare aus Original und Ersatz.

curl -s https://api.getshinrai.com/v2/restore -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mapping": {"known": [{"original": "Anna Weber", "replacement": "Julia Brandt"}]}, "inputs": [{"id": "1", "text": "Julia Brandt replied."}]}'

Wiederherstellungstabellen Kompilieren Sie eine Zuordnung in eine Wiederherstellungstabelle und stellen Sie in Ihrem eigenen Code wieder her, zum Beispiel in einer gestreamten Modellantwort.

curl -s https://api.getshinrai.com/v2/restore-tables -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"mapping": {"known": [{"original": "Anna Weber", "replacement": "Julia Brandt"}]}}'

Einzelner Ersatz Erhalten Sie einen Ersatz für einen Wert und Typ Ihrer Wahl.

curl -s https://api.getshinrai.com/v2/replacements -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"value": "Anna Weber", "type": "PERSON", "language": "de"}'

Sitzungen Behalten Sie mit einer Sitzung (standardmäßig 24 Stunden ab Erstellung) eine Zuordnung über viele Anfragen, und exportieren Sie sie danach.

SESSION=$(curl -s -X POST https://api.getshinrai.com/v2/sessions -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" -d '{"ttl_s": 3600}' | python3 -c 'import sys, json; print(json.load(sys.stdin)["id"])')
curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" -d '{"text": "Anna Weber called.", "mapping": {"session": "'$SESSION'"}}'
curl -s https://api.getshinrai.com/v2/sessions/$SESSION/mapping -H "Authorization: Bearer $SHINRAI_API_KEY"

Bekannte Paare Geben Sie frühere Paare an eine neue Anfrage, damit dieselben Werte dieselben Ersatzwerte behalten.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber called again.", "mapping": {"known": [{"original": "Anna Weber", "replacement": "Julia Brandt"}]}}'

Jobs

Textstapel Schützen Sie bis zu 20.000 Texte aus einer JSONL-Datei im Hintergrund, zum halben Preis.

UPLOAD=$(curl -s https://api.getshinrai.com/v2/uploads -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/x-ndjson" --data-binary @rows.jsonl | python3 -c 'import sys, json; print(json.load(sys.stdin)["id"])')
curl -s https://api.getshinrai.com/v2/jobs -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"kind": "text_batch", "inputs": [{"kind": "file", "source": {"upload": "'$UPLOAD'"}}]}'

Dokumente Erhalten Sie eine PDF- oder Word-Datei als geschwärztes PDF zurück, zusammen mit ihrem geschützten Text.

UPLOAD=$(curl -s https://api.getshinrai.com/v2/uploads -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/pdf" --data-binary @contract.pdf | python3 -c 'import sys, json; print(json.load(sys.stdin)["id"])')
curl -s https://api.getshinrai.com/v2/jobs -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"kind": "document", "inputs": [{"kind": "file", "source": {"upload": "'$UPLOAD'"}}]}'

Lange Aufnahmen Überpiepen Sie eine Aufnahme von bis zu 60 Minuten im Hintergrund.

UPLOAD=$(curl -s https://api.getshinrai.com/v2/uploads -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: audio/mpeg" --data-binary @meeting.mp3 | python3 -c 'import sys, json; print(json.load(sys.stdin)["id"])')
curl -s https://api.getshinrai.com/v2/jobs -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Content-Type: application/json" \
  -d '{"kind": "audio", "inputs": [{"kind": "audio", "source": {"upload": "'$UPLOAD'"}, "language": "de"}]}'

Stufen, Wiederholungen und Konto

Stufen Wählen Sie Echtzeit für kleine Eingaben mit geringer Latenz oder Batch zum halben Preis.

curl -s "https://api.getshinrai.com/v2/detect?tier=realtime" -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: text/plain" --data-binary 'Call Anna Weber at +49 30 1234567.'

Sichere Wiederholungen Wiederholen Sie die Anfrage mit demselben Idempotency-Key. Der Dienst berechnet die Anfrage einmal.

curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" -H "Idempotency-Key: order-4711" \
  -H "Content-Type: application/json" -d '{"text": "Anna Weber, order 4711"}'

Fähigkeiten Was diese Bereitstellung bedient: Modelle, Sprachen, Eingabearten, die Stufen, die Ihr Tarif erlaubt, und Grenzen.

curl -s https://api.getshinrai.com/v2/capabilities -H "Authorization: Bearer $SHINRAI_API_KEY"

Typenliste Listen Sie jeden Typ mit seiner Beschreibung und den Namen von Google, AWS, Azure und Presidio auf.

curl -s https://api.getshinrai.com/v2/types -H "Authorization: Bearer $SHINRAI_API_KEY"

Nutzung Ihr Guthaben und die letzten 30 Tage.

curl -s https://api.getshinrai.com/v2/usage -H "Authorization: Bearer $SHINRAI_API_KEY"

OpenAPI Erhalten Sie das vollständige OpenAPI 3.1-Dokument der API v2.

curl -s https://api.getshinrai.com/v2/openapi.json -o shinrai-pii-api-v2.json

Mit den Fähigkeiten beginnen

Lesen Sie die Fähigkeiten einmal beim Start. Sie nennen die Modelle, Sprachen, Eingabearten, Stufen und Grenzen Ihrer Bereitstellung.

curl -s https://api.getshinrai.com/v2/capabilities -H "Authorization: Bearer $SHINRAI_API_KEY"

Jede Eingabeart senden

Ein einfacher Text braucht keine Hülle. Senden Sie eine Textdatei, ein Bild oder eine Aufnahme direkt als Anfrage-Body und die Optionen im Query-String.

EingabeSo senden Sie sieHinweise
Text{"text": "..."} oder text/plainJSON oder die Rohdatei senden
Tabellen"kind": "table"Spalten und Zeilen
JSON"kind": "json"Alle Zeichenketten des Werts
Transkripte"kind": "transcript"Formen und Wortatome mit Zeitangaben
Seiten"kind": "page"Text plus Wortboxen aus Ihrer eigenen OCR oder der PDF-Textebene
Bilderimage/png, image/jpeg, image/bmp, image/tiff, image/webpBis 6 MiB: OCR, Pixelboxen pro Entität und das geschwärzte Bild
Audioaudio/wav, audio/mpeg, audio/ogg, audio/flac, audio/mp4, audio/aac, audio/webmBis 5 Minuten und 12 MiB: Zeitintervalle pro Entität und die überpiepte Aufnahme
DokumentePOST /v2/jobsPDF und DOCX über einen Job: das geschwärzte PDF und der geschützte Text

Text erkennen, schützen und wiederherstellen

Die meisten Integrationen beginnen mit Text. Detect findet die personenbezogenen Daten. Protect liefert den Text mit jeder Entität ersetzt. Restore setzt die Originalwerte in einen späteren Text wieder ein, zum Beispiel in eine Modellantwort.

curl -s https://api.getshinrai.com/v2/detect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" -d '{"text": "Anna Weber, anna.weber@example.org, IBAN DE89 3704 0044 0532 0130 00"}'
curl -s https://api.getshinrai.com/v2/protect -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Anna Weber lives in Darmstadt.", "policy": {"preset": "pseudonymize"}, "output": {"include": ["entities", "mapping"]}}'
curl -s https://api.getshinrai.com/v2/restore -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mapping": {"known": [{"original": "Anna Weber", "replacement": "Julia Brandt"}]}, "inputs": [{"id": "1", "text": "Julia Brandt replied."}]}'

Was ist semantische Verschlüsselung?

ShinrAI bezeichnet seine kontexterhaltende, reversible Ersetzung als semantische Verschlüsselung. Sie ist eine Form der Pseudonymisierung: Sensible Werte werden durch nutzbare Alternativen ersetzt. Ihre Anwendung kann die Originale über ihre Zuordnung wiederherstellen.

Schützen Sie die Zuordnung als sensible Daten und halten Sie sie aus KI-Prompts heraus. Realistische Ersetzungen bedeuten weder, dass jedes Wort kryptografisch verschlüsselt ist, noch dass der Text automatisch anonym ist.

Sprachen und Datenkategorien · Modell-Changelog · ShinrAI vergleichen

Schutzart wählen

Eine Voreinstellung legt eine Richtlinie für alle Typen fest. Regeln legen eine Aktion pro Typ fest.

EinstellungWerte
Voreinstellungpseudonymize, mask, label, strict
Aktion pro Typsurrogate, label, mask, partial, generalize, replace, remove, keep
  • Pseudonymize schreibt realistische Ersatzwerte, die Sie wiederherstellen können.
  • Partial behält, was nicht identifiziert: die E-Mail-Domain, die Ländervorwahl, die letzten vier Ziffern einer Karte oder eines Kontos, das Jahr eines Datums.
  • Generalize schreibt eine Umschreibung für die Art des Namens, Orts oder der Organisation, in der Sprache der Eingabe.
  • Partial und generalize sind nicht umkehrbar.

Erkennung steuern

  • Legen Sie eine Mindestkonfidenz für alle Typen, pro Typ oder pro Sprache fest.
  • Schließen Sie Typen über ihre kanonischen Namen oder über die Namen von Google, AWS, Azure oder Presidio ein oder aus.
  • Schließen Sie Werte aus, die nie gemeldet werden dürfen, etwa Ihren Firmennamen, oder fügen Sie eigene Werte hinzu.
  • Senden Sie die Bereiche Ihres eigenen Detektors, allein oder zusammen mit der ShinrAI-Erkennung.
  • Fordern Sie Annotationen an: Jahre, Beträge, Rechtsverweise und Bias-Begriffe. Protect ändert sie nie.
  • Fordern Sie das Verknüpfungsrisiko an: eine Schätzung, wie wahrscheinlich eine Eingabe eine Person herausgreift. Es ist eine Heuristik, keine Zählung.

Wiederherstellen und eine Zuordnung behalten

Fordern Sie die Zuordnung an, wenn Sie eine Antwort später wiederherstellen müssen. Die Zuordnung enthält die Originalwerte. Speichern Sie sie als sensible Anwendungsdaten und halten Sie sie aus Modell-Prompts heraus.

  • Innerhalb einer Anfrage behält ein Wert einen Ersatzwert.
  • Die nächste Anfrage zieht neue Ersatzwerte. Wiederholte Anfragen können Ersatzwerte daher nicht auf Originale zurückführen.
  • Für dieselben Ersatzwerte über mehrere Anfragen verwenden Sie eine Sitzung oder senden die früheren Paare als bekannte Zuordnungen.
  • Kontoweite Konsistenz ist als Option verfügbar. Sie ist schwächer: Jeder mit dem Schlüssel kann dann durch Wiederholung eine Tabelle der Originale aufbauen.
  • Andere Kunden erhalten immer andere Ersatzwerte.
  • Mit Wiederherstellungstabellen stellen Sie in Ihrem eigenen Code wieder her, zum Beispiel in einer gestreamten Modellantwort.

Eine Sitzung hält eine Zuordnung auf dem Server. Sie besteht höchstens 24 Stunden ab ihrer Erstellung, mit der Einstellung für erweiterte Sitzungen Ihres Kontos bis zu 7 Tage. Die Zuordnung wird verschlüsselt gespeichert, und nur Ihr Schlüssel kann sie lesen.

Screenshots und Scans schützen

  • Die OCR liest jede Sprache, die das Modell bedient. Senden Sie bei arabischen, hebräischen, japanischen und koreanischen Bildern die Sprache mit.
  • Jede Entität kommt mit Pixelboxen zurück, eine pro Textzeile oder eine pro Wort.
  • Protect liefert das Bild mit gefüllten Bereichen zurück.
  • Die Echtzeitstufe nimmt ein Bild pro Anfrage an, bis 4,2 Megapixel und 3 MiB.

Audio schützen

  • Senden Sie eine Aufnahme von bis zu 5 Minuten und 12 MiB als Body einer detect- oder protect-Anfrage in der Standardstufe.
  • Protect liefert die Aufnahme als WAV zurück, in der jede personenbezogene Angabe überpiept ist. Fordern Sie Stille statt des Tons an, und verbreitern Sie bei Bedarf die stummgeschalteten Intervalle.
  • Fordern Sie JSON an, um das geschützte Transkript und die Zeitangaben jeder Entität statt Audio zu erhalten.
  • Senden Sie die Sprache mit: Die Spracherkennung und die Erkennung lesen dann die richtige Sprache.
  • Audio kostet die Records seines Transkripts, mindestens 10 Records pro angefangene Minute.
  • Pro Konto läuft jeweils eine Audio-Anfrage. Aufnahmen bis 60 Minuten laufen als Job.
  • Ein Wort, das die Spracherkennung falsch versteht und das Modell dann übersieht, bleibt hörbar. Hören Sie sensible Aufnahmen an, bevor Sie sie teilen.

Große Stapel, Dokumente und Aufnahmen als Jobs ausführen

Verwenden Sie einen Job, wenn die Arbeit für eine Anfrage zu groß ist: viele Texte, eine PDF- oder Word-Datei oder eine lange Aufnahme. Ein Job läuft im Hintergrund mit dem Batch-Gewicht und hält seine Ergebnisse 24 Stunden bereit.

  1. Laden Sie eine JSONL-Datei mit einer Eingabe pro Zeile, eine PDF- oder DOCX-Datei oder eine Aufnahme hoch.
  2. Starten Sie den Job mit der Upload-ID.
  3. Fragen Sie den Job-Status ab und laden Sie die Artefakte herunter.
{"custom_id": "row-1", "text": "Anna Schmidt, anna@example.com"}
{"custom_id": "row-2", "text": "Call +49 30 1234567", "language": "de"}
{"custom_id": "row-3", "input": {"kind": "table", "columns": [{"name": "email"}], "rows": [["max@example.org"]]}}
curl -s https://api.getshinrai.com/v2/uploads \
  -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/x-ndjson" \
  --data-binary @rows.jsonl
curl -s https://api.getshinrai.com/v2/jobs \
  -H "Authorization: Bearer $SHINRAI_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: rows-2026-09-28" \
  -d '{"kind": "text_batch",
       "inputs": [{"kind": "file", "source": {"upload": "up_..."}}],
       "output": {"artifacts": ["protected", "entities"]}}'
curl -s https://api.getshinrai.com/v2/jobs/$JOB -H "Authorization: Bearer $SHINRAI_API_KEY"

Ein Upload wird gelöscht, sobald der letzte Job endet, der ihn liest. Hängen Sie ?keep=true an den Upload an, wenn mehrere Jobs ihn lesen: Er besteht dann 24 Stunden, und jeder Job, der ihn liest, verlängert diese Frist. Das Löschen eines Jobs löscht auch einen behaltenen Upload, sobald kein anderer Job ihn mehr liest. Löschen Sie einen Job, um seine Ergebnisse vor Ablauf der 24 Stunden zu entfernen.

Ein Dokumentjob liefert das geschwärzte PDF, den geschützten Text und die Entitäten. Ein Audiojob liefert das geschwärzte WAV, das geschützte Transkript und die Entitäten mit ihren Zeitangaben.

Leitfaden zu Dokumentjobs →

Grenzen

Die gehostete API wendet diese Grenzen an. Die Fähigkeiten liefern die Werte Ihrer Bereitstellung.

GrenzeStandardEchtzeitBatchJobs
Eingaben pro Anfrage64420020.000 Zeilen
Zeichen pro Eingabe200.0004.000200.000200.000
Anfrage-Body12 MiB12 MiB12 MiB50-MB-Upload
Bild6 MiB4,2 Megapixel, 3 MiB6 MiBNicht angeboten
Audio5 Minuten, 12 MiBNicht angebotenNicht angeboten60 Minuten, 50 MB
DokumentNicht angebotenNicht angebotenNicht angebotenPDF oder DOCX, 10 MB

Eine Anfrage über einer Grenze antwortet mit 413 und wird nicht berechnet. Ihr Tarif legt die nutzbaren Stufen und die Anzahl der Anfragen pro Minute fest.

Stufen, Wiederholungen und Nutzung

API-StufeGewichtGeeignet für
Standard×1Standardwert
Batch×0.5Halber Preis, niedrigste Priorität
Echtzeit×1.6Kleine Eingaben und geringe Latenz, ab Tarif Team
  • Senden Sie einen Idempotency-Key-Header, um sicher zu wiederholen. Eine Wiederholung mit demselben Schlüssel und Body wird einmal berechnet.
  • Wiederherstellung, Sitzungen, Fähigkeiten, Typen und Nutzung sind kostenlos.
  • Fehlgeschlagene Aufrufe werden nicht berechnet.

Fehler

Jeder Fehler hat einen Code, eine Meldung, die Anfrage-ID und die Angabe, ob eine Wiederholung gelingen kann. Validierungsfehler zeigen mit einem JSON Pointer auf das Feld und wiederholen nie Ihre Daten.

  • Wiederholen Sie nur, wenn der Fehler angibt, dass eine Wiederholung gelingen kann, und warten Sie die Zeit im Retry-After-Header ab.
  • Ein Fehler wegen einer Grenze nennt die Grenze. Bei Audio verweist er auf die Job-Route.
  • Eine Option, die Ihre Bereitstellung noch nicht bedient, antwortet mit 501.

Referenz