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
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-Dateien auf KI-Generierungs-Fingerabdrücke anhand von PDF-Metadaten (`/Creator`, `/Producer`). PDFs müssen zuerst in den Object Storage hochgeladen und dann zur asynchronen Verarbeitung eingereicht werden. Pollen Sie `/query`, bis `status` `done` ist.
Ablauf
- `GET /get-presigned-url` mit einem `.pdf`-Dateinamen und Ihrem API-Schlüssel im Header `apikey`.
- `PUT` der PDF-Bytes an die zurückgegebene `presigned_url`.
- `POST /detect-pdf` mit der öffentlichen Objekt-`url` und Ihrem API-`key` (`document_type` wird automatisch auf PDF gesetzt).
- `POST /query` mit der zurückgegebenen Dokument-`id`, bis die Verarbeitung abgeschlossen ist.
Dateilimits
PDF-Dateien müssen `.pdf` sein, höchstens 2 MB groß und unter der eingereichten `url` erreichbar. Andere Dateitypen werden in diesem Ablauf abgelehnt.
Credit-Abzug
Die PDF-Erkennung zieht 1.000 Credits pro Seite ab. Ein 5-seitiges PDF verbraucht 5.000 Credits. Prüfen Sie Ihr Guthaben mit `/check-user-credits`, bevor Sie große Dokumente einreichen.
Vorsignierte Upload-URL abrufen
Fordern Sie eine vorsignierte Upload-URL an, bevor Sie ein PDF zur Erkennung einreichen.
Header
Fügen Sie Ihren API-Schlüssel im Header `apikey` hinzu.
GET https://ai-detect.undetectable.ai/get-presigned-urlBeispielanfrage
curl -X 'GET' \
'https://ai-detect.undetectable.ai/get-presigned-url?file_name=report.pdf&expiration=3600' \
-H 'accept: application/json' \
-H 'apikey: YOUR-API-KEY-GOES-HERE'Beispielantwort
{
"status": "success",
"presigned_url": "https://...digitaloceanspaces.com/...?X-Amz-Algorithm=...",
"file_path": "userId_20250604120000_report.pdf"
}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' # AttachmentPDF erkennen
Reichen Sie ein PDF ein, das bereits in den Object Storage hochgeladen wurde. Dieser Endpunkt stellt die Metadatenanalyse und optional die textbasierte KI-Erkennung in die Warteschlange.
Schwellenwert
Für PDF-Jobs (Modell: `pdf_metadata_detector`) ist `result` immer 100.0 (Fingerabdruck erkannt → `label`: "AI") oder 0.0 (kein Fingerabdruck → `label`: "Human"). Die 50/60-Schwellenwerte für Mensch/KI gelten nur für die Texterkennung (Modell: `xlm_ud_detector`).
Antwortfelder
Pollen Sie `/query` für das Dokument. Bei PDF-Jobs (Modell: `pdf_metadata_detector`) enthält `result_details` `prediction`, `rule`, `base_category` und `basic_source` auf oberster Ebene. Die rohen Creator-/Producer-Werte des PDFs werden nicht zurückgegeben; sie werden intern verwendet und bei einem Treffer in `rule` widergespiegelt. `service_type` ist immer `detector`, und `model` bleibt für die gesamte Laufzeit des Jobs `pdf_metadata_detector`.
POST https://ai-detect.undetectable.ai/detect-pdfBeispielanfrage
curl -X 'POST' \
'https://ai-detect.undetectable.ai/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",
"retry_count": 0
}'Optionale Parameter
- Übergeben Sie `"id"`, um Ihre eigene Dokument-UUID anzugeben (darf noch nicht existieren).
- Übergeben Sie `"generate_analysis_details": true`, um eine tiefe Textanalyse anzufordern, wenn Text-KI ausgeführt wird (gleiches Verhalten wie Text-`/detect`).
- Sie können auch `POST /detect` mit `"document_type": "File"` für dasselbe Verhalten verwenden.
Beispielantwort
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"model": "pdf_metadata_detector",
"result": null,
"result_details": null,
"status": "pending",
"retry_count": 0
}Die Antwort enthält die vom Server zugewiesene Dokument-ID. Verwenden Sie `POST /query`, um Ergebnisse abzufragen. Die typische Bearbeitungszeit beträgt wenige Sekunden für reine Metadaten-Jobs; Jobs mit zusätzlicher Text-KI können je nach extrahierter Wortanzahl länger dauern.
Abfragen
Status und Ergebnisse der PDF-Erkennung anhand der Dokument-ID abfragen (derselbe Endpunkt wie bei der Texterkennung).
POST https://ai-detect.undetectable.ai/queryBeispielanfrage
curl -X 'POST' \
'https://ai-detect.undetectable.ai/query' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"id": "DOCUMENT-ID-GOES-HERE"
}'Beispielantwort (Metadaten-KI erkannt)
{
"id": "49b5a390-2285-47fe-a161-303b4e22406f",
"model": "pdf_metadata_detector",
"status": "done",
"result": 100.0,
"result_details": {
"prediction": "Grok",
"rule": "PyMuPDF - Creator: Grok xAI",
"base_category": "Possibly AI Generated/Edited",
"basic_source": "Grok"
},
"result_categories": null,
"source_details": {
"source": "Grok",
"confidence": null,
"credits_deducted": 1000
},
"retry_count": 0,
"label": "AI"
}Wenn zusätzlich Text-KI ausgeführt wird, kann `model` `xlm_ud_detector` sein, `result_details` enthält sowohl Detektor-Scores als auch `pdf_metadata`, und `source_details` kann zusammengeführte Metadaten-/Text-Zuordnung enthalten.
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:
| Fehlercode | Bedeutung |
|---|---|
| 400 | Bad Request -- Ihre Anfrage ist ungültig. |
| 403 | Verboten -- Der API-Schlüssel ist ungültig oder es sind nicht genügend Credits vorhanden (1.000 pro PDF-Seite). |
| 404 | Not Found -- Die angegebene Ressource existiert nicht. |
| 405 | Method Not Allowed -- Sie haben versucht, auf eine Ressource mit einer ungültigen Methode zuzugreifen. |
| 406 | Not Acceptable -- Sie haben ein Format angefordert, das kein JSON ist. |
| 410 | Gone -- Die Ressource an diesem Endpunkt wurde entfernt. |
| 422 | Invalid Request Body -- Ihr Anforderungstext ist falsch formatiert oder ungültig oder enthält fehlende Parameter. |
| 429 | Too Many Requests -- Sie senden zu viele Anfragen! Verlangsamen Sie! |
| 500 | Internal Server Error -- Wir hatten ein Problem mit unserem Server. Versuchen Sie es später erneut. |
| 503 | Service Unavailable -- Wir sind vorübergehend wegen Wartungsarbeiten offline. Bitte versuchen Sie es später erneut. |
Benötigen Sie Hilfe?
Für weitere Informationen zur Nutzung unserer API oder für technischen Support kontaktieren Sie uns bitte.
API Frequently Asked Questions
Find answers to the most common questions about our AI PDF detection API.