2meet Docs
← API overview

LMS Integration API

Standard virtual-classroom wire API for Moodle, Canvas and custom LMS backends. End users join the native 2meet meeting room.

Server URL from partner portal: 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:

ActionServiceDescription
createCreate meetingIdempotent create; passwords, record, optional logoutURL, meta_* (logo + cover URLs). Does not provision portal users.
joinJoin meetingRedirect to meet.{domain}/join/{ticket}. Pass display name + optional avatar, user id, and logoutURL.
endEnd meetingEnd an active meeting
getRecordingsList recordingsPast meetings with playback URLs
deleteRecordingsDelete recordingsDelete by recordID

Create — logo & cover (URL links)

On wire create, pass absolute image URLs via meta_*. No file upload.

ParamDescription
meta_org_logo_urlSchool/class logo URL (desktop header)
meta_org_display_nameSchool short name (tab title)
meta_org_nameOptional legal/internal name
meta_cover_urlStage cover image URL (when host cam off / before start)
logoutURLReturn to LMS after leave/end
durationHard time cap in minutes
meta_session_modelecture (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.

ParamRequiredDescription
fullNameRecommendedDisplay name in the room (default Guest)
avatarURLOptionalHTTPS image URL shown on video tiles, participants list, and chat when the camera is off
userIDRecommendedStable LMS user id — required for correct attendance report across reconnects and recurring classes
logoutURLOptionalBBB-compatible return URL after leave/end (join overrides create default)
password or roleYesmoderatorPW/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

ActionServiceDescription
insertDocumentInsert documentsPOST XML → room files
sendChatMessagePublic chatSystem chat message in room
getRecordingTextTracksList captionsCaption tracks for a recording
putRecordingTextTrackUpload captionsUpload VTT closed captions

Monitoring (optional)

ActionDescription
isMeetingRunningStatus check
getMeetingInfoAttendees and metadata
getMeetingsActive meetings
publishRecordingsPublished 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.

Related