Lancer un flux par API
Le déclencheur Point d'entrée API : une adresse, une clé, des données JSON, XML, CSV, formulaire ou texte, et les champs que vous déclarez un à un.
4 min de lectureMis à jour le 17 octobre 2026
Un flux Maillon peut démarrer quand un autre logiciel l'appelle : un site de commande, un outil métier, un script. Le déclencheur Point d'entrée API donne au flux une adresse et une clé. Il lit les données reçues dans le format que vous choisissez et en extrait les champs que vous avez déclarés.
Mettre en place le point d'entrée
Choisir le déclencheur
Dans l'éditeur de flux, cliquez sur le déclencheur et choisissez Point d'entrée API, puis enregistrez le flux : son adresse apparaît.
Choisir le format
JSON, XML, CSV (avec une ligne d'en-tête, séparateur détecté ou choisi, jusqu'à 500 colonnes et 20 000 lignes) ou formulaire, ou bien du texte brut. Le corps de la requête est lu dans ce format, quel que soit son Content-Type.
Coller un exemple
Collez des données réelles dans Exemple de données reçues. Maillon s'en sert pour proposer les chemins, afficher la valeur lue pour chaque champ et lancer le bouton Tester.
Déclarer les champs
Ajoutez un à un les champs que le flux attend : leur nom, où les lire (corps de la requête, paramètre de l'adresse ou en-tête HTTP), leur chemin, leur type, s'ils sont obligatoires et leur valeur par défaut.
Créer la clé et activer le flux
Cliquez sur Créer la clé. Elle n'est affichée qu'une fois : copiez-la dans le logiciel qui appelle. Activez ensuite le flux.

Appeler le point d'entrée
curl -X POST "https://api.maillon.dev/hooks/flows/in/mfe_…" \
-H "Authorization: Bearer mfk_…" \
-H "Content-Type: application/json" \
--data-binary @commande.jsonLa clé se transmet dans l'en-tête Authorization: Bearer ou X-Maillon-Key, jamais dans l'adresse. Le corps est limité à 1 Mo. Les fichiers exportés depuis Windows (encodage Windows-1252) sont acceptés.
Une clé par point d'entrée
Avec la clé, on peut lancer le flux : gardez-la avec vos autres secrets. En cas de doute, cliquez sur Renouveler la clé : l'ancienne cesse aussitôt de fonctionner.
Déclarer les champs
Chaque champ devient une donnée utilisable dans les étapes suivantes avec le bouton { }, sous la forme trigger.data.<nom>. Les données reçues restent aussi disponibles en entier (trigger.body), comme les paramètres de l'adresse (trigger.query).
| Format | Exemple de chemin | Ce qui est lu |
|---|---|---|
| JSON | commande.client.code | La valeur de code dans client |
| JSON | commande.lignes.0.ref | La référence de la première ligne |
| XML | commande.@numero | L'attribut numero de <commande> |
| XML | commande.ligne (type Liste) | Toutes les lignes, même s'il n'y en a qu'une |
| CSV | 0.Code client | La colonne « Code client » de la première ligne |
| CSV | chemin vide (type Liste) | Toutes les lignes du fichier |
| Formulaire | client | Le champ client du formulaire |
| Type | Valeurs acceptées |
|---|---|
| Texte | Tout texte ou nombre |
| Nombre | 1840.5, 1840,50, 1 840,50 |
| Nombre entier | 12 |
| Oui / non | true, false, 1, 0, oui, non, yes, no, vrai, faux |
| Date | 2026-10-05, 05/10/2026 ou une date et heure ISO 8601 |
| Liste, Objet | Une liste ou un objet du document reçu |
Les en-têtes qui transportent la clé ou une session (Authorization, X-Maillon-Key, Cookie) ne peuvent pas être lus par un flux.
Réponses
| Code | Signification |
|---|---|
202 | Données acceptées, le flux s'exécute en arrière-plan : { "accepted": true, "run": "…" } |
200 | Avec Attendre le résultat : { "run": "…", "status": "succeeded", "error": null, "result": … }, où result est le résultat de la dernière étape. Un flux en échec répond aussi 200, avec "status": "failed" et le message d'erreur. Au-delà de 25 secondes, la réponse est un 202. |
400 | ENDPOINT_PAYLOAD_INVALID : les données ne sont pas lisibles dans le format choisi (JSON ou XML invalide, CSV mal fermé ou de plus de 500 colonnes ou 20 000 lignes, déclaration DOCTYPE). |
401 | ENDPOINT_UNAUTHORIZED : adresse inconnue, clé absente ou invalide. |
409 | FLOW_PAUSED : le flux est en pause. |
413 | Corps de plus de 1 Mo. |
422 | ENDPOINT_FIELDS_INVALID : des champs déclarés manquent ou n'ont pas le bon type. details les liste un à un (field, code : missing ou invalid, expected). Le flux ne démarre pas. |
429 | Trop d'appels (120 par minute et par adresse IP). |
Tester sans appeler
Le bouton Tester de l'éditeur lit l'exemple avec le format et les champs déclarés, comme un vrai appel. Les champs lus dans un paramètre de l'adresse ou un en-tête restent vides pendant un test.
Chaque appel crée une exécution visible dans l'onglet Exécutions du flux, avec les données reçues et le résultat de chaque étape, conservés 30 jours.