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

  1. Créez un compte sur le tableau de bord : 100 F sont offerts pour tester.
  2. Confirmez votre adresse e-mail, puis créez une clé API dr_….
  3. Rechargez votre solde par Wave, Orange Money ou carte quand vous en avez besoin.

Authentification

En-tête HTTP
Authorization: Bearer dr_votre_cle_api

Toutes 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

Terminal
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

main.py
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

index.ts
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

Terminal
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

Terminal
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èleVoixFormat
gpt-4o-mini-ttsalloy, echo, fable, onyx, nova, shimmerMP3
gemini-2.5-flash-preview-ttsKore, Charon, Fenrir, Aoede, Puck, Zephyr, Leda, OrusWAV
Autres modèlesVoir la fiche de chaque modèle dans le catalogueWAV

Transcription

POST /v1/audio/transcriptions

Terminal
curl https://api.deeprelay.io/v1/audio/transcriptions \
  -H "Authorization: Bearer dr_votre_cle" \
  -F file=@audio.wav \
  -F language=fr-FR

Ré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

Terminal
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 429 avec l'en-tête Retry-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

CodeTypeSignification
401invalid_request_errorClé API manquante, inconnue ou révoquée.
402insufficient_balanceSolde épuisé : rechargez depuis le tableau de bord.
404invalid_request_errorModèle inconnu : voir GET /v1/models.
429rate_limit_exceededTrop de requêtes : respectez Retry-After.
5xxapi_errorErreur 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 respectant Retry-After.