GurukulLive developer platform · v1
Run your classes on GurukulLive, inside your own product
Schools, coaching institutes, LMS vendors and companies use GurukulLive as the classroom and meeting engine behind their own website or app. Provision your users, decide who joins what, start classes from your UI, receive real-time events and show recordings — your users never need a separate GurukulLive login.
How it fits together
- Provision people. Your backend creates teachers and students with
POST /public/users, using your own ids asexternalId— no e-mail required. - Schedule classes. Create meetings or academic class sessions with
POST /public/meetings, and choose who may join: enrolled students, org members, invited users or anyone with a link. - Mint a join link per user. When someone clicks “Join class” in your product, your backend calls
POST /public/meetings/:id/join-linksand redirects them tourl— or iframesembedUrlwith the JS SDK. - React to what happens. Webhooks tell you when classes start and end, who joined and for how long, and when recordings and attendance are ready. Embed recordings with a signed player URL.
Guides
QuickstartFrom API key to a student in a live class in five calls.AuthenticationAPI keys, scopes, IP allowlists and meeting sessions.Join linksLet your users into a class without a GurukulLive login.Embedding & SDKPut the classroom inside your page or mobile app.WebhooksSigned, retried events for classes, people, recordings.API referenceEvery endpoint, generated from the OpenAPI document.
The API at a glance
| Base URL | https://gurukullive.example.com/api/v1/public — your GurukulLive deployment |
| Authentication | Authorization: Bearer vmk_live_… — server-side only (details) |
| Format | JSON, camelCase, ISO-8601 UTC timestamps, IANA time zones |
| Success | { data, meta? } |
| Errors | { error: { code, message, details? }, requestId } with stable codes (list) |
| Pagination | ?limit=50&cursor=… → meta: { nextCursor, hasMore } |
| Retries | Idempotency-Key header on POST (kept 24 h) so a retry never creates twice |
| Your ids | Users, classes and meetings accept externalId, unique per organization |
| Limits | 600 requests/min per key by default (rate limits) |
{
"data": {
"id": "cm2x8k3…",
"externalId": "class-10a-2026-10-14",
"title": "Algebra · Grade 10 A",
"type": "CLASS",
"status": "SCHEDULED",
"slug": "algebra-10a-k3f9q2",
"scheduledStart": "2026-10-14T09:30:00.000Z",
"durationMinutes": 45
}
}What people build
- LMS live classes — a “Join class” button in Moodle, Canvas or your own LMS that drops students straight into the room.
- Coaching apps — Android/iOS apps that open join links in a Custom Tab or a WebView with the classroom embedded.
- Recording libraries — list recordings per class and embed the player on your course pages.
- Attendance sync — webhooks and attendance reports flowing into your SIS or payroll.
Security model in one paragraph
API keys never leave your servers. Browsers and apps only ever see join links: short-lived, single-use tokens that GurukulLive exchanges for a session limited to one meeting. Access rules (enrollment, deactivation, locks, capacity, plan limits) are enforced again at that moment. Webhooks are signed with HMAC-SHA256 and the embedded room only talks to origins your organization allows.