⚡ REST API

API Reference

Documentation complète de l'API REST SysLink. Toutes les requêtes sont au format JSON. L'authentification utilise des tokens Bearer JWT.

Base URL https://syslink.re/api
ℹ️ Toutes les requêtes doivent inclure l'en-tête Content-Type: application/json. Les endpoints protégés requièrent un token JWT via l'en-tête Authorization: Bearer <token>.

Authentification

POST /auth/login Authentifier un utilisateur

Authentifie un utilisateur et retourne un token JWT valable 24 heures.

Corps de la requête
ParamètreTypeDescription
loginrequisstringFormat tenant\prénom.nom
passwordrequisstringMot de passe de l'utilisateur
Requête
POST /api/auth/login Content-Type: application/json { "login": "monentreprise\\j.martin", "password": "motdepasse" }
Réponse 200
{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": 42, "login": "monentreprise\\j.martin", "firstname": "Jean", "lastname": "Martin", "role": "user", "tenant_id": "monentreprise" } }
Codes de réponse
200 OK 401 Unauthorized 400 Bad Request

Santé du service

GET /health Vérifier l'état du backend

Endpoint de santé public, aucune authentification requise. Utilisé par les clients pour vérifier la disponibilité du backend.

Réponse 200
{ "status": "ok", "version": "1.0.0", "timestamp": "2026-05-26T10:00:00Z" }
200 OK 500 Error

IA & Chat

POST /chat Envoyer un message à l'assistant IA

Envoie un message à l'assistant IA Claude et retourne une réponse en streaming ou complète selon le paramètre stream.

En-têtes requis
En-têteValeurDescription
AuthorizationrequisstringBearer <token JWT>
Corps de la requête
ParamètreTypeDescription
messagerequisstringMessage en langage naturel
streamoptionnelbooleanRéponse en streaming SSE (défaut: false)
contextoptionnelobjectContexte système (hostname, OS, etc.)
Requête
POST /api/chat Authorization: Bearer eyJhbGci... Content-Type: application/json { "message": "Mon PC est lent, que faire ?", "context": { "hostname": "PC-MARTIN", "os": "Windows 11" } }
Réponse 200
{ "response": "Je vais analyser les performances de votre PC...", "actions": [], "ticket_created": false }
200 OK 401 Unauthorized 400 Bad Request

Tickets

GET /tickets Lister les tickets du tenant
Paramètres de requête
ParamètreTypeDescription
statusoptionnelstringFiltrer par statut : open, in_progress, resolved, closed
limitoptionnelintegerNombre max de résultats (défaut: 50)
offsetoptionnelintegerDécalage pour la pagination
Réponse 200
{ "tickets": [ { "id": 12, "title": "PC lent depuis mise à jour", "status": "open", "priority": "medium", "created_by": "j.martin", "created_at": "2026-05-26T09:00:00Z" } ], "total": 1 }
200 OK 401 Unauthorized
POST /tickets Créer un nouveau ticket
Corps de la requête
ParamètreTypeDescription
titlerequisstringTitre du ticket
descriptionrequisstringDescription détaillée du problème
priorityoptionnelstringlow, medium, high, critical (défaut: medium)
201 Created 400 Bad Request 401 Unauthorized
PUT /tickets/{id} Mettre à jour un ticket
Paramètres URL
ParamètreTypeDescription
idrequisintegerIdentifiant du ticket
Corps de la requête
ParamètreTypeDescription
statusoptionnelstringopen, in_progress, resolved, closed
resolutionoptionnelstringDescription de la résolution
200 OK 404 Not Found 401 Unauthorized

Administration

🔒 Les endpoints /admin/* sont réservés aux comptes avec le rôle superadmin ou admin.
GET /admin/tenants Lister tous les tenants

Retourne la liste de tous les tenants avec leurs statistiques.

Réponse 200
{ "tenants": [ { "id": "monentreprise", "company": "Mon Entreprise SARL", "plan": "business", "users_count": 8, "tickets_open": 3, "created_at": "2026-01-15T00:00:00Z" } ] }
200 OK 403 Forbidden
GET /admin/stats Statistiques globales de la plateforme
200 OK 403 Forbidden

Téléchargement client

GET /download/client Télécharger l'installeur Windows

Retourne le binaire de l'installeur SysLink pour Windows (NSIS, ~80 Mo). Aucune authentification requise.

200 application/octet-stream 404 Non disponible
GET /download/info Informations sur la dernière version
Réponse 200
{ "available": true, "version": "1.0.0", "filename": "SysLink-Setup-1.0.0.exe", "size_mb": 79.4, "platform": "Windows x64" }
200 OK