LMS Integration API
Standard virtual-classroom wire API for Moodle, Canvas and custom LMS backends. End users join the native 2meet meeting room.
https://{slug}.2meet.ir/lms/v1/Authentication
Integration Secret + checksum on every call:
checksum = SHA256(action + queryStringWithoutChecksum + secret)
SHA-1 and SHA-512 accepted for legacy clients.
Core services
These four areas are required for a typical LMS integration:
| Action | Service | Description |
|---|---|---|
create | Create meeting | Idempotent create; passwords, record, optional logoutURL, meta_* (logo + cover URLs). Does not provision portal users. |
join | Join meeting | Redirect to meet.{domain}/join/{ticket}. Pass display name + optional avatar, user id, and logoutURL. |
end | End meeting | End an active meeting |
getRecordings | List recordings | Past meetings with playback URLs |
deleteRecordings | Delete recordings | Delete by recordID |
Create — logo & cover (URL links)
On wire create, pass absolute image URLs via meta_*. No file upload.
| Param | Description |
|---|---|
meta_org_logo_url | School/class logo URL (desktop header) |
meta_org_display_name | School short name (tab title) |
meta_org_name | Optional legal/internal name |
meta_cover_url | Stage cover image URL (when host cam off / before start) |
logoutURL | Return to LMS after leave/end |
duration | Hard time cap in minutes |
meta_session_mode | lecture (default) or interactive |
create?meetingID=course-42-week-3&name=Math&moderatorPW=mp&attendeePW=ap
&logoutURL=https%3A%2F%2Flms.example%2Fcourse%2Fview.php%3Fid%3D5
&meta_org_display_name=%D8%A2%DA%A9%D8%A7%D8%AF%D9%85%DB%8C%20%D9%86%D9%85%D9%88%D9%86%D9%87
&meta_org_logo_url=https%3A%2F%2Flms.example%2Fmedia%2Fschool-logo.png
&meta_cover_url=https%3A%2F%2Flms.example%2Fmedia%2Fclass-cover.jpg
&checksum=...
JSON equivalent: org.logo_url + cover_url on POST /lms/v1/meetings — see JSON create.
Join identity (BBB-compatible)
Identity is ephemeral — the same model as BigBlueButton. Teachers and moderators are whoever joins with the moderator password (or role=MODERATOR). 2meet does not create tenant portal accounts from LMS create/join.
| Param | Required | Description |
|---|---|---|
fullName | Recommended | Display name in the room (default Guest) |
avatarURL | Optional | HTTPS image URL shown on video tiles, participants list, and chat when the camera is off |
userID | Recommended | Stable LMS user id — required for correct attendance report across reconnects and recurring classes |
logoutURL | Optional | BBB-compatible return URL after leave/end (join overrides create default) |
password or role | Yes | moderatorPW/attendeePW, or role=MODERATOR|VIEWER |
join?meetingID=course-1&password=mp&fullName=Alice&avatarURL=https%3A%2F%2Flms.example%2Fa.jpg&userID=42&logoutURL=https%3A%2F%2Flms.example%2Fmod%2Fbbb%2Fview.php%3Fid%3D9&checksum=...
Return to LMS (logoutURL)
Same pattern as BigBlueButton / Moodle BBB plugins. Set on create (meeting default) and/or join (per user; overrides create). Only absolute http/https URLs. Placeholders: %%MEETINGID%%, %%USERID%%, %%USERNAME%%. The live client redirects there on leave/end.
Extended services
| Action | Service | Description |
|---|---|---|
insertDocument | Insert documents | POST XML → room files |
sendChatMessage | Public chat | System chat message in room |
getRecordingTextTracks | List captions | Caption tracks for a recording |
putRecordingTextTrack | Upload captions | Upload VTT closed captions |
Monitoring (optional)
| Action | Description |
|---|---|
isMeetingRunning | Status check |
getMeetingInfo | Attendees and metadata |
getMeetings | Active meetings |
publishRecordings | Published flag |
Attendance report (JSON pull)
After class, pull grades/attendance via the HMAC JSON API (not checksum/wire):
GET /lms/v1/meetings/{external_id}/report
When {id} is your LMS external_id / meetingID, 2meet aggregates all occurrences (presence, join counts, voice/video, and class wall-clock duration). Use the internal UUID only when you need a single-run report. Always pass userID on join. Full contract: JSON API — Attendance report.