What the platform actually does today, verified under real conditions (Postgres + LiveKit Cloud) — not just typed or compiled.
Two repositories make up the integration: the NestJS backend (External API module) exposing /api/v1/external/*, and the publishable Web SDK (@myreal/web-sdk) that calls it from any React app.
Third-party app → @myreal/web-sdk (MyRealClient)
→ fetch('/external/sessions', { headers: { X-Api-Key } })
→ ApiKeyGuard → ProductEntitlementGuard → ApiKeyThrottlerGuard
→ ExternalApiService orchestrates Livestreams / LiveKit / Organizations / Webhooks
→ PostgreSQL + LiveKit Cloud (WebRTC rooms)X-Api-Key: mlsk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Base: {baseUrl}/external — every route requires X-Api-Key.
| POST | /sessions | Create a session (host). Body: product, identity, roomName? |
| POST | /sessions/:roomName/join | Join a session as a viewer. Body: identity |
| DELETE | /sessions/:roomName | End the session |
| POST | /sessions/:id/auction/items | Add an auction item |
| POST | /sessions/:id/auction/items/:productId/activate | Activate an item |
| POST | /sessions/:id/auction/bids | Place a bid — rate-limited to 10 req/10s |
| POST | /sessions/:id/auction/validate | Validate the active item |
| POST | /sessions/:id/donations | Record a donation — rate-limited to 10 req/10s |
| GET | /sessions/:id/donations | List donations and running total |
1-to-1 or 1-to-N video call. Ephemeral session, no business persistence — both participants create the session with the same room id for a symmetric call.
One seller hosts, buyers watch read-only (asymmetric publish rights, verified).
A dedicated seller UI is still needed — the current UI is tuned for the buyer's perspective.
Full cycle: add item, activate, successive bids, validate to the highest bidder.
Does not process real payment — it's bid tracking only, settlement is a separate flow.
Donations tracked in real time during a session, with history and running total.
Like Auction, no real payment is triggered — tracking only.
Every delivery is signed (HMAC SHA-256, X-MyLiveShop-Signature header). Endpoint setup is currently handled internally, on request, per pilot organization.
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 (default) | viewer
/>The component handles connection, errors, then the video grid, mic/camera/screen-share controls and chat. A low-level client (MyRealClient) is also available for custom integrations.