Developer manual

OnadaMeet API documentation.

Use the OnadaMeet API to create meetings, launch classrooms, pull attendance, and connect meeting outcomes to external products.

Authentication

Send your key as a bearer token or as x-onadameet-api-key. API access requires an active paid workspace.

Authorization: Bearer om_live_your_key
x-onadameet-api-key: om_live_your_key

Scopes

Each key can be limited to the actions it needs. A missing scope returns 403 missing_scope.

meetings:readmeetings:writeattendance:readclassrooms:readclassrooms:writewebhooks:readwebhooks:write

REST API

Endpoints

GET/api/v1/meAny valid key

Verify workspace, billing status, and API readiness.

GET/api/v1/meetingsmeetings:read

List workspace meetings.

POST/api/v1/meetingsmeetings:write

Create a meeting and receive host and guest links.

GET/api/v1/meetings/{id}meetings:read

Fetch meeting details, participants, attendance, and meeting notes.

GET/api/v1/attendanceattendance:read

Export attendance records for reporting.

GET/api/v1/classroomsclassrooms:read

List classroom programs.

POST/api/v1/classroomsclassrooms:write

Create a live classroom from an external system.

Create a meeting

curl https://yourdomain.com/api/v1/meetings \
  -H "Authorization: Bearer om_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Board review",
    "meeting_type": "meeting",
    "scheduled_at": "2026-07-01T14:00:00Z",
    "duration_minutes": 60
  }'

Create a classroom

const response = await fetch("/api/v1/classrooms", {
  method: "POST",
  headers: {
    authorization: "Bearer om_live_...",
    "content-type": "application/json"
  },
  body: JSON.stringify({
    title: "Mathematics - Grade 10",
    subject: "Mathematics",
    tutor_name: "Mr. Daniel O."
  })
});

Webhooks

Webhooks are signed with HMAC SHA-256 and sent with x-onadameet-event and x-onadameet-signature. Verify the signature before trusting the payload.

meeting.created
attendance.recorded
classroom.created
ai_notes.generated
participant.joined