Guide de démarrage pour les pipelines Xtts
Intégrez notre API textuelle sans censure dans votre pipeline de clonage vocal grâce à ce guide de démarrage. Apprenez à générer des scripts, des sous-titres et des réponses textuelles brutes à l'aide d'endpoints compatibles OpenAI.
Authentification et URL de base
Commencez par accéder à la page Obtenir la clé API et connectez-vous avec Google ou un mot de passe par e-mail. Vous recevrez immédiatement une clé API unique. Utilisez l'URL de base https://api.xtts.cc/v1 pour toutes les requêtes. Cette URL est compatible avec les SDK officiels OpenAI et tout client prenant en charge le format chat-completions OpenAI.
Incluez votre clé dans l'en-tête Authorization sous forme de jeton Bearer. L'identifiant de modèle que vous devez envoyer est uncensored. Ce modèle à poids ouverts est hébergé sur nos serveurs et est optimisé pour répondre sans refus de contenu pour un usage adulte légal, garantissant que votre pipeline vocal reçoit le texte brut dont il a besoin.
Générer du texte sans censure
Envoyez une requête POST à /v1/chat/completions avec vos prompts système et utilisateur. L'API renvoie du JSON structuré contenant le texte généré. Cet endpoint est conçu pour la rédaction de prompts, la génération de scripts et les tâches de post-traitement dans votre workflow de clonage vocal.
Le corps de la requête inclut le nom du modèle, votre historique de messages et des paramètres optionnels comme temperature ou top_p. Vous pouvez contrôler la longueur de la sortie avec le paramètre max_tokens. Si vous ne définissez pas max_tokens, la réponse peut s'étendre jusqu'à la fin de la fenêtre.
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."}]
}'
Intégration du SDK Python
Utilisez le SDK Python officiel OpenAI pour interagir avec notre API. Définissez base_url sur notre endpoint et fournissez votre clé API. Cette approche vous permet de tirer parti des structures de code existantes tout en bénéficiant du comportement de notre modèle sans censure.
Créez une instance de client avec l'URL de base, puis appelez chat.completions.create. Transmettez l'ID de modèle uncensored et vos messages. L'objet de réponse contient le texte généré dans content. Cette méthode est idéale pour les scripts de traitement par lots ou l'intégration de la génération de texte dans de plus grandes applications Python.
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)
Intégration du SDK Node.js
Pour les environnements JavaScript, utilisez le SDK Node.js OpenAI. Configurez le client avec notre URL de base et votre clé API. Cette configuration vous permet de générer du texte directement dans vos applications web ou côté serveur.
Appelez l'endpoint de complétion de chat avec le modèle uncensored. La réponse fournit le texte généré, que vous pouvez ensuite transmettre à votre moteur de synthèse vocale. Cette intégration convient à la génération de texte en temps réel dans les applications web ou les services backend qui préparent des scripts pour le clonage vocal.
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);
Réponses en streaming
Activez le streaming en définissant stream sur true dans votre requête. L'API renvoie des Server-Sent Events (SSE) pour chaque token généré. Cette fonctionnalité est utile pour l'affichage en temps réel du texte ou la préparation progressive de la synthèse vocale.
Chaque chunk d'événement contient du texte partiel. Le dernier chunk inclut les statistiques d'utilisation, telles que les comptes de tokens. Le streaming permet à votre application de traiter le texte au fur et à mesure de sa génération, réduisant la latence perçue pour les utilisateurs. Gérez les événements de streaming pour accumuler la réponse complète.
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)
Limites de débit et paramètres
Chaque clé API est limitée à 300 requêtes par minute et 8 requêtes simultanées. Le corps de la requête ne doit pas dépasser 8 Mo. Si vous envoyez une clé invalide, vous recevrez une erreur 401. Si votre crédit prépayé est épuisé, vous recevrez une erreur 402. Le dépassement de la limite de débit entraîne une erreur 429.
La fenêtre de contexte prend en charge 100 000 tokens au total, incluant à la fois le prompt et la complétion. Il n'y a pas de limite de sortie séparée, et vous pouvez spécifier un max_tokens inférieur si vous souhaitez une réponse plus courte. Les erreurs et les refus ne consomment pas votre crédit prépayé. Le support de l'appel de fonctions et du mode JSON est disponible pour l'extraction de données structurées.
Fiche technique de l'API
Toutes les limites et fonctions réelles de l'API au même endroit — vérifiez-les avant de recharger.
| Élément | Valeur |
|---|---|
| Format | compatible OpenAI : tout SDK OpenAI fonctionne en changeant la base URL et la clé |
| Endpoints | POST /v1/chat/completions · GET /v1/models |
| Authentification | Authorization: Bearer YOUR_KEY |
| ID du modèle | uncensored |
| Base URL | https://api.xtts.cc/v1 |
| Appel de fonctions | oui — tools, tool_choice ; réponse avec tool_calls, aussi en streaming ; résultats en role: tool |
| Sortie max. | jusqu'au reste de la fenêtre de 100 000 tokens ; max_tokens optionnel (pas de plafond distinct) |
| Paramètres | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Mode JSON | response_format: {"type": "json_object"} |
| Fenêtre de contexte | 100 000 tokens (entrée + sortie) |
| Streaming | oui — server-sent events ; le dernier bloc contient l'usage des tokens |
| Taille | jusqu'à 8 Mo par requête |
| Concurrence | 8 requêtes simultanées par clé |
| En-têtes | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Limite de débit | 300 requêtes par minute et par clé |
| Essai gratuit | 0,50 $ pendant 7 jours, sans carte · Clé d'essai : 2 requêtes parallèles, 60 par minute ; limites complètes (8 et 300) après la 1re recharge |
| Prix | 0,15 $ par million de tokens en entrée · 0,50 $ par million en sortie |
| Facturation | crédit prépayé selon l'usage réel ; erreurs et refus gratuits |
| Recharge | USDT (TRC20) ou USDC (Base), tout montant entier de 20 $ à 500 $ |
| Bonus | +5 % dès 50 $, +10 % dès 100 $, +15 % dès 200 $ |
| Validité | le crédit payé n'expire jamais, sans abonnement |
| Connexion | Google ou e-mail et mot de passe |
| Clés | une clé active par compte ; une nouvelle remplace l'ancienne |
| Contenu | contenu adulte autorisé ; tout contenu sexuel impliquant des mineurs est refusé |
Erreurs et solutions
Les erreurs arrivent en JSON avec un type stable ; les requêtes échouées ou refusées ne sont pas facturées.
| HTTP | Type | Signification |
|---|---|---|
400 | bad_request | JSON invalide, messages vides, mauvais paramètre ou contexte trop long |
401 | missing_key · invalid_key · key_revoked | clé absente, erronée ou remplacée |
402 | no_credit | plus de crédit — rechargez, la reprise est immédiate |
403 | content_blocked | contenu sexuel impliquant des mineurs — refusé, non facturé |
404 | not_found | endpoint inconnu |
413 | request_too_large | corps supérieur à 8 Mo |
429 | rate_limited · concurrency | au-delà de 300/min ou 8 en parallèle — patientez |
503 | upstream_busy | modèle occupé — réessayez dans quelques secondes |
Questions et réponses
Comment recharger mon crédit prépayé ?
Vous pouvez recharger en crypto (USDT sur TRC20, USDC sur Base). Les montants acceptés varient de 20 $ à 500 $. Vous bénéficiez d'un bonus de 5 % pour les recharges de 50 $ ou plus, et d'un bonus de 10 % pour 100 $ ou plus. Le crédit n'expire jamais.
L'API génère-t-elle de l'audio ou de la vidéo ?
Non, cette API est strictement dédiée à la génération de texte. Elle fournit une réponse textuelle sans censure que vous pouvez alimenter dans vos propres pipelines de synthèse vocale ou vidéo. Elle ne produit pas directement de fichiers audio, image ou vidéo.
Quelle est l'offre d'essai ?
Les nouveaux utilisateurs reçoivent 0,50 $ de crédit d'essai, une fois par personne, valable 7 jours. Réclamez ce crédit en un clic sur votre page clé API. Aucune carte bancaire n'est requise pour vous connecter. Cela vous permet de tester l'API avant d'acheter du crédit prépayé.
Votre clé n'est qu'à un formulaire d'ici
Créez un compte, copiez la clé, modifiez l'URL de base. C'est toute la configuration.