Zwei Endpoints, ein Bearer-Token, JSON-Antworten. Alles, was Sie brauchen, um KI-generierte Texte und Bilder aus Ihrem eigenen Backend zu erkennen.
Basis-URL
Jeder Request muss Ihren API-Schlüssel als Bearer-Token mitsenden. Es gibt kein anderes Authentifizierungsverfahren und keinen Zugang ohne Authentifizierung.
Authorization: Bearer YOUR_API_KEYHalten Sie den Schlüssel auf dem Server. Er verbraucht Ihr Credit-Guthaben – alles, was ihn an einen Browser oder in eine mobile App ausliefert, ist ein Loch in Ihrer Abrechnung. Leiten Sie den Aufruf stattdessen über Ihr eigenes Backend.
Die Nutzung wird in Credits abgerechnet. Credits werden abgebucht, bevor die Erkennung läuft. Bei API Business verbrauchen API- und MCP-Aufrufe zuerst die 3.000.000 monatlichen Credits des Tarifs, danach Ihr Credit-Guthaben.
| Endpoint | Kosten | 1.000 Gratis-Credits reichen für |
|---|---|---|
| /detect/text | 1 Credit pro Wort | ~1.000 Wörter |
| /detect/image | 300 Credits pro Bild | 3 Bilder |
| /detect/video | 300 Credits pro analysiertem Frame (16–50 pro Clip) | — |
| /detect/video | 300 Credits pro Einzelframe | 3 Frames |
Einmal gekaufte Credits verfallen nie und gelten auf der Website, in der API und im MCP-Server. API Business kostet 299 $/Monat und enthält jeden Monat 3.000.000 API- & MCP-Credits, dazu White-Label-PDF-Berichte und bevorzugten Support. Pro (14,99 $/Monat) gilt nur für die Website und enthält keinen API-Zugang. Jeder API-Schlüssel ist auf 120 Requests pro Minute begrenzt (darüber 429 mit Retry-After), verarbeiten Sie Stapel also nacheinander oder mit moderater Parallelität. Enterprise bietet individuelle Rate-Limits und ein SLA. Alle Tarife finden Sie unter Preise.
/api/v1/detect/textErkennt KI-generierte Texte von ChatGPT, GPT-4, Claude, Gemini und anderen Sprachmodellen. Liefert ein Urteil für das gesamte Dokument und einen Score für jeden Satz.
| Feld | Typ | Hinweise |
|---|---|---|
| content | string | Pflichtfeld. Der zu analysierende Text. |
| text | string | Wird als Alias für content akzeptiert. |
| mode | string | Optional. "depth" liefert für jeden Satz einen echten Score (zum Hervorheben). Weglassen, wenn nur ein Score für das Dokument nötig ist. |
| model | string | Optional. Standard ist "tropa-3". Mit "tropa-1" bleiben Sie bei einer älteren Generation, während Sie Ihre Schwellenwerte neu kalibrieren. "tropa-2" wird weiterhin akzeptiert und von tropa-3 beantwortet. Gleiche Credit-Kosten. |
curl -X POST https://www.wasitaigenerated.com/api/v1/detect/text \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Your text content here..."
}'{
"isAI": true,
"confidence": 0.92,
"score": 92.3,
"verdict": "ai",
"model": "tropa-3",
"patterns": ["AI patterns detected"],
"analysis": {
"likelihood": "AI-generated",
"reasoning": "Overall AI score: 92.3%"
},
"sentences": [
{
"text": "The sentence that was analyzed.",
"isAI": true,
"confidence": 0.95,
"scores": { "ai": 0.95, "human": 0.05 }
}
],
"humanizedHint": "possibly_humanized",
"inputAnomalies": { "homoglyph": 13, "zero_width": 0, "exotic_space": 0, "fullwidth": 0, "variation_selector": 0 },
"subclassProbs": { "human": 0.0, "ai": 0.71, "ai_edited": 0.02, "humanized": 0.27 }
}score > 50).human (< 40), uncertain (40–70), likely_ai (70–90), ai (≥ 90). Geben Sie Texte mit uncertain an eine Person zur Prüfung, statt sie automatisch zu markieren.mode: "depth".possibly_humanized, wenn das Modell das KI-Signal überwiegend einer Nachbearbeitung durch einen Humanizer zuschreibt. Fehlt das Feld, bedeutet das nichts: Das Signal ist präzise, schlägt aber nur bei ~40 % der humanisierten Texte an – zeigen Sie also nie einen Status „nicht humanisiert“ an.Kosten: 1 Credit pro Wort. Integrationsmuster und ausgearbeitete Beispiele finden Sie im Leitfaden zur Texterkennungs-API.
/api/v1/detect/imageErkennt KI-generierte und synthetisch manipulierte Bilder. Enthält die Datei noch C2PA-Content-Credentials, wird das Ergebnis kryptografisch verifiziert statt geschätzt.
Senden Sie das Bild als multipart/form-data mit dem Feldnamen file.
curl -X POST https://www.wasitaigenerated.com/api/v1/detect/image \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@/path/to/image.jpg"{
"isAI": true,
"confidence": 0.99,
"verified": true,
"c2pa": {
"vendor": "OpenAI",
"generator": "ChatGPT",
"generatorVersion": null,
"softwareAgent": null,
"issuer": "OpenAI",
"signedAt": "2024-08-06T21:53:37+00:00",
"signatureValid": true,
"trusted": false,
"validationState": "Valid",
"validationCodes": ["signingCredential.untrusted"],
"sourceType": "trainedAlgorithmicMedia",
"isAI": true,
"actions": ["c2pa.created"],
"ingredients": 0,
"manifestCount": 1
},
"provenance": {
"platform": null,
"watermarks": [],
"signals": [],
"confidence": "none"
},
"patterns": ["ai_verified", "c2pa_signed", "synthetic_artifacts"],
"analysis": {
"likelihood": "high",
"reasoning": "AI-generated imagery detected with 99.0% confidence. Verified AI-generated: content credentials signed by ChatGPT (OpenAI) on 2024-08-06."
},
"detailed": {
"scores": { "ai": 99.0, "human": 1.0 },
"model": "v1.1"
}
}true enthält das Bild ein C2PA-Content-Credential mit gültiger Signatur, das die Datei als KI-generiert ausweist. Das ist Gewissheit, kein Score, und erzwingt isAI: true unabhängig vom Pixelmodell. Bei false stammt das Urteil aus der Analyse der Pixel durch das Modell.null, wenn die Datei keines enthält. issuer ist der Aussteller des X.509-Zertifikats und das einzige Feld, das sich nicht fälschen lässt; vendor und generator werden daraus und aus dem Manifest abgeleitet (OpenAI / ChatGPT, Google, Microsoft, Adobe, Leica, …). signatureValid ist die kryptografische Prüfung; trusted setzt zusätzlich voraus, dass der Aussteller auf einer C2PA-Vertrauensliste steht, und ist derzeit immer false. sourceType ist trainedAlgorithmicMedia bei KI-Ausgaben und digitalCapture bei einem signierten Kamerafoto – ein gültiges Manifest mit isAI: false ist ein Beleg dafür, dass das Bild echt ist.confidence: high / medium / low / none.ai_verified, c2pa_signed (gültiges Manifest, KI oder nicht), c2pa_invalid (Signatur ungültig), c2pa_marker (Marker ohne lesbares Manifest), high_ai_confidence, synthetic_artifacts, human_generated.Kosten: 300 Credits pro Bild. Moderationsmuster und Schwellenwerte finden Sie im Leitfaden zur Bilderkennungs-API.
/api/v1/detect/videoErkennt KI-generierte Videos. Senden Sie einen ganzen Clip, um ihn anhand gesampelter Frames zu bewerten, oder ein Einzelbild aus einem Video (Thumbnail, Screenshot), um nur diesen Frame mit dem Videomodell zu bewerten.
Zwei Wege, die Datei zu senden:
multipart/form-data mit dem Feldnamen file, bis 4 MBapplication/json mit {"url": "https://…"}, das auf eine öffentlich erreichbare Datei verweist, bis 50 MB. Für die meisten echten Clips der richtige Weg.detailed.mode gibt ihn zurück.# Clip up to 4MB, uploaded directly
curl -X POST https://www.wasitaigenerated.com/api/v1/detect/video \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@/path/to/clip.mp4"
# Larger clip (up to 50MB), passed by URL
curl -X POST https://www.wasitaigenerated.com/api/v1/detect/video \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/clip.mp4"}'{
"isAI": true,
"confidence": 0.94,
"creditsCharged": 4800,
"verified": false,
"patterns": ["ai_generated_frames", "synthetic_artifacts"],
"analysis": {
"likelihood": "high",
"reasoning": "AI-generated video detected with 94.0% confidence. 15 of 16 frames flagged as AI-generated."
},
"detailed": {
"scores": { "ai": 94.0, "human": 6.0 },
"model": "video-v1",
"mode": "video",
"framesAnalyzed": 16,
"framesFlaggedAi": 15,
"videoDurationSec": 8.2
}
}video für einen Clip, frame für ein Einzelbild.Kosten: 300 Credits pro analysiertem Frame. Ein Clip wird mit 10 Frames pro Minute gesampelt, mindestens 16 und höchstens 50, und kostet daher 4.800 bis 15.000 Credits. Das Minimum wird vorab abgebucht, der Rest, sobald die Anzahl der Frames feststeht; creditsCharged in der Response zeigt, was der Aufruf gekostet hat. Ein Einzelframe kostet 300 Credits.
Die Erkennung ist auch über das Model Context Protocol verfügbar: Ein KI-Assistent kann Texte und Bilder so selbst prüfen, statt dass Sie Ergebnisse hin- und herkopieren. Nichts zu installieren – der Server ist gehostet, Sie verbinden sich mit einer URL.
https://www.wasitaigenerated.com/api/mcpClients mit OAuth-Unterstützung beziehen alles Nötige direkt vom Endpoint und öffnen einen Browser, in dem Sie die Verbindung bestätigen. Clients, die einen statischen Header verwenden, können stattdessen einen API-Schlüssel nutzen:
claude mcp add --transport http wasitaigenerated \
https://www.wasitaigenerated.com/api/mcp \
--header "Authorization: Bearer $WAI_API_KEY"detect_ai_text – bewertet einen Textabschnitt, mit Aufschlüsselung pro Satz. Kostet 1 Credit pro Wort.detect_ai_image – prüft ein Bild per URL oder Base64, einschließlich etwaiger C2PA-Content-Credentials. Kostet 300 Credits.get_credit_balance – liest Ihr verbleibendes Guthaben. Kostenlos.Aufrufe eines Assistenten verbrauchen Ihre Credits genau wie die REST-API. Ein Agent, der ein langes Dokument prüfen soll, verbraucht einen Credit pro Wort – es lohnt sich also, ihm ein Budget zu nennen.
Bei Fehlern kommt ein JSON-Body mit einem Feld error zurück, oft zusätzlich mit einer lesbaren message.
{
"error": "Insufficient credits",
"message": "You need 300 credits for image detection. You have 120 credits remaining.",
"required": 300,
"available": 120
}Bei großen Payloads braucht die Erkennung spürbar Zeit. Stellen Sie den Aufruf in eine Warteschlange und aktualisieren Sie den Datensatz, wenn er zurückkommt, statt einen Request für Nutzer darauf warten zu lassen. Setzen Sie ein großzügiges Client-Timeout – 60s für Text und Video, 120s für Bilder.
Die Erkennung ist probabilistisch. Stark überarbeiteter KI-Text liest sich wie menschlicher, und manche menschlichen Texte sind tatsächlich formelhaft. Geben Sie markierte Inhalte an eine Person weiter, zeigen Sie ihr die Aufschlüsselung pro Satz und lassen Sie sie entscheiden. Automatische Sanktionen auf Basis einer Konfidenzzahl führen zu Beschwerden, die Sie nicht verteidigen können.
Screenshots und neu kodierte Bilder verlieren Signal, und ein Screenshot entfernt Content-Credentials vollständig – deshalb kann ein offensichtlich synthetischer Screenshot mit verified: false zurückkommen. Senden Sie den Original-Upload, wo Sie ihn haben.
Ein sehr langer Body liefert 413. Teilen Sie ihn in Abschnitte von einigen tausend Wörtern und fassen Sie die Ergebnisse zusammen. Längere Texte sind zuverlässiger als ein paar Sätze – sehr kurze Eingaben tragen schlicht nicht genug Signal.
Credits werden pro Aufruf abgebucht, eine stark genutzte Integration kann also mitten im Stapel leerlaufen. Fangen Sie 402 ab, stoppen Sie den Stapel und alarmieren Sie jemanden – die Response sagt Ihnen genau, wie viel gefehlt hat.
Fragen zur Integration, zu Mengenpreisen, zu einem SLA oder zu einem Endpoint, den Sie brauchen und den es noch nicht gibt? Schreiben Sie uns. Feature-Wünsche aus echten Integrationen haben Vorrang.