API-Referenz

Drei Adressen unter https://api.mimir-mentor.com. Alle brauchen den Kopf x-api-key, Anfragen und Antworten sind JSON.

KI in Text erkennen

POST/v1/ai-detection

Prüft einen Text und liefert Urteil, KI-Anteil und markierte Sätze. Abgerechnet werden die Wörter des Textes, und nur bei einer Antwort mit 200.

Anfrage

FeldTypPflichtBeschreibung
textstringjaDer zu prüfende Text. Mindestens 80 Wörter, höchstens 100.000 Zeichen.
languagestringneinSprachkürzel des Textes, zum Beispiel de. Standard: en.
offset_unitstringneincodepoint (Standard, passend für Python) oder utf16 (passend für JavaScript und Java).
all_sentencesbooleanneintrue liefert alle Sätze, auch die ohne Markierung (Stufe not_flagged). Standard: false.
curl https://api.mimir-mentor.com/v1/ai-detection \
  -H "x-api-key: $MIMIR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Dein Text mit mindestens 80 Wörtern …", "language": "de"}'
import os
import requests

response = requests.post(
    "https://api.mimir-mentor.com/v1/ai-detection",
    headers={"x-api-key": os.environ["MIMIR_API_KEY"]},
    json={"text": text, "language": "de"},
    timeout=120,
)
response.raise_for_status()
result = response.json()

print(result["verdict"], result["ai_share"])
for sentence in result["sentences"]:
    print(sentence["band"], text[sentence["start"]:sentence["end"]])
const response = await fetch("https://api.mimir-mentor.com/v1/ai-detection", {
  method: "POST",
  headers: { "x-api-key": process.env.MIMIR_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ text, language: "de", offset_unit: "utf16" }),
});
if (!response.ok) throw new Error(`${response.status} ${JSON.stringify(await response.json())}`);
const result = await response.json();

console.log(result.verdict, result.ai_share);
for (const s of result.sentences) console.log(s.band, text.slice(s.start, s.end));

Antwort

FeldTypBeschreibung
idstringKennung der Anfrage. Nenne sie bei Rückfragen.
modelstringName des Modells.
languagestringDie verwendete Sprache.
wordsintegerAbgerechnete Wörter dieser Anfrage.
verdictstringnone, some oder mostly.
ai_sharenumberAnteil des Textes in den Stufen very_likely_ai und likely_ai, von 0 bis 1.
possible_sharenumberAnteil in der Stufe possibly_ai, von 0 bis 1.
result_messagestringDas Urteil als fertiger Satz in der Sprache des Textes.
offset_unitstringDie Einheit von start und end.
sentencesarrayJede markierte Stelle mit start, end und band. Unmarkierte Sätze fehlen, außer mit all_sentences.
usageobjectDein Stand nach dieser Anfrage: plan, words_used, words_included, period_end.
200 OK
{
  "id": "req_peDQZjknMKvf186g33YtMZsU",
  "model": "r13",
  "language": "de",
  "words": 114,
  "verdict": "mostly",
  "ai_share": 0.8663,
  "possible_share": 0.1275,
  "result_message": "Ein großer Teil ist wahrscheinlich KI-generiert.",
  "offset_unit": "codepoint",
  "sentences": [
    {
      "start": 0,
      "end": 123,
      "band": "possibly_ai"
    },
    {
      "start": 124,
      "end": 261,
      "band": "very_likely_ai"
    },
    {
      "start": 262,
      "end": 423,
      "band": "very_likely_ai"
    }
  ],
  "usage": {
    "plan": "starter",
    "words_used": 12114,
    "words_included": 500000,
    "period_end": 1796928768
  }
}

Verbrauch abfragen

GET/v1/usage

Zeigt Tarif, verbrauchte und enthaltene Wörter und das Ende des Abrechnungszeitraums (Unix-Zeit). Kostet nichts und eignet sich, um einen Schlüssel zu prüfen.

curl https://api.mimir-mentor.com/v1/usage -H "x-api-key: $MIMIR_API_KEY"
200 OK
{
  "plan": "starter",
  "words_used": 12114,
  "words_included": 500000,
  "period_end": 1796928768
}

Modell und Grenzen

GET/v1/models

Nennt das laufende Modell mit Stand, die Sprachen und die Grenzen je Anfrage. Kostet nichts.

curl https://api.mimir-mentor.com/v1/models -H "x-api-key: $MIMIR_API_KEY"
200 OK
{
  "models": [
    {
      "id": "r13",
      "updated": "2026-11-09",
      "languages": [
        "da",
        "de",
        "en",
        "es",
        "fi",
        "fr",
        "it",
        "nl",
        "pl",
        "pt",
        "sv",
        "tr"
      ]
    }
  ],
  "limits": {
    "max_characters": 100000,
    "min_words": 80,
    "requests_per_minute": 60,
    "concurrent_requests": 2
  }
}