# Configuration de l'environnement — Clés API et installation du client

> Comment installer un client, stocker votre clé API ImageToTable.ai en toute sécurité et résoudre les problèmes les plus courants du type « J'ai envoyé une requête et j'ai reçu une erreur » avant de commencer à appeler l'API v1.

Cette page s'adresse à toute personne n'ayant jamais appelé une API HTTP depuis un terminal. Si vous êtes déjà à l'aise avec `curl` et les variables d'environnement, passez directement au [Démarrage rapide](/developers/quickstart).

## Installer un client

Vous avez besoin d'un outil capable d'envoyer une requête HTTP avec des en-têtes personnalisés. Deux options courantes :

- **curl** — un outil en ligne de commande, généralement déjà installé sur macOS et Linux. Vérifiez avec `curl --version` dans un terminal. Sous Windows, installez-le via [curl.se/windows](https://curl.se/windows/) ou utilisez curl fourni avec Git Bash / WSL. Tous les exemples de cette documentation sont d'abord rédigés sous forme de commande curl.
- **Postman** (ou Insomnia) — une application graphique pour créer et enregistrer des requêtes, utile si vous préférez cliquer dans un formulaire plutôt que d'écrire des commandes shell. Installez-la depuis [postman.com/downloads](https://www.postman.com/downloads/), puis reproduisez n'importe quel exemple curl de ce site en copiant l'URL, la méthode, les en-têtes et le corps dans une nouvelle requête.

## Utiliser les exemples Python

Tous les exemples de code de ce site comportent un onglet Python basé sur la célèbre bibliothèque [`requests`](https://requests.readthedocs.io/) — **pas un SDK officiel ImageToTable.ai** (nous n'en publions pas ; il s'agit d'appels HTTP simples avec n'importe quel client standard). Vous avez besoin de :

- **Python 3.8+** — vérifiez avec `python3 --version`. Téléchargez-le depuis [python.org/downloads](https://www.python.org/downloads/) s'il est manquant.
- **`requests`** — ne fait pas partie de la bibliothèque standard, installez-le d'abord :`pip install requests`(ou `pip3 install requests`, selon votre système).

Les exemples d'exportation qui analysent le fichier téléchargé (xlsx/docx) utilisent également `openpyxl` / `python-docx` — nécessaires uniquement si vous suivez ces exemples spécifiques, installez-les avec `pip install openpyxl python-docx`.

## Utilisation des exemples JavaScript

L'onglet JavaScript utilise l'API native `fetch` — aucune bibliothèque à installer — mais nécessite un environnement d'exécution raisonnablement récent :

- **Node.js 20+** si exécuté côté serveur — vérifiez avec `node --version`. Les exemples utilisent `await` au niveau racine et `crypto.randomUUID()` global, qui nécessitent tous deux un Node récent ; sur Node 18 (désormais en fin de vie), `crypto` n'est pas fiablement global en dehors de CommonJS/REPL et ces exemples peuvent échouer avec une erreur confuse `crypto is not defined` qui n'a rien à voir avec votre clé API. Obtenez une version récente depuis [nodejs.org](https://nodejs.org/).
- Ou simplement **collez l'extrait dans la console DevTools d'un navigateur** — tous les navigateurs modernes prennent en charge les mêmes API (`fetch`, `FormData`, `crypto.randomUUID()`) nativement, aucune installation nécessaire.

## Obtenez votre clé API

Votre clé API est délivrée depuis la [page des paramètres de votre compte](/profile/). L'API v1 est disponible pour les formules payantes (Basic et supérieur) ; l'appeler avec une clé de formule Free renvoie une erreur `plan_required` plutôt qu'une erreur d'authentification manquante, car la clé elle-même est valide — elle n'est simplement pas encore autorisée à utiliser v1.

## Stockez votre clé comme variable d'environnement

Ne collez pas votre clé directement dans une commande que vous pourriez partager, capturer d'écran ou commiter dans un système de contrôle de version. Exportez-la plutôt dans votre session shell, puis référencez-la comme `$API_KEY` dans chaque requête — tous les exemples de ce site supposent que cette variable existe :

```bash
export API_KEY="itt_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
```

Cela ne dure que pour votre session de terminal actuelle. Pour quelque chose de plus permanent, ajoutez la même ligne au fichier de démarrage de votre shell (`~/.bashrc`, `~/.zshrc`, ou équivalent) — ou, si vous écrivez un script, chargez-la depuis un fichier `.env` / gestionnaire de secrets plutôt que de la coder en dur dans la source.

## Envoyer une requête de test

Confirmez que votre clé et votre configuration fonctionnent avant de passer aux documents réels :

```bash
curl https://imagetotable.ai/api/v1/account \
  -H "Authorization: Bearer $API_KEY"
```

Une clé fonctionnelle sur un plan payant renvoie un aperçu de votre compte (plan, rôle, crédits disponibles). Dans le cas contraire, consultez la liste de dépannage ci-dessous.

## Liste de dépannage

Chaque erreur de l'API v1 est renvoyée au format JSON avec un `type`/`code`/`message` — consultez le guide complet [Gestion des erreurs](/developers/guides/errors) pour la liste exhaustive. Les premières vérifications les plus rapides pour une requête qui ne fonctionne pas :

- **Vous obtenez `missing_api_key` ?** Vérifiez que l'en-tête est exactement `Authorization: Bearer <clé>` — le mot `Bearer`, un seul espace, puis la clé. Un espace manquant ou un guillemet parasite dans `$API_KEY` produisent tous deux cette erreur.
- **Vous obtenez `invalid_api_key` ?** La clé ne correspond à aucun compte, ou le compte est désactivé. Recopiez-la depuis votre page de profil — les clés sont longues et faciles à tronquer lors du copier-coller.
- **Vous obtenez `plan_required` ?** Votre clé est valide, mais votre compte est sur la formule Free. Passez à la formule Basic ou supérieure pour utiliser l'API v1.
- **Vous obtenez une erreur de connexion, et non une réponse JSON ?** Vérifiez que l'URL commence par `https://imagetotable.ai/api/v1/` et que vous utilisez `-X POST` (ou le verbe approprié) pour les points d'accès qui l'exigent — une requête GET vers un point d'accès POST uniquement n'atteindra pas la route du tout.
- **Vous téléchargez un fichier et obtenez une erreur inattendue ?** Les téléchargements de fichiers multipart nécessitent `-F "file=@/chemin/vers/fichier.jpg"` (l'indicateur de formulaire de curl), et non `-d` ou un corps JSON brut — confondre ces options est l'erreur de téléchargement la plus courante. Le `@` initial indique à curl de lire ce chemin comme un fichier réel *sur votre propre machine* — ce n'est pas une URL, et le fichier doit déjà exister avant d'exécuter la commande. Si vous n'avez pas de fichier local sous la main, ignorez cette étape : transmettez un champ `url` au lieu de `file` et le serveur le récupère pour vous — voir [Démarrage rapide](/developers/quickstart).
- **Vous obtenez `rate_limit_exceeded` ?** Consultez la section [Limites de débit](/developers/guides/rate-limits) — les limites sont par compte, et non par type de requête attendu, donc une rafale d'appels de sondage peut déclencher la même limite qu'une rafale de téléchargements.

---

Source: https://imagetotable.ai/fr/developers/environment-setup
