Référence API
L'API REST Stellary vous permet de gérer programmatiquement les organisations, espaces de travail, projets, tableaux, cartes et le pilotage stratégique. Tous les endpoints renvoient du JSON.
URL de base : http://localhost:3001 (auto-hébergé) ou l'URL de votre déploiement.
Authentification
Stellary prend en charge deux méthodes d'authentification. Les deux utilisent l'en-tête Authorizationavec un jeton Bearer :
Authorization: Bearer <token>Jetons JWT
Obtenus en appelant POST /auth/login ou POST /auth/register. Les JWT expirent après 7 jours par défaut (configurable via JWT_EXPIRES_IN).
Jetons d'accès personnels (PAT)
Créés via POST /api-tokens. Les PAT supportent des permissions par portée et une expiration optionnelle. Le jeton complet n'est renvoyé qu'à la création — conservez-le en lieu sûr.
Les deux types de jetons fonctionnent avec tous les endpoints. Le backend tente d'abord la validation JWT, puis la recherche PAT.
Hiérarchie d'autorisation
Bearer Token validé (JWT ou PAT) ↓OrgAccessGuard → vérifie que l'utilisateur est membre de :orgSlug ↓WorkspaceAccessGuard → vérifie que l'utilisateur est membre de :wsSlug ↓Gestionnaire de l'endpointGestion des erreurs
Toutes les erreurs renvoient une structure JSON cohérente :
{ "statusCode": 400, "message": "Validation failed", "error": "Bad Request"}| Code | Signification | Quand |
|---|---|---|
400 | Bad Request | Échec de validation, champs manquants |
401 | Unauthorized | Jeton invalide / expiré / manquant |
403 | Forbidden | Rôle ou permissions insuffisants |
404 | Not Found | Ressource inexistante ou inaccessible |
409 | Conflict | Doublon, transition d'état invalide |
500 | Internal Error | Erreur serveur |
Auth
Inscription, connexion et gestion du profil utilisateur.
/auth/registerCréer un nouveau compte. Renvoie un JWT et l'objet utilisateur. Crée automatiquement une organisation et un espace de travail personnels.
emailstringrequiredAdresse e-mail validepasswordstringrequired8 à 128 caractèresnamestringNom d’affichage, max 100 caractèrescurl -X POST http://localhost:3001/auth/register \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com", "password": "secure-pass-123", "name": "Jane Doe"}'{ "access_token": "eyJhbGciOiJIUzI1NiIs...", "user": { "id": "665f1a2b3c4d5e6f7a8b9c0d", "email": "user@example.com", "name": "Jane Doe" }}/auth/loginS'authentifier et recevoir un JWT.
emailstringrequiredE-mail du comptepasswordstringrequiredMot de passe du comptecurl -X POST http://localhost:3001/auth/login \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com", "password": "secure-pass-123"}'{ "access_token": "eyJhbGciOiJIUzI1NiIs...", "user": { "id": "665f1a2b3c4d5e6f7a8b9c0d", "email": "user@example.com", "name": "Jane Doe", "pilotageRole": "owner" }}/auth/meObtenir le profil de l'utilisateur actuellement authentifié.
curl http://localhost:3001/auth/me \ -H "Authorization: Bearer YOUR_TOKEN"{ "user": { "id": "665f1a2b3c4d5e6f7a8b9c0d", "email": "user@example.com", "name": "Jane Doe", "pilotageRole": "owner" }}/auth/meModifier le profil de l'utilisateur courant.
namestringMaximum 100 caractèrescurl -X PATCH http://localhost:3001/auth/me \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Jane Smith"}'/auth/change-passwordChanger le mot de passe de l'utilisateur courant. Nécessite le mot de passe actuel pour vérification.
currentPasswordstringrequiredMot de passe actuelnewPasswordstringrequired8 à 128 caractèrescurl -X POST http://localhost:3001/auth/change-password \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "currentPassword": "old-password", "newPassword": "new-secure-pass"}'Organisations
Les organisations sont le conteneur de plus haut niveau. Elles contiennent des espaces de travail et des membres.
/organizationsCréer une nouvelle organisation. Le créateur en devient le propriétaire.
namestringrequiredNom de l’organisationslugstringrequired2 à 60 caractères, minuscules, alphanumériques + tiretscurl -X POST http://localhost:3001/organizations \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Acme Corp", "slug": "acme-corp"}'{ "id": "665f1a2b...", "name": "Acme Corp", "slug": "acme-corp", "ownerId": "665f1a2b...", "createdAt": "2026-01-15T10:30:00Z"}/organizationsLister toutes les organisations dont l'utilisateur courant est membre.
curl http://localhost:3001/organizations \ -H "Authorization: Bearer YOUR_TOKEN"[ { "id": "665f1a2b...", "name": "Acme Corp", "slug": "acme-corp", "myRole": "owner" }]/organizations/:orgSlugObtenir une organisation par son slug. Nécessite d'être membre.
orgSlugstringrequiredcurl http://localhost:3001/organizations/acme \ -H "Authorization: Bearer YOUR_TOKEN"{ "id": "665f1a2b...", "name": "Acme Corp", "slug": "acme-corp", "ownerId": "665f1a2b...", "myRole": "owner"}/organizations/:orgSlugModifier les détails d'une organisation.
orgSlugstringrequiredcurl -X PATCH http://localhost:3001/organizations/acme \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Acme Corporation"}'/organizations/:orgSlugSupprimer une organisation ainsi que tous ses espaces de travail, projets et données. Propriétaire uniquement.
orgSlugstringrequiredcurl -X DELETE http://localhost:3001/organizations/acme \ -H "Authorization: Bearer YOUR_TOKEN"Membres de l'organisation
/organizations/:orgSlug/membersLister tous les membres d'une organisation avec leurs rôles.
orgSlugstringrequiredcurl http://localhost:3001/organizations/acme/members \ -H "Authorization: Bearer YOUR_TOKEN"[ { "userId": "665f1a2b...", "role": "owner", "email": "owner@acme.com" }, { "userId": "665f1b3c...", "role": "member", "email": "dev@acme.com" }]/organizations/:orgSlug/membersAjouter un membre à l'organisation par e-mail.
orgSlugstringrequiredemailstringrequiredE-mail de l’utilisateur à ajouterrolestringrequired"admin" ou "member"curl -X POST http://localhost:3001/organizations/acme/members \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "email": "new-member@acme.com", "role": "member"}'/organizations/:orgSlug/members/:userIdModifier le rôle d'un membre. Impossible de changer le propriétaire.
orgSlugstringrequireduserIdstringrequiredcurl -X PATCH http://localhost:3001/organizations/acme/members/USER_ID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "role": "admin"}'/organizations/:orgSlug/members/:userIdRetirer un membre de l'organisation.
orgSlugstringrequireduserIdstringrequiredcurl -X DELETE http://localhost:3001/organizations/acme/members/USER_ID \ -H "Authorization: Bearer YOUR_TOKEN"Espaces de travail
Les espaces de travail se trouvent au sein des organisations et contiennent des projets. Chaque espace de travail possède sa propre liste de membres et ses rôles.
/orgs/:orgSlug/workspacesCréer un nouvel espace de travail au sein d'une organisation.
orgSlugstringrequirednamestringrequiredNom de l’espace de travailslugstringrequired2 à 60 caractères, minusculescurl -X POST http://localhost:3001/orgs/acme/workspaces \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Engineering", "slug": "engineering"}'/orgs/:orgSlug/workspacesLister tous les espaces de travail de l'organisation auxquels l'utilisateur a accès.
orgSlugstringrequiredcurl http://localhost:3001/orgs/acme/workspaces \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlugObtenir un espace de travail par son slug.
orgSlugstringrequiredwsSlugstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng \ -H "Authorization: Bearer YOUR_TOKEN"{ "id": "665f2d4e...", "name": "Engineering", "slug": "engineering", "organizationId": "665f1a2b...", "ownerId": "665f1a2b...", "isPersonal": false, "myRole": "admin", "myPilotageRole": "owner", "createdAt": "2026-01-15T10:30:00Z", "updatedAt": "2026-01-15T10:30:00Z"}Membres de l'espace de travail
/orgs/:orgSlug/workspaces/:wsSlug/members/inviteEnvoyer une invitation par e-mail pour rejoindre l'espace de travail. Crée un jeton d'invitation unique.
orgSlugstringrequiredwsSlugstringrequiredemailstringrequiredE-mail à inviterrolestring"admin" ou "member"curl -X POST http://localhost:3001/orgs/acme/workspaces/eng/members/invite \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "email": "teammate@company.com", "role": "member"}'/invitations/:token/acceptAccepter une invitation à un espace de travail en utilisant le jeton de l'e-mail d'invitation.
tokenstringrequiredcurl -X POST http://localhost:3001/invitations/INVITE_TOKEN/accept \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlug/members/:userIdModifier le rôle d'un membre dans l'espace de travail et/ou son rôle de pilotage.
orgSlugstringrequiredwsSlugstringrequireduserIdstringrequiredrolestring"admin" ou "member"pilotageRolestring"viewer", "reviewer" ou "owner"curl -X PATCH http://localhost:3001/orgs/acme/workspaces/eng/members/USER_ID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "role": "admin", "pilotageRole": "reviewer"}'Projets
Les projets contiennent des tableaux kanban avec des colonnes et des cartes. Tous les endpoints de projet sont rattachés à un espace de travail.
/orgs/:orgSlug/workspaces/:wsSlug/projectsCréer un nouveau projet dans l'espace de travail.
orgSlugstringrequiredwsSlugstringrequirednamestringrequiredNom du projetcurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/projects \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Q1 Launch"}'{ "id": "665f2d4e...", "name": "Q1 Launch", "workspaceId": "665f2d4e...", "createdAt": "2026-03-10T10:00:00Z"}/orgs/:orgSlug/workspaces/:wsSlug/projectsLister tous les projets de l'espace de travail.
orgSlugstringrequiredwsSlugstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectIdObtenir un projet par son identifiant.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectIdModifier les détails d'un projet.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcurl -X PATCH http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Q1 Launch v2"}'/orgs/:orgSlug/workspaces/:wsSlug/projects/portfolioObtenir un résumé du portefeuille de tous les projets avec des métriques agrégées.
orgSlugstringrequiredwsSlugstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/portfolio \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlug/projects/templatesLister les modèles de projet disponibles.
orgSlugstringrequiredwsSlugstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/templates \ -H "Authorization: Bearer YOUR_TOKEN"Import & Export de projets
/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/exportExporter un projet sous forme de snapshot JSON complet (colonnes, cartes, métadonnées).
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/export \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlug/projects/importImporter un projet depuis une structure JSON. Supporte jusqu'à 50 colonnes et 500 cartes.
orgSlugstringrequiredwsSlugstringrequiredcurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/projects/import \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "project": { "name": "Imported" }, "columns": [ { "name": "To Do" }, { "name": "In Progress" }, { "name": "Done" } ], "cards": [ { "title": "First task", "columnIndex": 0, "priority": "medium" } ]}'Membres du projet
/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/membersLister les membres du projet.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/members \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/membersAjouter un membre au projet par e-mail.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/members \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "email": "dev@company.com"}'/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/members/:userIdRetirer un membre du projet.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequireduserIdstringrequiredcurl -X DELETE http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/members/USER_ID \ -H "Authorization: Bearer YOUR_TOKEN"Colonnes
Les colonnes définissent les étapes du workflow sur un tableau de projet. Chaque colonne a un nom et un ordre.
/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/columnsCréer une nouvelle colonne.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/columns \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "In Review"}'/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/columnsLister toutes les colonnes d'un projet, triées par position.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/columns \ -H "Authorization: Bearer YOUR_TOKEN"[ { "id": "665f3e5f...", "name": "To Do", "projectId": "665f2d4e...", "order": 0, "createdAt": "2026-01-15T10:30:00Z" }]/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/columns/:columnIdModifier le nom ou l'ordre d'une colonne.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcolumnIdstringrequiredcurl -X PATCH http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/columns/COL_ID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "Code Review"}'/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/columns/:columnIdSupprimer une colonne.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcolumnIdstringrequiredcurl -X DELETE http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/columns/COL_ID \ -H "Authorization: Bearer YOUR_TOKEN"{ "ok": true }Cartes
Les cartes sont les éléments de travail principaux. Elles se trouvent dans des colonnes et supportent des métadonnées riches.
/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cardsLister toutes les cartes d'un projet (toutes colonnes confondues).
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards \ -H "Authorization: Bearer YOUR_TOKEN"[ { "id": "665f4f6a...", "title": "Design API endpoints", "description": "REST routes for billing module", "columnId": "665f3e5f...", "order": 0, "archived": false, "priority": "high", "dueDate": "2026-04-01T00:00:00Z", "assigneeId": "665f1a2b...", "checklist": [ { "_id": "a1b2c3", "title": "List endpoints", "done": true, "order": 0 } ], "commentCount": 3, "attachmentCount": 1 }]/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/columns/:columnId/cardsCréer une carte dans une colonne spécifique.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcolumnIdstringrequiredtitlestringrequired1 à 500 caractèresdescriptionstringMaximum 5000 caractèresprioritystringlow | medium | highstartDatestringDate ISOdueDatestringDate ISOassigneeIdstringMongoId du responsablechecklistarrayMaximum 100 élémentscurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/columns/COL_ID/cards \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "title": "Implement billing API", "description": "See spec in docs", "priority": "high", "dueDate": "2026-04-01", "assigneeId": "665f1a2b...", "checklist": [ { "title": "Setup routes", "done": false, "order": 0 } ]}'/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardIdModifier n'importe quel champ d'une carte. N'incluez que les champs à modifier. Définissez les champs nullables à null pour les effacer.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredcurl -X PATCH http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "title": "Updated title", "columnId": "665f3e5f...", "order": 2, "priority": "medium", "dueDate": null, "archived": true}'/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardIdSupprimer définitivement une carte.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredcurl -X DELETE http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID \ -H "Authorization: Bearer YOUR_TOKEN"{ "ok": true }Commentaires
Commentaires sur les cartes. Le chemin de base inclut les identifiants du projet et de la carte.
/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardId/commentsLister tous les commentaires d'une carte, triés par date de création.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID/comments \ -H "Authorization: Bearer YOUR_TOKEN"[ { "id": "665f5a7b...", "cardId": "665f4f6a...", "authorId": "665f1a2b...", "authorName": "Jane Doe", "content": "Spec looks good, let's proceed.", "createdAt": "2026-03-10T14:22:00Z" }]/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardId/commentsPoster un commentaire sur une carte.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredcontentstringrequired1 à 2000 caractèrescurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID/comments \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "content": "What about error handling?"}'/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardId/comments/:commentIdSupprimer un commentaire.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredcommentIdstringrequiredcurl -X DELETE http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID/comments/CMT_ID \ -H "Authorization: Bearer YOUR_TOKEN"Pièces jointes
Fichiers joints aux cartes. Taille maximale : 10 Mo.
/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardId/attachmentsLister toutes les pièces jointes d'une carte.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID/attachments \ -H "Authorization: Bearer YOUR_TOKEN"[ { "id": "665f6b8c...", "cardId": "665f4f6a...", "uploadedBy": "665f1a2b...", "originalName": "api-spec.pdf", "mimeType": "application/pdf", "size": 245760, "createdAt": "2026-03-10T14:30:00Z" }]/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardId/attachmentsEnvoyer un fichier. Utilisez multipart/form-data avec le champ 'file'.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredcurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID/attachments \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "file=@./document.pdf"/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardId/attachments/:attachmentIdTélécharger une pièce jointe. Renvoie le flux brut du fichier avec le type MIME correct.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredattachmentIdstringrequiredcurl http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID/attachments/ATT_ID \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlug/projects/:projectId/cards/:cardId/attachments/:attachmentIdSupprimer une pièce jointe.
orgSlugstringrequiredwsSlugstringrequiredprojectIdstringrequiredcardIdstringrequiredattachmentIdstringrequiredcurl -X DELETE http://localhost:3001/orgs/acme/workspaces/eng/projects/PROJ_ID/cards/CARD_ID/attachments/ATT_ID \ -H "Authorization: Bearer YOUR_TOKEN"Notifications
Notifications basées sur l'activité pour l'utilisateur courant. Générées automatiquement lorsque des cartes sont créées, modifiées, déplacées, assignées ou commentées.
/notificationsLister les notifications de l'utilisateur courant.
limitnumberNombre max de résultats (par défaut : 50)unreadOnlystring"true" ou "1" pour filtrer les non lues uniquementcurl http://localhost:3001/notifications \ -H "Authorization: Bearer YOUR_TOKEN"[ { "id": "665f7c9d...", "userId": "665f1a2b...", "readAt": null, "activity": { "type": "card_moved", "actorId": "665f1b3c...", "meta": { "fromColumn": "To Do", "toColumn": "In Progress" }, "createdAt": "2026-03-10T15:00:00Z" } }]/notifications/countObtenir le nombre de notifications non lues.
curl http://localhost:3001/notifications/count \ -H "Authorization: Bearer YOUR_TOKEN"{ "count": 12 }/notifications/read-allMarquer toutes les notifications comme lues.
curl -X PATCH http://localhost:3001/notifications/read-all \ -H "Authorization: Bearer YOUR_TOKEN"/notifications/:id/readMarquer une notification comme lue.
idstringrequiredcurl -X PATCH http://localhost:3001/notifications/ID/read \ -H "Authorization: Bearer YOUR_TOKEN"Types d'activité
| Type | Déclenché quand |
|---|---|
card_created | Une nouvelle carte est créée |
card_updated | Les champs d'une carte sont modifiés |
card_moved | Une carte est déplacée vers une autre colonne |
card_archived | Une carte est archivée |
card_deleted | Une carte est définitivement supprimée |
card_assigned | Le responsable d'une carte change |
comment_added | Un commentaire est posté sur une carte |
member_added | Un membre rejoint le projet |
member_removed | Un membre est retiré |
Pilotage
Le centre de commandement stratégique. Gère les missions, priorités, tâches, décisions, documentation et actions proposées par l'IA. Tous les endpoints sont rattachés à un espace de travail.
/orgs/:orgSlug/workspaces/:wsSlug/pilotage/stateObtenir l'état complet du pilotage pour un espace de travail. Mêmes données exposées aux agents IA via l'outil MCP get_pilotage_state.
orgSlugstringrequiredwsSlugstringrequiredprofilestringpilotage | execution | revue (par défaut : pilotage)intentstringweekly_review | daily_execution | sprint_planning | context_onlydetailLevelstringminimal | standard | detailed (par défaut : standard)curl http://localhost:3001/orgs/acme/workspaces/eng/pilotage/state \ -H "Authorization: Bearer YOUR_TOKEN"{ "cycle": "v8", "contractVersion": 7, "missions": [ { "id": "m-001", "objective": "Implement billing module", "module": "billing", "status": "in_progress", "blockedReason": null } ], "activePriorities": [...], "todos": [...], "decisions": [...], "activeDocs": [...], "usageContext": { "profile": "pilotage", "role": "owner", "intent": "weekly_review" }}Missions
/orgs/:orgSlug/workspaces/:wsSlug/pilotage/missionsCréer une nouvelle mission.
orgSlugstringrequiredwsSlugstringrequiredobjectivestringrequiredObjectif de la missionmodulestringNom du modulecurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/pilotage/missions \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "objective": "Implement billing module", "module": "billing"}'/orgs/:orgSlug/workspaces/:wsSlug/pilotage/missions/:idModifier le statut ou les détails d'une mission.
orgSlugstringrequiredwsSlugstringrequiredidstringrequiredstatusstringto_launch | in_progress | blocked | doneblockedReasonstringMax 200 caractères, ou null pour effacercurl -X PATCH http://localhost:3001/orgs/acme/workspaces/eng/pilotage/missions/ID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "status": "blocked", "blockedReason": "Waiting on API"}'Priorités
/orgs/:orgSlug/workspaces/:wsSlug/pilotage/prioritiesCréer une nouvelle priorité.
orgSlugstringrequiredwsSlugstringrequiredcurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/pilotage/priorities \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "label": "Ship billing MVP", "module": "billing"}'Tâches
/orgs/:orgSlug/workspaces/:wsSlug/pilotage/todosCréer une nouvelle tâche.
orgSlugstringrequiredwsSlugstringrequiredlabelstringrequiredLibellé de la tâchemissionIdstringLier à une missionpriorityIdstringLier à une prioritécurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/pilotage/todos \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "label": "Write Stripe integration tests", "missionId": "m-001", "priorityId": "p-001"}'/orgs/:orgSlug/workspaces/:wsSlug/pilotage/todos/:idModifier le statut d'une tâche.
orgSlugstringrequiredwsSlugstringrequiredidstringrequiredstatusstringtodo | in_progress | blocked | donecurl -X PATCH http://localhost:3001/orgs/acme/workspaces/eng/pilotage/todos/ID \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "status": "done"}'Décisions
/orgs/:orgSlug/workspaces/:wsSlug/pilotage/decisionsEnregistrer une décision stratégique.
orgSlugstringrequiredwsSlugstringrequiredtitlestringrequiredTitre de la décisionimpactstringDescription de l’impactcurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/pilotage/decisions \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "title": "Use Stripe over custom billing", "impact": "Reduces dev time by 3 weeks, adds 2.9% transaction fee"}'Documents actifs
/orgs/:orgSlug/workspaces/:wsSlug/pilotage/docsEnregistrer un document actif.
orgSlugstringrequiredwsSlugstringrequiredtitlestringrequiredTitre du documentownerstringNom du propriétairesourceTypestringproduct | tech | sprint | opscurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/pilotage/docs \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "title": "Billing API Spec v2", "owner": "Jane Doe", "sourceType": "tech"}'Actions proposées (Révision IA)
/orgs/:orgSlug/workspaces/:wsSlug/pilotage/actions/proposeSoumettre une action proposée par l'IA pour révision humaine.
orgSlugstringrequiredwsSlugstringrequiredactionTypestringrequiredMax 100 caractèresexplanationstringrequiredMax 500 caractèrespayloadobjectDonnées de contexte optionnellescurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/pilotage/actions/propose \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "actionType": "move_card", "explanation": "All subtasks complete, move to Done", "payload": { "cardId": "665f4f6a...", "targetColumn": "Done" }}'{ "id": "act-001", "actionType": "move_card", "explanation": "All subtasks complete, move to Done", "status": "suggested", "payload": { "cardId": "665f4f6a...", "targetColumn": "Done" }, "createdAt": "2026-03-10T15:30:00Z"}/orgs/:orgSlug/workspaces/:wsSlug/pilotage/actionsLister les actions proposées, avec filtre optionnel par statut.
orgSlugstringrequiredwsSlugstringrequiredstatusstringsuggested | approved | rejected | appliedcurl http://localhost:3001/orgs/acme/workspaces/eng/pilotage/actions \ -H "Authorization: Bearer YOUR_TOKEN"/orgs/:orgSlug/workspaces/:wsSlug/pilotage/actions/:id/reviewApprouver ou rejeter une action proposée.
orgSlugstringrequiredwsSlugstringrequiredidstringrequiredapprovedbooleanrequiredtrue pour approuver, false pour rejeterreasonstringOptionnel, max 200 caractèrescurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/pilotage/actions/ID/review \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "approved": true, "reason": "Looks correct"}'/orgs/:orgSlug/workspaces/:wsSlug/pilotage/actions/:id/applyAppliquer une action approuvée. Fonctionne uniquement sur les actions ayant le statut 'approved'.
orgSlugstringrequiredwsSlugstringrequiredidstringrequiredcurl -X POST http://localhost:3001/orgs/acme/workspaces/eng/pilotage/actions/ID/apply \ -H "Authorization: Bearer YOUR_TOKEN"Jetons API
Gérez les jetons d'accès personnels pour un accès programmatique à l'API. Ces endpoints nécessitent une authentification JWT (et non PAT) pour éviter l'escalade de jetons.
/api-tokensCréer un nouveau jeton. La valeur complète du jeton n'est renvoyée qu'une seule fois.
namestringrequiredMax 100 caractèresscopesarrayPar défaut toutes les portéesexpiresAtstringDate ISO ou null pour sans expirationcurl -X POST http://localhost:3001/api-tokens \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "name": "CI Pipeline", "scopes": [ "projects:read", "projects:write" ], "expiresAt": "2027-01-01T00:00:00Z"}'{ "id": "665f8dae...", "token": "synth_a1b2c3d4e5f6...", "name": "CI Pipeline", "prefix": "synth_a1b2", "scopes": ["projects:read", "projects:write"], "expiresAt": "2027-01-01T00:00:00Z", "createdAt": "2026-03-10T16:00:00Z"}/api-tokensLister tous les jetons de l'utilisateur courant. N'inclut pas la valeur complète du jeton.
curl http://localhost:3001/api-tokens \ -H "Authorization: Bearer YOUR_TOKEN"[ { "id": "665f8dae...", "name": "CI Pipeline", "prefix": "synth_a1b2", "scopes": ["projects:read", "projects:write"], "expiresAt": "2027-01-01T00:00:00Z", "lastUsedAt": "2026-03-12T09:15:00Z", "createdAt": "2026-03-10T16:00:00Z" }]/api-tokens/:idRévoquer définitivement un jeton.
idstringrequiredcurl -X DELETE http://localhost:3001/api-tokens/ID \ -H "Authorization: Bearer YOUR_TOKEN"Portées disponibles
| Portée | Donne accès à |
|---|---|
projects:read | Lecture des projets, colonnes, cartes, commentaires, pièces jointes |
projects:write | Création/modification/suppression de projets, colonnes, cartes, commentaires, pièces jointes |
pilotage:read | Lecture de l'état du pilotage (missions, priorités, tâches, décisions) |
pilotage:write | Création/modification de missions, tâches, décisions ; proposition d'actions |
notifications:read | Lecture et gestion des notifications |
account:read | Lecture du profil utilisateur |
account:write | Modification du profil utilisateur |
Scopes
Les scopes sont des paquets de travail ou phases au sein d'un projet. Chaque scope possède ses propres colonnes, cartes et vues (Kanban, Liste, Calendrier, Roadmap, Stats).
/…/projects/:projectId/scopesCréer un scope dans un projet.
projectIdstringrequiredcurl -X POST http://localhost:3001/…/projects/PROJ_ID/scopes \ -H "Authorization: Bearer YOUR_TOKEN"/…/projects/:projectId/scopesLister les scopes d'un projet.
projectIdstringrequiredcurl http://localhost:3001/…/projects/PROJ_ID/scopes \ -H "Authorization: Bearer YOUR_TOKEN"/…/scopes/:scopeIdObtenir les détails d'un scope.
scopeIdstringrequiredcurl http://localhost:3001/…/scopes/SCOPEID \ -H "Authorization: Bearer YOUR_TOKEN"/…/scopes/:scopeIdModifier le nom ou les paramètres d'un scope.
scopeIdstringrequiredcurl -X PATCH http://localhost:3001/…/scopes/SCOPEID \ -H "Authorization: Bearer YOUR_TOKEN"/…/scopes/:scopeIdSupprimer un scope et tout son contenu.
scopeIdstringrequiredcurl -X DELETE http://localhost:3001/…/scopes/SCOPEID \ -H "Authorization: Bearer YOUR_TOKEN"Vues de scope
Chaque scope supporte 5 types de vues : kanban, list, calendar, roadmap, stats.
/…/scopes/:scopeId/viewsLister les vues disponibles et la vue active.
scopeIdstringrequiredcurl http://localhost:3001/…/scopes/SCOPEID/views \ -H "Authorization: Bearer YOUR_TOKEN"/…/scopes/:scopeId/viewsChanger le type de vue active.
scopeIdstringrequiredcurl -X PATCH http://localhost:3001/…/scopes/SCOPEID/views \ -H "Authorization: Bearer YOUR_TOKEN"Labels
Étiquettes colorées pour catégoriser les cartes. Les labels sont définis au niveau du projet.
/…/projects/:projectId/labelsCréer un label avec un nom et une couleur.
projectIdstringrequiredcurl -X POST http://localhost:3001/…/projects/PROJ_ID/labels \ -H "Authorization: Bearer YOUR_TOKEN"/…/projects/:projectId/labelsLister les labels du projet.
projectIdstringrequiredcurl http://localhost:3001/…/projects/PROJ_ID/labels \ -H "Authorization: Bearer YOUR_TOKEN"/…/labels/:labelIdModifier le nom ou la couleur d'un label.
labelIdstringrequiredcurl -X PATCH http://localhost:3001/…/labels/LABELID \ -H "Authorization: Bearer YOUR_TOKEN"/…/labels/:labelIdSupprimer un label. Le retire de toutes les cartes.
labelIdstringrequiredcurl -X DELETE http://localhost:3001/…/labels/LABELID \ -H "Authorization: Bearer YOUR_TOKEN"/…/cards/:cardId/labels/:labelIdAjouter un label à une carte.
cardIdstringrequiredlabelIdstringrequiredcurl -X POST http://localhost:3001/…/cards/CARD_ID/labels/LABELID \ -H "Authorization: Bearer YOUR_TOKEN"/…/cards/:cardId/labels/:labelIdRetirer un label d'une carte.
cardIdstringrequiredlabelIdstringrequiredcurl -X DELETE http://localhost:3001/…/cards/CARD_ID/labels/LABELID \ -H "Authorization: Bearer YOUR_TOKEN"Champs personnalisés
Champs de métadonnées personnalisés au niveau du projet. Types supportés : text, number, select, multi-select, date, boolean.
/…/projects/:projectId/custom-fieldsCréer un champ personnalisé. Pour select/multi-select, inclure le tableau d'options.
projectIdstringrequiredcurl -X POST http://localhost:3001/…/projects/PROJ_ID/custom-fields \ -H "Authorization: Bearer YOUR_TOKEN"/…/projects/:projectId/custom-fieldsLister les définitions de champs du projet.
projectIdstringrequiredcurl http://localhost:3001/…/projects/PROJ_ID/custom-fields \ -H "Authorization: Bearer YOUR_TOKEN"/…/custom-fields/:fieldIdModifier le nom, le type ou les options d'un champ.
fieldIdstringrequiredcurl -X PATCH http://localhost:3001/…/custom-fields/FIELDID \ -H "Authorization: Bearer YOUR_TOKEN"/…/custom-fields/:fieldIdSupprimer un champ. Retire les valeurs de toutes les cartes.
fieldIdstringrequiredcurl -X DELETE http://localhost:3001/…/custom-fields/FIELDID \ -H "Authorization: Bearer YOUR_TOKEN"/…/cards/:cardId/custom-fieldsDéfinir les valeurs des champs personnalisés d'une carte.
cardIdstringrequiredcurl -X PATCH http://localhost:3001/…/cards/CARD_ID/custom-fields \ -H "Authorization: Bearer YOUR_TOKEN"Relations entre cartes
Lier des cartes avec des relations typées : blocks / blocked_by, related_to, duplicates, parent_of.
/…/cards/:cardId/relationsCréer une relation. Body : { targetCardId, type }.
cardIdstringrequiredcurl -X POST http://localhost:3001/…/cards/CARD_ID/relations \ -H "Authorization: Bearer YOUR_TOKEN"/…/cards/:cardId/relationsLister les relations d'une carte.
cardIdstringrequiredcurl http://localhost:3001/…/cards/CARD_ID/relations \ -H "Authorization: Bearer YOUR_TOKEN"/…/relations/:relationIdSupprimer une relation.
relationIdstringrequiredcurl -X DELETE http://localhost:3001/…/relations/RELATIONID \ -H "Authorization: Bearer YOUR_TOKEN"Checklists
Éléments de checklist dans une carte. Le pourcentage de progression est calculé automatiquement.
/…/cards/:cardId/checklistAjouter un élément. Body : { title }.
cardIdstringrequiredcurl -X POST http://localhost:3001/…/cards/CARD_ID/checklist \ -H "Authorization: Bearer YOUR_TOKEN"/…/cards/:cardId/checklist/:itemIdModifier un élément (cocher/décocher, renommer).
cardIdstringrequireditemIdstringrequiredcurl -X PATCH http://localhost:3001/…/cards/CARD_ID/checklist/ITEMID \ -H "Authorization: Bearer YOUR_TOKEN"/…/cards/:cardId/checklist/:itemIdSupprimer un élément.
cardIdstringrequireditemIdstringrequiredcurl -X DELETE http://localhost:3001/…/cards/CARD_ID/checklist/ITEMID \ -H "Authorization: Bearer YOUR_TOKEN"Documents
Base de connaissances avec 8 types : document, spec, brief, adr, note, reference, template, spreadsheet.
/…/documentsCréer un document. Body : title, docType, content (JSON TipTap), parentId optionnel.
curl -X POST http://localhost:3001/…/documents \ -H "Authorization: Bearer YOUR_TOKEN"/…/documentsLister les documents. Filtrer par docType, contexte ou parentId.
curl http://localhost:3001/…/documents \ -H "Authorization: Bearer YOUR_TOKEN"/…/documents/:documentIdObtenir le document complet avec son contenu.
documentIdstringrequiredcurl http://localhost:3001/…/documents/DOCUMENTID \ -H "Authorization: Bearer YOUR_TOKEN"/…/documents/:documentIdModifier le titre, le contenu ou les métadonnées.
documentIdstringrequiredcurl -X PATCH http://localhost:3001/…/documents/DOCUMENTID \ -H "Authorization: Bearer YOUR_TOKEN"/…/documents/:documentIdSupprimer un document.
documentIdstringrequiredcurl -X DELETE http://localhost:3001/…/documents/DOCUMENTID \ -H "Authorization: Bearer YOUR_TOKEN"Workflow de revue
Statuts : draft → pending_review → approved / changes_requested.
/…/documents/:documentId/submit-reviewSoumettre un document pour revue.
documentIdstringrequiredcurl -X POST http://localhost:3001/…/documents/DOCUMENTID/submit-review \ -H "Authorization: Bearer YOUR_TOKEN"/…/documents/:documentId/reviewRéviser un document. Body : { status, notes }.
documentIdstringrequiredcurl -X POST http://localhost:3001/…/documents/DOCUMENTID/review \ -H "Authorization: Bearer YOUR_TOKEN"Agents
Agents IA au niveau du workspace avec outils et niveaux d'autonomie configurables. Trois modes : supervised, autonomous, approval.
/…/agentsCréer un agent. Body : name, slug, autonomyMode, outils, limites.
curl -X POST http://localhost:3001/…/agents \ -H "Authorization: Bearer YOUR_TOKEN"/…/agentsLister les agents du workspace.
curl http://localhost:3001/…/agents \ -H "Authorization: Bearer YOUR_TOKEN"/…/agents/:agentIdObtenir les détails d'un agent.
agentIdstringrequiredcurl http://localhost:3001/…/agents/AGENTID \ -H "Authorization: Bearer YOUR_TOKEN"/…/agents/:agentIdModifier la configuration d'un agent.
agentIdstringrequiredcurl -X PATCH http://localhost:3001/…/agents/AGENTID \ -H "Authorization: Bearer YOUR_TOKEN"/…/agents/:agentIdSupprimer un agent.
agentIdstringrequiredcurl -X DELETE http://localhost:3001/…/agents/AGENTID \ -H "Authorization: Bearer YOUR_TOKEN"Missions
Tâches IA sur les cartes avec streaming SSE en temps réel. Cycle : queued → running → awaiting_approval → completed / failed.
/…/agents/:agentId/missionsCréer une mission. Body : { cardId, prompt }.
agentIdstringrequiredcurl -X POST http://localhost:3001/…/agents/AGENTID/missions \ -H "Authorization: Bearer YOUR_TOKEN"/…/agents/:agentId/missionsLister les missions d'un agent.
agentIdstringrequiredcurl http://localhost:3001/…/agents/AGENTID/missions \ -H "Authorization: Bearer YOUR_TOKEN"/…/missions/:missionIdObtenir les détails et la progression d'une mission.
missionIdstringrequiredcurl http://localhost:3001/…/missions/MISSIONID \ -H "Authorization: Bearer YOUR_TOKEN"/…/missions/:missionId/cancelAnnuler une mission en cours.
missionIdstringrequiredcurl -X POST http://localhost:3001/…/missions/MISSIONID/cancel \ -H "Authorization: Bearer YOUR_TOKEN"Propositions
Les agents supervisés proposent des changements avant exécution.
/…/missions/:missionId/proposalsLister les propositions d'une mission.
missionIdstringrequiredcurl http://localhost:3001/…/missions/MISSIONID/proposals \ -H "Authorization: Bearer YOUR_TOKEN"/…/proposals/:proposalId/approveApprouver une proposition.
proposalIdstringrequiredcurl -X POST http://localhost:3001/…/proposals/PROPOSALID/approve \ -H "Authorization: Bearer YOUR_TOKEN"/…/proposals/:proposalId/rejectRejeter une proposition. Body : { reason }.
proposalIdstringrequiredcurl -X POST http://localhost:3001/…/proposals/PROPOSALID/reject \ -H "Authorization: Bearer YOUR_TOKEN"Automatisations
Règles d'automatisation au niveau du projet. 7 types de déclencheurs : task_moved, task_created, checklist_complete, due_date_reached, task_status_changed, task_assigned, task_added_to_board.
/…/automationsCréer une règle. Body : trigger, conditions (JSON), action.
curl -X POST http://localhost:3001/…/automations \ -H "Authorization: Bearer YOUR_TOKEN"/…/automationsLister les règles d'automatisation du projet.
curl http://localhost:3001/…/automations \ -H "Authorization: Bearer YOUR_TOKEN"/…/automations/:ruleIdObtenir les détails d'une règle.
ruleIdstringrequiredcurl http://localhost:3001/…/automations/RULEID \ -H "Authorization: Bearer YOUR_TOKEN"/…/automations/:ruleIdModifier une règle.
ruleIdstringrequiredcurl -X PATCH http://localhost:3001/…/automations/RULEID \ -H "Authorization: Bearer YOUR_TOKEN"/…/automations/:ruleIdSupprimer une règle.
ruleIdstringrequiredcurl -X DELETE http://localhost:3001/…/automations/RULEID \ -H "Authorization: Bearer YOUR_TOKEN"/…/automations/:ruleId/toggleActiver ou désactiver une règle.
ruleIdstringrequiredcurl -X PATCH http://localhost:3001/…/automations/RULEID/toggle \ -H "Authorization: Bearer YOUR_TOKEN"Traces d'exécution
Chaque exécution est tracée avec l'acteur, la cible, l'horodatage et le résultat.
/…/automations/:ruleId/tracesLister les traces d'exécution d'une règle.
ruleIdstringrequiredcurl http://localhost:3001/…/automations/RULEID/traces \ -H "Authorization: Bearer YOUR_TOKEN"Assistant Projet IA
Création de projet guidée par IA en plusieurs étapes : Cadrage → Raffinement (questions adaptatives) → Génération de roadmap → Exécution.
/…/project-draftsCréer un brouillon de projet. Body : { name, description, contextDocuments }.
curl -X POST http://localhost:3001/…/project-drafts \ -H "Authorization: Bearer YOUR_TOKEN"/…/project-draftsLister les brouillons du workspace.
curl http://localhost:3001/…/project-drafts \ -H "Authorization: Bearer YOUR_TOKEN"/…/project-drafts/:draftIdObtenir les détails d'un brouillon.
draftIdstringrequiredcurl http://localhost:3001/…/project-drafts/DRAFTID \ -H "Authorization: Bearer YOUR_TOKEN"/…/project-drafts/:draftId/refineSoumettre les réponses de raffinement.
draftIdstringrequiredcurl -X POST http://localhost:3001/…/project-drafts/DRAFTID/refine \ -H "Authorization: Bearer YOUR_TOKEN"/…/project-drafts/:draftId/generate-roadmapGénérer une roadmap phasée.
draftIdstringrequiredcurl -X POST http://localhost:3001/…/project-drafts/DRAFTID/generate-roadmap \ -H "Authorization: Bearer YOUR_TOKEN"/…/project-drafts/:draftId/executeExécuter : créer le projet avec phases en colonnes et livrables en cartes.
draftIdstringrequiredcurl -X POST http://localhost:3001/…/project-drafts/DRAFTID/execute \ -H "Authorization: Bearer YOUR_TOKEN"/…/project-drafts/:draftIdSupprimer un brouillon.
draftIdstringrequiredcurl -X DELETE http://localhost:3001/…/project-drafts/DRAFTID \ -H "Authorization: Bearer YOUR_TOKEN"Pour l'intégration IA via MCP, consultez le guide d'intégration MCP. Pour un tutoriel guidé, consultez Démarrage rapide.