Character-AI-API: Wechsle deinen Client in drei Zeilen
Verbinde deinen Chatbot in Minuten mit einem unzensierten LLM über unsere OpenAI-kompatible API. Diese Anleitung führt dich durch die Einrichtung, grundlegende Anfragen und Streaming ohne Konfigurations-Kopfzerren.
https://api.characteraiapi.com/v1
Voraussetzungen
Bevor du Code schreibst, benötigst du ein aktives Konto auf characteraiapi.com. Besuche die Seite API-Schlüssel erhalten und registriere dich mit E-Mail und Passwort. Keine Kreditkarte erforderlich. Neue Konten erhalten $0,50 an Testguthaben, die 7 Tage gültig sind. Nach der Registrierung wird dein API-Schlüssel sofort angezeigt. Bewahre diesen Schlüssel sicher auf, da er alle Anfragen am Endpunkt authentifiziert. Du benötigst auch ein unterstütztes Sprach-SDK in deiner Entwicklungsumgebung. Der character ai api-Endpunkt akzeptiert Standard-OpenAI-Parameter, sodass jeder bestehende OpenAI-kompatible Client mit minimalen Änderungen funktioniert.
SDK installieren
Für Python-Projekte installiere das offizielle OpenAI-Paket mit pip. Diese Bibliothek verarbeitet die JSON-Serialisierung und HTTP-Anfragen automatisch. Für Node.js-Anwendungen verwende npm, um das openai-Paket hinzuzufügen. Beide Bibliotheken unterstützen das Streaming und Tool-Calling, wie später in dieser Anleitung beschrieben. Stelle sicher, dass deine SDK-Version neu genug ist, um Server-Sent Events (SSE) für Echtzeit-Token-Streaming zu unterstützen. Wenn du einen benutzerdefinierten HTTP-Client statt eines SDKs verwendest, musst du das JSON-Payload und die SSE-Stream-Parsing manuell gemäß der OpenAI-API-Spezifikation handhaben.
Authentifizierung
Jede Anfrage an die API muss deinen API-Schlüssel im Authorization-Header enthalten. Verwende das Format Bearer YOUR_API_KEY. Die Basis-URL für alle Anfragen ist https://api.characteraiapi.com/v1. Wenn du ein SDK verwendest, stelle die base_url-Konfiguration auf diesen Wert ein und gib deinen Schlüssel über den Parameter api_key an. Wenn du deinen Schlüssel verlierst oder einen Leak vermutest, kannst du ihn im Dashboard neu generieren; der alte Schlüssel wird sofort widerrufen. Pro Konto ist nur ein aktiver Schlüssel erlaubt. Stelle sicher, dass du die korrekte Basis-URL verwendest, da Anfragen an den Standard-OpenAI-Endpunkt mit einem 404- oder 401-Fehler fehlschlagen.
Einfache Chat-Vervollständigung
Die Kernfunktionalität wird über den Endpunkt /v1/chat/completions bereitgestellt. Sende eine POST-Anfrage mit einem Modellnamen von uncensored und deinem Nachrichtenverlauf. Das Modell antwortet mit Textausgabe, ohne Standard-Inhaltsfilter für legale erwachsene Inhalte anzuwenden. Unten findest du ein curl-Beispiel, das eine einfache Textvervollständigungsanfrage demonstriert.
curl https://api.characteraiapi.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."}]
}'
Diese Anfrage gibt ein Vervollständigungsobjekt zurück, das den generierten Text enthält. Du kannst Parameter wie temperature anpassen, um die Zufälligkeit zu steuern, oder max_tokens, um die Ausgabelänge zu begrenzen. Das Modell unterstützt ein Kontextfenster von 100.000 Token, was es ermöglicht, umfangreiche Gesprächsverläufe oder lange Dokumente in einer einzigen Anfrage zu verarbeiten.
Streaming-Antworten
Für eine bessere Benutzererfahrung aktiviere das Streaming, indem du stream: true in deiner Anfrage einstellst. Die API gibt Server-Sent Events (SSE) zurück, die partielle Token-Chunks enthalten, sobald sie generiert werden. Dies reduziert die wahrgenommene Latenz für Chatbot-Anwendungen. Verwende den Parameter stream_options, wenn du die finalen Nutzungsinformationen im letzten Event erhalten möchtest. Streaming ist besonders nützlich für Echtzeit-Charakter-Rollenspiele, bei denen die schrittweise Anzeige von Text die Immersion erhöht. Stelle sicher, dass dein Client-Code das SSE-Format korrekt verarbeitet, um jeden Chunk sequenziell zu parsen.
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)
Ratenlimits und Fehler
Die API erzwingt ein Limit von 300 Anfragen pro Minute pro Schlüssel. Wenn du dieses überschreitest, erhältst du einen 429 Too Many Requests-Fehler. Anfragekörper sind auf 8 MB begrenzt. Häufige Fehler sind 401 für einen ungültigen oder fehlenden Schlüssel und 402, wenn dein Prepaid-Guthaben aufgebraucht ist. Du kannst ab 10 $ per Krypto (USDT oder USDC) aufladen, wobei für größere Einzahlungen Bonusguthaben verfügbar ist. Im Gegensatz zu einigen Anbietern gibt es keine versteckten Gebühren oder Abonnement-Sperren; du zahlst nur für die Tokens, die du verbrauchst. Die Preise sind transparent: 0,25 $ pro 1 Mio. Input-Token und 1,00 $ pro 1 Mio. Output-Token. Stelle sicher, dass deine Fehlerbehandlungslogik bei 429-Fehlern mit exponentiellem Backoff wiederholt.
from openai import OpenAI
client = OpenAI(base_url="https://api.characteraiapi.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.characteraiapi.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);API-Spezifikation
Eine Tabelle mit jedem Limit, jeder Funktion und jedem Preis.
| Merkmal | Wert |
|---|---|
| API-Format | OpenAI-kompatibel: jedes OpenAI-SDK funktioniert – nur Base-URL und Schlüssel ändern |
| Endpunkte | POST /v1/chat/completions · GET /v1/models |
| Authentifizierung | Authorization: Bearer YOUR_KEY |
| Base-URL | https://api.characteraiapi.com/v1 |
| Modell-ID | uncensored |
| JSON-Modus | response_format: {"type": "json_object"} |
| Max. Ausgabe | bis zum Rest des 100.000-Token-Fensters; max_tokens optional (kein separates Limit) |
| Parameter | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Kontextfenster | 100.000 Tokens (Eingabe + Ausgabe) |
| Streaming | ja – Server-Sent Events, der letzte Chunk enthält die Token-Nutzung |
| Function Calling | ja – tools, tool_choice; Antworten mit tool_calls, auch im Stream; Ergebnisse als role: tool |
| Anfragegröße | bis 8 MB |
| Antwort-Header | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Parallelität | 8 gleichzeitige Anfragen pro Schlüssel |
| Ratenlimit | 300 Anfragen pro Minute und Schlüssel |
| Gültigkeit | bezahltes Guthaben verfällt nie, kein Abo |
| Bonus | +5 % ab $50, +10 % ab $100 |
| Aufladen | USDT (TRC20) oder USDC (Base), jeder ganze Betrag von $10 bis $500 |
| Preis | $0,25 pro 1 Mio. Eingabe-Tokens · $1,00 pro 1 Mio. Ausgabe-Tokens |
| Abrechnung | Prepaid-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 |
| Schlüssel | ein aktiver Schlüssel pro Konto; ein neuer ersetzt den alten |
| Anmeldung | Google oder E-Mail und Passwort |
| Inhalte | Inhalte für Erwachsene erlaubt; sexuelle Inhalte mit Minderjährigen werden abgelehnt |
Fehlercodes
Fehler kommen als JSON mit festem type; fehlgeschlagene oder abgelehnte Anfragen kosten nichts.
| Code | Typ | Bedeutung |
|---|---|---|
400 | bad_request | ungültiges JSON, leere Nachrichten, falscher Parameter oder Kontext zu lang |
401 | missing_key · invalid_key · key_revoked | Schlüssel fehlt, ist falsch oder wurde ersetzt |
402 | no_credit | kein Guthaben – aufladen, dann geht es sofort weiter |
403 | content_blocked | sexuelle Inhalte mit Minderjährigen – abgelehnt, nicht berechnet |
404 | not_found | unbekannter Endpunkt |
413 | request_too_large | Anfrage größer als 8 MB |
429 | rate_limited · concurrency | über 300/Min. oder 8 parallel – kurz warten |
503 | upstream_busy | Modell ausgelastet – in Sekunden erneut versuchen |
Fragen und Antworten
Ist dies die offizielle Character.ai-API?
Nein, dies ist ein unabhängiger Dienst, gehostet unter characteraiapi.com. Er stellt sein eigenes unzensiertes Modell bereit und steht nicht in Verbindung mit Character.AI oder einem anderen großen LLM-Anbieter.
Unterstützt das Modell die Bild- oder Audioerstellung?
Nein. Die API ist textbasiert. Sie akzeptiert Texteingaben und gibt Textausgaben zurück. Sie unterstützt keine Embeddings, Fine-Tuning oder multimodalen Eingaben/Ausgaben.
Wie ist „unzensiert“ definiert?
Das Modell lehnt legale erwachsene, fiktive oder kontroverse Themen nicht ab. Es blockiert nur sexuellen Inhalt, der Minderjährige betrifft, was eine harte Grenze ist, die für alle Anfragen gilt.
Dein Schlüssel ist nur ein Formular entfernt
Erstelle ein Konto, kopiere den Schlüssel, ändere die Basis-URL. Das ist die gesamte Einrichtung.