Une API, tous les modèles.
L'API DeepRelay est compatible OpenAI. Tout SDK, framework ou outil qui parle à OpenAI fonctionne en changeant deux paramètres : l'adresse de base et la clé API.
Démarrer
- Créez un compte sur le tableau de bord : 100 F sont offerts pour tester.
- Confirmez votre adresse e-mail, puis créez une clé API
dr_…. - Rechargez votre solde par Wave, Orange Money ou carte quand vous en avez besoin.
Authentification
Authorization: Bearer dr_votre_cle_apiToutes les routes /v1/* exigent cet en-tête. Chaque réponse inclut x-ratelimit-limit et x-ratelimit-remaining.
Chat et vision
POST /v1/chat/completions
curl
curl https://api.deeprelay.io/v1/chat/completions \
-H "Authorization: Bearer dr_votre_cle" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-V3.2",
"messages": [{"role": "user", "content": "Explique le mobile money en trois phrases."}]
}'Python, avec le SDK OpenAI
from openai import OpenAI
client = OpenAI(
base_url="https://api.deeprelay.io/v1",
api_key="dr_votre_cle",
)
r = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V3.2",
messages=[{"role": "user", "content": "Salut !"}],
)
print(r.choices[0].message.content)JavaScript ou TypeScript
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.deeprelay.io/v1",
apiKey: "dr_votre_cle",
});
const stream = await client.chat.completions.create({
model: "deepseek-ai/DeepSeek-V3.2",
messages: [{ role: "user", content: "Salut !" }],
stream: true, // réponses en flux (SSE)
});Les réponses en flux (stream: true) sont prises en charge. Les paramètres temperature, max_tokens et response_format: {"type": "json_object"} sont transmis au modèle. La vision utilise le format OpenAI standard : content en tableau, avec image_url en data-URI base64. Les fonctions avancées dépendent du modèle choisi.
Génération d'images
POST /v1/images/generations
curl https://api.deeprelay.io/v1/images/generations \
-H "Authorization: Bearer dr_votre_cle" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-1",
"prompt": "Un marché coloré à Dakar au coucher du soleil",
"size": "1024x1024",
"quality": "medium"
}'Réponse : {"data": [{"b64_json": "…"}]}. Plus de 40 modèles d'images sont disponibles, chacun avec son prix sur sa fiche : voir les modèles d'images. Pour gpt-image-1, le paramètre quality accepte low, medium ou high.
Synthèse vocale
POST /v1/audio/speech
curl https://api.deeprelay.io/v1/audio/speech \
-H "Authorization: Bearer dr_votre_cle" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini-tts",
"input": "Bonjour et bienvenue !",
"voice": "alloy"
}' --output audio.mp3| Modèle | Voix | Format |
|---|---|---|
gpt-4o-mini-tts | alloy, echo, fable, onyx, nova, shimmer | MP3 |
gemini-2.5-flash-preview-tts | Kore, Charon, Fenrir, Aoede, Puck, Zephyr, Leda, Orus | WAV |
| Autres modèles | Voir la fiche de chaque modèle dans le catalogue | WAV |
Transcription
POST /v1/audio/transcriptions
curl https://api.deeprelay.io/v1/audio/transcriptions \
-H "Authorization: Bearer dr_votre_cle" \
-F file=@audio.wav \
-F language=fr-FRRéponse : {"text": "…"}. Une vingtaine de langues sont prises en charge, avec les codes BCP-47 (fr-FR, en-US, ar-MA…). La durée facturée est lue dans le fichier audio.
Embeddings
POST /v1/embeddings
curl https://api.deeprelay.io/v1/embeddings \
-H "Authorization: Bearer dr_votre_cle" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": ["Premier texte", "Deuxième texte"]
}'Format OpenAI standard : input accepte une chaîne ou un tableau, la réponse contient data[].embedding. Une trentaine de modèles sont disponibles (OpenAI, Google, Qwen, BGE, E5…), adaptés à la recherche sémantique et au RAG.
Lister les modèles
GET /v1/models
Renvoie le catalogue complet, avec la famille de chaque modèle (chat, image, tts, stt, embedding). Le catalogue du site permet de filtrer et donne pour chaque modèle ses tarifs et ses exemples. Les tarifs publics sont aussi exposés sans authentification sur GET /api/pricing.
Limites
- 60 requêtes par minute et par clé API. Au-delà, réponse
429avec l'en-têteRetry-After. - Synthèse vocale : 5 000 caractères au maximum par requête. Découpez les textes longs.
- Transcription : 25 Mo au maximum par fichier audio.
- Besoin de limites plus hautes ? Écrivez à support@deeprelay.io.
Erreurs
| Code | Type | Signification |
|---|---|---|
| 401 | invalid_request_error | Clé API manquante, inconnue ou révoquée. |
| 402 | insufficient_balance | Solde épuisé : rechargez depuis le tableau de bord. |
| 404 | invalid_request_error | Modèle inconnu : voir GET /v1/models. |
| 429 | rate_limit_exceeded | Trop de requêtes : respectez Retry-After. |
| 5xx | api_error | Erreur interne ou relayée du fournisseur du modèle. |
Bonnes pratiques
- Gardez votre clé dans une variable d'environnement, jamais dans le code.
- Créez une clé par environnement (développement, production) : chacune se révoque séparément.
- Surveillez votre solde : une requête sur un solde insuffisant renvoie
402. - En cas de
429, réessayez avec un délai croissant, en respectantRetry-After.