FR ▾
Obtenir une clé API

Guide de migration pour les utilisateurs d'OpenRouter

Migrez vos appels API OpenRouter vers notre endpoint sans censure en quelques minutes en modifiant l'URL de base et la clé API. Ce guide couvre les intégrations essentielles pour la génération de texte, le streaming et les sorties structurées.

Commencez avec le crédit d'essai

E-mail et mot de passe, la clé s'affiche tout de suite à l'écran.

Obtenir une clé API

Installation et configuration

Notre API est entièrement compatible avec les SDK OpenAI standard. Pour passer d'OpenRouter, vous devez uniquement mettre à jour deux valeurs de configuration : base_url et api_key. Pointez votre client vers https://api.openrouterapi.cc/v1 et utilisez la clé générée sur notre tableau de bord. Aucun en-tête personnalisé ni logique de routage complexe n'est requis. L'ID de modèle à demander est uncensored.

Assurez-vous que votre version de SDK prend en charge le paramètre base_url. Si vous utilisez un client HTTP brut, mettez simplement à jour l'URL cible. Cette configuration garantit que votre code client existant fonctionne sans modification, à condition que vous n'envoyiez que des requêtes de completion de texte.

Authentification

L'authentification est gérée via l'en-tête standard Authorization. Transmettez votre clé API en tant que jeton Bearer. Si la clé est invalide ou expirée, l'API renvoie une erreur 401. Contrairement à certains fournisseurs, nous ne facturons pas les requêtes échouées ; les erreurs et les refus sont gratuits, vous pouvez donc tester l'authentification sans consommer de crédit.

Chaque compte prend en charge une seule clé active à la fois. La génération d'une nouvelle clé invalide immédiatement la précédente. Gardez votre clé en sécurité et changez-la si vous soupçonnez une exposition. La clé est affichée immédiatement après l'inscription, copiez-la avant de quitter la page.

Completion de chat basique

La fonctionnalité principale est l'endpoint POST /v1/chat/completions. Envoyez votre prompt sous forme de liste de messages et recevez une réponse textuelle. Le modèle est optimisé pour répondre sans refus de contenu pour un usage adulte légal, ce qui le rend adapté aux sujets créatifs, controversés ou de recherche en sécurité.

Définissez le champ model sur uncensored. Vous pouvez contrôler le comportement à l'aide de paramètres tels que temperature, top_p et stop. L'API prend en charge le mode JSON via response_format et l'appel de fonctions via tools. Toutes les requêtes sont traitées de manière asynchrone et vous recevez la complétion complète une fois que le modèle a terminé.

Réponses en streaming

Activez le streaming en définissant stream: true dans votre requête. L'API renvoie des Server-Sent Events (SSE) avec des réponses partielles. Vous recevez des fragments de texte au fur et à mesure de leur génération, ce qui permet un affichage en temps réel dans votre application.

Les informations d'utilisation des tokens sont fournies dans le dernier chunk du flux. Cela vous permet de suivre les coûts avec précision sans analyser chaque token individuel. Le streaming est idéal pour les interfaces de chat où la latence est importante. Assurez-vous que votre client gère correctement les SSE et ferme la connexion à la fin du flux.

Appel de fonctions

L'API prend en charge l'appel de fonctions via le paramètre tools. Définissez vos fonctions dans le tableau tools et définissez tool_choice sur auto ou un nom de fonction spécifique. Le modèle renverra des arguments JSON structurés si une fonction est déclenchée.

Cette fonctionnalité est utile pour intégrer le LLM à des API ou bases de données externes. Assurez-vous que vos définitions de fonctions sont précises, car le modèle s'y appuie pour générer des arguments valides. L'API n'exécute pas les fonctions ; vous devez gérer la logique d'exécution dans le code de votre application.

Mode JSON

Pour des sorties structurées, utilisez response_format: {"type": "json_object"}. Cela force le modèle à renvoyer du JSON valide, essentiel pour l'analyse des données dans les applications en aval. Le mode JSON est souvent plus fiable que l'appel de fonctions pour les tâches simples d'extraction de données.

Assurez-vous que vos prompts indiquent clairement au modèle de renvoyer du JSON. Des réponses JSON invalides peuvent survenir si le prompt est ambigu. Le mode JSON est pris en charge en modes standard et streaming. Utilisez-le lorsque vous avez besoin de sorties prévisibles et lisibles par machine.

Limites, erreurs et contexte

La fenêtre de contexte est de 100 000 tokens pour le prompt et la complétion combinés. La sortie maximale est de 32 000 tokens par requête (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 sont limités à 8 Mo.

Les erreurs retournent des codes HTTP standard : 401 pour les clés invalides, 402 pour un crédit insuffisant et 429 pour les limites de débit. Le crédit est prépayé, donc une erreur 402 signifie que vous devez recharger. Les erreurs et les refus sont gratuits, vous pouvez donc réessayer sans coût. La limite stricte de contenu bloque le contenu sexuel impliquant des mineurs.

cURL

curl https://api.openrouterapi.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.openrouterapi.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.openrouterapi.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)

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

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

S'agit-il de l'API officielle OpenRouter ?

Non, il s'agit d'un service indépendant. Nous proposons un seul modèle sans censure compatible avec la structure de l'URL de base d'OpenRouter. Nous ne servons pas les modèles agrégés d'OpenRouter ni sa logique de routage.

Comment payer pour l'API ?

Les paiements sont acceptés uniquement en crypto : USDT (TRC20) ou USDC (Base). Vous pouvez recharger n'importe quel montant entier de 10 $ à 500 $. Ni les cartes de crédit ni PayPal ne sont acceptés.

Les prompts sont-ils utilisés pour l'entraînement ?

Non, vos prompts ne sont pas utilisés pour l'entraînement. Nous demandons uniquement une adresse e-mail pour votre compte et nous ne stockons ni n'utilisons vos données pour l'amélioration du modèle.

Votre clé est à un formulaire de vous

Créez un compte, copiez la clé, modifiez l'URL de base. C'est toute la configuration.

Obtenir une clé API