L'API Goatching

Pour ceux qui savent coder : pilote ton compte en API — lis tes données, construis ton plan, publie-le toi-même.

À toi, et à toi seul. Un jeton personnel n'agit que sur ton compte. Il ne donne aucun pouvoir de coach : tu ne peux ni voir ni modifier les données de quelqu'un d'autre. Tu deviens ton propre coach.

1. Créer ton jeton

Dans l'app : Compte → Accès API → Générer un jeton. Donne-lui un nom (l'appareil ou le script qui s'en servira) et une durée de vie, puis touche Copier. Le secret ne s'affiche qu'une seule fois — colle-le tout de suite dans ta variable d'environnement.

PropriétéDétail
FormeUne chaîne préfixée gch_
StockageHaché côté serveur — nous ne pouvons pas te le réafficher
Expiration90 jours par défaut (365 j max), puis il cesse de fonctionner
RévocationImmédiate depuis la même page, à tout moment
NombreJusqu'à 5 jetons actifs par compte

Ton jeton vaut l'accès à ton compte. Ne le mets jamais dans un dépôt public ni dans une conversation. Range-le dans une variable d'environnement. Un doute ? Révoque-le et regénère-en un.

2. S'authentifier

Base : https://goatching.fr. Passe ton jeton dans l'en-tête Authorization. Récupère d'abord ton identifiant une fois pour toutes :

export GOATCHING_TOKEN=gch_ton_jeton_ici
UID=$(curl -s https://goatching.fr/v1/auth/me \
  -H "Authorization: Bearer $GOATCHING_TOKEN" | jq -r .id)

Un jeton révoqué ou expiré renvoie 401. Un accès qui n'est pas le tien renvoie 403.

3. Lire tes données

EndpointCe que tu obtiens
GET /v1/profiles/$UIDTon questionnaire, tes seuils, tes zones dérivées, ta course cible
GET /v1/activities?user_id=$UIDTes sorties réelles (durée, distance, FC, D+)
GET /v1/plans/me/currentTon plan publié en cours

4. Construire ton plan

Tu es ton propre coach. Créer la fiche, déposer le contenu, valider, publier quand tu veux :

# 1. Créer le plan (une seule fiche active par personne)
curl -X POST https://goatching.fr/v1/plans \
  -H "Authorization: Bearer $GOATCHING_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"trainee_id\":\"$UID\",\"title\":\"Mon semi\",\"sport_focus\":\"run\",
       \"start_date\":\"2026-08-01\",\"end_date\":\"2026-10-15\"}"

# 2. Déposer le contenu (PlanDoc — cf. le schéma ci-dessous)
curl -X PUT https://goatching.fr/v1/plans/$PLAN_ID/draft \
  -H "Authorization: Bearer $GOATCHING_TOKEN" \
  -H "Content-Type: application/json" \
  -d @mon-plan.json

# 3. Vérifier les garde-fous (liste vide = OK) — envoie le PlanDoc à valider
curl -X POST https://goatching.fr/v1/plans/$PLAN_ID/validate \
  -H "Authorization: Bearer $GOATCHING_TOKEN" \
  -H "Content-Type: application/json" \
  -d @mon-plan.json

# 4. Publier — quand TU es prêt
curl -X POST https://goatching.fr/v1/plans/$PLAN_ID/publish \
  -H "Authorization: Bearer $GOATCHING_TOKEN"

Le contenu d'un plan (PlanDoc) suit un schéma strict : durées en secondes, distances en mètres, allures en sec/km, cibles par zone. La validate refuse les plans dangereux (jamais moins d'un jour de repos par semaine, volume borné, répétitions plafonnées). Schéma complet : goatching.fr/plan.schema.json, exemple prêt à l'emploi : goatching.fr/plan.sample.json. Et la méthode d'entraînement (progressivité, garde-fous anti-blessure) : goatching.fr/coaching-guide.md.

5. Limites

LimiteValeur
Séances par plan1000
Blocs/étapes par séance200
Répétitions par bloc50
Cibles par étape8
Phases par plan30
Écritures de plan (créer / déposer / valider / publier)10 / min
Création de jeton5 / heure
Jetons actifs par compte5
Durée de vie d'un jeton90 j (365 max)

Dépasser une taille renvoie 422 ; trop de requêtes, 429 (réessaie plus tard). En lecture, mets tes réponses en cache plutôt que de boucler.

Tu veux laisser un assistant IA construire ton plan à partir de tes données ? Branche le serveur MCP sur ce même jeton.