Schnellstart für Xtts-Pipelines
Integriere unsere unzensierte Text-API in deine Voice-Cloning-Pipeline mit diesem Schnellstart-Guide. Lerne, wie du Skripte, Untertitel und Rohtexte über standardmäßige OpenAI-kompatible Endpunkte generierst.
Authentifizierung & Base URL
Navigiere zur Seite API-Schlüssel abrufen und melde dich mit Google oder einem E-Mail-Passwort an. Du erhältst sofort einen eindeutigen API-Schlüssel. Nutze die Base URL https://api.xtts.cc/v1 für alle Anfragen. Diese URL ist mit offiziellen OpenAI-SDKs und jedem Client kompatibel, der das OpenAI-Chat-Completions-Format unterstützt.
Füge deinen API-Schlüssel als Bearer-Token in den Authorization-Header ein. Die Modell-ID, die du senden musst, ist uncensored. Dieses Open-Weight-Modell wird auf unseren Servern gehostet und ist darauf optimiert, bei gesetzlicher Erwachsenennutzung ohne Inhaltsablehnungen zu antworten, sodass deine Voice-Pipeline den Rohtext erhält, den sie benötigt.
Unzensierten Text generieren
Sende eine POST-Anfrage an /v1/chat/completions mit deinen System- und User-Prompts. Die API gibt strukturiertes JSON mit dem generierten Text zurück. Dieser Endpunkt ist für das Schreiben von Prompts, die Skriptgenerierung und Post-Processing-Aufgaben in deinem Voice-Cloning-Workflow konzipiert.
Der Anfragekörper enthält den Modellnamen, deinen Nachrichtenverlauf und optionale Parameter wie temperature oder top_p. Du kannst die Ausgabelänge mit dem Parameter max_tokens steuern. Wenn du max_tokens nicht festlegst, kann die Antwort bis zum Ende des Context window reichen.
curl https://api.xtts.cc/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."}]
}'
Python SDK-Integration
Nutze das offizielle OpenAI Python SDK, um mit unserer API zu interagieren. Setze die base_url auf unseren Endpunkt und gib deinen API-Schlüssel an. Dieser Ansatz ermöglicht es dir, bestehende Code-Strukturen zu nutzen und gleichzeitig vom Verhalten unseres unzensierten Modells zu profitieren.
Erstelle eine Client-Instanz mit der Base URL und rufe dann chat.completions.create auf. Übergebe die Modell-ID uncensored und deine Nachrichten. Das Antwortobjekt enthält den generierten Text in content. Diese Methode ist ideal für Batch-Verarbeitungsskripte oder die Integration der Textgenerierung in größere Python-Anwendungen.
from openai import OpenAI
client = OpenAI(base_url="https://api.xtts.cc/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 SDK-Integration
Für JavaScript-Umgebungen nutze das OpenAI Node SDK. Konfiguriere den Client mit unserer Base URL und deinem API-Schlüssel. Diese Einrichtung ermöglicht es dir, Text direkt in deinen Web- oder Server-seitigen Anwendungen zu generieren.
Rufe den Chat-Completions-Endpunkt mit dem Modell uncensored auf. Die Antwort liefert den generierten Text, den du dann an deine Voice-Synthese-Engine übergibst. Diese Integration eignet sich für die Echtzeit-Textgenerierung in Web-Apps oder Backend-Services, die Skripte für Voice-Cloning vorbereiten.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.xtts.cc/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);
Streaming-Antworten
Aktiviere Streaming, indem du stream in deiner Anfrage auf true setzt. Die API gibt Server-Sent Events (SSE) für jedes generierte Token zurück. Diese Funktion ist nützlich für die Echtzeit-Anzeige von Text oder die progressive Vorbereitung der Voice-Synthese.
Jeder Event-Chunk enthält teilweise Text. Der letzte Chunk enthält Nutzungsstatistiken, wie Token-Anzahlen. Streaming ermöglicht es deiner Anwendung, Text zu verarbeiten, während er generiert wird, was die wahrgenommene Latenz für Nutzer reduziert. Verarbeite die Streaming-Ereignisse, um die vollständige Antwort zu sammeln.
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 & Parameter
Jeder API-Schlüssel ist auf 300 Anfragen pro Minute und 8 parallele Anfragen begrenzt. Der Anfragekörper darf 8 MB nicht überschreiten. Wenn du einen ungültigen Schlüssel sendest, erhältst du einen 401-Fehler. Wenn dein Prepaid-Guthaben aufgebraucht ist, erhältst du einen 402-Fehler. Das Überschreiten des Ratenlimits führt zu einem 429-Fehler.
Das Kontextfenster unterstützt insgesamt 100,000 Token, einschließlich sowohl des Prompts als auch der Completion. Es gibt keine separate Ausgabeobergrenze, und du kannst ein niedrigeres max_tokens angeben, wenn du eine kürzere Antwort möchtest. Fehler und Ablehnungen verbrauchen nicht dein Prepaid-Guthaben. Die Unterstützung für Function Calling und JSON-Modus ist für die Extraktion strukturierter Daten verfügbar.
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 |
| Modell-ID | uncensored |
| Base-URL | https://api.xtts.cc/v1 |
| Function Calling | ja – tools, tool_choice; Antworten mit tool_calls, auch im Stream; Ergebnisse als role: tool |
| 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 |
| JSON-Modus | response_format: {"type": "json_object"} |
| Kontextfenster | 100.000 Tokens (Eingabe + Ausgabe) |
| Streaming | ja – Server-Sent Events, der letzte Chunk enthält die Token-Nutzung |
| Anfragegröße | bis 8 MB |
| Parallelität | 8 gleichzeitige Anfragen pro Schlüssel |
| Antwort-Header | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Ratenlimit | 300 Anfragen pro Minute und Schlüssel |
| 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 |
| Preis | $0,15 pro 1 Mio. Eingabe-Tokens · $0,50 pro 1 Mio. Ausgabe-Tokens |
| Abrechnung | Prepaid-Guthaben nach echter Nutzung; Fehler und Ablehnungen sind kostenlos |
| Aufladen | USDT (TRC20) oder USDC (Base), jeder ganze Betrag von $20 bis $500 |
| Bonus | +5 % ab $50, +10 % ab $100, +15 % ab $200 |
| Gültigkeit | bezahltes Guthaben verfällt nie, kein Abo |
| Anmeldung | Google oder E-Mail und Passwort |
| Schlüssel | ein aktiver Schlüssel pro Konto; ein neuer ersetzt den alten |
| Inhalte | Inhalte für Erwachsene erlaubt; sexuelle Inhalte mit Minderjährigen werden abgelehnt |
Fehler und Lösungen
Fehler kommen als JSON mit festem type; fehlgeschlagene oder abgelehnte Anfragen kosten nichts.
| HTTP | 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
Wie lade ich mein Prepaid-Guthaben auf?
Du kannst per Krypto (USDT auf TRC20, USDC auf Base) aufladen. Akzeptierte Beträge reichen von $20 bis $500. Du erhältst einen 5-%-Bonus für Aufladungen ab $50 und einen 10-%-Bonus ab $100. Guthaben verfällt nie.
Generiert die API Audio oder Video?
Nein, diese API dient ausschließlich der Textgenerierung. Sie liefert eine unzensierte Textantwort, die du in deine eigenen Voice-Synthese- oder Video-Pipelines einspeisen kannst. Sie erzeugt direkt keine Audio-, Bild- oder Videodateien.
Was ist das Testangebot?
Neue Nutzer erhalten $0,50 an Testguthaben, einmal pro Person, das 7 Tage gültig ist. Fordere dieses Guthaben mit einem Klick auf deiner API-Schlüssel-Seite an. Zur Anmeldung ist keine Kreditkarte erforderlich. So kannst du die API testen, bevor du Prepaid-Guthaben kaufst.
Dein Schlüssel ist nur ein Formular entfernt
Erstelle einen Account, kopiere den Schlüssel, ändere die Base URL. Das ist die gesamte Einrichtung.