DE ▾
2026-10-30gptsemfiltro.comuncensored
Gptsemfiltro

Unzensierte LLM-API, OpenAI-kompatibel

Hole deinen Schlüssel

ChatGPT-API-Dokumentation: Schnellreferenz und erste Aufrufe

Die meisten Chat-APIs nutzen das Anfrageformat, das die ChatGPT-API populär gemacht hat. Diese Seite ist eine kurze Referenz für den kompatiblen Endpunkt dieser Website mit Copy-Paste-Beispielen.

Offenes Referenzbuch, das sich zu verbundenen Endpunkt-Kacheln und einem Server-Würfel entfaltet, für API-Dokumentation

Zusammenfassung

  1. Basis-URL https://api.gptsemfiltro.com/v1, Bearer-Token-Authentifizierung, Modell-ID uncensored.
  2. Drei Methoden: Chat-Vervollständigungen, Responses und die Modellliste; das Guthaben hat eigene Endpunkte.
  3. Streaming, Function Calling und JSON-Modus werden unterstützt; der Kontext umfasst 100.000 Token.
  4. 429-Fehler tragen einen Code: rate_limited oder concurrency.

Was diese Seite behandelt

Wenn du nach chatgpt api documentation gesucht hast, sind die offiziellen Dokumente von OpenAI für die Modelle von OpenAI vielleicht das, was du suchst. Diese Seite ist etwas anderes: eine funktionale Referenz für eine OpenAI-kompatible API, die auf dieser Website gehostet wird. Sie nutzt ein Open-Weight-Modell, uncensored, das darauf abgestimmt ist, bei der rechtmäßigen Nutzung für Erwachsene ohne Inhaltsablehnungen zu antworten. Es ist nicht die offizielle API von OpenAI oder einem anderen Anbieter.

Die Struktur von Anfrage und Antwort folgt dem vertrauten OpenAI-Format, sodass die offiziellen SDKs und die meisten Tools funktionieren, nachdem du die Basis-URL und den Schlüssel geändert hast. Die vollständige Referenz findest du in der API-Dokumentation; diese Seite gibt dir die schnelle Version mit Beispielen, die du ausführen kannst.

Verbindungsbasics und ein erster Aufruf

Verbindungsbasics

PositionWert
Base-URLhttps://api.gptsemfiltro.com/v1
AuthentifizierungAuthorization: Bearer YOUR_KEY
Modell-IDuncensored
Chat-EndpunktPOST /v1/chat/completions
Responses-EndpunktPOST /v1/responses
ModelllisteGET /v1/models
BalanceGET /v1/balance oder GET /v1/dashboard/billing/credit_grants
Maximale Anforderungskörpergröße8 MB
Kontextfenster100.000 Token, Prompt plus Vervollständigung

Hole einen Schlüssel auf der API-Schlüssel-Seite. Neue Nutzer können dort mit einem Klick ein $0,50 Testguthaben beanspruchen; es ist 7 Tage gültig und erfordert keine Zahlung. Du kannst einen Schlüssel jederzeit neu generieren, und Konten, die aufgeladen haben, können bis zu 5 Schlüssel verwalten, sie benennen und jeden widerrufen.

Dein erster Aufruf

curl https://api.gptsemfiltro.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [
      {"role": "system", "content": "You answer in plain language."},
      {"role": "user", "content": "What is a context window?"}
    ],
    "temperature": 0.7
  }'
from openai import OpenAI

client = OpenAI(base_url="https://api.gptsemfiltro.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[
        {"role": "system", "content": "You answer in plain language."},
        {"role": "user", "content": "What is a context window?"},
    ],
)
print(resp.choices[0].message.content)
print(resp.usage)

Die Antwort enthält choices[0].message.content und ein usage-Objekt mit Prompt- und Completion-Token-Anzahlen.

Anfrageparameter

Die Parameter, die du am häufigsten verwenden wirst:

Nicht verfügbar: Bild-, Audio- oder Videogenerierung, Embeddings und Fine-Tuning. Der Dienst verarbeitet nur Text.

Die Rollen funktionieren wie im OpenAI-Format. Eine system-Nachricht legt das Verhalten für den gesamten Chat fest, user-Nachrichten enthalten die Eingabe der Person, assistant-Nachrichten enthalten frühere Antworten und tool-Nachrichten geben Funktionsergebnisse zurück. Die API speichert keinen Speicher zwischen Aufrufen, also muss jede Anfrage den Verlauf enthalten, den das Modell sehen soll. Prompt und Completion teilen sich das 100.000-Token-Fenster, was bedeutet, dass ein langer Verlauf weniger Platz für die Antwort lässt.

Streaming, Function Calling und JSON-Modus

Streaming

Setze stream auf true und lese die Events, sobald sie eintreffen. Jeder Chunk enthält ein kleines Text-Delta, und die Nutzungsinformationen kommen am Ende an.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.gptsemfiltro.com/v1",
  apiKey: process.env.API_KEY,
});

const stream = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "List five uses of a context window." }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

Eine gestreamte Anfrage behält ihren Concurrency-Slot, bis der Stream endet, also schließe Streams, die du nicht mehr benötigst.

Tool Calling und JSON-Modus

Definiere Funktionen mit tools. Wenn das Modell eine davon möchte, enthält die Antwort tool_calls statt Text. Du führst die Funktion aus und sendst das Ergebnis als Nachricht mit role: "tool" zurück.

import json
from openai import OpenAI

client = OpenAI(base_url="https://api.gptsemfiltro.com/v1", api_key="YOUR_KEY")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get the weather for a city",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

messages = [{"role": "user", "content": "What is the weather in Lisbon?"}]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
call = first.choices[0].message.tool_calls[0]

messages.append(first.choices[0].message)
messages.append({
    "role": "tool",
    "tool_call_id": call.id,
    "content": json.dumps({"city": "Lisbon", "temp_c": 21}),
})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)

Prüfe in der Produktion, ob tool_calls existiert, bevor du es liest, da das Modell auch in Klartext antworten kann. Für strukturierte Ausgaben ohne Tools füge "response_format": {"type": "json_object"} hinzu und gib im Prompt an, dass du JSON möchtest.

Limits, Fehler und Header

GrenzwertVoll-KeyTest-API-Schlüssel
Parallele Anfragen82
Anfragen pro Minute30060
Body-Größe8 MB8 MB

Überschreitest du ein Limit, gibt die API HTTP 429 zurück. Der Fehlercode rate_limited bedeutet zu viele Anfragen pro Minute; concurrency bedeutet zu viele gleichzeitig. Bei temporärer Überlastung erhältst du ebenfalls 429 mit einem Retry-After: 5-Header. Fehlgeschlagene oder abgelehnte Anfragen werden nicht berechnet.

Nützliche Antwort-Header: X-Request-Id (zitiere ihn beim Kontakt mit Support), X-Balance-USD, X-RateLimit-Limit-Requests und X-RateLimit-Limit-Concurrency.

Ein kleiner Retry-Helfer in Node, der auf die Zeit in Retry-After wartet und bei jedem Versuch etwas mehr zurückgeht:

async function chat(messages, tries = 4) {
  for (let n = 0; n < tries; n++) {
    const res = await fetch("https://api.gptsemfiltro.com/v1/chat/completions", {
      method: "POST",
      headers: {
        "Authorization": "Bearer " + process.env.API_KEY,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ model: "uncensored", messages: messages }),
    });
    if (res.status === 429) {
      const wait = Number(res.headers.get("Retry-After") || 5);
      await new Promise(function (r) { setTimeout(r, wait * 1000 * (n + 1)); });
      continue;
    }
    return res.json();
  }
  throw new Error("still rate limited");
}

Bestehenden Code migrieren und dein Guthaben prüfen

Bestehenden Code zu diesem Endpunkt verschieben

Wenn dein Code bereits einen OpenAI-ähnlichen Chat-Endpunkt aufruft, ist die Migration gering. Ändere diese drei Werte und lasse den Rest:

  1. Die Basis-URL lautet https://api.gptsemfiltro.com/v1.
  2. Der Schlüssel wird der von der API-Schlüssel-Seite.
  3. Das Modell wird zu uncensored.

Prüfe dann, worauf dein Code angewiesen ist. Alles Textbasierte und Chat-ähnliche wird übernommen: System-Prompts, Verlauf, Streaming, Tool-Aufrufe und JSON-Modus. Alles andere existiert hier nicht. Es gibt keine Bildgenerierung, kein Audio oder Video, keine Embeddings und kein Fine-Tuning, daher benötigt Code, der diese Routen aufruft, einen anderen Anbieter.

Der Responses-Endpunkt ist ebenfalls verfügbar, für Clients, die dieses Format bevorzugen:

curl https://api.gptsemfiltro.com/v1/responses \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "uncensored", "input": "Summarise what a context window is in one sentence."}'

Teste es, bevor du es veröffentlichst, weil verschiedene Modelle auf denselben Prompt unterschiedlich reagieren. Ablehnungen, Tonfall und Länge können sich ändern, also führe die Prompts, die dir wichtig sind, erneut aus.

Dein Guthaben aus dem Code prüfen

Das Guthaben ist auf drei Arten verfügbar. Jede Antwort enthält den X-Balance-USD-Header. Du kannst auch GET /v1/balance oder die OpenAI-kompatible Endpunkt GET /v1/dashboard/billing/credit_grants aufrufen, den einige Dashboards bereits zu lesen wissen.

curl https://api.gptsemfiltro.com/v1/balance \
  -H "Authorization: Bearer YOUR_KEY"

Ein nützliches Muster ist, den Header nach jedem Aufruf zu lesen, ihn zu speichern und eine Warnung auszulösen, wenn er unter einen von dir gewählten Schwellenwert fällt. Da das Guthaben Prepaid ist und nie verfällt, ist ein niedriger Kontostand ein Hinweis zum Aufladen, keine Frist.

Preise auf einen Blick

Input kostet $0,15 pro 1M Token und Output $0,50 pro 1M Token, abgezogen vom Prepaid-Guthaben. Beispiel: 3.000 Input- und 600 Output-Token kosten 3.000 x $0,15 / 1M + 600 x $0,50 / 1M = $0,00045 + $0,0003 = $0,00075. Aufladungen sind ganzzahlige Beträge von $20 bis $500 mit Boni von +5 % ab $50, +10 % ab $100 und +15 % ab $200, zahlbar in USDT (TRC20) oder USDC (Base). Mehr Details findest du auf der Preisseite. Prompts werden nicht zum Training verwendet.

Checkliste zur Fehlerbehebung für die erste Integration

Die meisten fehlgeschlagenen ersten Aufrufe stammen von einer kurzen Liste von Ursachen. Gehe sie der Reihe nach durch, bevor du den Dienst verdächtigst.

  1. Status 401. Der Schlüssel fehlt oder wurde falsch eingegeben. Gib den Header aus, den dein Client tatsächlich sendet, und vergleiche ihn mit Authorization: Bearer YOUR_KEY. Wenn der Schlüssel an einem öffentlichen Ort eingefügt wurde, generiere ihn auf der API-Schlüssel-Seite neu; der alte Schlüssel funktioniert sofort nicht mehr.
  2. Status 404. Der Pfad ist falsch. Die Base URL endet auf /v1, und das SDK fügt /chat/completions selbst hinzu. Wenn du die API mit reinem HTTP aufrufst, gib den vollständigen Pfad an.
  3. Ein Fehler bezüglich des Modells. Die einzige Modell-ID ist uncensored. Ein Name, der aus den Dokumenten eines anderen Anbioters kopiert wurde, passt nicht. GET /v1/models listet auf, was der Schlüssel nutzen kann.
  4. Eine sehr große Anfrage schlägt fehl. Die Body-Grenze beträgt 8 MB. Lange Verläufe sollten viel früher gekürzt oder zusammengefasst werden, bevor sie dieser Größe nahekommen, und das 100.000-Token-Kontextfenster wird von Prompt und Completion gemeinsam genutzt.
  5. Intermittierende 429. Lies den Fehlercode. concurrency bedeutet zu viele Aufrufe gleichzeitig, also reduziere deine Worker-Anzahl. rate_limited bedeutet zu viele pro Minute. Ein Retry-After: 5-Header bedeutet temporäre Überlastung, und ein kurzes Warten behebt das Problem.
  6. Abgebrochene Antworten. Wenn du max_tokens festlegst, stoppt die Antwort dort und finish_reason liest length. Erhöhe die Obergrenze oder entferne sie.

Bewahre den X-Request-Id-Wert von jeder Anfrage auf, die du nicht erklären kannst. Das ist der schnellste Weg, um bei einer Anfrage an den Support genau eine bestimmte Anfrage zu benennen.

Häufig gestellte Fragen

Ist dies die offizielle ChatGPT-API?

Nein. Es ist ein unabhängiges gehostetes Open-Weight-Modell mit einer OpenAI-kompatiblen Schnittstelle. Es wird nicht von OpenAI betrieben.

Welche Endpunkte werden unterstützt?

POST /v1/chat/completions, POST /v1/responses und GET /v1/models, sowie Endpunkte für den Kontostand unter /v1/balance und /v1/dashboard/billing/credit_grants.

Brauche ich ein anderes SDK?

Nein. Die offiziellen OpenAI SDKs für Python und Node funktionieren, nachdem du die Base URL, den Schlüssel und den Modellnamen geändert hast.

Wie prüfe ich mein verbleibendes Guthaben?

Lese den X-Balance-USD-Header auf jeder Antwort oder rufe GET /v1/balance auf.

Erhalte deinen API-Schlüssel

Registriere dich, kopiere den Schlüssel und aktualisiere deine Base URL. Die Einrichtung ist abgeschlossen.

Hole dir deinen Schlüssel