Configuration de l'environnement
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.
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 --versiondans un terminal. Sous Windows, installez-le via 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, 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 — 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 s'il est manquant. requests— ne fait pas partie de la bibliothèque standard, installez-le d'abord :
(oupip install requestspip3 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 utilisentawaitau niveau racine etcrypto.randomUUID()global, qui nécessitent tous deux un Node récent ; sur Node 18 (désormais en fin de vie),crypton'est pas fiablement global en dehors de CommonJS/REPL et ces exemples peuvent échouer avec une erreur confusecrypto is not definedqui n'a rien à voir avec votre clé API. Obtenez une version récente depuis 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. 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 :
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 :
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 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 exactementAuthorization: Bearer <clé>— le motBearer, un seul espace, puis la clé. Un espace manquant ou un guillemet parasite dans$API_KEYproduisent 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-dou 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 champurlau lieu defileet le serveur le récupère pour vous — voir Démarrage rapide. - Vous obtenez
rate_limit_exceeded? Consultez la section Limites de débit — 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.