Coommit Connect  ·  v1

Vos agents ont leur place ici.

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.

64Points d’accès REST
41Actions sur le tableau
15Outils MCP
10Autorisations
POST /api/v1/rooms

Comment voulez-vous vous connecter ?

Pour votre code comme pour vos agents.

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.

curl
curl https://app.coommit.com/api/v1/me \
  -H "Authorization: Bearer $COOMMIT_KEY"
200 OK
{
  "ok": true,
  "account": {
    "id": 4821,
    "name": "Ada Lovelace",
    "email": "ada@acme.com",
    "image": null,
    "plan": "2year",
    "locale": "en",
    "createdAt": "2026-07-02T09:14:00.000Z"
  },
  "customization": {
    "screenShare": true,
    "recording": true,
    "transcription": true,
    "chat": true,
    "handsFree": true,
    "youtube": true,
    "gdrive": true,
    "figma": true,
    "browserBox": true,
    "draw": true,
    "diagrams": true,
    "aiImages": true,
    "echo": true,
    "tasks": true
  },
  "key": {
    "id": 17,
    "name": "release-bot",
    "scopes": [
      "account:read",
      "rooms:read",
      "rooms:write"
    ]
  }
}

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.

curl
curl -X POST https://app.coommit.com/api/v1/rooms \
  -H "Authorization: Bearer $COOMMIT_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: sprint-24-review" \
  -d '{
    "name": "Sprint 24 review",
    "actions": [
      { "type": "add_title", "html": "Sprint 24" },
      { "type": "add_text",  "html": "<p>3 shipped, 1 slipped.</p>" },
      { "type": "add_task",  "title": "Cut the release" },
      { "type": "add_poll",
        "question": "Ship on Friday?",
        "options": ["Yes", "No", "Needs one more week"] }
    ]
  }'

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 /me account: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é.

200 OK
{
  "ok": true,
  "account": {
    "id": 4821,
    "name": "Ada Lovelace",
    "email": "ada@acme.com",
    "image": null,
    "plan": "2year",
    "locale": "en",
    "createdAt": "2026-07-02T09:14:00.000Z"
  },
  "customization": {
    "screenShare": true,
    "recording": true,
    "transcription": true,
    "chat": true,
    "handsFree": true,
    "youtube": true,
    "gdrive": true,
    "figma": true,
    "browserBox": true,
    "draw": true,
    "diagrams": true,
    "aiImages": true,
    "echo": true,
    "tasks": true
  },
  "key": {
    "id": 17,
    "name": "release-bot",
    "scopes": [
      "account:read",
      "rooms:read",
      "rooms:write"
    ]
  }
}
POST /me account:write

Modifier le profil (l’adresse e-mail ne peut pas être modifiée)

Corps

nameString?
localeEn|fr?
imageHttps url?
GET /notifications account:read
POST /notifications/:id/read account:write

Marquer une notification comme lue.

GET /notifications/prefs account:read
POST /notifications/prefs account:write

Corps

dashboardEnabledBool?
inRoomEnabledBool?
POST /notifications/read-all account: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 /rooms rooms: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.

Paramètres de requête

limit1-200.
200 OK
{
  "ok": true,
  "rooms": [
    {
      "roomId": "9f2c1a7e-4d3b-4c88-9a11-6e5f0b2d7c34",
      "name": "Sprint 24 review",
      "createdAt": "2026-08-26T10:02:11.000Z",
      "coverImage": null,
      "isTemporary": false,
      "url": "/roomV3/9f2c1a7e-4d3b-4c88-9a11-6e5f0b2d7c34"
    }
  ]
}
POST /rooms rooms:write

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/:roomId rooms:read

Métadonnées de la salle : folderId, memberCount, figmaEnabled.

DELETE /rooms/:roomId rooms: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/cover rooms:write

Rôle editor ou supérieur ; URL HTTPS uniquement (ou null pour effacer)

Corps

imageHttps url | null.
GET /rooms/:roomId/export rooms: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/leave rooms:write

Membre ; un copropriétaire peut partir si un autre propriétaire reste. Le créateur doit supprimer la salle.

GET /rooms/:roomId/members rooms:read
POST /rooms/:roomId/members/:userId/ban rooms:write

Propriétaire.

POST /rooms/:roomId/members/:userId/kick rooms:write

Propriétaire.

POST /rooms/:roomId/members/:userId/role rooms:write

Propriétaire.

Corps

roleEditor|viewer.
POST /rooms/:roomId/members/:userId/unban rooms:write

Propriétaire.

POST /rooms/:roomId/move rooms:write

Membre ; folderId à null = retour à la racine.

Corps

folderIdUuid|null.
POST /rooms/:roomId/rename rooms:write

Propriétaire.

Corps

nameString.
POST /rooms/batch-delete rooms:delete

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/reorder rooms: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/actions rooms: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/canvas rooms: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-image image: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/screenshot rooms: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/tasks rooms:read

Les tâches et groupes de tâches de la salle, sans charger tout le canvas.

POST /rooms/:roomId/upload-url rooms: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/calls rooms:read
PATCH /rooms/:roomId/calls/:callId calls: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/:callId calls:write

Rôle editor ou supérieur.

POST /rooms/:roomId/chat rooms: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/commit rooms: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)

POST /rooms/:roomId/commit/approve-tasks rooms:write

Transforme ces propositions en tâches sur le tableau, attribuées à des personnes.

Rôle editor ou supérieur ; convertir les propositions Commit en tâches (50 maximum)

Corps

approvedTasks[{title, assignee?, assigneeUserId?, assigneeUserIds?, groupId?, expiresAt?}]
GET /rooms/:roomId/history rooms:read

Paramètres de requête

dateYYYY-MM-DD?
POST /rooms/:roomId/push-recap rooms:write

Propriétaire ; envoyer le dernier compte rendu vers son Slack/Notion (déjà envoyé → {ok, already:true})

Corps

targetSlack|notion.
GET /rooms/:roomId/recordings rooms:read
GET /rooms/:roomId/recordings/:recId/transcript rooms:read

Transcription complète et résumé IA d’un enregistrement.

POST /rooms/:roomId/schedule calls: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/summaries rooms: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.

PATCH /rooms/:roomId/summaries/:summaryId rooms:write

Rôle editor ou supérieur ; modifier un compte rendu enregistré.

Corps

summaryString (obligatoire)
nextObjectiveString|null?

Mémoire d’Echo

Les notes à long terme d’Echo pour une salle. Ces données sensibles nécessitent des autorisations spécifiques à accorder explicitement.

GET /rooms/:roomId/brain brain:read

Lecture de la mémoire à long terme d’Echo / notes Brain (données sensibles, autorisation explicite)

Paramètres de requête

limit1-100.
POST /rooms/:roomId/brain brain:write

Rôle editor ou supérieur ; créer une note de mémoire Echo.

Corps

titleString?
content_markdownString (obligatoire)
PATCH /rooms/:roomId/brain/:noteId brain:write

Rôle editor ou supérieur ; modifier une note.

Corps

titleString?
content_markdownString?
DELETE /rooms/:roomId/brain/:noteId brain:write

Droit de gestion ; suppression logique d’une note.

Invitations et accès

Liens, invitations par e-mail et demandes d’accès en attente. Toute action envoyant un vrai e-mail est simulée par défaut.

GET /friends account:read

Renvoie {accepted, received, sent}.

POST /friends/:friendshipId/accept account:write
POST /friends/:friendshipId/decline account:write

Supprime aussi le lien de contact si la demande a été acceptée.

POST /friends/invite-to-coommit invites:write

Dry_run vaut TRUE par défaut ; envoie une invitation réelle à s’inscrire par e-mail.

Simule l’action sauf si vous envoyez dry_run: false

Corps

emailString.
dry_runBool (true par défaut)
POST /friends/request account:write

Corps

queryAdresse e-mail ou userId numérique.
GET /rooms/:roomId/access-requests rooms:read

Droit de gestion ; demandes en attente.

POST /rooms/:roomId/access-requests/:requestId rooms:write

Droit de gestion.

Corps

actionApprove|reject.
POST /rooms/:roomId/email-invite invites:write

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/invite invites: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 /folders rooms:read
POST /folders rooms:write

Corps

nameString.
colorString?
DELETE /folders/:folderId rooms:write

Les salles contenues sont replacées à la racine.

POST /folders/:folderId/color rooms:write

Corps

colorUne couleur de la palette des dossiers, ou null.
POST /folders/:folderId/rename rooms:write

Corps

nameString.
POST /folders/reorder rooms:write

Corps

idsFolderId[] dans le nouvel ordre.
POST /rooms/:roomId/save-template rooms:write

Propriétaire.

Corps

nameString.
descriptionString?
GET /templates rooms: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 /tasks rooms: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.

Écrire sur le tableau

  • add_title
  • add_text
  • add_markdown
  • add_shape
  • add_stroke

Ajouter des contenus

  • add_image
  • add_pdf
  • add_video
  • add_file
  • add_link
  • add_youtube
  • add_browser
  • add_figma
  • navigate_browser

Données en direct

  • add_poll
  • edit_poll
  • set_poll_state
  • add_chart
  • edit_chart_slice
  • add_calendar
  • add_goal

Travail à effectuer

  • add_task
  • update_task
  • delete_task
  • add_task_group
  • rename_task_group
  • delete_task_group

Structure

  • add_connector
  • edit_connector
  • delete_connector
  • insert_diagram
  • insert_template
  • tidy_canvas

Modifier les éléments existants

  • edit_box
  • move_box
  • resize_box
  • style_box
  • duplicate_box
  • delete_box
  • clear_canvas
  • clear_drawing
les exemples de référence de l’API
[
  {
    "type": "add_title",
    "html": "Sprint Review"
  },
  {
    "type": "add_text",
    "html": "<p>Agenda…</p>"
  },
  {
    "type": "add_task",
    "title": "Ship the API"
  },
  {
    "type": "add_poll",
    "question": "Ship on Friday?",
    "options": [
      "Yes",
      "No",
      "Needs one more week"
    ]
  },
  {
    "type": "add_chart",
    "variant": "pie",
    "title": "Budget split",
    "slices": [
      {
        "label": "Engineering",
        "value": 60
      },
      {
        "label": "Design",
        "value": 25
      },
      {
        "label": "Marketing",
        "value": 15
      }
    ]
  },
  {
    "type": "insert_diagram",
    "kind": "flowchart",
    "labels": [
      "Start",
      "Review the PR",
      "Approved?",
      "Merge",
      "Request changes",
      "Done"
    ]
  }
]

MCP

Connectez vos agents avec MCP.

Un point d’accès, une clé et 15 outils. Votre client MCP découvre les outils à la connexion ; aucune session supplémentaire n’est à gérer.

claude mcp add
claude mcp add coommit --transport http https://app.coommit.com/mcp \
  --header "Authorization: Bearer $COOMMIT_KEY"
OutilFonction
coommit_get_skillLe 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_roomsLes salles du propriétaire de la clé, de la plus récente à la plus ancienne.
coommit_get_roomLes métadonnées, les membres et les prochains appels d’une salle, en une requête.
coommit_get_canvasTout le tableau : éléments, connecteurs, tâches, groupes de tâches et traits dessinés.
coommit_get_historyLe chat et les transcriptions d’appels d’une journée, par défaut la dernière journée active.
coommit_get_summariesLes comptes rendus d’une salle, du plus récent au plus ancien.
coommit_my_tasksLes actions confiées au propriétaire de la clé dans toutes les salles dont il est membre.
coommit_create_roomCré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_roomLe 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_actionsAppliquer jusqu’à 100 actions de canvas à une salle.
coommit_inviteInviter des personnes via un lien partageable, ou de vrais e-mails si vous fournissez des adresses. Simulation par défaut.
coommit_schedule_callAjouter 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_commitExécuter le traitement réel de compte rendu : un résumé, un rapport structuré et des propositions de tâches.
coommit_list_templatesLes 10 modèles de salle intégrés, plus ceux enregistrés par le compte.
coommit_screenshotRendre 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êtesBudgetComptabilisé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.

StatutCodeCe 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.