Prérequis
Pour utiliser l'API apertus, vous avez besoin d'un compte et d'une clé API. Inscrivez-vous via Google ou e-mail sur la page Obtenir une clé API. Vous recevez une clé immédiatement ; aucun numéro de téléphone n'est requis. Si vous souhaitez tester d'abord, chaque nouveau compte reçoit 0,50 $ de crédit d'essai gratuit valable 7 jours. Aucune carte n'est nécessaire pour l'essai. Pour la production, rechargez avec des cryptomonnaies (USDT sur TRC20 ou USDC sur Base). Le crédit ne expire jamais et les erreurs ne consomment pas le solde. Vous disposez d'une clé active par compte ; la génération d'une nouvelle clé remplace l'ancienne. Conservez votre clé en sécurité et transmettez-la dans l'en-tête Authorization sous forme de jeton Bearer. L'API est strictement textuelle et sert un modèle sans censure optimisé pour répondre sans refus de contenu.
URL de base et authentification
Envoyez toutes les requêtes à https://api.apertus.cc/v1. Cette URL de base fonctionne avec les SDK OpenAI officiels et tout client compatible en modifiant simplement l'endpoint. Incluez votre clé API dans l'en-tête : Authorization: Bearer YOUR_API_KEY. Le seul endpoint pris en charge est POST /v1/chat/completions. Un endpoint GET /v1/models est également disponible pour vérifier la connectivité. L'ID de modèle à utiliser est uncensored. Il s'agit d'un modèle à poids ouverts exécuté sur nos serveurs, distinct de GPT, Claude ou d'autres fournisseurs. Il gère les entrées textuelles et retourne des sorties textuelles. Ne vous attendez pas à des embeddings, des images ou de l'audio. L'API est conçue pour les développeurs qui souhaitent une intégration simple sans la complexité du routage de modèles.
Première requête
Envoyez une requête de complétion basique pour vérifier votre configuration. Utilisez la commande curl pour appeler en POST l'endpoint de complétion de chat. Définissez le modèle sur uncensored et incluez un message simple. Cela confirme que votre clé API fonctionne et que l'URL de base est correcte. Vous pouvez ajuster des paramètres comme temperature ou max_tokens selon les besoins. La réponse contiendra la sortie textuelle du modèle. Si vous recevez une erreur 401, vérifiez votre clé. Une erreur 402 indique un crédit insuffisant. Une erreur 429 signifie que vous avez atteint la limite de débit. Cette requête simple démontre l'accès brut à l'API sans aucun middleware. C'est le moyen le plus rapide de valider votre intégration avant de construire une logique plus complexe.
Intégration Python
Utilisez le SDK Python officiel openai pour interagir avec l'API. Initialisez le client avec l'URL de base https://api.apertus.cc/v1 et votre clé API. Définissez le modèle sur uncensored. Envoyez des messages sous forme de liste de dictionnaires. Le SDK gère la sérialisation et l'analyse des erreurs automatiquement. Cette approche est idéale pour les services backend ou les scripts de traitement de données. Vous pouvez diffuser les réponses ou obtenir des blocs complets. Le code client est identique à celui que vous utiliseriez pour OpenAI, avec juste une URL de base différente. Cela réduit les frictions lors du passage à d'autres fournisseurs. Assurez-vous d'avoir la dernière version du SDK pour une meilleure compatibilité. L'intégration est minimale, ne nécessitant que des modifications de configuration dans votre configuration client existante.
Intégration Node.js
Pour les environnements JavaScript ou TypeScript, utilisez le package npm openai. Configurez le client avec la même URL de base et la même clé qu'en Python. Appelez chat.completions.create() avec le modèle uncensored. Transmettez vos messages au format standard. Cela fonctionne bien pour les fonctions serverless ou les backends Node.js. Le SDK gère les requêtes HTTP et l'analyse des réponses. Vous pouvez gérer les erreurs élégamment en vérifiant le statut de la réponse. Le code reste portable entre différents services compatibles OpenAI. Cela facilite le changement de fournisseur si nécessaire. L'intégration Node.js prend en charge à la fois les modèles synchrones et asynchrones. Utilisez-le pour créer des API, des bots ou des workflows automatisés nécessitant une génération de texte sans censure.
Réponses en streaming
Activez le streaming en définissant stream: true dans votre requête. L'API retourne des chunks de texte au fur et à mesure de leur génération. Cela améliore la latence perçue pour les longues réponses. Chaque chunk contient une partie de la complétion. Le dernier chunk inclut les statistiques d'utilisation des tokens. Le streaming est pris en charge via Server-Sent Events (SSE). Utilisez les utilitaires de streaming du SDK pour traiter les chunks efficacement. C'est utile pour les interfaces de chat ou les applications en temps réel. Notez que le streaming consomme les mêmes tokens que le mode non streaming. Des erreurs peuvent survenir en cours de streaming, gérez donc les interruptions. Le modèle sans censure prend en charge le streaming par défaut. Cette fonctionnalité vous permet d'afficher le texte de manière incrémentale. C'est une fonctionnalité standard dans les API LLM modernes. Assurez-vous que votre code client gère correctement les réponses partielles.
Limites, erreurs et contexte
La fenêtre de contexte est de 100 000 tokens au total, incluant le prompt et la complétion. La sortie maximale est de 32 000 tokens par requête, ou 2 048 si max_tokens n'est pas défini. Les limites de débit sont de 300 requêtes par minute et 8 requêtes simultanées par clé. Les corps de requête doivent être inférieurs à 8 Mo. Les erreurs courantes incluent 401 pour les clés invalides, 402 pour l'absence de crédit et 429 pour les limites de débit. Le modèle refuse le contenu sexuel impliquant des mineurs. Il n'accepte pas les autres sujets controversés licites pour adultes, fictifs ou controversés. La tarification est transparente : 0,25 $ par 1 M de tokens d'entrée et 1,00 $ par 1 M de tokens de sortie. Les erreurs sont gratuites. Le crédit est prépayé et n'expire jamais. Utilisez ces limites pour planifier l'échelle de votre application. L'API est conçue pour une génération de texte à haut volume et rentable.
cURL
curl https://api.apertus.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
from openai import OpenAI
client = OpenAI(base_url="https://api.apertus.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.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.apertus.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
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)