> ## Documentation Index
> Fetch the complete documentation index at: https://docs.steerai.autos/llms.txt
> Use this file to discover all available pages before exploring further.

# Authentification API

> Authentification securisee pour les APIs REST Steer AI

## Apercu de l'authentification

Steer AI utilise une authentification par cle API avec des tokens Bearer. Toutes les requetes doivent inclure une cle API valide dans l'entete Authorization.

## Obtenir des cles API

### Cles de developpement

1. Inscrivez-vous pour un compte gratuit sur [dashboard.steerai.autos](https://dashboard.steerai.autos)
2. Allez dans **Settings** → **API Keys**
3. Cliquez sur **Generate Development Key**
4. Copiez et stockez la cle en toute securite

### Cles de production

1. Passez a un plan payant
2. Allez dans **Settings** → **API Keys**
3. Cliquez sur **Generate Production Key**
4. Copiez et stockez la cle en toute securite

## Methodes d'authentification

### Token Bearer (recommande)

```bash theme={null}
curl -X GET "https://api.steerai.autos/v1/inspections" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
```

### Parametre de requete (deconseille)

```bash theme={null}
curl -X GET "https://api.steerai.autos/v1/inspections?api_key=YOUR_API_KEY"
```

<Warning>
  **Avertissement securite :** L'authentification par parametre expose votre cle API dans les logs serveur et l'historique navigateur. Utilisez l'entete en production.
</Warning>

## Authentification SDK

### Python

```python theme={null}
from steer_ai import SteerAI
import os

# Using environment variable (recommended)
client = SteerAI(api_key=os.getenv("STEER_AI_API_KEY"))

# Direct assignment (not recommended for production)
client = SteerAI(api_key="your_api_key_here")
```

### JavaScript/Node.js

```javascript theme={null}
import { SteerAI } from '@steerai/sdk';

// Using environment variable
const client = new SteerAI({
  apiKey: process.env.STEER_AI_API_KEY
});

// Using config object
const client = new SteerAI({
  apiKey: 'your_api_key_here',
  environment: 'production' // or 'sandbox'
});
```

## Configuration d'environnement

### Variables d'environnement

```bash theme={null}
# .env file
STEER_AI_API_KEY=your_api_key_here
STEER_AI_BASE_URL=https://api.steerai.autos/v1
STEER_AI_ENVIRONMENT=production
```

### Configuration multi-environnements

```bash theme={null}
# Development
STEER_AI_DEV_API_KEY=dev_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STEER_AI_DEV_BASE_URL=https://api-sandbox.steerai.autos/v1

# Production
STEER_AI_PROD_API_KEY=prod_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
STEER_AI_PROD_BASE_URL=https://api.steerai.autos/v1
```

## Tester l'authentification

### Endpoint de test rapide

```bash theme={null}
curl -X GET "https://api.steerai.autos/v1/auth/test" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

**Reponse en cas de succes :**

```json theme={null}
{
  "status": "success",
  "data": {
    "authenticated": true,
    "account_id": "acc_1234567890",
    "plan": "professional",
    "permissions": ["inspections:read", "inspections:write"]
  }
}
```

### Informations de compte

```bash theme={null}
curl -X GET "https://api.steerai.autos/v1/account" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

## Bonnes pratiques de securite

<AccordionGroup>
  <Accordion icon="key" title="Gestion des cles API">
    • Stocker les cles dans des variables d'environnement, jamais dans le code
    • Utiliser des cles differentes pour dev et production
    • Renouveler les cles tous les 90 jours
    • Revoquer immediatement les cles compromises
    • Utiliser des prefixes pour identifier les environnements (dev\_, prod\_)
  </Accordion>

  <Accordion icon="shield" title="Securite reseau">
    • Utiliser HTTPS pour toutes les requetes API
    • Valider les certificats SSL
    • Mettre en place un whitelisting IP si possible
    • Utiliser VPN ou reseaux prives pour operations sensibles
  </Accordion>

  <Accordion icon="eye" title="Controle d'acces">
    • Limiter les permissions au minimum necessaire
    • Utiliser des cles distinctes par application
    • Surveiller l'usage pour detecter des anomalies
    • Mettre en place logs et alertes appropries
  </Accordion>
</AccordionGroup>

## Reponses d'erreur

### Cle API invalide

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The provided API key is invalid or has been revoked",
    "type": "authentication_error"
  }
}
```

### Cle API manquante

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "MISSING_API_KEY",
    "message": "API key is required for this endpoint",
    "type": "authentication_error"
  }
}
```

### Permissions insuffisantes

```json theme={null}
{
  "status": "error",
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "Your API key does not have permission to access this resource",
    "type": "authorization_error"
  }
}
```

## Depannage

### Problemes courants

<AccordionGroup>
  <Accordion icon="exclamation-triangle" title="401 Unauthorized">
    **Causes :**
    • Cle API invalide ou expiree
    • Entete Authorization manquante
    • Format d'entete incorrect

    **Solutions :**
    • Verifier la cle API
    • Verifier le format : `Authorization: Bearer YOUR_KEY`
    • Regenerer la cle si besoin
  </Accordion>

  <Accordion icon="ban" title="403 Forbidden">
    **Causes :**
    • La cle API n'a pas les permissions requises
    • Limites de plan
    • Compte suspendu

    **Solutions :**
    • Verifier les permissions de la cle
    • Mettre a niveau le plan si necessaire
    • Contacter le support en cas de probleme compte
  </Accordion>

  <Accordion icon="clock" title="Problemes de connexion">
    **Causes :**
    • Problemes de connectivite reseau
    • Firewall bloquant les requetes
    • Problemes de certificat SSL

    **Solutions :**
    • Tester la connectivite reseau
    • Verifier les regles firewall
    • Verifier la validation SSL
  </Accordion>
</AccordionGroup>

## Rate limiting

Les requetes authentifiees sont soumises a des limites selon votre plan :

| Plan         | Requetes/Heure | Concurrent |
| ------------ | -------------- | ---------- |
| Free         | 1,000          | 5          |
| Starter      | 10,000         | 20         |
| Professional | 100,000        | 100        |
| Enterprise   | Unlimited      | Custom     |

## Besoin d'aide ?

Si vous avez des problemes d'authentification :

* Consultez notre [guide de depannage](/fr/support/troubleshooting)
* Contactez le support : [support@steerai.autos](mailto:support@steerai.autos)
* Incluez votre ID de compte (ne partagez jamais votre cle)

<Note>
  **Note securite :** Ne partagez jamais vos cles API dans les demandes support, depots de code ou forums publics. Notre equipe ne demandera jamais vos cles.
</Note>
