Ce que la plateforme fait réellement aujourd'hui, vérifié en conditions réelles (Postgres + LiveKit Cloud) — pas seulement typé ou compilé.
Deux dépôts composent l'intégration : le backend NestJS (module External API) qui expose /api/v1/external/*, et le SDK Web publiable (@myreal/web-sdk) qui l'appelle depuis n'importe quelle app React.
Application tierce → @myreal/web-sdk (MyRealClient)
→ fetch('/external/sessions', { headers: { X-Api-Key } })
→ ApiKeyGuard → ProductEntitlementGuard → ApiKeyThrottlerGuard
→ ExternalApiService orchestre Livestreams / LiveKit / Organizations / Webhooks
→ PostgreSQL + LiveKit Cloud (rooms WebRTC)X-Api-Key: mlsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Base : {baseUrl}/external — toutes les routes exigent X-Api-Key.
| POST | /sessions | Crée une session (hôte). Body : product, identity, roomName? |
| POST | /sessions/:roomName/join | Rejoint une session en spectateur. Body : identity |
| DELETE | /sessions/:roomName | Termine la session |
| POST | /sessions/:id/auction/items | Ajoute un article aux enchères |
| POST | /sessions/:id/auction/items/:productId/activate | Active un article |
| POST | /sessions/:id/auction/bids | Place une enchère — limité à 10 req/10s |
| POST | /sessions/:id/auction/validate | Valide l'article actif |
| POST | /sessions/:id/donations | Enregistre un don — limité à 10 req/10s |
| GET | /sessions/:id/donations | Liste les dons et le montant cumulé |
Appel vidéo 1-à-1 ou 1-à-N. Session éphémère, sans persistance métier — les deux participants créent la session avec le même identifiant de room pour un appel symétrique.
Un vendeur anime, les acheteurs regardent en lecture seule (droits de publication asymétriques, vérifiés).
L'interface vendeur dédiée reste à finaliser — l'UI actuelle est optimisée pour la perspective acheteur.
Cycle complet : ajout d'article, activation, enchères successives, validation au meilleur enchérisseur.
Ne traite pas le paiement réel — c'est un suivi d'enchère, l'encaissement reste un flux séparé.
Dons cumulés en temps réel pendant une session, avec historique et total.
Comme l'Auction, aucun encaissement réel n'est déclenché — suivi uniquement.
Chaque livraison est signée (HMAC SHA-256, header X-MyLiveShop-Signature). La configuration des endpoints se fait aujourd'hui côté interne, à la demande, pour chaque organisation pilote.
npm install @myreal/web-sdk @livekit/components-react livekit-client
import { MyRealSession } from "@myreal/web-sdk/react";
import "@myreal/web-sdk/react/style.css";
<MyRealSession
apiKey="mlsk_..."
product="assistance" // assistance | shopping | auction | donation
identity="Aminata"
role="host" // host (défaut) | viewer
/>Le composant gère la connexion, l'erreur, puis la grille vidéo, les contrôles micro/caméra/partage d'écran et le chat. Un client bas niveau (MyRealClient) est aussi disponible pour une intégration sur-mesure.