Référence de l’API
Chaque point d’accès est limité au compte authentifié, et l’API REST s’authentifie avec le cookie de session posé par l’application web. Les scripts et les agents utilisent plutôt le point d’accès MCP.
Toutes les requêtes et les réponses sont en JSON. Chaque route /api/* s’authentifie avec le cookie de session posé par POST /api/auth/login :
curl -X POST https://trydone.app/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"..."}' \
-c cookies.txt
curl -X GET https://trydone.app/api/tasks -b cookies.txtUn jeton MCP n’authentifie pas l’API REST. Un en-tête Authorization: Bearer <mcp-token> est accepté sur une seule route, GET /api/events, pour qu’un agent puisse s’abonner aux changements avec l’identifiant qu’il possède déjà. Toutes les autres routes /api/* répondent 401 à un jeton bearer.
C’est un choix délibéré, pas un oubli : un jeton MCP qui fuite ne peut ainsi pas piloter toute la surface REST du compte. Les scripts et les agents doivent plutôt s’adresser à POST /mcp, ce pour quoi le jeton est fait.
curl -X GET https://trydone.app/api/events \
-H "Authorization: Bearer <your-generated-mcp-token>"Authentification et compte
/api/auth/signup/api/referrals/api/auth/login/api/auth/magic-link/api/auth/magic-link/verify/api/auth/2fa/verify/api/auth/logout/api/auth/me/api/bootstrap/api/auth/profile/api/auth/password/verify/api/auth/password/api/auth/forgot-password/api/auth/reset-password/api/auth/verify-email/api/auth/resend-verification/api/auth/mcp-token/api/auth/mcp-token/api/mcp-tokens/api/mcp-tokens/api/mcp-tokens/:id/api/auth/2fa/api/auth/2fa/setup/api/auth/2fa/enable/api/auth/2fa/api/auth/2fa/recovery-codes/api/auth/connections/api/auth/connections/:clientId/api/auth/accountTâches
/api/tasks/api/tasks/api/tasks/quick/api/tasks/import/api/tasks/:id/api/tasks/:id/api/tasks/:id/api/tasks/bulk-assign/api/tasks/bulk-delete/api/tasks/bulk-move/api/tasks/:id/decompose/api/tasks/:id/approve/api/tasks/:id/reject/api/tasks/:id/approve-plan/api/tasks/:id/reject-plan/api/tasks/:id/evidence/api/tasks/:id/runs/api/tasks/:id/decisions/api/tasks/:id/pause/api/tasks/:id/resume/api/resurfaceCorbeille
/api/trash/api/tasks/:id/restore/api/trash/:id/api/trashÉtiquettes
/api/tags/api/tags/api/tags/:id/api/task-tags/api/tasks/:id/tags/api/tasks/:id/tags/:tagIdDépendances
/api/dependencies/api/tasks/:id/dependencies/api/tasks/:id/dependencies/api/tasks/:id/dependencies/:blockerIdActivité
/api/tasks/:id/comments/api/tasks/:id/comments/api/activity/api/claude-shippedRésumé et bilan
/api/digest/api/review/api/statsObjectifs
/api/goals/api/goals/api/goals/:id/api/goals/:id/api/goals/:id/breakdownBoîte de saisie
/api/capture/api/capture/sweep/api/capture/:id/accept/api/capture/:id/dismissNettoyage
/api/grooming/api/grooming/proposals/api/grooming/items/:id/approve/api/grooming/items/:id/dismissAutonomie et agents
/api/autonomy/api/autonomy/revoke/api/agents/api/fleet/api/projects/:id/rejections/api/decisions/api/decisions/:id/answerDéclencheurs
/api/triggers/api/triggers/:id/api/trigger-webhook/api/trigger-webhook/api/trigger-webhookRoutine et budget
/api/routine/api/routine/api/routine/nightProjets
/api/projects/api/projects/api/projects/:id/api/projects/:idEspaces de travail et partage
/api/workspaces/api/workspaces/:id/pause/api/workspaces/:id/resume/api/workspaces/:id/members/api/workspaces/:id/members/:memberId/api/invites/api/invites/acceptExécutions des agents
/api/runsCalendrier et synchronisation Google
/api/calendar/api/calendar/api/calendar/token/api/calendar/token/api/calendar/oauth/start/api/calendar/writeback/api/calendar/writeback/sync/api/calendar/writeback/api/google/accounts/api/google/sync/api/google/accounts/:id/api/calendar/events/api/calendar/matches/api/tasks/:id/calendar-links/api/tasks/:id/calendar-links/api/tasks/:id/calendar-links/:eventIdNotifications et temps réel
/api/notifications/api/notifications/api/events/api/export/api/view-prefs/api/saved-views/api/widgetMCP
/mcp