Malina API

L'API Malina vous permet d'intégrer un agent IA autonome dans votre stack. Chat, mémoire persistante, exécution d'actions, alertes proactives — tout accessible via REST.

Authentication

Toutes les requêtes authentifiées utilisent un Bearer token dans le header Authorization. Obtenez un token via signup ou login.

Header
Authorization: Bearer votre_token_ici

Les endpoints publics (signup, login, plans, webhook) ne requièrent pas d'authentification.

Base URL

Production
https://api.malina-ai.dev

Error Handling

L'API utilise les codes HTTP standards. Le corps de la réponse contient un champ "detail" avec le message d'erreur.

CodeSignificationDescription
200OKRequête réussie
400Bad RequestParamètres manquants ou invalides
401UnauthorizedToken manquant ou invalide
403ForbiddenPas les permissions requises
429Rate LimitedLimite du plan atteinte
500Server ErrorErreur interne

POST /api/chat

🔒 Auth required

Envoyer un message à Malina. L'agent analyse, choisit les tools nécessaires, exécute, et retourne la réponse.

Request Body
ParamTypeDescription
message*stringLe message à envoyer à Malina
session_id*stringIdentifiant de session (pour la continuité conversationnelle)
user_idstringIdentifiant utilisateur (auto si JWT)
Request
curl -X POST https://api.malina-ai.dev/api/chat \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "message": "Quel est l état du serveur ?", "session_id": "sess-001" }'
Response 200
JSON
{ "reply": "Serveur OK. Disque 43%, RAM 2.3/15GB...", "mode": "tech", "tools_used": ["vps_command"], "kg_entities": [ {"name": "VPS", "type": "platform"} ] }

POST /api/auth/signup

🔓 Public

Créer un nouveau compte.

ParamTypeDescription
email*stringAdresse email
password*stringMot de passe (min 8 caractères)
namestringNom d'affichage
Response 200
{ "token": "eyJhbGciOiJIUzI1NiIs...", "message": "Compte créé avec succès" }

POST /api/auth/login

🔓 Public

Se connecter et obtenir un JWT.

Response 200
{"token": "eyJhbGciOiJIUzI1NiIs..."}

GET /api/auth/profile

🔒 Auth required

Obtenir le profil de l'utilisateur connecté.

Response 200
{ "user_id": "user_a3f8c1e2", "email": "user@example.com", "name": "John", "plan": "croissance", "subscription_status": "active" }

GET /api/alerts

🔒 Auth required

Liste des alertes actives (non-dismissées) de l'utilisateur.

Response 200
{ "alerts": [ { "id": 42, "type": "system", "severity": "warning", "message": "Disque à 85%", "created_at": "2026-02-23T08:00:00" } ] }

GET /api/brief/today

🔒 Auth required

Récupérer le brief du jour généré automatiquement.

POST /api/brief/generate

🔒 Auth required

Forcer la génération d'un nouveau brief maintenant.

POST /api/transcribe

🔒 Auth required

Transcrire un fichier audio via Whisper.

Envoyez le fichier en multipart/form-data avec le champ "file".

Request
curl -X POST https://api.malina-ai.dev/api/transcribe \ -H "Authorization: Bearer $TOKEN" \ -F "file=@recording.wav"

GET /health

🔓 Public

Vérifier que l'API est opérationnelle.

Response 200
{"status": "ok", "service": "malina-api", "version": "2.0.0"}

GET /api/billing/plans

🔓 Public

Lister les plans disponibles avec leurs limites.

GET /api/sources/status

🔒 Auth required

Statut de tous les connecteurs de données (Telegram, Email, WhatsApp, etc.)