KI-Bilderkennungs-API
Vollständige Dokumentation zur Integration der KI-Bilderkennungs-API von TruthScan in Ihre Anwendungen.
Probieren Sie es ohne Code aus, indem Sie unseren FastAPI-Endpunkt besuchen: https://detect-image.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 abrufen.
TruthScan erwartet, dass der API-Schlüssel in allen API-Anfragen an den Server im Anforderungstext wie folgt enthalten ist:
{
"key": "YOUR API KEY GOES HERE"
}Sie müssen YOUR API KEY GOES HERE durch Ihren persönlichen API-Schlüssel ersetzen.
KI-Bilderkennung
Erkennen (3-Schritte-Prozess)
Der KI-Bilderkennungsworkflow besteht aus den folgenden Schritten:
- Eine vorsignierte Upload-URL abrufen
- Das Bild hochladen
- Das Bild zur Erkennung einreichen
1. Eine vorsignierte Upload-URL abrufen
Beginnen Sie damit, eine vorsignierte URL von der API anzufordern. Diese URL ermöglicht es Ihnen, Ihre Bilddatei sicher auf den Speicherserver hochzuladen.
Unterstützte Dateiformate
JPG, JPEG, PNG, WebP, JFIF, HEIC, HEIF, AVIF, BMP, TIFF, TIF
Wichtiger Hinweis
Es ist notwendig, Leerzeichen aus dem Bilddateinamen zu entfernen, wenn Sie eine vorsignierte URL anfordern.
GET https://detect-image.truthscan.com/get-presigned-url?file_name=example.jpgBeispielanfrage
curl -X GET 'https://detect-image.truthscan.com/get-presigned-url?file_name=example.jpg' \
--header 'apikey: YOUR API KEY GOES HERE'Beispielantwort
{
"status": "success",
"presigned_url": "https://image-presigned-upload.ai-assets-cdn.com?file_name=581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.jpg?...",
"file_path": "uploads/example.jpg"
}2. Das Bild hochladen
Verwenden Sie die bereitgestellte 'presigned_url', um Ihr Bild über eine PUT-Anfrage hochzuladen. Stellen Sie sicher, dass der richtige Inhaltstyp entsprechend Ihrem Bildformat festgelegt ist.
Wichtiger Hinweis
Es ist notwendig, Leerzeichen aus dem Bilddateinamen zu entfernen, wenn Sie das Bild hochladen.
Beispielanfrage
curl -X PUT 'https://image-presigned-upload.ai-assets-cdn.com?file_name=581d47c7-3ef4-42af-88d9-6dab6bf69389_20250611-121955_example.jpg?...' \
--header 'Content-Type: image/<FILE_FORMAT - jpeg, jpg, png, webp, heic, heif, avif, bmp, tiff, tif>' \
--header 'x-amz-acl: private' \
--data-binary '@example.jpg' # AttachmentDateigrößenbeschränkungen
- Minimale Dateigröße: 1KB
- Maximale Dateigröße: 10MB
Stellen Sie sicher, dass das Dateiformat während des Upload-Prozesses konsistent bleibt. Ein erfolgreicher Upload gibt einen Statuscode von 200 zurück.
3. Bild zur KI-Erkennung einreichen
Nach dem Hochladen reichen Sie das Bild zur KI-Erkennung ein, indem Sie auf den 'file_path' aus dem vorherigen Schritt verweisen.
POST https://detect-image.truthscan.com/detectBeispielanfrage
curl -X 'POST' \
'https://detect-image.truthscan.com/detect' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"key": "YOUR-API-KEY-GOES-HERE",
"url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/<FILE_PATH>",
"generate_preview": false,
"generate_analysis_details": true
}'Der 'FILE_PATH' bezieht sich auf den Pfad, der aus der Antwort im ersten Schritt 'Eine vorsignierte Upload-URL abrufen' erhalten wurde.
Optionale Parameter
generate_preview: Auf 'true' setzen, um eine Vorschau-URL für das Bild zu generieren (Standard: 'false')document_type: Dokumenttyp (Standard: 'Image')email: E-Mail-Adresse für die Verarbeitunggenerate_analysis_details: Auf 'true' setzen, um KI-Tiefenanalyseergebnisse zu aktivieren (Standard: 'false'). Bei Aktivierung enthält die Abfrageantwort die Felder analysis_results_status und analysis_results.
Beispielantwort
{
"id": "77565038-9e3d-4e6a-8c80-e20785be5ee9",
"status": "pending"
}Die Antwort enthält eine eindeutige Bild-ID zur Verfolgung des Erkennungsstatus.
Abfrage
Dieser Endpunkt akzeptiert eine von der /detect-Anfrage zurückgegebene Bild-ID. Und gibt den Status der Bildeinreichung sowie das vollständige Ergebnis der KI-Erkennungsoperation zurück, einschließlich Metadaten, OCR und ML-Modellanalyse.
POST https://detect-image.truthscan.com/queryBeispielanfrage
curl -X 'POST' \
'https://detect-image.truthscan.com/query' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"id": "IMAGE-ID-GOES-HERE"
}'Beispielantwort
{
"id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769",
"status": "done",
"result": 90.2371538185235,
"result_details": {
"is_valid": true,
"detection_step": 3,
"final_result": "AI Generated",
"metadata": [
"No Information Detected for Real/AI",
"Could not find anything from ExifTool and Pillow metadata"
],
"metadata_basic_source": "null",
"ocr": [
"OCR did not detect AI",
0.0
],
"ml_model": [
"AI Generated",
90.2371538185235
],
"confidence": 90.2371538185235,
"heatmap_status": "ready",
"heatmap_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/uploads/....",
"analysis_results_status": "pending",
"analysis_results": null
},
"preview_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/previews/..."
}Ergebnisinterpretation
result: Punktzahl von 1-100, die die Wahrscheinlichkeit angibt, dass das Bild KI-generiert ist. Höhere Punktzahlen = größere KI-Wahrscheinlichkeit.final_result: Die Gesamtbestimmung (z.B. 'AI Generated', 'Real', 'Digitally Edited', 'AI Edited')confidence: Die Vertrauensbewertung der Erkennungdetection_step: Gibt die Phase an, in der die Erkennung abgeschlossen wurde. 1 = Nur Metadaten zurückgegeben, 2 = Gibt Metadaten und OCR zurück, 3 = Gibt Metadaten, OCR und ML-Modellergebnisse zurück (am umfassendsten)metadata: Aus Bildmetadaten extrahierte Informationen unter Verwendung von ExifTool und Pillowocr: Ergebnisse der optischen Zeichenerkennung (OCR) zur Wasserzeichenerkennungml_model: Ergebnisse des maschinellen Lernmodellspreview_url: URL zum Vorschaubild (wenn generate_preview auf true gesetzt war)heatmap_status: Status der Heatmap-Generierung ('pending' oder 'ready'). Hinweis: Die Heatmap-Generierung ist asynchron. Zunächst ist heatmap_status 'pending' und heatmap_url kann fehlen oder null sein. Wenn fertig, wird heatmap_status zu 'ready' und heatmap_url wird ausgefüllt.heatmap_url: URL zum Heatmap-Bild, verfügbar wenn heatmap_status 'ready' ist. Nur verfügbar für Bilder mit einer Punktzahl >= 20.analysis_results_status: Status der KI-Tiefenanalyse ('pending', 'done', 'skipped' oder null). Bei 'pending' den /query-Endpunkt weiter abfragen — die Analyse wird noch im Hintergrund verarbeitet. Bei 'done' enthält das Feld analysis_results die abgeschlossene Analyse. Bei 'skipped', null oder fehlend ist keine Tiefenanalyse für dieses Bild verfügbar.analysis_results: Ergebnisse der KI-Tiefenanalyse (verfügbar wenn analysis_results_status 'done' ist). Enthält: agreement (strong/moderate/weak/disagreement), confidence (0-100), keyIndicators (Array erkannter visueller Anomalien), detailedReasoning (Erklärung), visualPatterns (Array stilistischer Muster) und recommendations (umsetzbare Empfehlungen).
Wichtiger Hinweis
Die Heatmap-Generierung ist asynchron. Zunächst ist heatmap_status 'pending' und heatmap_url kann fehlen oder null sein. Wenn fertig, wird heatmap_status zu 'ready' und heatmap_url wird ausgefüllt. Heatmaps werden nur für Bilder mit einer Punktzahl >= 20 generiert.
Hier zeigt "result": 90.24 eine hohe Wahrscheinlichkeit an, dass das Bild KI-generiert wurde. Das "final_result": "AI Generated" liefert eine klare Bestimmung, und "confidence": 90.24 zeigt hohes Vertrauen in dieses Ergebnis. Das Feld "detection_step": 3 zeigt an, dass die vollständige Analyse (Metadaten, OCR und ML-Modell) abgeschlossen wurde. Der "heatmap_status": "ready" und "heatmap_url" bieten Zugriff auf die visuelle Heatmap, die als KI-generiert erkannte Bereiche zeigt.
Analyseergebnisse (Asynchrone Tiefenanalyse)
Wenn Sie 'generate_analysis_details' in der /detect-Anfrage auf 'true' setzen, führt TruthScan eine KI-Tiefenanalyse im Hintergrund durch. Die erste Abfrageantwort wird mit Status 'done' und Ihren Erkennungsergebnissen zurückgegeben, aber das Feld analysis_results_status kann noch 'pending' sein. Sie können die ersten Ergebnisse sofort verwenden und optional auf den Abschluss der Tiefenanalyse warten.
1. Erstes Ergebnis steht fest (Analyse noch ausstehend)
Wenn Sie mit 'generate_analysis_details': true einreichen und zum ersten Mal mit Status 'done' abfragen, sind die Kernerkennungsergebnisse (result, final_result, confidence) bereit. Allerdings kann analysis_results_status 'pending' sein — das bedeutet, die KI-Tiefenanalyse wird noch im Hintergrund verarbeitet.
{
"id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769",
"status": "done",
"result": 90.2371538185235,
"result_details": {
"is_valid": true,
"detection_step": 3,
"final_result": "AI Generated",
"confidence": 90.2371538185235,
"analysis_results_status": "pending",
"analysis_results": null
}
}Was zu tun ist
Sie können die ersten Erkennungsergebnisse (result, final_result, confidence, metadata, ocr, ml_model) sofort verwenden. Wenn Sie auch die Tiefenanalyse benötigen, fragen Sie den /query-Endpunkt mit derselben Bild-ID weiter ab, bis sich analysis_results_status von 'pending' ändert.
2. Weiter abfragen für Analyseergebnisse
Rufen Sie den /query-Endpunkt weiterhin mit derselben Bild-ID auf. Überprüfen Sie das Feld analysis_results_status bei jeder Antwort. Wenn es von 'pending' zu 'done' wechselt, wird das analysis_results-Objekt ausgefüllt.
curl -X 'POST' \
'https://detect-image.truthscan.com/query' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769"
}'3. Analyse abgeschlossen — Vollständige Antwort
Sobald analysis_results_status 'done' ist, enthält das analysis_results-Objekt die vollständige KI-Tiefenanalyse mit Übereinstimmungsniveau, Konfidenz, Schlüsselindikatoren, detaillierter Begründung, visuellen Mustern und Empfehlungen.
{
"id": "00fee5ff-a55b-42fb-b7c7-d14f05ae0769",
"status": "done",
"result": 90.2371538185235,
"result_details": {
"is_valid": true,
"detection_step": 3,
"final_result": "AI Generated",
"confidence": 90.2371538185235,
"heatmap_status": "ready",
"heatmap_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/uploads/....",
"analysis_results_status": "done",
"analysis_results": {
"agreement": "strong",
"confidence": 92,
"keyIndicators": [
"Unnaturally smooth skin texture",
"Consistent lighting anomalies"
],
"detailedReasoning": "The image shows clear signs of AI generation with unnaturally smooth textures and consistent lighting patterns not typical of real photography.",
"visualPatterns": [
"Uniform noise pattern typical of diffusion models"
],
"recommendations": [
"Cross-reference with original source if available",
"Check for metadata inconsistencies",
"Compare with known AI generation patterns"
]
}
},
"preview_url": "https://ai-image-detector-prod.nyc3.digitaloceanspaces.com/previews/..."
}Wenn keine Analyse verfügbar ist
Wenn analysis_results_status 'skipped', null oder fehlend ist, wird keine Tiefenanalyse für dieses Bild erstellt. Dies geschieht, wenn 'generate_analysis_details' in der /detect-Anfrage nicht auf 'true' gesetzt wurde, oder bei bestimmten Bildtypen und Erkennungsszenarien. Behandeln Sie die ersten Erkennungsergebnisse als endgültig.
{
"status": "done",
"result": 12.5,
"result_details": {
"analysis_results_status": "skipped",
"analysis_results": null
}
}Felder der Analyseergebnisse
analysis_results_status: 'pending' = wird noch verarbeitet, 'done' = Ergebnisse verfügbar, 'skipped' / null / fehlend = für dieses Bild nicht verfügbaranalysis_results.agreement: Wie stark die Tiefenanalyse mit der ersten Erkennung übereinstimmt (strong / moderate / weak / disagreement)analysis_results.confidence: Konfidenzbewertung der Tiefenanalyse (0-100)analysis_results.keyIndicators: Array spezifischer visueller Anomalien, die im Bild erkannt wurdenanalysis_results.detailedReasoning: 2-4 Sätze Erklärung, warum das Bild so klassifiziert wurdeanalysis_results.visualPatterns: Array gefundener stilistischer Muster (z.B. Rauschmuster typisch für Diffusionsmodelle)analysis_results.recommendations: Array umsetzbarer Empfehlungen zur weiteren Überprüfung
Benutzerguthaben prüfen
Dieser Endpunkt akzeptiert den API-Schlüssel des Benutzers über den Header. Und gibt die Guthabendetails des Benutzers zurück.
GET https://detect-image.truthscan.com/check-user-creditsBeispielanfrage
curl -X 'GET' \
'https://detect-image.truthscan.com/check-user-credits' \
-H 'apikey: YOUR API KEY GOES HERE' \
-H 'accept: application/json' \
-H 'Content-Type: application/json'Beispielantwort
{
"baseCredits": 10000,
"boostCredits": 1000,
"credits": 11000
}Gesundheitsprüfung
Dieser Endpunkt ermöglicht es Ihnen, den Status des KI-Bilderkennungsdienstes zu überprüfen.
GET https://detect-image.truthscan.com/healthBeispielanfrage
curl -X 'GET' \
'https://detect-image.truthscan.com/health' \
-H 'accept: application/json'Beispielantwort
{
"status": "healthy",
"timestamp": "2024-01-15T10:30:00Z"
}Eine "healthy"-Antwort zeigt an, dass der Dienst normal funktioniert.
Fehler
Die meisten Fehler werden durch falsche Parameter verursacht, die an die API gesendet werden. Überprüfen Sie die Parameter jedes API-Aufrufs doppelt, 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 | Forbidden -- Der API-Schlüssel ist ungültig oder es gibt nicht genügend Guthaben für die Bildverarbeitung. |
| 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 nicht JSON ist. |
| 410 | Gone -- Die Ressource an diesem Endpunkt wurde entfernt. |
| 422 | Invalid Request Body -- Ihr Anforderungstext ist falsch formatiert oder ungültig oder es fehlen 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. |
Häufige Probleme und Lösungen
Authentifizierungsprobleme
"Benutzerüberprüfung fehlgeschlagen" (403)
Ursache: Ungültiger oder abgelaufener API-Schlüssel
Lösung:
- Überprüfen Sie, ob Ihr API-Schlüssel korrekt ist
- Überprüfen Sie, ob Ihr API-Schlüssel in Ihrem Konto aktiv ist
- Versuchen Sie, Ihren API-Schlüssel neu zu generieren
"Nicht genügend Guthaben" (403)
Ursache: Unzureichendes Guthaben für die Bildverarbeitung
Lösung:
- Überprüfen Sie Ihr verbleibendes Guthaben mit /check-user-credits
- Kaufen Sie bei Bedarf zusätzliches Guthaben
- Optimieren Sie die Bildgröße vor dem Hochladen, um weniger Guthaben zu verbrauchen
Eingabevalidierungsprobleme
"Nicht unterstütztes Dateiformat" (400)
Ursache: Nicht unterstütztes oder ungültiges Bildformat eingereicht
Lösung:
- Überprüfen Sie, ob das Bildformat unterstützt wird (JPG, JPEG, PNG, WebP, JFIF, HEIC, HEIF, AVIF, BMP, TIFF, TIF)
- Stellen Sie sicher, dass die Datei nicht beschädigt ist
- Überprüfen Sie den Content-Type-Header beim Hochladen
"Datei zu groß" (400)
Ursache: Dateigröße überschreitet das 10MB-Limit
Lösung:
- Verkleinern oder komprimieren Sie das Bild auf unter 10MB
- Überprüfen Sie die Dateigröße vor dem Hochladen
- Verwenden Sie nach Möglichkeit effizientere Formate wie WebP
Verarbeitungsprobleme
"Anfrage-Timeout" (WebSocket)
Ursache: Die Bildverarbeitung hat zu lange gedauert
Lösung:
- Versuchen Sie es mit einem kleineren oder weniger komplexen Bild
- Überprüfen Sie, ob der Dienst eine hohe Last erfährt
- Wiederholen Sie die Anfrage
Dokumentstatus "fehlgeschlagen"
Ursache: Die Verarbeitung ist aus verschiedenen Gründen fehlgeschlagen
Lösung:
- Überprüfen Sie, ob das Bild die Mindestanforderungen erfüllt (1KB - 10MB)
- Überprüfen Sie, ob das Bild in einem unterstützten Format vorliegt
- Überprüfen Sie, ob der Upload erfolgreich abgeschlossen wurde, bevor Sie zur Erkennung einreichen
- Kontaktieren Sie den Support, wenn das Problem weiterhin besteht
Upload-Probleme
"Bild-Upload fehlgeschlagen" (403/400)
Ursache: Ungültige oder abgelaufene vorsignierte URL oder Probleme mit dem Speicherserver
Lösung:
- Stellen Sie sicher, dass Sie die vorsignierte URL sofort nach Erhalt verwenden (kann ablaufen)
- Überprüfen Sie, ob der Content-Type-Header für das Bildformat korrekt ist
- Entfernen Sie Leerzeichen aus dem Dateinamen vor dem Hochladen
- Versuchen Sie, eine neue vorsignierte URL zu generieren, wenn die aktuelle abgelaufen ist
"Ungültige vorsignierte URL" (400)
Ursache: Dateiname mit Leerzeichen oder abgelaufene/beschädigte vorsignierte URL
Lösung:
- Entfernen Sie alle Leerzeichen aus dem Dateinamen, bevor Sie die vorsignierte URL anfordern
- Verwenden Sie nur alphanumerische Zeichen, Bindestriche und Unterstriche im Dateinamen
- Generieren Sie bei Bedarf eine neue vorsignierte URL
Brauchen Sie Hilfe?
Für weitere Informationen zur Verwendung unserer API oder für technischen Support kontaktieren Sie uns bitte.
API Häufig gestellte Fragen
Finden Sie Antworten auf die häufigsten Fragen zu unserer KI-Bilderkennungs-API.