Aller au contenu

La documentation de l'API REST.

14 points d'entrée (13 en lecture, 1 en écriture), 7 portées de clé, des erreurs au format stable. Cette page est générée à partir du document OpenAPI 3.1.0 du moteur, version 1.0.0.

Prise en main en trois lignes.

L'adresse de base est https://votre-espace/api/v1, où votre-espace est l'adresse de votre organisme. Une clé d'intégration, créée par un administrateur dans l'écran Intégrations, se passe dans l'en-tête Authorization: Bearer s4mk_…. Chaque clé est limitée à son organisme et à ses portées.

La même clé ouvre le serveur MCP pour les assistants IA : voir la page API, MCP et webhooks.

Télécharger la copie du document OpenAPI (le champ « servers » y contient l'adresse générique votre-espace, à remplacer par la vôtre).

# 1. Qui suis-je ? (toute clé valide)
curl -s https://votre-espace/api/v1/moi \
  -H "Authorization: Bearer $CLE"

# 2. Réponse
{
  "organisme_id": "of-…",
  "cle": "CRM HubSpot",
  "portees": ["organisme:lecture", "catalogue:lecture", "sessions:lecture"],
  "version": "1.0.0"
}

Les 14 points d'entrée.

Chaque ligne renvoie à son détail plus bas : paramètres, codes de retour, exemple d'appel.

Les points d'entrée de l'API REST v1
MéthodeCheminPortéeCe que vous obtenez
GET/organismeorganisme:lectureIdentité publique de l'organisme
GET/formationscatalogue:lectureCatalogue des formations
GET/sessionssessions:lectureSessions disponibles à la vente
GET/organisme/identiteorganisme:lectureDesign system de l'organisme
GET/organisme/dossier-documentaireorganisme:lectureDossier documentaire de l'organisme
GET/certificationscatalogue:lectureCertifications RS / RNCP de l'organisme
GET/dossiersdossiers:lectureDossiers de formation
GET/dossiers/{id}dossiers:lectureUn dossier
GET/indicateursqualite:lectureIndicateurs de résultats
GET/bpfqualite:lectureBilan pédagogique et financier calculé
GET/pilotagequalite:lecturePilotage
GET/editorial/calendriereditorial:lectureCalendrier éditorial des réseaux sociaux
POST/leadsleads:ecritureDéposer une demande de contact dans la boîte de réception de l'organisme
GET/moitoute cléLa clé utilisée

Les 7 portées d'une clé.

Une clé ne voit que ce que l'administrateur a coché à sa création. Les libellés ci-dessous sont ceux du document OpenAPI.

Portées des clés d'intégration
PortéeCe qu'elle ouvre
organisme:lectureIdentité publique de l'organisme (raison sociale, NDA, certificat)
catalogue:lectureCatalogue des formations
sessions:lectureSessions disponibles à la vente (dates, lieux, places restantes, prix)
qualite:lectureIndicateurs qualité, BPF et pilotage (chiffres agrégés, sans donnée personnelle)
dossiers:lectureDossiers de formation (contient des noms d'apprenants : données personnelles)
leads:ecritureDéposer une demande (prospect, contact) dans la boîte de réception
editorial:lectureCalendrier éditorial des réseaux sociaux (contenus prévus, validés, publiés)

Le détail de chaque point d'entrée.

GET

/organisme

portée organisme:lecture

Identité publique de l'organisme (NDA, certificat Qualiopi, référent handicap)

Codes de retour

  • 200Succès : Identité de l'organisme
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/organisme \
  -H "Authorization: Bearer $CLE"
GET

/formations

portée catalogue:lecture

Catalogue des formations

Paramètres

Paramètres
NomEmplacementTypeRequisPrécisions
archiveesadresse (query)string, parmi oui, nonnonpar défaut non

Codes de retour

  • 200Succès : Formations
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/formations \
  -H "Authorization: Bearer $CLE"
GET

/sessions

portée sessions:lecture

Sessions disponibles à la vente (inter et intra) : dates, lieu, places restantes, prix HT en euros

Paramètres

Paramètres
NomEmplacementTypeRequisPrécisions
formation_idadresse (query)stringnon
duadresse (query)string (date)nonSessions qui commencent à partir de cette date.
auadresse (query)string (date)nonSessions qui commencent au plus tard à cette date.
modaliteadresse (query)string, parmi presentiel, distanciel, mixtenon
lieuadresse (query)stringnonTexte cherché dans le nom et l'adresse du lieu.
placesadresse (query)integernonPlaces restantes minimales.. minimum 1
typeadresse (query)string, parmi inter, intranon

Codes de retour

  • 200Succès : Sessions vendables
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/sessions \
  -H "Authorization: Bearer $CLE"
GET

/organisme/identite

portée organisme:lecture

Design system de l'organisme : palette (contrastes AA), typographies, rayons, boutons

Codes de retour

  • 200Succès : Design system
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/organisme/identite \
  -H "Authorization: Bearer $CLE"
GET

/organisme/dossier-documentaire

portée organisme:lecture

Dossier documentaire de l'organisme : activité, formations repérées, coordonnées publiques de fonction, ton éditorial (aucune donnée de personne physique)

Codes de retour

  • 200Succès : Dossier documentaire
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/organisme/dossier-documentaire \
  -H "Authorization: Bearer $CLE"
GET

/certifications

portée catalogue:lecture

Certifications RS / RNCP de l'organisme

Codes de retour

  • 200Succès : Certifications
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/certifications \
  -H "Authorization: Bearer $CLE"
GET

/dossiers

portée dossiers:lecture

Dossiers de formation (pagination par `apres` et `limite`)

Paramètres

Paramètres
NomEmplacementTypeRequisPrécisions
etapeadresse (query)stringnon
statutadresse (query)stringnon
archivesadresse (query)string, parmi oui, non, tousnonpar défaut non
limiteadresse (query)integernonpar défaut 50 ; minimum 1 ; maximum 200
apresadresse (query)integernonpar défaut 0 ; minimum 0

Codes de retour

  • 200Succès : Page de dossiers
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/dossiers \
  -H "Authorization: Bearer $CLE"
GET

/dossiers/{id}

portée dossiers:lecture

Un dossier : avancement, pièces manquantes, statut de chaque pièce

Paramètres

Paramètres
NomEmplacementTypeRequisPrécisions
idcheminstringouiIdentifiant ou référence du dossier.

Codes de retour

  • 200Succès : Dossier
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 404Introuvable
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/dossiers/ID_OU_REFERENCE \
  -H "Authorization: Bearer $CLE"
GET

/indicateurs

portée qualite:lecture

Indicateurs de résultats (Qualiopi, indicateur 2) et publications

Paramètres

Paramètres
NomEmplacementTypeRequisPrécisions
exerciceadresse (query)integernonExercice civil (par défaut : le plus récent).. exemple 2026

Codes de retour

  • 200Succès : Indicateurs
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/indicateurs \
  -H "Authorization: Bearer $CLE"
GET

/bpf

portée qualite:lecture

Bilan pédagogique et financier calculé

Paramètres

Paramètres
NomEmplacementTypeRequisPrécisions
exerciceadresse (query)integernonExercice civil (par défaut : le plus récent).. exemple 2026

Codes de retour

  • 200Succès : BPF
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/bpf \
  -H "Authorization: Bearer $CLE"
GET

/pilotage

portée qualite:lecture

Pilotage : chiffre d'affaires facturé, dossiers par étape, alertes

Paramètres

Paramètres
NomEmplacementTypeRequisPrécisions
anneeadresse (query)integernon

Codes de retour

  • 200Succès : Pilotage
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/pilotage \
  -H "Authorization: Bearer $CLE"
GET

/editorial/calendrier

portée editorial:lecture

Calendrier éditorial des réseaux sociaux : contenus datés de la période (30 jours à partir d'aujourd'hui par défaut, 400 au plus)

Paramètres

Paramètres
NomEmplacementTypeRequisPrécisions
debutadresse (query)string (date)nonAAAA-MM-JJ (par défaut : aujourd'hui).
finadresse (query)string (date)nonAAAA-MM-JJ (par défaut : début + 30 jours).
statutadresse (query)string, parmi idee, brouillon, a_valider, valide, programme, publie, abandonnenonUn seul statut (par défaut : tous sauf « abandonne »).

Codes de retour

  • 200Succès : Contenus de la période
  • 400Requête invalide
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/editorial/calendrier \
  -H "Authorization: Bearer $CLE"
POST

/leads

portée leads:ecriture

Déposer une demande de contact dans la boîte de réception de l'organisme

Corps de la requête (JSON)

Champs du corps de la requête
ChampTypeRequisPrécisions
prenomstringoui80 caractères au plus
nomstringoui80 caractères au plus
emailstring (email)oui
telephonestringnon30 caractères au plus
formation_souhaiteestringnon400 caractères au plus
objectifstringoui5 caractères au moins ; 1000 caractères au plus
messagestringnon2500 caractères au plus
sourcestringnonOutil ou campagne d'origine (par défaut : le nom de la clé).. 120 caractères au plus

Codes de retour

  • 201Créé : Demande enregistrée
  • 400Requête invalide
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s -X POST https://votre-espace/api/v1/leads \
  -H "Authorization: Bearer $CLE" \
  -H "content-type: application/json" \
  -d '{"prenom":"Paul","nom":"Durand","email":"paul@exemple.fr",
       "objectif":"Formation Excel","source":"HubSpot"}'
GET

/moi

toute clé valide

La clé utilisée : organisme et permissions (pour tester une connexion)

Codes de retour

  • 200Succès : Clé
  • 401Clé absente ou refusée
  • 403Portée manquante
  • 429Trop de requêtes

Exemple d'appel

curl -s https://votre-espace/api/v1/moi \
  -H "Authorization: Bearer $CLE"

À quoi ressemblent les réponses.

Trois exemples. Les champs sont ceux que le moteur renvoie ; les valeurs sont fictives et les points de suspension marquent ce qui est omis ici.

GET /dossiers?limite=5

{
  "total": 37,
  "suivant": 5,
  "etapes": [ … ],
  "dossiers": [
    {
      "id": "…",
      "reference": "ADF-2026-0042",
      "statut": "dossier_valide",
      "libelle_statut": "…",
      "etape": "B",
      "archive": false,
      "formation": "…",
      "date_debut": "2026-12-01",
      "date_fin": "2026-12-03",
      "formateur": "…",
      "apprenants": …,
      "pieces": { "validees": 4, "total": 9 },
      "avancement": { "pourcentage": 44, "manquants": [ … ] },
      "maj_le": "2026-11-13T09:12:44.120Z"
    }
  ]
}

Pagination : le champ suivant donne la valeur à passer dans le paramètre apres ; il vaut null à la dernière page.

POST /leads

HTTP 201
{
  "numero": "…",
  "id": "…",
  "statut": "nouveau"
}

Une erreur

{
  "erreur": "message en français",
  "code": "non_authentifie | interdit | introuvable | invalide | conflit | trop_de_requetes"
}

Un 429 porte l'en-tête Retry-After.

Questions sur cette documentation

Où trouver le document OpenAPI de mon espace ?

À l'adresse /api/v1/openapi.json de votre espace : il est public et ne contient aucune donnée. Make, Zapier, n8n et Postman savent l'importer. Cette page en est tirée ; une copie est téléchargeable ci-dessous.

Quelle est la limite de débit ?

Selon la documentation livrée avec le moteur : 600 requêtes par minute et par clé, et au plus 200 éléments par page. Au-delà, l'API répond 429 avec l'en-tête Retry-After.

L'API peut-elle créer ou modifier un dossier ?

Pas dans cette version : l'écriture se limite au dépôt d'une demande de contact (POST /leads). La création de dossiers, d'apprenants et le dépôt de pièces sont prévus pour une version suivante, sans date annoncée.

Les noms d'apprenants sont-ils exposés ?

Seulement avec la portée dossiers:lecture, qui n'est jamais cochée par défaut. Les autres portées ne donnent que des chiffres agrégés, des informations publiques ou le catalogue.

Les exemples de réponse sont-ils complets ?

Non. Les champs listés sont ceux que le moteur renvoie, les valeurs sont fictives, et les points de suspension marquent ce qui est omis. Le document OpenAPI décrit chaque réponse comme un objet JSON ; le détail champ par champ se voit en appelant votre espace avec une clé.

Créez une clé dans votre espace d'essai.

L'écran Intégrations est ouvert dans l'essai : vous créez une clé, vous la testez avec la requête GET /moi, vous voyez ce qu'elle ouvre. Données fictives, gratuit pendant 30 jours.

Essayer gratuitement