MasterOSDocumentation
Documentation

Référence API

Les endpoints REST réels exposés par l'API MasterOS, organisés par ressource, sous le préfixe /v1.

Ce sont les endpoints réels, aujourd'hui

Cette référence documente l'API exactement telle qu'elle est implémentée en ce moment. Elle est écrite à la main, pas générée à partir de la véritable spécification OpenAPI de l'API (voir Versioning pour savoir où se trouve réellement cette spécification) — surveillez le Changelog pour les écarts entre les deux.

Tous les endpoints sont relatifs à l'URL de base de l'API, sous un préfixe /v1 (voir Versioning). Tous les endpoints authentifiés utilisent un cookie de session httpOnly défini par POST /v1/auth/verify-login-code — il n'existe pas encore d'authentification par clé API séparée aujourd'hui (voir Authentication).

auth

MethodPathAuthNotes
POST/v1/auth/request-login-code—{ email }. Envoie par email un code à 6 chiffres et crée le compte à la première utilisation ; renvoie toujours le même message. Limité en fréquence par IP et par email de façon indépendante.
POST/v1/auth/verify-login-code—{ email, code }. Définit le cookie de session. Limité en fréquence par IP et par email de façon indépendante.
POST/v1/auth/logoutsessionEfface le cookie de session.
GET/v1/auth/mesessionRenvoie l'utilisateur actuel.
GET/v1/auth/google—Redirige vers Google OAuth.
GET/v1/auth/google/callback—Callback OAuth ; redirige vers l'application en cas de succès.
GET/v1/auth/facebook—Redirige vers Facebook OAuth.
GET/v1/auth/facebook/callback—Callback OAuth ; redirige vers l'application en cas de succès.
POST/v1/auth/forgot-password—{ email }. Renvoie toujours le même message, que l'email soit enregistré ou non.
POST/v1/auth/reset-password—{ token, password }. Le token est à usage unique et expire.

chat

MethodPathAuthNotes
POST/v1/chatsession{ model, messages, conversationId?, idempotencyKey }. Diffuse un corps de réponse en texte brut ; l'en-tête x-conversation-id de la réponse porte l'identifiant de conversation. idempotencyKey est obligatoire — une requête retentée avec la même clé ne facture jamais deux fois ni ne rappelle jamais le prestataire.

skills

MethodPathAuthNotes
POST/v1/skillssession{ name, instruction, input_schema?, output_schema? }. Crée une Skill privée à votre compte.
GET/v1/skillssessionListe vos propres Skills.
GET/v1/skills/templatessessionListe les modèles de départ que vous pouvez dupliquer dans votre propre Skill.
POST/v1/skills/templates/:id/duplicatesessionCopie un modèle dans une nouvelle Skill vous appartenant.
POST/v1/skills/importsession{ name, instruction, input_schema?, output_schema?, version? } — exactement la forme que produit GET /v1/skills/:id/export, afin que export → import fasse un aller-retour. Tout autre champ (id, owner_id, organization_id, allowed_tools) est rejeté d'emblée ; une Skill importée ne conserve jamais de liaison d'outil provenant du fichier.
GET/v1/skills/:idsessionUne Skill que vous possédez, avec toutes ses versions.
GET/v1/skills/:id/exportsessionLa forme portable { name, instruction, input_schema, output_schema, version }, correspondant à l'entrée de l'endpoint d'import.
POST/v1/skills/:id/versionssession{ instruction, input_schema?, output_schema? }. Publie une nouvelle version immuable.
POST/v1/skills/:id/runsession{ model, input, conversationId?, idempotencyKey }. Rentre dans exactement le même pipeline de chat que POST /v1/chat, avec input tenant lieu du message unique de l'utilisateur — même comportement d'idempotence/quota/ledger.

conversations

MethodPathAuthNotes
GET/v1/conversationssessionListe vos propres conversations.
GET/v1/conversations/:idsessionUne conversation unique avec ses messages. Renvoie 404 pour une conversation que vous ne possédez pas.

files

MethodPathAuthNotes
GET/v1/filessessionListe vos propres fichiers téléversés.
POST/v1/filessessionTéléversement multipart, nom de champ file. Accepte le texte brut, Markdown, PDF, et .docx, jusqu'à 20 Mo.
DELETE/v1/files/:idsessionSupprime un fichier que vous possédez (objet de stockage + enregistrement).

plans

MethodPathAuthNotes
GET/v1/plans— (public)Liste les plans avec leurs tarifs et modèles autorisés — volontairement public afin que les tarifs soient visibles avant la connexion.

billing

MethodPathAuthNotes
POST/v1/billing/checkoutsession{ planId, provider: "sepay" | "paddle" }. Le montant facturé provient toujours de la consultation du plan côté serveur, jamais du client. Les plans Free et Enterprise ne peuvent pas passer par ce checkout.
GET/v1/billing/quotasessionVotre limite de quota quotidien actuelle et le solde restant.

Deux ressources supplémentaires existent dans l'API en production mais ne sont pas documentées ici comme surface orientée client : /v1/webhooks/* (entrant uniquement, appelé par SePay/Paddle — pas quelque chose que vous appelez vous-même) et /v1/admin/* (interne, réservé aux admins).

Référence API — Documentation MasterOS