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. Naviguez vers "Paramètres API"
  3. Cliquez sur "Générer une nouvelle clé"
  4. 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

CodeDescriptionSolution
401Clé API manquante ou invalideVérifiez votre clé API
403Accès refuséVérifiez les permissions de votre clé
429Limite de taux atteinteConsultez 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

  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. Monitoring : Surveillez l'usage de vos 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 progressivement en production
  4. 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'API
  • admin : 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

Prochaines étapes