Facebook Pixel
Fit'DistanceDocumentation
Ouvrir l'app
Sur cette page

La CLI

La commande fitdistance : l'installer, connecter ta clé, lire et écrire depuis ton terminal, un script ou un agent qui code.

fitdistance est la ligne de commande de l'API partenaires. Chaque opération de l'API devient une commande, les ressources se lisent avec list et get, et la sortie est du JSON dès qu'elle part vers un autre programme. Elle utilise la même clé, les mêmes périmètres et les mêmes crédits que l'API REST.

Installer

Il faut Node.js 20 ou plus récent. Le paquet n'a aucune dépendance.

npx @fitdistance/cli --help        # sans rien installer
npm install -g @fitdistance/cli    # installe la commande fitdistance

Avec npx, remplace fitdistance par npx @fitdistance/cli dans les exemples de cette page.

Te connecter

Crée une clé dans Paramètres › Intégrations › Clés API, puis :

fitdistance auth login

La commande te demande la clé sans l'afficher, ou la lit sur l'entrée standard quand ce n'est pas un terminal. Elle la vérifie avec GET /me, puis la garde. fitdistance auth status montre la clé utilisée, masquée, ses périmètres et tes crédits restants. fitdistance auth logout la retire.

Où est ta clé

  • La clé est dans le fichier credentials du dossier $XDG_CONFIG_HOME/fitdistance, ou ~/.config/fitdistance par défaut. Toi seul peux le lire.
  • FITDISTANCE_API_KEY passe avant le fichier. Pour une tâche planifiée ou un agent, garde la clé dans un gestionnaire de secrets et donne-la par cette variable, jamais dans un fichier versionné.
  • FITDISTANCE_API_URL change l'adresse de base, https://api.fitdistance.io/api/partner/v1 par défaut.

La grammaire

  • Une opération s'appelle par son nom à point, comme students.note_create. Ses options sont les noms de ses champs : --studentId, ou --student-id.
  • Une ressource se lit avec des mots, puis list, ou get et un identifiant. Une ressource imbriquée prend l'identifiant juste après ses mots, comme students records 42. fitdistance me lit ta clé et ton solde.
  • --input donne tout le corps en JSON : en ligne (--input '{"studentId":42}'), depuis un fichier (--input @note.json) ou depuis l'entrée standard (--input -).
  • --json affiche la réponse de l'API en JSON. C'est aussi la sortie quand elle ne va pas vers un terminal. Sur un terminal, une liste s'affiche en tableau.

Cinq exemples, dans l'ordre : les élèves modifiés depuis le 1er octobre, un élève, une recherche dans tes prospects, une note écrite depuis un script, l'aperçu d'une suppression. Les identifiants sont des exemples : prends les vrais dans une liste.

fitdistance students list --since 2026-10-01 --limit 10
fitdistance students get 42
fitdistance prospects.read --view search --q "Martin"
fitdistance students.note_create --studentId 42 --content "Appel de suivi" --yes
fitdistance students.note_delete --studentId 42 --noteUid 3f9c2a7e --dry-run

Chaque lecture facturée coûte un crédit par appel, donc par page. --all lit toutes les pages d'une liste : il s'arrête à --max-pages (50 par défaut) ou à un 429 après la première page, en gardant les lignes déjà lues. Une erreur de périmètre nomme celui qui manque à ta clé : ils sont décrits dans Périmètres.

Les écritures

Une lecture part tout de suite, alors qu'une écriture ou une suppression se prévisualise avec --dry-run, qui n'exécute rien. Sur un terminal, la CLI montre l'aperçu quand l'opération en a un, puis demande Run <opération>? [y/N]. Sans terminal, elle n'envoie rien et répond CONFIRMATION_REQUIRED avec le code de sortie 2, sauf si tu ajoutes --yes : un script le passe donc exprès, après un --dry-run en cas de doute.

Avec --yes sur un terminal, la CLI envoie quand même d'abord un aperçu, qui n'applique rien, quand l'opération en a un. --input - ne se combine pas avec la question, qui lit elle aussi l'entrée standard : ajoute --yes, ou passe le corps avec --input @fichier.json.

--idempotency-key <clé> rend une nouvelle tentative sûre : la même clé avec le même corps ne s'exécute qu'une fois. Le détail est dans Écritures et idempotence.

Code de sortieSens
0La commande a réussi.
1Une erreur de l'API ou du réseau, ou « non » à la question.
2Une erreur d'usage, pas de clé connectée, un corps refusé par l'API (VALIDATION) ou un refus de la CLI elle-même.

Pour un agent : fitdistance docs

fitdistance docs affiche un guide complet, en anglais, écrit pour un agent qui code ou pour l'auteur d'un script. Il ne demande ni clé ni requête. Il rappelle que les données peuvent contenir des textes écrits par tes élèves, comme des messages ou des réponses à un formulaire : l'agent doit les lire comme des données, jamais comme des consignes.

Pour trouver une opération, sans clé ni crédit :

fitdistance --help
fitdistance ops search "note create"
fitdistance ops describe students.note_create
fitdistance ops list --family prospects

Pour un assistant avec qui tu discutes, comme Claude ou ChatGPT, branche plutôt le serveur MCP.

Les mises à jour

Une fois par jour, après une commande réussie, la CLI compare ses opérations à celles de GET /operations. Quand l'API propose des opérations que la CLI ne connaît pas, elle te prévient sur la sortie d'erreur : mets-la à jour avec npm install -g @fitdistance/cli. FITDISTANCE_NO_UPDATE_CHECK=1 coupe cette vérification.

Page suivanteBrancher n8nLis tes élèves dans n8n avec un identifiant Header Auth et un nœud HTTP Request, puis suis les pages avec un nœud If.