DE ▾
API-Schlüssel erhalten

Schnellstart für OpenRouter NSFW-Nutzer

Integriere unsere unzensierte LLM-API in deine bestehende Codebasis, indem du die Base URL und den API-Schlüssel aktualisierst. Dieser Leitfaden behandelt die Standard-OpenAI-kompatiblen Endpunkte, Streaming und die Handhabung von Einschränkungen für die direkte Nutzung durch Entwickler.

Base URL und Authentifizierung

Ersetze die Base URL deines aktuellen Anbieters durch https://api.openrouternsfw.com/v1. Die Authentifizierung erfolgt über den Standard-Header Authorization: Bearer <key>. Du erhältst deinen API-Schlüssel sofort nach der Anmeldung über Google oder E-Mail auf der Seite API-Schlüssel erhalten. Eine Telefonnummer ist nicht erforderlich, und der Schlüssel wird nur einmal angezeigt, also kopiere ihn, bevor du die Seite verlässt.

Unser Service ist eine unabhängige API und kein Wiederverkäufer von Modellen anderer Anbieter. Die Modellkennung, die du in Anfragen sendest, ist uncensored, das auf unseren eigenen Servern läuft. Es wurde darauf optimiert, bei rechtmäßiger Erwachsenennutzung ohne Inhaltsfilter zu antworten, ist aber kein GPT, Claude oder ein anderes benanntes Modell eines Anbieters.

Stelle sicher, dass deine Client-Bibliothek so konfiguriert ist, dass sie diese neue Base URL verwendet. Alle Anfragen müssen einen gültigen API-Schlüssel im Header enthalten. Wenn der Schlüssel fehlt oder ungültig ist, gibt der Server einen 401-Fehler zurück. Wenn du kein Prepaid-Guthaben hast, erhältst du einen 402-Fehler. Dies sind Standard-HTTP-Statuscodes, die Authentifizierungs- oder Zahlungsprobleme anzeigen, keine Serverfehler.

Chat-Vervollständigungs-Endpunkt

Die Kernfunktionalität wird über den Endpunkt POST /v1/chat/completions bereitgestellt. Dieser Endpunkt akzeptiert einen JSON-Body, der den Modellnamen, das Nachrichten-Array und optionale Parameter enthält. Er gibt ein JSON-Objekt mit dem generierten Text, Token-Nutzungsstatistiken und dem Finish-Grund zurück. Diese Struktur ist mit den offiziellen OpenAI-SDKs und den meisten OpenAI-kompatiblen Client-Bibliotheken kompatibel.

Du musst keine benutzerdefinierten HTTP-Clients schreiben, wenn du es bevorzugst, ein SDK zu verwenden. Du musst die Konfiguration jedoch aktualisieren, um auf unsere Base URL zu verweisen. Das folgende Beispiel zeigt eine Standard-Vervollständigungsanfrage mit cURL. Diese Anfrage sendt einen Prompt an das unzensierte Modell und erwartet eine Textantwort.

curl https://api.openrouternsfw.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
  }'

Denke daran, dass dieser API nur Text bereitstellt. Es gibt keine Endpunkte für Embeddings, Bild-, Audio- oder Videoerstellung. Wenn deine Anwendung multimodale Eingaben oder Ausgaben erfordert, musst du diese separat behandeln. Unser Service konzentriert sich ausschließlich auf hochwertige Textgenerierung mit einem unzensierten Modell.

Integration des Python SDK

Die Verwendung des Python SDK vereinfacht den Integrationsprozess. Initialisiere den Client mit der richtigen Base URL und deinem API-Schlüssel. Die Bibliothek übernimmt die HTTP-Anfragen und die JSON-Parsing für dich. Du kannst die Modell-ID als uncensored angeben, um sicherzustellen, dass du unser spezifisches Modell verwendest.

from openai import OpenAI

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

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

Dieser Code-Snippet zeigt, wie du eine Nachricht sendest und die Antwort abrufst. Der Client behandelt die Verbindung und die Fehlerberichterstellung automatisch. Wenn der Server einen Fehler zurückgibt, löst das SDK eine Ausnahme aus. Du solltest diese Ausnahmen in deiner Anwendungslogik behandeln, um eine bessere Benutzererfahrung zu gewährleisten.

Das Python SDK ist nur eine Option. Du kannst jede Sprache verwenden, die HTTP-Anfragen unterstützt. Die Endpunktstruktur bleibt unabhängig vom gewählten Client gleich. Diese Flexibilität ermöglicht es dir, das unzensierte Modell in jeden bestehenden Workflow zu integrieren, ohne große Codeänderungen vorzunehmen.

Node-SDK-Nutzung

Das Node SDK funktioniert ähnlich wie die Python-Version. Konfiguriere den Client mit der Base URL und dem API-Schlüssel und rufe dann die Chat-Vervollständigungsmethode auf. Dieser Ansatz ist ideal für serverseitige Anwendungen oder Backend-Dienste, die Text asynchron generieren müssen.

import OpenAI from "openai";

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

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

Node.js-Entwickler können diese API problemlos in ihre bestehenden Projekte integrieren. Das SDK übernimmt die Serialisierung und Deserialisierung von JSON-Daten. Du kannst auch zusätzliche Parameter wie temperature oder top_p angeben, um die Zufälligkeit der Ausgabe zu steuern.

Stelle sicher, dass du die asynchrone Natur der Anfragen ordnungsgemäß behandelst. Verwende async/await oder Promise-Ketten, um die Antwortdaten zu verwalten. Dies stellt sicher, dass deine Anwendung reaktionsfähig bleibt, während sie auf die Textgenerierung durch das Modell wartet. Das Node SDK ist eine zuverlässige Wahl für den Aufbau skalierbarer Textgenerierungsdienste.

Streaming-Antworten

Aktiviere das Streaming, indem du den Parameter stream in deiner Anfrage auf true setzt. Der Server sendet eine Reihe von Server-Sent Events (SSE) anstelle einer einzelnen JSON-Antwort. Jedes Event enthält einen Teil des generierten Textes.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Streaming ist nützlich für Echtzeitanwendungen, in denen du die Ausgabe anzeigen möchtest, während sie generiert wird. Der letzte Stream enthält die gesamte Token-Nutzung für die Anfrage. Dies ermöglicht es dir, die Kosten genau zu verfolgen, ohne auf das Ende der gesamten Antwort warten zu müssen.

Behandle die Stream-Ereignisse sorgfältig, um sicherzustellen, dass der Text korrekt zusammengesetzt wird. Füge die Chunks in der Reihenfolge zusammen, in der sie empfangen werden. Der Server garantiert, dass die Chunks in Sequenz gesendet werden. Wenn die Verbindung unterbrochen wird, musst du möglicherweise die Anfrage wiederholen. Streaming ist eine leistungsstarke Funktion, die die Benutzererfahrung bei Textgenerierungsaufgaben verbessert.

Ratenlimits und Kontextfenster

Jeder API-Schlüssel ist auf 300 Anfragen pro Minute und 8 parallele Anfragen begrenzt. Die Größe des Anfragekörpers ist auf 8 MB begrenzt. Wenn du diese Grenzen überschreitest, gibt der Server einen 429-Statuscode zurück. Dies ist ein standardmäßiger HTTP-Statuscode, der anzeigt, dass du zu viele Anfragen in einem bestimmten Zeitfenster gesendet hast. Du solltest im Client eine exponentielle Backoff-Strategie implementieren, um diese Fehler angemessen zu behandeln.

Das Kontextfenster unterstützt bis zu 100,000 Token für die kombinierte Prompt- und Vervollständigungslänge. Es gibt keine separate Begrenzung für die Ausgabe. Wenn du den Parameter max_tokens nicht angibst, kann die Antwort bis zum Ende des Fensters reichen. Du kannst die Ausgabelänge begrenzen, indem du max_tokens auf einen niedrigeren Wert setzt.

Überwache deine Token-Nutzung, um dein Prepaid-Guthaben effektiv zu verwalten. Fehler und Ablehnungen verbrauchen keine Token, also wirst du für fehlgeschlagene Anfragen nicht berechnet. Dies stellt sicher, dass du nur für erfolgreiche Textgenerierung zahlst. Behalte deine Ratenlimits im Auge, um Unterbrechungen in deinem Service zu vermeiden.

Technische Daten

Alle echten Grenzen und Funktionen der API auf einen Blick – prüfe sie, bevor du Guthaben kaufst.

MerkmalWert
API-FormatOpenAI-kompatibel: jedes OpenAI-SDK funktioniert – nur Base-URL und Schlüssel ändern
AuthentifizierungAuthorization: Bearer YOUR_KEY
EndpunktePOST /v1/chat/completions · GET /v1/models
Base-URLhttps://api.openrouternsfw.com/v1
Modell-IDuncensored
JSON-Modusresponse_format: {"type": "json_object"}
Max. Ausgabebis zum Rest des 100.000-Token-Fensters; max_tokens optional (kein separates Limit)
Kontextfenster100.000 Tokens (Eingabe + Ausgabe)
Parametertemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Function Callingja – tools, tool_choice; Antworten mit tool_calls, auch im Stream; Ergebnisse als role: tool
Streamingja – Server-Sent Events, der letzte Chunk enthält die Token-Nutzung
Antwort-HeaderX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Anfragegrößebis 8 MB
Parallelität8 gleichzeitige Anfragen pro Schlüssel
Ratenlimit300 Anfragen pro Minute und Schlüssel
AufladenUSDT (TRC20) oder USDC (Base), jeder ganze Betrag von $20 bis $500
Gültigkeitbezahltes Guthaben verfällt nie, kein Abo
AbrechnungPrepaid-Guthaben nach echter Nutzung; Fehler und Ablehnungen sind kostenlos
Testguthaben$0,50 für 7 Tage, ohne Karte · Testschlüssel: 2 parallele Anfragen, 60 pro Minute; volle Limits (8 und 300) nach erster Aufladung
Bonus+5 % ab $50, +10 % ab $100, +15 % ab $200
Preis$0,15 pro 1 Mio. Eingabe-Tokens · $0,50 pro 1 Mio. Ausgabe-Tokens
InhalteInhalte für Erwachsene erlaubt; sexuelle Inhalte mit Minderjährigen werden abgelehnt
AnmeldungGoogle oder E-Mail und Passwort
Schlüsselein aktiver Schlüssel pro Konto; ein neuer ersetzt den alten

Fehlercodes

Fehler kommen als JSON mit festem type; fehlgeschlagene oder abgelehnte Anfragen kosten nichts.

CodeTypBedeutung
400bad_requestungültiges JSON, leere Nachrichten, falscher Parameter oder Kontext zu lang
401missing_key · invalid_key · key_revokedSchlüssel fehlt, ist falsch oder wurde ersetzt
402no_creditkein Guthaben – aufladen, dann geht es sofort weiter
403content_blockedsexuelle Inhalte mit Minderjährigen – abgelehnt, nicht berechnet
404not_foundunbekannter Endpunkt
413request_too_largeAnfrage größer als 8 MB
429rate_limited · concurrencyüber 300/Min. oder 8 parallel – kurz warten
503upstream_busyModell ausgelastet – in Sekunden erneut versuchen

Fragen und Antworten

Wie unterscheidet sich das unzensierte Modell von anderen Anbietern?

Unser Modell ist ein Open-Weight-Modell, das auf unseren eigenen Servern läuft und darauf abgestimmt ist, bei gesunder erwachsener Nutzung ohne Inhaltsablehnungen zu antworten. Es ist kein GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Llama oder ein Modell eines anderen Anbieters. Wir leiten nicht zwischen Anbietern weiter; wir bedienen einen einzelnen unzensierten Endpunkt.

Was passiert, wenn ich das Ratenlimit überschreite?

Wenn du 300 Anfragen pro Minute oder 8 parallele Anfragen pro Schlüssel überschreitest, gibt der Server den HTTP-Statuscode 429 zurück. Dies ist ein Standard-HTTP-Statuscode, der anzeigt, dass du zu viele Anfragen in einem bestimmten Zeitfenster gesendet hast. Du solltest Backoff-Logik in deinem Client implementieren, um diese Fehler zu behandeln.

Unterstützt die API Function Calling und den JSON-Modus?

Ja, die API unterstützt Function Calling (tools, tool_choice) und JSON-Modus (response_format json_object). Du kannst auch Parameter wie temperature, top_p, stop, seed, presence_penalty und frequency_penalty angeben, um die Ausgabe zu steuern.

Dein Schlüssel ist nur ein Formular entfernt

Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. Das ist die gesamte Einrichtung.

API-Schlüssel erhalten