Live classes, inside your product
Your LMS, school ERP or app keeps its own users and UI. GurukulLive provides the classroom: video, attendance and recordings — over a clean REST API.
Four calls from zero to a live class
Provision
Create users, classes and meetings with your own IDs (externalId) — no GurukulLive logins for your users.
Mint a join link
Your backend asks for a short-lived, single-use link for each user and role.
Embed or redirect
Open the link in an iframe with the JS SDK, in a Custom Tab, or in the GurukulLive Android app.
Listen for events
Webhooks for participant.joined, attendance.finalized, recording.ready and more.
Your API key never touches the browser
Your server exchanges the API key for a join link scoped to one user and one meeting. The browser only ever sees that short-lived link.
- Scoped API keysLeast-privilege scopes like meetings:write or recordings:read; keys are hashed at rest.
- Join linksSingle-use by default, expiring in minutes, role capped by the user’s org role.
- Origin-locked embedsOnly the domains you allow can frame your rooms.
curl -X POST \
https://<your-gurukullive-host>/api/v1/public/meetings/mtg_8f2/join-links \
-H 'Authorization: Bearer vmk_live_…' \
-H 'Content-Type: application/json' \
-d '{"externalUserId":"stu_1042","role":"PARTICIPANT"}'
# → { "data": { "url": "…/j/<token>", "embedUrl": "…", "expiresAt": "…" } }Built like the APIs you already like
Predictable REST
JSON, cursor pagination, idempotency keys and stable error codes.
Signed webhooks
HMAC-SHA256 signatures, retries with backoff and delivery logs.
Web & mobile
A ~5 KB iframe SDK with a postMessage API; join links work in Android apps.
Your users, your IDs
Upsert users and enrolments by externalId — no syncing GurukulLive IDs back.
Fair rate limits
Per-key limits with standard rate-limit headers.
Usage-based
The Business plan includes 100,000 participant-minutes a month.
Ship live classes this sprint
Read the API reference, or talk to us about volume pricing and dedicated media nodes.