API Documentation
ISO 27001SOC 2 CertifiedGDPR Compliant

KI-PDF-Erkennungs-API

Vollständige Dokumentation zur Integration der TruthScan KI-PDF-Erkennungs-API in Ihre Anwendungen.

Testen Sie die API ohne Code, indem Sie unseren FastAPI-Endpunkt besuchen: https://detect-text.truthscan.com/docs

Preise & Credits

Die PDF-Erkennung zieht 1.000 Credits pro Seite ab (z. B. verbraucht ein 5-seitiges PDF 5.000 Credits).

Prüfen Sie Ihr Guthaben mit GET /check-user-credits. Preispläne anzeigen

Authentifizierung

TruthScan verwendet API-Schlüssel, um den Zugriff auf die API zu ermöglichen. Sie können Ihren API-Schlüssel oben auf der Seite in unserem Entwicklerportal.

Für Anfragen nach vorsignierten Upload-URLs (`GET /get-presigned-url`) fügen Sie Ihren API-Schlüssel im Header `apikey` hinzu.

Für PDF-Erkennungsanfragen (`POST /detect-pdf`) fügen Sie Ihren API-Schlüssel im JSON-Body als `key` hinzu.

Sie müssen YOUR API KEY GOES HERE durch Ihren persönlichen API-Schlüssel ersetzen.

PDF-Detektor

Der PDF-Detektor analysiert hochgeladene PDF-Dokumente auf Anzeichen von KI-Generierung und digitaler Manipulation. PDFs werden asynchron verarbeitet: laden Sie die Datei hoch, senden Sie sie über `/detect-pdf` zur Erkennung und fragen Sie dann die Ergebnisse ab.

Der Detektor führt mehrere Analysemodule für jedes Dokument aus. Standardmäßig laufen alle Module. Sie können die auszuführenden Module über den Parameter `modules` in der Anfrage wählen:

  • Metadaten: metadata

    Prüft Dokumentmetadaten auf Manipulationsartefakte von KI- oder digitalen Bearbeitungswerkzeugen.

  • Struktur: structure

    Untersucht das Dokument auf digitale Bearbeitungen wie versteckte Textebenen.

Modellauswahl

Senden Sie `model` im Anfragekörper als einen der folgenden Werte. Jeder andere Wert gibt 400 Bad Request zurück.

  • pdf_detector: Neueste Version (derzeit `pdf_detector/v5`). Entspricht dem Weglassen von `model`.
  • pdf_detector/v1: Erkennt, ob das PDF mit einem KI-Tool erzeugt wurde, anhand von PDF-Metadaten.
  • pdf_detector/v3: Prüft auf digitale Bearbeitungen und Anzeichen KI-generierter Dokumente.
  • pdf_detector/v4: Prüft auf digitale Bearbeitungen und Anzeichen KI-generierter Dokumente, mit verbesserter Gesamtleistung gegenüber v3.
  • pdf_detector/v5: Neuester Detektor. Führt Metadaten- und Strukturanalyse aus.

Modulauswahl

Senden Sie `modules` im Anfragekörper als einen der folgenden Werte.

  • []: Alle Module (Standard). Entspricht dem Weglassen von `modules`.
  • ["metadata"]: Nur Metadatenanalyse.
  • ["structure"]: Nur Strukturanalyse.

Ablauf

  • Vorsignierte Upload-URL abrufen: `GET /get-presigned-url`
  • PDF hochladen: `PUT` der Dateibytes an die vorsignierte URL
  • Zur Erkennung einreichen: `POST /detect-pdf`
  • Ergebnisse abfragen: `POST /query` mit der zurückgegebenen Dokument-`id`, bis `status` `done` ist

Dateianforderungen

Dateien müssen im Format `.pdf` sein, höchstens 2 MB groß und unter der angegebenen URL öffentlich erreichbar.

Kreditabzug

Die PDF-Erkennung verbraucht 1.000 Credits pro Seite, unabhängig von den ausgewählten Modulen. Ein 5-seitiges PDF kostet 5.000 Credits. Prüfen Sie Ihren Kontostand mit `GET /check-user-credits`, bevor Sie große Dokumente einreichen.

Schritt 1 : Vorsignierte Upload-URL abrufen

Fordern Sie eine vorsignierte Upload-URL an, bevor Sie ein PDF zur Erkennung einreichen. `file_name` (erforderlich): der PDF-Dateiname (muss auf `.pdf` enden). `expiration` (optional): Ablaufzeit der URL in Sekunden (Standard: 3600).

Header

Fügen Sie Ihren API-Schlüssel im Header `apikey` hinzu.

GET https://detect-text.truthscan.com/get-presigned-url

Beispielanfrage

curl -X 'GET' \
  'https://detect-text.truthscan.com/get-presigned-url?file_name=report.pdf&expiration=3600' \
  -H 'accept: application/json' \
  -H 'apikey: YOUR-API-KEY-GOES-HERE'

Laden Sie die Datei per PUT an die `presigned_url` aus der Antwort hoch, bevor Sie `/detect-pdf` aufrufen.

Beispielantwort

{
    "status": "success",
    "presigned_url": "https://...digitaloceanspaces.com/...?X-Amz-Algorithm=...",
    "file_path": "userId_20250604120000_report.pdf"
}

Schritt 2 : PDF hochladen

Verwenden Sie die bereitgestellte `presigned_url`, um Ihr PDF per `PUT`-Anfrage hochzuladen.

Beispielanfrage

curl -X PUT 'https://nyc3.digitaloceanspaces.com/ai-detector-prod/uploads/581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_report.pdf...' \
  --header 'Content-Type: application/pdf' \
  --header 'x-amz-acl: private' \
  --data-binary '@report.pdf'

Schritt 3 : Zur Erkennung einreichen

Reichen Sie ein PDF ein, das bereits in den Object Storage hochgeladen wurde.

Anfragekörper

  • url (erforderlich): Object-Storage-URL des hochgeladenen PDFs (`presigned_url`-Host + `file_path`).
  • key (erforderlich): Ihr API-Schlüssel.
  • model: Das zu verwendende Detektormodell. Standard ist `pdf_detector` (neueste). Unterstützte versionierte Werte sind `pdf_detector/v1`, `pdf_detector/v3`, `pdf_detector/v4` und `pdf_detector/v5`.
  • modules: Array der auszuführenden Module: `["metadata"]`, `["structure"]` oder `["metadata", "structure"]`. Weglassen oder `[]` senden, um alle auszuführen. Gilt für v4 und v5; wird bei Legacy-Versionen ignoriert.
POST https://detect-text.truthscan.com/detect-pdf

Beispielanfrage : alle Module (Standard)

curl -X 'POST' \
  'https://detect-text.truthscan.com/detect-pdf' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "https://your-bucket.region.digitaloceanspaces.com/userId_20250604120000_report.pdf",
  "key": "YOUR-API-KEY-GOES-HERE"
}'

Beispielanfrage : nur Metadaten

curl -X 'POST' \
  'https://detect-text.truthscan.com/detect-pdf' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "url": "https://your-bucket.region.digitaloceanspaces.com/userId_20250604120000_report.pdf",
  "key": "YOUR-API-KEY-GOES-HERE",
  "modules": ["metadata"]
}'

Beispielantwort

{
    "id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
    "model": "pdf_detector",
    "result": null,
    "result_details": null,
    "status": "pending",
    "retry_count": 0
}

Die Antwort enthält eine Dokument-`id`. Verwenden Sie sie, um Ergebnisse über `POST /query` abzufragen. Die Verarbeitung ist in der Regel in wenigen Sekunden abgeschlossen.

Schritt 4 : Ergebnisse abfragen

Verwenden Sie den Endpunkt `/query` (derselbe wie bei der Texterkennung), um Status und Ergebnisse abzurufen. Das Antwortformat hängt vom für den Job verwendeten `model` ab. Fragen Sie ab, bis `status` `done` ist.

POST https://detect-text.truthscan.com/query

Beispielanfrage

curl -X 'POST' \
  'https://detect-text.truthscan.com/query' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "id": "DOCUMENT-ID-FROM-STEP-3"
}'

Beispielantwort : manipuliertes Dokument

{
    "id": "594502f3-5474-4d2f-9a7a-039f85485854",
    "model": "pdf_detector",
    "status": "done",
    "retry_count": 0,
    "modules": {
        "metadata": {
            "status": "done",
            "result_details": {
                "prediction": "ChatGPT",
                "rule": "PyMuPDF - Creator: OpenAI",
                "base_category": "Possibly AI Generated/Edited",
                "basic_source": "ChatGPT"
            },
            "source_details": {
                "source": "AI Generated",
                "credits_deducted": 1000
            },
            "label": "Tampered"
        },
        "structure": {
            "status": "done",
            "result_details": {
                "prediction": "Suspicious",
                "rule": { "hidden": "medium" },
                "max_severity": "medium",
                "signals_flagged": 1,
                "signals": {
                    "hidden": {
                        "label": "Hidden Text",
                        "flagged": true,
                        "severity": "medium",
                        "findings": [
                            {
                                "severity": "medium",
                                "detail": "Page 1: invisible text layer found beneath visible content."
                            }
                        ]
                    }
                }
            },
            "detailed_explanation": "Page 1 contains a hidden text layer beneath visible content, suggesting possible content manipulation.",
            "label": "Suspicious"
        }
    },
    "summary": {
        "label": "Tampered",
        "detection_steps": ["metadata", "structure"],
        "detection_rules": {
            "metadata": "PyMuPDF - Creator: OpenAI",
            "structure": "1 signals fired"
        },
        "details": {
            "is_ai": true,
            "ai_detection_steps": ["metadata"],
            "is_digitally_edited": true,
            "digital_edit_detection_steps": ["structure"]
        }
    }
}

Metadatenmodul

  • label: Tampered, wenn ein KI-Fingerabdruck gefunden wurde; andernfalls Genuine.
  • result_details.prediction: Das identifizierte KI-Tool (z. B. `"ChatGPT"`) oder `"No Tampering Detected"`.
  • source_details: Verschachtelt in `modules.metadata`.
  • source_details.source: `"AI Generated"`, `"Digitally Edited"` oder `null`.
  • source_details.credits_deducted: Für diesen Job abgezogene Credits bei TruthScan-Schlüsseln; andernfalls `null`.

Beispielantwort: echtes Dokument

{
    "id": "e4c0f5d7-b061-4d4e-af9c-5b8da03e6f44",
    "model": "pdf_detector",
    "status": "done",
    "retry_count": 0,
    "modules": {
        "metadata": {
            "status": "done",
            "result_details": {
                "prediction": "No Tampering Detected",
                "rule": null,
                "base_category": "No Tampering Detected",
                "basic_source": null
            },
            "source_details": {
                "source": null,
                "credits_deducted": 1000
            },
            "label": "Genuine"
        },
        "structure": {
            "status": "done",
            "result_details": {
                "prediction": "Genuine",
                "rule": {},
                "max_severity": null,
                "signals_flagged": 0,
                "signals": {
                    "hidden": {
                        "label": "Hidden Text",
                        "flagged": false,
                        "severity": null,
                        "findings": []
                    }
                }
            },
            "detailed_explanation": "No AI-generation or tampering fingerprints were detected; the PDF looks clean.",
            "label": "Genuine"
        }
    },
    "summary": {
        "label": "Genuine",
        "detection_steps": [],
        "detection_rules": {},
        "details": {
            "is_ai": false,
            "ai_detection_steps": [],
            "is_digitally_edited": false,
            "digital_edit_detection_steps": []
        }
    }
}

Die Antwort verstehen

`summary.label` ist das Gesamturteil. `summary.detection_steps` listet Module, die das Dokument markiert haben. `summary.detection_rules` hält fest, was jedes markierte Modul ausgelöst hat. `summary.details.is_ai` ist `true`, wenn das Dokument als KI-generiert erkannt wurde. `summary.details.is_digitally_edited` ist `true`, wenn strukturelle Bearbeitungen erkannt wurden.

Strukturmodul

  • label: Tampered, Suspicious oder Genuine.
  • result_details.signals: Aufschlüsselung je Signal. `hidden` erkennt versteckte Textebenen im Dokument.
  • result_details.signals_flagged: Gesamtzahl der ausgelösten Signale.
  • detailed_explanation: Natürlichsprachliche Zusammenfassung der Befunde.

Urteil

  • Tampered: Starke Hinweise auf Inhaltsmanipulation oder KI-generierte Herkunft.
  • Suspicious: Ein oder mehrere Signale erkannt, aber nicht auf dem höchsten Konfidenzniveau.
  • Genuine: Keine Manipulationssignale erkannt.

Schweregrade

Jeder einzelne Befund hat einen Schweregrad: `"low"`, `"medium"` oder `"high"`.

Fehler

Die meisten Fehler entstehen durch falsche Parameter, die an die API gesendet werden. Überprüfen Sie die Parameter jedes API-Aufrufs, um sicherzustellen, dass sie richtig formatiert sind, und versuchen Sie, den bereitgestellten Beispielcode auszuführen.

Die generischen Fehlercodes, die wir verwenden, entsprechen dem REST-Standard:

FehlercodeBedeutung
400Bad Request -- Ihre Anfrage ist ungültig.
403Verboten -- Der API-Schlüssel ist ungültig oder es sind nicht genügend Credits vorhanden (1.000 pro PDF-Seite).
404Not Found -- Die angegebene Ressource existiert nicht.
405Method Not Allowed -- Sie haben versucht, auf eine Ressource mit einer ungültigen Methode zuzugreifen.
406Not Acceptable -- Sie haben ein Format angefordert, das kein JSON ist.
410Gone -- Die Ressource an diesem Endpunkt wurde entfernt.
422Invalid Request Body -- Ihr Anforderungstext ist falsch formatiert oder ungültig oder enthält fehlende Parameter.
429Too Many Requests -- Sie senden zu viele Anfragen! Verlangsamen Sie!
500Internal Server Error -- Wir hatten ein Problem mit unserem Server. Versuchen Sie es später erneut.
503Service Unavailable -- Wir sind vorübergehend wegen Wartungsarbeiten offline. Bitte versuchen Sie es später erneut.

Preise

Erhalten Sie vollständige forensische Berichte - Heatmaps, Schlüsselindikatoren und detaillierte Beschreibungen.

Free

$0/Monat

Die vollständige Engine testen

  • 25 Ergebnisse/Monat (Bilder + PDF-Seiten)
  • Detaillierte Indikatoren bei jedem Ergebnis
  • Vollständiger API-Zugang
  • Erkennungshistorie im Dashboard
  • Für immer kostenlos — keine Testphase
  • Chrome-Ext., unbegrenzte Sitze

Starter

$24/Monat

$0,03 / Ergebnis - $290/Jahr

Für Einzelpersonen und kleine Teams

  • 1.000 Ergebnisse/Mo. inklusive
  • $0,03 pro zusätzl. Ergebnis
  • CSV-Export der Historie
  • Batch-Uploads
  • Auditfähige Berichte
  • Standard-Support
  • Chrome-Ext., unbegrenzte Sitze
Beliebteste

Professional

$83/Monat

$0,02 / Ergebnis - $990/Jahr

Für Teams in Produktion

  • 5.000 Ergebnisse/Mo. inklusive
  • $0,02 pro zusätzl. Ergebnis
  • Priorisierte Warteschlange
  • Höhere API-Limits
  • Chrome-Ext., unbegrenzte Sitze

Business

$333/Monat

$0,01 / Ergebnis - $3.990/Jahr

Für Hochvolumen-Betrieb

  • 40.000 Ergebnisse/Mo. inklusive
  • $0,01 pro zusätzl. Ergebnis
  • Zero Data Retention (ZDR)
  • Höchste Self-Serve-Limits
  • Priority-Support
  • Chrome-Ext., unbegrenzte Sitze

Enterprise

Passen Sie einen Plan an Ihre Bedürfnisse an

$0,005 oder weniger pro Ergebnis

Vertrieb kontaktieren
  • Rabatte skalieren mit dem Volumen
  • Individuelle SLAs mit Service Credits
  • Zero Data Retention (ZDR)
  • Individuelle Integrationen
  • Individuelle MSA und DPA
  • Dedizierter Durchsatz
  • Benanntes 24/7-Account-Team
  • Dedizierte / On-Prem-Bereitstellung

API Frequently Asked Questions

Find answers to the most common questions about our AI PDF detection API.