FR ▾
Obtenir une clé API

Guide de démarrage pour les utilisateurs d'OpenRouter NSFW

Intégrez notre API LLM sans censure dans votre base de code existante en mettant à jour l'URL de base et la clé API. Ce guide couvre les endpoints standard compatibles OpenAI, le streaming et la gestion des contraintes pour une utilisation directe par les développeurs.

URL de base et authentification

Remplacez l'URL de base de votre fournisseur actuel par https://api.openrouternsfw.com/v1. L'authentification utilise l'en-tête standard Authorization: Bearer <key>. Vous obtenez votre clé immédiatement après vous être inscrit via Google ou email sur la page Obtenir une clé API. Aucun numéro de téléphone n'est requis, et la clé n'est affichée qu'une seule fois, alors copiez-la avant de quitter la page.

Notre service est une API indépendante, et non un revendeur de modèles d'autres fournisseurs. L'identifiant de modèle que vous envoyez dans les requêtes est uncensored, qui s'exécute sur nos propres serveurs. Il est optimisé pour répondre sans refus de contenu pour un usage adulte légal, mais il ne s'agit pas de GPT, Claude ou de tout autre modèle de fournisseur nommé.

Assurez-vous que votre bibliothèque cliente est configurée pour utiliser cette nouvelle URL de base. Toutes les requêtes doivent inclure une clé API valide dans l'en-tête. Si la clé est manquante ou invalide, le serveur renvoie une erreur 401. Si vous n'avez pas de crédit prépayé, vous recevez une erreur 402. Il s'agit de codes d'état HTTP standard indiquant des problèmes d'authentification ou de paiement, et non des erreurs de serveur.

Endpoint de complétion de chat

La fonctionnalité principale est fournie via l'endpoint POST /v1/chat/completions. Cet endpoint accepte un corps JSON contenant le nom du modèle, le tableau de messages et des paramètres optionnels. Il renvoie un objet JSON avec le texte généré, les statistiques d'utilisation des tokens et le finish reason. Cette structure est compatible avec les SDK officiels OpenAI et la plupart des bibliothèques clientes compatibles OpenAI.

Vous n'avez pas besoin d'écrire des clients HTTP personnalisés si vous préférez utiliser un SDK. Cependant, vous devez mettre à jour la configuration pour pointer vers notre URL de base. L'exemple suivant montre une requête de complétion standard utilisant cURL. Cette requête envoie un prompt au modèle sans censure et attend une réponse textuelle.

curl https://api.openrouternsfw.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."}]
  }'

N'oubliez pas que cette API ne sert que du texte. Il n'y a pas d'endpoints pour les embeddings, la génération d'images, d'audio ou de vidéo. Si votre application nécessite des entrées ou sorties multimodales, vous devrez les gérer séparément. Notre service se concentre exclusivement sur la génération de texte de haute qualité avec un modèle sans censure.

Intégration SDK Python

L'utilisation du SDK Python simplifie le processus d'intégration. Initialisez le client avec l'URL de base correcte et votre clé API. La bibliothèque gère les requêtes HTTP et l'analyse JSON pour vous. Vous pouvez spécifier l'ID de modèle comme uncensored pour vous assurer d'utiliser notre modèle spécifique.

from openai import OpenAI

client = OpenAI(base_url="https://api.openrouternsfw.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)

Cet extrait de code montre comment envoyer un message et récupérer la réponse. Le client gère automatiquement la connexion et la gestion des erreurs. Si le serveur renvoie une erreur, le SDK lève une exception. Vous devez gérer ces exceptions dans la logique de votre application pour offrir une meilleure expérience utilisateur.

Le SDK Python n'est qu'une option. Vous pouvez utiliser n'importe quel langage qui prend en charge les requêtes HTTP. La structure de l'endpoint reste la même quel que soit le client que vous choisissez. Cette flexibilité vous permet d'intégrer le modèle sans censure dans n'importe quel flux de travail existant sans modifications de code importantes.

Utilisation du SDK Node.js

Le SDK Node fonctionne de manière similaire à la version Python. Configurez le client avec l'URL de base et la clé API, puis appelez la méthode de complétion de chat. Cette approche est idéale pour les applications côté serveur ou les services backend qui doivent générer du texte de manière asynchrone.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.openrouternsfw.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);

Les développeurs Node.js peuvent facilement intégrer cette API dans leurs projets existants. Le SDK gère la sérialisation et la désérialisation des données JSON. Vous pouvez également spécifier des paramètres supplémentaires tels que temperature ou top_p pour contrôler l'aléatoire de la sortie.

Assurez-vous de gérer correctement le caractère asynchrone des requêtes. Utilisez async/await ou des chaînes de promesses pour gérer les données de réponse. Cela garantit que votre application reste réactive pendant l'attente de la génération de texte par le modèle. Le SDK Node est un choix fiable pour créer des services de génération de texte évolutifs.

Réponses en streaming

Activez le streaming en définissant le paramètre stream sur true dans votre requête. Le serveur enverra une série d'événements Server-Sent Events (SSE) au lieu d'une réponse JSON unique. Chaque événement contient un fragment partiel du texte généré.

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)

Le streaming est utile pour les applications en temps réel où vous souhaitez afficher la sortie au fur et à mesure de sa génération. Le dernier fragment du flux contient l'utilisation totale des tokens pour la requête. Cela vous permet de suivre les coûts avec précision sans attendre que toute la réponse soit terminée.

Gérez soigneusement les événements du flux pour assurer l'assemblage correct du texte. Concaténez les fragments dans l'ordre de réception. Le serveur garantit que les fragments sont envoyés séquentiellement. Si la connexion est interrompue, vous devrez peut-être réessayer la requête. Le streaming est une fonctionnalité puissante qui améliore l'expérience utilisateur pour les tâches de génération de texte.

Limites de débit et fenêtre de contexte

Chaque clé API est limitée à 300 requêtes par minute et 8 requêtes simultanées. La taille du corps de la requête est plafonnée à 8 Mo. Si vous dépassez ces limites, le serveur renvoie un code d'état 429. Il s'agit d'un code d'état HTTP standard indiquant que vous avez envoyé trop de requêtes dans une fenêtre de temps donnée. Vous devriez mettre en œuvre un backoff exponentiel dans votre client pour gérer ces erreurs correctement.

La fenêtre de contexte prend en charge jusqu'à 100 000 tokens pour le prompt et la complétion combinés. Il n'y a pas de limite de sortie séparée. Si vous ne spécifiez pas le paramètre max_tokens, la réponse peut aller jusqu'à la fin de la fenêtre. Vous pouvez limiter la longueur de sortie en définissant max_tokens à une valeur plus basse.

Surveillez votre utilisation des tokens pour gérer efficacement votre crédit prépayé. Les erreurs et les refus ne consomment pas de tokens, vous n'êtes donc pas facturé pour les requêtes échouées. Cela garantit que vous ne payez que pour la génération de texte réussie. Surveillez vos limites de débit pour éviter les interruptions de service.

Caractéristiques techniques

Toutes les limites et fonctions réelles de l'API au même endroit — vérifiez-les avant de recharger.

ÉlémentValeur
Formatcompatible OpenAI : tout SDK OpenAI fonctionne en changeant la base URL et la clé
AuthentificationAuthorization: Bearer YOUR_KEY
EndpointsPOST /v1/chat/completions · GET /v1/models
Base URLhttps://api.openrouternsfw.com/v1
ID du modèleuncensored
Mode JSONresponse_format: {"type": "json_object"}
Sortie max.jusqu'au reste de la fenêtre de 100 000 tokens ; max_tokens optionnel (pas de plafond distinct)
Fenêtre de contexte100 000 tokens (entrée + sortie)
Paramètrestemperature, top_p, stop, seed, presence_penalty, frequency_penalty
Appel de fonctionsoui — tools, tool_choice ; réponse avec tool_calls, aussi en streaming ; résultats en role: tool
Streamingoui — server-sent events ; le dernier bloc contient l'usage des tokens
En-têtesX-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
Taillejusqu'à 8 Mo par requête
Concurrence8 requêtes simultanées par clé
Limite de débit300 requêtes par minute et par clé
RechargeUSDT (TRC20) ou USDC (Base), tout montant entier de 20 $ à 500 $
Validitéle crédit payé n'expire jamais, sans abonnement
Facturationcrédit prépayé selon l'usage réel ; erreurs et refus gratuits
Essai gratuit0,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
Bonus+5 % dès 50 $, +10 % dès 100 $, +15 % dès 200 $
Prix0,15 $ par million de tokens en entrée · 0,50 $ par million en sortie
Contenucontenu adulte autorisé ; tout contenu sexuel impliquant des mineurs est refusé
ConnexionGoogle ou e-mail et mot de passe
Clésune clé active par compte ; une nouvelle remplace l'ancienne

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.

CodeTypeSignification
400bad_requestJSON invalide, messages vides, mauvais paramètre ou contexte trop long
401missing_key · invalid_key · key_revokedclé absente, erronée ou remplacée
402no_creditplus de crédit — rechargez, la reprise est immédiate
403content_blockedcontenu sexuel impliquant des mineurs — refusé, non facturé
404not_foundendpoint inconnu
413request_too_largecorps supérieur à 8 Mo
429rate_limited · concurrencyau-delà de 300/min ou 8 en parallèle — patientez
503upstream_busymodèle occupé — réessayez dans quelques secondes

Questions et réponses

En quoi le modèle sans censure diffère-t-il des autres fournisseurs ?

Notre modèle est un modèle à poids ouverts exécuté sur nos propres serveurs, optimisé pour répondre sans refus de contenu pour un usage adulte légal. Il ne s'agit pas de GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Llama ou de tout autre modèle de fournisseur. Nous n'effectuons pas de routage entre fournisseurs ; nous servons un seul endpoint sans censure.

Que se passe-t-il si je dépasse la limite de débit ?

Si vous dépassez 300 requêtes par minute ou 8 requêtes simultanées par clé, le serveur renvoie un code d'état 429. Il s'agit d'un code d'état HTTP standard indiquant que vous avez envoyé trop de requêtes dans une fenêtre de temps donnée. Vous devriez mettre en œuvre une logique de backoff dans votre client pour gérer ces erreurs.

L’API prend-elle en charge l’appel de fonctions et le mode JSON ?

Oui, l'API prend en charge l'appel de fonctions (tools, tool_choice) et le mode JSON (response_format json_object). Vous pouvez également spécifier des paramètres comme temperature, top_p, stop, seed, presence_penalty et frequency_penalty pour contrôler la sortie.

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.

Obtenir une clé API