Authentification
L'API YODI utilise l'authentification par clé API pour sécuriser l'accès à nos services.
Obtenir votre clé API
- Connectez-vous à votre tableau de bord YODI
- Naviguez vers "Paramètres API"
- Cliquez sur "Générer une nouvelle clé"
- Copiez et sauvegardez votre clé en sécurité
Sécurité
- Ne partagez jamais votre clé API
- Ne l'intégrez pas dans le code côté client
- Utilisez des variables d'environnement
- Régénérez-la si elle est compromise
Utilisation de la clé API
Header d'autorisation
Incluez votre clé API dans le header Authorization de chaque requête :
Authorization: Bearer your_api_key_here
Exemple avec cURL
curl -X POST "https://api.yodi.tg/v1/chat/completions" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"model": "yodi-1",
"messages": [
{"role": "user", "content": "Hello!"}
]
}'
Exemple avec Python
import requests
headers = {
'Authorization': 'Bearer your_api_key_here',
'Content-Type': 'application/json'
}
data = {
'model': 'yodi-1',
'messages': [
{'role': 'user', 'content': 'Hello!'}
]
}
response = requests.post(
'https://api.yodi.tg/v1/chat/completions',
headers=headers,
json=data
)
Exemple avec JavaScript
const response = await fetch('https://api.yodi.tg/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': 'Bearer your_api_key_here',
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: 'yodi-1',
messages: [
{ role: 'user', content: 'Hello!' }
]
})
});
Configuration avec les SDK
Python SDK
from yodi import Client
# Méthode 1: Direct
client = Client(api_key="your_api_key_here")
# Méthode 2: Variable d'environnement (recommandée)
import os
client = Client(api_key=os.getenv("YODI_API_KEY"))
# Méthode 3: Configuration automatique
# Le SDK cherche automatiquement YODI_API_KEY dans l'environnement
client = Client()
JavaScript SDK
import { YodiClient } from 'yodi-sdk';
// Méthode 1: Direct
const client = new YodiClient({
apiKey: 'your_api_key_here'
});
// Méthode 2: Variable d'environnement (recommandée)
const client = new YodiClient({
apiKey: process.env.YODI_API_KEY
});
// Méthode 3: Configuration automatique
const client = new YodiClient(); // Utilise process.env.YODI_API_KEY
Variables d'environnement
Fichier .env
Créez un fichier .env à la racine de votre projet :
YODI_API_KEY=your_api_key_here
YODI_BASE_URL=https://api.yodi.tg/v1
Configuration système
Linux/macOS
export YODI_API_KEY="your_api_key_here"
export YODI_BASE_URL="https://api.yodi.tg/v1"
Windows PowerShell
$env:YODI_API_KEY="your_api_key_here"
$env:YODI_BASE_URL="https://api.yodi.tg/v1"
Windows Command Prompt
set YODI_API_KEY=your_api_key_here
set YODI_BASE_URL=https://api.yodi.tg/v1
Erreurs d'authentification
Codes d'erreur courants
| Code | Description | Solution |
|---|---|---|
401 | Clé API manquante ou invalide | Vérifiez votre clé API |
403 | Accès refusé | Vérifiez les permissions de votre clé |
429 | Limite de taux atteinte | Consultez Limites de taux |
Exemples de réponses d'erreur
{
"message": "INVALID_API_KEY",
"error": true,
"data": null,
"status": 401
}
Gestion des erreurs
try:
response = client.chat.completions.create(
model="yodi-1",
messages=[{"role": "user", "content": "Hello"}]
)
except Exception as e:
if "401" in str(e):
print("Erreur d'authentification - vérifiez votre clé API")
elif "403" in str(e):
print("Accès refusé - permissions insuffisantes")
elif "429" in str(e):
print("Limite de taux atteinte - patientez avant de réessayer")
else:
print(f"Erreur : {e}")
Rotation des clés
Bonnes pratiques
- Rotation régulière : Changez vos clés tous les 90 jours
- Clés multiples : Utilisez différentes clés pour différents environnements
- Monitoring : Surveillez l'usage de vos clés
- Révocation : Révoquez immédiatement les clés compromises
Processus de rotation
- Générez une nouvelle clé API
- Testez-la dans un environnement de développement
- Déployez progressivement en production
- Révoquez l'ancienne clé après migration complète
Sécurité avancée
Restrictions IP (Enterprise)
# Configuration des IP autorisées
curl -X POST "https://api.yodi.tg/v1/api-keys/restrictions" \
-H "Authorization: Bearer your_api_key_here" \
-d '{
"allowed_ips": ["192.168.1.0/24", "10.0.0.1"]
}'
Scopes et permissions
Les clés API peuvent avoir différents niveaux d'accès :
read: Lecture seule (modèles, usage)write: Utilisation complète de l'APIadmin: Gestion des clés et paramètres
Audit et logging
Consultez l'usage de vos clés API dans votre tableau de bord :
- Nombre de requêtes
- Endpoints utilisés
- Erreurs et tentatives échouées
- Géolocalisation des requêtes