Donnez à votre agent une salle que votre équipe peut rejoindre. Il y prépare le tableau, les documents et les tâches ; vous voyez le résultat et travaillez dessus ensemble. L’accès se fait par REST ou MCP.
Utilisez REST depuis votre application ou MCP pour laisser votre agent choisir ses outils. Les deux donnent accès au même moteur et respectent les mêmes droits.
REST
64 points d’accès sous /api/v1, authentification Bearer et échanges JSON. Aucune dépendance supplémentaire à installer.
À utiliser quand votre application envoie les requêtes : tâche serveur, webhook, script planifié ou étape de CI.
MCP
15 outils via streamable-http à l’adresse /mcp, avec la même clé. Claude Code, Claude Desktop et tout client MCP les découvrent à la connexion.
À utiliser quand votre agent IA doit choisir et appeler les outils pour accomplir une tâche.
Commencez par une salle
Une clé, une requête, un lien à partager.
Voici les trois étapes pour créer votre première salle. Vous pouvez reprendre les commandes ci-dessous avec votre propre clé.
Créez une clé avec les droits nécessaires
Dans Coommit, ouvrez Paramètres › Clés d’agents. Choisissez les autorisations : vous recevez une clé secrète
cmt_live_ une seule fois. La clé utilise les accès du compte qui l’a créée : elle ne peut pas agir dans une salle à laquelle ce compte n’a pas accès.
shell
# read, do not type: -s keeps the key out of your shell history
read -rs COOMMIT_KEY && export COOMMIT_KEY
Vérifiez vos accès
GET /me permet de vérifier la clé et d’identifier le compte associé. Commencez par cette requête avant de créer ou modifier une salle.
Notez la structure : le compte se trouve dans account, et les informations de la clé dans
key, autorisations comprises. Vous pouvez ainsi contrôler les accès avant de lancer votre automatisation.
Préparez la salle en une requête
Transmettez actions à POST /rooms pour créer le tableau avant l’arrivée des participants. Partagez ensuite le lien de la salle : votre équipe retrouve le travail déjà préparé. Jusqu’à 100 actions sont appliquées dans l’ordre.
La réponse contient l’identifiant et le lien de la salle. Les participants présents voient les éléments apparaître en direct. Pour vérifier le résultat, GET /rooms/:roomId/screenshot renvoie le tableau au format PNG.
Vous savez ce que vos agents font
Une requête part deux fois. Et ensuite ?
Quand un agent réessaie une action, vous devez pouvoir compter sur l’API. Coommit prévoit les doublons, les limites de dépenses et la vérification des envois.
dry_run: true
Vérifiez avant d’envoyer
Les invitations par e-mail et la planification d’appels sont simulées, sauf si vous envoyez explicitement
dry_run: false. La réponse indique ce qui serait envoyé. Vous pouvez vérifier le résultat avant de déclencher l’action réelle.
Idempotency-Key
Évitez les doublons à la relance
Envoyez cet en-tête avec chaque écriture : la clé est réservée avant l’exécution. Un doublon renvoie la réponse d’origine avec Idempotent-Replay: true. Si la réservation échoue, l’écriture est refusée pour éviter une double exécution.
par compte
Gardez des limites par compte
Toute action payante ou destinée à une personne est limitée par compte, pas par clé : génération d’images, invitations, planification et exécutions de Commit. Créer plus de clés augmente le débit de lecture, mais pas les plafonds de dépenses.
audit
Retrouvez aussi les requêtes refusées
Chaque requête est consignée avec sa clé, son autorisation, sa route et son résultat. Les refus sont enregistrés pour vous aider à comprendre ce qui bloque.
Autorisations
Donnez à chaque agent les droits utiles.
Une clé possède uniquement les autorisations choisies. Une requête hors de ce périmètre renvoie 403 missing_scope
en précisant l’autorisation manquante. Une clé restreinte échoue explicitement au lieu d’effectuer une action non autorisée.
account:read
Lire les informations du compte associé à la clé : profil, notifications et contacts.
4 routes
account:write
Modifier ce profil et ses paramètres de notification.
7 routes
rooms:read
Lire les salles, tableaux, tâches, membres, comptes rendus et exports.
16 routes
rooms:write
Créer des salles, modifier les tableaux, déplacer des éléments et exécuter Commit.
24 routes
rooms:delete
Supprimer des salles. Autorisation volontairement séparée de rooms:write, car la plupart des agents n’en ont pas besoin.
2 routes
invites:write
Inviter des personnes par lien ou par e-mail.
3 routes
calls:write
Planifier, reprogrammer et annuler des appels.
3 routes
image:generate
Générer des images sur un tableau. Consomme des crédits.
1 route
brain:read
Lire la mémoire à long terme d’Echo pour une salle.
1 route
brain:write
Créer et modifier ces notes de mémoire.
3 routes
Documentation
Ce que vous pouvez appeler, et comment.
URL de base https://app.coommit.com/api/v1. Cette liste est générée à partir du document de découverte de l’API : elle décrit les routes existantes et reprend leurs propres informations. Vous pouvez la récupérer à tout moment :
GET /api/v1/ ne nécessite pas d’authentification. Certaines routes réservées aux espaces partenaires sont fournies selon un accord distinct. Toute clé extérieure à ces espaces reçoit not_a_tenant en réponse.
Compte
Le propriétaire de la clé, ainsi que le profil et les paramètres de notification associés à son compte.
GET/meaccount:read
La requête la moins coûteuse, à effectuer en premier : elle confirme que la clé fonctionne et identifie le compte associé. Les autorisations des routes de salle reposent sur ce compte, pas sur la clé.
Modifier le profil (l’adresse e-mail ne peut pas être modifiée)
Corps
nameString?
localeEn|fr?
imageHttps url?
GET/notificationsaccount:read
POST/notifications/:id/readaccount:write
Marquer une notification comme lue.
GET/notifications/prefsaccount:read
POST/notifications/prefsaccount:write
Corps
dashboardEnabledBool?
inRoomEnabledBool?
POST/notifications/read-allaccount:write
Salles
Une salle réunit un tableau persistant et les appels, tâches et souvenirs qui lui sont associés. Tous les éléments ci-dessous se rattachent à une salle.
GET/roomsrooms:read
Toutes les salles dont le compte est membre, de la plus récente à la plus ancienne. Le champ `roomId` correspond au paramètre `:roomId` utilisé dans la suite de cette documentation.
Crée la salle. Transmettez `actions` pour la créer **déjà préparée**, avec un tableau présent avant son ouverture. Vous partagez ainsi un espace de travail prêt, pas seulement un lien.
Corps
nameString (obligatoire)
templateIdString?
friendIdsUserId[]?
folderIdUuid?
isTemporaryBool?
actionsCanvas action[]? (créer une salle complète en une requête)
GET/rooms/:roomIdrooms:read
Métadonnées de la salle : folderId, memberCount, figmaEnabled.
DELETE/rooms/:roomIdrooms:delete
Réservé au créateur de la salle. Un copropriétaire reçoit `creator_required` : être propriétaire d’une salle ne signifie pas l’avoir créée.
Réservé au CRÉATEUR de la salle. Un copropriétaire reçoit creator_required.
POST/rooms/:roomId/coverrooms:write
Rôle editor ou supérieur ; URL HTTPS uniquement (ou null pour effacer)
Corps
imageHttps url | null.
GET/rooms/:roomId/exportrooms:read
Tout le tableau sérialisé en Markdown typé. La requête adaptée pour fournir le tableau comme contexte à un modèle.
Sérialisation de tout le tableau en Markdown typé.
Paramètres de requête
formatMarkdown.
POST/rooms/:roomId/leaverooms:write
Membre ; un copropriétaire peut partir si un autre propriétaire reste. Le créateur doit supprimer la salle.
Réservé au créateur de chaque salle ; les salles que vous n’avez pas créées comptent comme des échecs.
Corps
roomIdsUuid[] (max 500)
POST/rooms/reorderrooms:write
Ordre du tableau de bord propre à chaque utilisateur.
Corps
idsRoomId[] (max 2000)
Tableau
Lire et modifier le contenu du tableau. Un POST contient jusqu’à 100 actions, appliquées en direct pour tous les participants déjà dans la salle.
POST/rooms/:roomId/actionsrooms:write
L’écriture principale. Jusqu’à 100 actions en une requête, appliquées en direct : les participants voient les éléments apparaître. Renvoie `207` avec un résultat par action en cas de réussite partielle. Une création partielle n’est jamais présentée comme une réussite complète.
Rôle editor ou supérieur ; créer ou modifier le contenu du canvas.
Corps
actionsCanvas action[] (max 100)
GET/rooms/:roomId/canvasrooms:read
Tout le contenu du tableau sous forme de données structurées : éléments avec leur contenu et leurs coordonnées, connecteurs, tâches, sondages et graphiques.
POST/rooms/:roomId/generate-imageimage:generate
Génération d’une image à partir de texte, directement sur le canvas. Elle utilise les crédits ou la clé du fournisseur du propriétaire du compte : le plafond s’applique par compte, pas par clé.
Génération d’image IA sur le canvas ; consomme des crédits ou utilise votre clé ; idempotent.
Corps
promptString (obligatoire)
aspectSquare|landscape|portrait?
xInt?
yInt?
wInt?
hInt?
providerOpenai|gemini?
GET/rooms/:roomId/screenshotrooms:read
Le tableau au format PNG, rendu par un vrai navigateur. Chaque requête utilise une session de navigateur sans interface, d’où un quota spécifique plus strict.
Tableau rendu en image/png (10/min par clé ; 503 si la capture n’est pas configurée)
Paramètres de requête
width640-1920.
height480-1080.
GET/rooms/:roomId/tasksrooms:read
Les tâches et groupes de tâches de la salle, sans charger tout le canvas.
POST/rooms/:roomId/upload-urlrooms:write
Renvoie une URL de téléversement signée. Envoyez le fichier avec PUT, puis placez-le sur le tableau via `add_image`, `add_pdf`, `add_video` ou `add_file`, en utilisant l’identifiant renvoyé.
Rôle editor ou supérieur ; renvoie une URL GCS PUT signée. Téléversez un fichier local, puis utilisez add_image avec le gcsMarker.
Corps
contentTypeString.
sizeBytesNumber.
Appels et comptes rendus
Planifier un appel, lire les échanges et transformer les propositions d’un compte rendu en tâches.
GET/rooms/:roomId/callsrooms:read
PATCH/rooms/:roomId/calls/:callIdcalls:write
Rôle editor ou supérieur ; replanification (verrouillage optimiste sur expectedScheduledAt ; notification par e-mail des participants)
Corps
titleString?
scheduledAtISO8601?
durationMinutesInt?
messageString?
expectedScheduledAtISO8601?
DELETE/rooms/:roomId/calls/:callIdcalls:write
Rôle editor ou supérieur.
POST/rooms/:roomId/chatrooms:write
Écrit dans le chat de la salle au nom du compte, pas d’un bot.
Membre ; écrire un message au nom du compte (30/min par clé)
Corps
textString (max 4096)
POST/rooms/:roomId/commitrooms:write
Exécute le véritable traitement Commit de la salle, identique à celui du produit, en environ une minute. Une personne doit être présente dans la salle pour fournir du contenu à traiter.
Rôle editor ou supérieur ; exécute le traitement Commit réel (~1 min, présence requise dans la salle ; 10/h par compte)
Transcription complète et résumé IA d’un enregistrement.
POST/rooms/:roomId/schedulecalls:write
Ajoute un appel au calendrier et envoie un e-mail aux participants. L’action est donc simulée par défaut.
Droit de gestion ; dry_run vaut TRUE par défaut.
Simule l’action sauf si vous envoyez dry_run: false
Corps
titleString.
scheduledAtISO8601.
durationMinutesInt?
attendeesEmail[]?
dry_runBool (true par défaut)
GET/rooms/:roomId/summariesrooms:read
Comptes rendus des appels passés, avec les propositions de tâches extraites par Commit. Une proposition dont `tasksApprovedAt` vaut null attend encore une décision.
Chaque résumé contient recapId/callId/report/taskProposals/tasksApprovedAt. Les propositions en attente (tasksApprovedAt à null) peuvent être validées via commit/approve-tasks.
Envoie un vrai e-mail : l’action est **simulée sauf si vous transmettez `dry_run: false`**. La réponse de simulation indique exactement ce qui aurait été envoyé.
Rôle editor ou supérieur ; dry_run vaut TRUE par défaut ; envoie un vrai e-mail.
Simule l’action sauf si vous envoyez dry_run: false
Corps
emailString.
dry_runBool (true par défaut)
POST/rooms/:roomId/inviteinvites:write
Renvoie un lien partageable. Aucun e-mail n’est envoyé : il n’y a donc pas de paramètre `dry_run` à gérer.
Droit de gestion ; renvoie un LIEN partageable (sans e-mail)
Dossiers et modèles
Organisation du tableau de bord et tableaux enregistrés pouvant servir de base à une nouvelle salle.
GET/foldersrooms:read
POST/foldersrooms:write
Corps
nameString.
colorString?
DELETE/folders/:folderIdrooms:write
Les salles contenues sont replacées à la racine.
POST/folders/:folderId/colorrooms:write
Corps
colorUne couleur de la palette des dossiers, ou null.
POST/folders/:folderId/renamerooms:write
Corps
nameString.
POST/folders/reorderrooms:write
Corps
idsFolderId[] dans le nouvel ordre.
POST/rooms/:roomId/save-templaterooms:write
Propriétaire.
Corps
nameString.
descriptionString?
GET/templatesrooms:read
Modèles de salle enregistrés (identifiants à transmettre à POST /rooms)
Tâches
Les actions à suivre du propriétaire de la clé dans toutes les salles dont il est membre.
GET/tasksrooms:read
Une vue transversale : un agent qui demande « quels engagements ai-je pris cette semaine ? » ne devrait pas devoir parcourir chaque salle pour le découvrir.
Toutes les salles : tâches du propriétaire de la clé dans chaque salle dont il est membre (suivi de ses réunions)
Paramètres de requête
assigneeMe (par défaut) | any.
statusOpen (par défaut) | done | all.
limit1-300.
Actions sur le tableau
41 actions pour enrichir ou modifier un tableau.
Chaque action suit la structure { "type": "…", …args }. Regroupez jusqu’à 100 actions dans un
POST /rooms/:roomId/actions pour les appliquer dans l’ordre et en direct pour tous les participants.
Le document complet du skill Coommit Connect : chaque action du canvas, chaque type d’élément et la méthode de création. À lire avant de créer.
coommit_list_rooms
Les salles du propriétaire de la clé, de la plus récente à la plus ancienne.
coommit_get_room
Les métadonnées, les membres et les prochains appels d’une salle, en une requête.
coommit_get_canvas
Tout le tableau : éléments, connecteurs, tâches, groupes de tâches et traits dessinés.
coommit_get_history
Le chat et les transcriptions d’appels d’une journée, par défaut la dernière journée active.
coommit_get_summaries
Les comptes rendus d’une salle, du plus récent au plus ancien.
coommit_my_tasks
Les actions confiées au propriétaire de la clé dans toutes les salles dont il est membre.
coommit_create_room
Créer une salle, éventuellement à partir d’un modèle, dans un dossier, avec des participants invités et le canvas déjà rempli. Peut être relancé sans doublon.
coommit_build_room
Le créateur de salles d’Echo : décrivez la salle et l’IA conçoit et remplit un nouveau tableau. Utilise la clé du fournisseur ou les crédits du compte.
coommit_canvas_actions
Appliquer jusqu’à 100 actions de canvas à une salle.
coommit_invite
Inviter des personnes via un lien partageable, ou de vrais e-mails si vous fournissez des adresses. Simulation par défaut.
coommit_schedule_call
Ajouter un appel au calendrier d’une salle. Simulation par défaut, car l’exécution réelle envoie des rappels par e-mail aux participants.
coommit_commit
Exécuter le traitement réel de compte rendu : un résumé, un rapport structuré et des propositions de tâches.
coommit_list_templates
Les 10 modèles de salle intégrés, plus ceux enregistrés par le compte.
coommit_screenshot
Rendre le tableau en direct au format PNG. Vérifiez le résultat après chaque création.
Limites de requêtes
Des limites explicites pour chaque opération.
Les quotas de lecture s’appliquent par clé. Les dépenses et les actions vers des personnes sont limitées par compte : ajouter des clés ne multiplie pas ces plafonds.
Requêtes
Budget
Comptabilisé
Pourquoi
Lectures
120 / minute
par clé
Toute action qui renvoie uniquement du JSON.
Écritures dans les salles
40 / heure
par clé
Création de salles, actions sur le canvas, renommages et déplacements.
Messages de chat
30 / minute
par clé
Un script en boucle ne doit pas pouvoir inonder une salle de messages.
Captures de tableau
10 / minute
par clé
Chaque capture utilise une session de navigateur sans interface.
Invitations
30 / heure
par compte
Envoie un message dans une boîte mail.
Planification d’appels
30 / heure
par compte
Ajoute un événement au calendrier d’une personne.
Génération d’images
20 / heure
par compte
Consomme des crédits : multiplier les clés n’augmente pas le quota.
Exécutions de Commit
10 / heure
par compte
Exécute le traitement complet pendant environ une minute.
Erreurs
Comprenez le refus. Corrigez la requête.
Les erreurs sont renvoyées sous la forme { "error": "code", "message": "…" }. Appuyez-vous sur le code pour gérer les erreurs dans votre application ; le message vous aide à comprendre le problème dans les journaux.
Statut
Code
Ce qui s’est passé
Que faire
401
missing_token
En-tête Authorization absent.
Envoyer Authorization: Bearer cmt_live_….
401
invalid_key
La clé est inconnue, révoquée ou expirée.
Créez-en une nouvelle dans Paramètres → Clés d’agents.
402
trial_expired
L’accès du compte a expiré : les écritures sont désactivées.
Le propriétaire du compte doit s’abonner ; les lectures restent accessibles.
403
missing_scope
La clé est valide, mais cette autorisation ne lui a pas été accordée.
La réponse précise l’autorisation dans required_scope. Recréez la clé avec cette autorisation.
403
room_access_denied
Le compte associé à la clé n’est pas membre de cette salle.
Ajoutez le compte à la salle ou utilisez une salle dont il est membre.
403
editor_role_required
Membre de la salle, avec un accès en lecture seule.
Attribuez le rôle editor.
403
creator_required
Seul le créateur peut supprimer une salle, pas un copropriétaire.
Demandez au créateur ou quittez simplement la salle.
409
idempotency_in_progress
La même Idempotency-Key est encore en cours d’exécution.
Attendez, puis réessayez avec la même clé au lieu d’en créer une nouvelle.
409
idempotency_key_reused
Cette clé a déjà été utilisée pour une autre action.
Utilisez une clé par opération logique d’écriture.
429
rate_limited
Le quota de cette catégorie de requêtes est dépassé.
Espacez les tentatives. La réponse précise le quota épuisé.
503
idempotency_unavailable
La clé n’a pas pu être réservée. L’écriture a été refusée pour éviter une double exécution.
Réessayez dans un instant. retryable: true l’indique explicitement.
Un statut mérite votre attention : un lot d’actions sur le canvas partiellement réussi renvoie 207 avec un résultat par action. Une création partielle n’est jamais présentée comme une réussite complète.
À votre agent de jouer.
Créez une clé avec les droits nécessaires, testez votre première requête et partagez le résultat avec votre équipe. Vous pouvez révoquer la clé à tout moment.