MallaDocs

API HTTP

L’API de l’éditeur, les points de terminaison des sites publiés et le point de terminaison MCP.

Guide développeur

Trois surfaces HTTP : l'API de l'éditeur derrière l'application, les points de terminaison de chaque site publié, et le point de terminaison MCP pour les agents.

API de l'éditeur

L'application web relaie /api/** vers le Worker api. Les requêtes utilisent le cookie de session HTTP-only et une vérification CSRF ; chaque route vérifie le rôle de l'appelant sur le site. Un site sur lequel vous n'avez aucun rôle répond 404, exactement comme un site qui n'existe pas : les ids ne fuient donc jamais. Les limites de forfait répondent 402 plan_limit.

Authentification

MéthodeCheminRôle
POST/auth/signupCréer un compte éditeur
POST/auth/loginOuvrir une session (débit limité par IP et par e-mail)
POST/auth/logoutFermer la session
GET/auth/meL'utilisateur connecté
GET/auth/realtime-tokenJeton de courte durée pour les salles d'un site
POST/auth/password-reset/request · /confirmRéinitialiser un mot de passe (répond 501 tant que l'envoi d'e-mails n'est pas branché)
POST/auth/verify-email/request · /confirmVérifier l'adresse e-mail (répond 501 tant que l'envoi d'e-mails n'est pas branché)
POST/auth/invites · /invites/acceptInviter dans un espace de travail et le rejoindre (répond 501 tant que l'envoi d'e-mails n'est pas branché)

Sites et pages

MéthodeCheminRôle
GET POST/sitesLister ou créer des sites
GET PATCH DELETE/sites/:siteIdLire, renommer (slug : administrateur) ou supprimer un site
GET POST/sites/:siteId/pagesLister ou créer des pages
GET PATCH DELETE/pages/:pageIdLire, mettre à jour ou supprimer une page
PUT/pages/:pageId/docRemplacer le document d'une page
GET POST/sites/:siteId/membersMembres du site
GET POST/sites/:siteId/assetsLister ou téléverser des ressources
POST/sites/:siteId/publishPublier en préproduction (éditeur) ou en production (administrateur)
GET/sites/:siteId/publishes?environment=Publications récentes de staging ou production, de la plus récente à la plus ancienne, avec celle en ligne et qui a publié ou fait le retour arrière (éditeur ; e-mails pour les administrateurs uniquement)
POST/sites/:siteId/rollbackRamener un environnement à l'une de ses publications récentes, { environment, publishId } : préproduction (éditeur) ou production (administrateur)
POST/sites/:siteId/exportZIP d'export statique (administrateur)

CMS et formulaires

MéthodeCheminRôle
GET POST/sites/:siteId/collectionsCollections
GET POST/sites/:siteId/collections/:id/itemsÉléments
POST…/items/:itemId/publish · unpublish · archiveCycle de vie d'un élément
GET…/items/:itemId/versionsVersions d'un élément, avec …/:versionId/restore
GET/sites/:siteId/forms/:formId/submissions(.csv)Soumissions, en JSON ou CSV

Données et logique

MéthodeCheminRôle
GET POST PATCH DELETE/sites/:siteId/integrationsIntégrations (écriture : administrateur)
POST/sites/:siteId/integrations/:id/testTester une connexion
POST/sites/:siteId/runExécuter une requête ou une opération depuis l'éditeur
GET POST PUT DELETE/sites/:siteId/workflowsWorkflows serveur
POST/sites/:siteId/workflows/:id/testExécution de test (diffusée via …/runs/:runId/stream)
GET POST PATCH DELETE/sites/:siteId/tablesTables natives et …/rows
GET PATCH DELETE/sites/:siteId/visitorsVisiteurs, et …/visitor-roles

Plateforme

MéthodeCheminRôle
GET POST DELETE/sites/:siteId/domainsDomaines personnalisés, …/:id/refresh pour revérifier
GET/billing/plansForfaits et limites
PUT/billing/workspaces/:id/plan · /sites/:siteId/billing/planChanger de forfait (Stripe Checkout)
GET POST/catalog/templatesModèles, …/:id/use pour démarrer un site
GET POST/catalog/pluginsCatalogue de plugins ; installation par site via /sites/:siteId/plugins
POST/sites/:siteId/aiModification par l'IA (server-sent events)
POST/sites/:siteId/ai/expressionAssistant d'expressions : écrit, corrige ou explique une expression (server-sent events)
GET/workspaces/:workspaceId/ai/usageDépenses IA d'un mois : tokens, coût estimé, quota, par site et par tâche (par membre pour les administrateurs)
GET/workspaces/:workspaceId/ai/runsRequêtes IA d'un mois, de la plus récente à la plus ancienne, avec tokens et coût estimé
GET POST DELETE/workspaces/:id/api-keysClés d'API de l'espace de travail pour MCP

Sites publiés

http
# Published sites (any domain of the site)
POST /api/_forms/:formId                 form submission (Turnstile token required)
POST /api/_q/:name                       client query of a page
ALL  /api/<your path>                    your server workflow endpoints and webhooks
POST /_auth/signup | login | logout | magic-link
GET  /_auth/magic?token=…                completes a magic link
GET  /_auth/me                           the current visitor

Les formulaires et les requêtes ont un débit limité par IP. Les requêtes d'une page soumise à une règle d'accès passent par la même règle.

MCP

POST /mcp parle JSON-RPC (MCP streamable HTTP), avec une clé d'API de l'espace de travail comme jeton bearer. GET /mcp répond 405 : il n'existe pas de flux initié par le serveur.

bash
curl -X POST https://<mcp host>/mcp \
  -H 'Authorization: Bearer mk_…' \
  -H 'content-type: application/json' \
  -d '{ "jsonrpc": "2.0", "id": 1, "method": "tools/list" }'