API Character AI : Changez de client en trois lignes
Connectez votre chatbot à un LLM sans censure en quelques minutes grâce à notre API compatible OpenAI. Ce guide vous accompagne dans la configuration, les requêtes de base et le streaming sans tracas de configuration.
https://api.characteraiapi.com/v1
Prérequis
Avant d'écrire du code, vous avez besoin d'un compte actif sur characteraiapi.com. Rendez-vous sur la page Obtenir la clé API et inscrivez-vous avec simplement une adresse e-mail et un mot de passe. Aucune carte bancaire n'est requise pour commencer, et les nouveaux comptes reçoivent 0,50 $ de crédit d'essai gratuit valable 7 jours. Une fois inscrit, votre clé API s'affiche immédiatement. Conservez cette clé en sécurité, car elle authentifie toutes les requêtes vers l'endpoint. Vous aurez également besoin d'un SDK de langage pris en charge installé dans votre environnement de développement. L'endpoint character ai api accepte les paramètres OpenAI standard, donc tout client compatible OpenAI existant peut fonctionner avec des modifications minimales.
Installer le SDK
Pour les projets Python, installez le package officiel OpenAI à l'aide de pip. Cette bibliothèque gère automatiquement la sérialisation JSON et les requêtes HTTP. Pour les applications Node.js, utilisez npm pour ajouter le package openai. Les deux bibliothèques prennent en charge les fonctionnalités de streaming et d'appel de fonctions décrites plus loin dans ce guide. Assurez-vous que votre version du SDK est suffisamment récente pour prendre en charge les Server-Sent Events (SSE) pour le streaming de tokens en temps réel. Si vous utilisez un client HTTP personnalisé au lieu d'un SDK, vous devez gérer manuellement le chargement JSON et l'analyse du flux SSE conformément à la spécification de l'API OpenAI.
Authentification
Toute requête à l'API doit inclure votre clé API dans l'en-tête Authorization. Utilisez le format Bearer YOUR_API_KEY. L'URL de base pour toutes les requêtes est https://api.characteraiapi.com/v1. Lors de l'utilisation d'un SDK, définissez la configuration base_url sur cette valeur et fournissez votre clé via le paramètre api_key. Si vous perdez votre clé ou soupçonnez une fuite, vous pouvez la régénérer depuis le tableau de bord ; l'ancienne clé sera immédiatement révoquée. Une seule clé active est autorisée par compte. Assurez-vous d'utiliser la bonne URL de base, car les requêtes vers l'endpoint OpenAI standard échoueront avec une erreur 404 ou 401.
Complétion de chat basique
La fonctionnalité principale est servie via l'endpoint /v1/chat/completions. Envoyez une requête POST avec un nom de modèle uncensored et votre historique de messages. Le modèle répond par une sortie textuelle sans appliquer les filtres de contenu habituels pour le contenu adulte licite. Voici un exemple curl illustrant une requête simple de complétion de texte.
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."}]
}'
Cette requête renvoie un objet de complétion contenant le texte généré. Vous pouvez ajuster des paramètres comme temperature pour contrôler l'aléatoire ou max_tokens pour limiter la longueur de la sortie. Le modèle prend en charge une fenêtre de contexte de 100 000 tokens, permettant de traiter un historique de conversation substantiel ou de longs documents en une seule requête.
Réponses en streaming
Pour une meilleure expérience utilisateur, activez le streaming en définissant stream: true dans votre requête. L'API renvoie des événements envoyés par le serveur (SSE) contenant des fragments de tokens au fur et à mesure de leur génération. Cela réduit la latence perçue pour les applications de chatbot. Utilisez le paramètre stream_options si vous souhaitez recevoir les statistiques d'utilisation finales dans le dernier événement. Le streaming est particulièrement utile pour le jeu de rôle en temps réel, où l'affichage du texte mot par mot améliore l'immersion. Assurez-vous que votre code client gère correctement le format SSE pour analyser chaque fragment séquentiellement.
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 erreurs
L'API impose une limite de 300 requêtes par minute par clé. Si vous dépassez cette limite, vous recevrez une erreur 429 Too Many Requests. Les corps de requête sont limités à 8 Mo. Les erreurs courantes incluent le 401 pour une clé invalide ou manquante, et le 402 si votre crédit prépayé est épuisé. Vous pouvez recharger à partir de 10 $ en utilisant des cryptomonnaies (USDT ou USDC), avec des crédits bonus disponibles pour les dépôts plus importants. Contrairement à certains fournisseurs, il n'y a pas de frais cachés ni de verrouillage d'abonnement ; vous ne payez que pour les tokens que vous consommez. La tarification est transparente : 0,25 $ par 1 M de tokens d'entrée et 1,00 $ par 1 M de tokens de sortie. Assurez-vous que votre logique de gestion des erreurs réessaie en cas d'erreur 429 avec une reprise exponentielle.
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);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 |
| Base URL | https://api.characteraiapi.com/v1 |
| ID du modèle | uncensored |
| Mode JSON | response_format: {"type": "json_object"} |
| 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 |
| Fenêtre de contexte | 100 000 tokens (entrée + sortie) |
| Streaming | oui — server-sent events ; le dernier bloc contient l'usage des tokens |
| Appel de fonctions | oui — tools, tool_choice ; réponse avec tool_calls, aussi en streaming ; résultats en role: tool |
| Taille | jusqu'à 8 Mo par requête |
| En-têtes | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Concurrence | 8 requêtes simultanées par clé |
| Limite de débit | 300 requêtes par minute et par clé |
| Validité | le crédit payé n'expire jamais, sans abonnement |
| Bonus | +5 % dès 50 $, +10 % dès 100 $ |
| Recharge | USDT (TRC20) ou USDC (Base), tout montant entier de 10 $ à 500 $ |
| Prix | 0,25 $ par million de tokens en entrée · 1,00 $ par million en sortie |
| Facturation | crédit prépayé selon l'usage réel ; erreurs et refus gratuits |
| 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 |
| Clés | une clé active par compte ; une nouvelle remplace l'ancienne |
| Connexion | Google ou e-mail et mot de passe |
| Contenu | contenu adulte autorisé ; tout contenu sexuel impliquant des mineurs est refusé |
Codes d'erreur
Les erreurs arrivent en JSON avec un type stable ; les requêtes échouées ou refusées ne sont pas facturées.
| Code | 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
S'agit-il de l'API officielle Character.ai ?
Non, il s'agit d'un service indépendant hébergé sur characteraiapi.com. Il sert son propre modèle sans censure et n'est pas affilié à Character.AI ou à tout autre grand fournisseur de LLM.
Le modèle prend-il en charge la génération d'images ou d'audio ?
Non. L'API est textuelle uniquement. Elle accepte une entrée textuelle et renvoie une sortie textuelle. Elle ne prend pas en charge les embeddings, le fine-tuning ou les entrées/sorties multimodales.
Comment est défini le terme « sans censure » ?
Le modèle n'interdit pas les sujets adultes licites, fictifs ou controversés. Il bloque uniquement le contenu sexuel impliquant des mineurs, ce qui constitue une limite absolue appliquée à toutes les requêtes.
Votre clé est à un formulaire de vous
Créez un compte, copiez la clé, modifiez l'URL de base. C'est toute la configuration.