Quick start
Routtx est un proxy API compatible OpenAI. Remplacez simplement la base_url dans votre code existant.
1. Creez un compte
Rendez-vous sur le dashboard et inscrivez-vous. Aucune carte bancaire requise.
2. Generez une clé API
Dans le dashboard, allez dans Gateway Keys et generez une clé. Elle commence par sk-gw-.
3. Ajoutez vos clés providers
Dans Provider Keys, ajoutez au moins une clé gratuite. Nous recommandons :
- Groq — console.groq.com (llama-3.3-70b, 1 000 req/jour)
- Gemini — aistudio.google.com (10 req/min)
- Mistral — console.mistral.ai (60 req/min)
4. Premiere requête
from openai import OpenAI
client = OpenAI(
base_url="https://app.routtx.fr/v1",
api_key="sk-gw-votre-clé",
)
response = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
Authentification
Toutes les requêtes API necessitent une clé gateway dans le header :
Authorization: Bearer sk-gw-votre-clé
Vos clés gateway sont hashees en SHA-256 cote serveur. Vous ne pouvez pas les recuperer après création — sauvegardez-les.
Providers
Routtx supporte 18 providers. Utilisez model="auto" pour le routage intelligent, ou spécifiez un modèle directement. Les quotas ci-dessous sont ceux appliqués par le gateway (configurables par l'admin) — ils ne remplacent pas les limites du provider lui-même.
Free tier (10 providers)
Quotas appliqués pour rester dans les limites gratuites des providers :
| Provider | Modèle exemple | Quota Routtx |
|---|---|---|
| Groq | llama-3.3-70b-versatile | 1 000 req/jour |
| Gemini | gemini-2.0-flash | 10 req/min |
| Mistral | mistral-small-latest | 60 req/min |
| Cerebras | llama3.1-8b | 30 req/min |
| NVIDIA | meta/llama-3.1-8b-instruct | 40 req/min |
| AI21 | jamba-mini | 200 req/min |
| Cohere | command-r | 1 000 req/mois |
| Cloudflare | @cf/meta/llama-3.1-8b-instruct | 100 req/jour |
| GitHub Models | gpt-4o-mini | 150 req/jour |
| OpenRouter | google/gemini-2.0-flash-exp:free | 50 req/jour |
Payants (8 providers)
Aucun quota appliqué par Routtx — vous payez directement le provider à l'usage. L'utilisation est tout de même trackée dans le dashboard.
| Provider | Modèle exemple | Tarification |
|---|---|---|
| OpenAI | gpt-4o | $2.50 / 1M tokens input |
| Anthropic | claude-sonnet-4-6 | $3.00 / 1M tokens input |
| DeepSeek | deepseek-chat | $0.14 / 1M tokens input |
| xAI (Grok) | grok-2-latest | $2.00 / 1M tokens input |
| Perplexity | llama-3.1-sonar-large | $1.00 / 1M tokens + web search |
| Together | meta-llama/Llama-3.3-70B-Instruct-Turbo | $0.88 / 1M tokens (variable) |
| SambaNova | Meta-Llama-3.3-70B-Instruct | Crédits trial puis payant |
| Arcee | arcee-spotlight | Variable selon modèle |
Note — quota = 0 signifie illimité côté gateway (l'usage est tracké mais jamais bloqué). Les limites réelles sont celles imposées par le provider à votre clé API.
Python — OpenAI SDK
from openai import OpenAI
client = OpenAI(
base_url="https://app.routtx.fr/v1",
api_key="sk-gw-...",
)
# Routing automatique
response = client.chat.completions.create(
model="auto",
messages=[
{"role": "system", "content": "Vous etes un assistant utile."},
{"role": "user", "content": "Explique la relativite."},
],
temperature=0.7,
)
print(response.choices[0].message.content)
print("Provider utilise:", response._response.headers["X-LLM-Gateway-Provider"])
Streaming
stream = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "Raconte-moi une histoire."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://app.routtx.fr/v1",
apiKey: "sk-gw-...",
});
const response = await client.chat.completions.create({
model: "auto",
messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);
cURL
curl https://app.routtx.fr/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-gw-..." \
-d '{
"model": "auto",
"messages": [{"role": "user", "content": "Hello!"}]
}'
API — Chat completions
POST Cree une réponse a partir d'une liste de messages. Compatible OpenAI.
Paramètres (body JSON)
| Champ | Type | Description |
|---|---|---|
model* | string | "auto" ou nom d'un modèle spécifique |
messages* | array | Liste de messages {role, content} |
temperature | number | 0.0 - 2.0, defaut 1.0 |
max_tokens | integer | Nombre max de tokens dans la réponse |
stream | boolean | SSE streaming, defaut false |
top_p | number | 0.0 - 1.0 |
Réponse
{
"id": "chatcmpl-xyz",
"model": "llama-3.3-70b-versatile",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "..."},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 85,
"total_tokens": 97
}
}
API — Conversations
Persistez les conversations cote serveur pour une gestion automatique de l'historique.
Créer une conversation
{"title": "Brainstorming produit"}
Utiliser dans une requête
Ajoutez le header X-LLM-Gateway-Conversation-Id et envoyez uniquement le nouveau message :
curl -X POST https://app.routtx.fr/v1/chat/completions \
-H "Authorization: Bearer sk-gw-..." \
-H "X-LLM-Gateway-Conversation-Id: conv_abc123" \
-d '{
"model": "auto",
"messages": [{"role": "user", "content": "Continue notre discussion..."}]
}'
Lister / Supprimer
API — Documents
Uploadez un document pour extraire son contenu. Formats : PDF, DOCX, TXT, MD.
curl -X POST https://app.routtx.fr/v1/documents/extract \
-H "Authorization: Bearer sk-gw-..." \
-F "file=@contrat.pdf"
Réponse
{
"filename": "contrat.pdf",
"text": "CONTRAT DE SERVICE...",
"char_count": 12846
}
API — Gateway keys
Gérer vos clés API gateway.
Headers — Requête
| Header | Valeurs | Description |
|---|---|---|
Authorization* | Bearer sk-gw-... | Clé API gateway |
X-LLM-Gateway-Redact | true / false | Activer l'anonymisation PII (plan Pro+) |
X-LLM-Gateway-Conversation-Id | uuid | Utiliser une conversation persistante |
Headers — Réponse
| Header | Description |
|---|---|
X-LLM-Gateway-Provider | Provider utilise (groq, gemini, etc.) |
X-LLM-Gateway-Task | Type de tache classifie |
X-LLM-Gateway-Cache | HIT ou MISS |
X-LLM-Gateway-Threat-Score | 0.00 a 1.00 |
X-LLM-Gateway-Redacted | Nombre de champs PII masques |
X-LLM-Gateway-Redacted-Fields | JSON detaille des champs masques |
X-LLM-Gateway-Conversation-Id | ID de la conversation (si mode persistant) |