Aller au contenu principal

Authentification

L'API YODI utilise l'authentification par clé API pour sécuriser l'accès à nos services.

Obtenir votre clé API​

  1. Connectez-vous Ă  votre tableau de bord YODI
  2. Accédez à « API Settings »
  3. Cliquez sur « Generate a new key »
  4. Copiez et stockez votre clé en toute sécurité
Sécurité
  • Ne partagez jamais votre clĂ© API
  • Ne l'intĂ©grez pas dans du code cĂ´tĂ© client
  • Utilisez des variables d'environnement
  • RĂ©gĂ©nĂ©rez-la si elle est compromise

Utilisation de la clé API​

En-tête Authorization​

Incluez votre clé API dans l'en-tête Authorization de chaque requête :

Authorization: Bearer your_api_key_here

Exemple 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 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 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 SDK​

SDK Python​

from yodi import Client

# Method 1: Direct
client = Client(api_key="your_api_key_here")

# Method 2: Environment variable (recommended)
import os
client = Client(api_key=os.getenv("YODI_API_KEY"))

# Method 3: Automatic configuration
# The SDK will automatically look for YODI_API_KEY in the environment
client = Client()

SDK JavaScript​

import { YodiClient } from 'yodi-sdk';

// Method 1: Direct
const client = new YodiClient({
apiKey: 'your_api_key_here'
});

// Method 2: Environment variable (recommended)
const client = new YodiClient({
apiKey: process.env.YODI_API_KEY
});

// Method 3: Automatic configuration
const client = new YodiClient(); // Uses 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 Invite de commandes​

set YODI_API_KEY=your_api_key_here
set YODI_BASE_URL=https://api.yodi.tg/v1

Erreurs d'authentification​

Codes d'erreur courants​

CodeDescriptionSolution
401Clé API manquante ou invalideVérifiez votre clé API
403Accès refuséVérifiez les permissions de votre clé
429Limite de débit dépasséeVoir Limites de débit

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("Authentication error - check your API key")
elif "403" in str(e):
print("Access denied - insufficient permissions")
elif "429" in str(e):
print("Rate limit exceeded - please wait and retry")
else:
print(f"Error: {e}")

Rotation des clés​

Bonnes pratiques​

  1. Rotation régulière : Changez vos clés tous les 90 jours
  2. Clés multiples : Utilisez différentes clés pour différents environnements
  3. Surveillance : Surveillez l'utilisation des clés
  4. Révocation : Révoquez immédiatement les clés compromises

Processus de rotation​

  1. Générez une nouvelle clé API
  2. Testez-la dans un environnement de développement
  3. Déployez-la progressivement en production
  4. Révoquez l'ancienne clé après la migration complète

Sécurité avancée​

Restrictions IP (Enterprise)​

# Configure allowed IPs
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"]
}'

Étendues et permissions​

Les clés API peuvent avoir différents niveaux d'accès :

  • read : Lecture seule (modèles, utilisation)
  • write : Utilisation complète de l'API
  • admin : GĂ©rer les clĂ©s et les paramètres

Audit et journalisation​

Suivez l'utilisation de votre clé API dans le tableau de bord :

  • Nombre de requĂŞtes
  • Endpoints utilisĂ©s
  • Erreurs et tentatives Ă©chouĂ©es
  • GĂ©olocalisation des requĂŞtes

Prochaines étapes​