MegaMeeting

MegaMeeting Web Video Conferencing API v4
Add Video Conferencing to your website and apps.

Websites
Apps
Social Media
Web Projects

Video Conferencing Integration
Start empowering your websites and apps today by adding the most powerful form of real-time communication. Integrate video conferencing into your website and you will see remarkable improvement in your ability to interact with customers and solve problems.

MegaMeeting has been providing video conferencing APIs for over 15 years and has helped shape many businesses that have formed around the concept of web based video conferencing. Because it is entirely web based, integrating MegaMeeting video conferencing into a website or web application is easier than with any other video conferencing service.

The Language

MegaMeeting has a very easy-to-use video conferencing API. It is driven by GraphQL, a simple query language originally developed by Facebook in 2012 and open sourced in 2015. If you are unfamiliar with GraphQL, read more at GraphQL.org.

Usage

The MegaMeeting API allows you to create/edit/join/end meetings. If you have a large organization with many hosts, you can create/update/delete logins. You can also download/delete data such as meeting recordings and meeting usage.

See this article for a typical integration example.

Authentication

All queries/mutations require authentication, which is achieved via API key. You can generate/revoke an API key from the API section of your account settings. When making a request, send the API key as follows:

EXAMPLE:

apiToken=B834JR9F763JFKJF993JI0FJ4GH67234

Endpoint/Request URL

For the proper context and authentication to be accepted in your API request, the request URL should begin with your account’s URL.

EXAMPLE:

https://myaccount.megameeting.com/api

Methods

GraphQL is self-documenting and the best way to explore and understand the schema available is by accessing it directly via GraphQL Playground. You can download the Desktop app, or access it from your account:

https://myaccount.megameeting.com/playground

Add your endpoint URL and apiToken and you will be able to view the full schema available and test all of the API calls.

A few examples for reference:

Example Requests / Responses
The following is a simple reference guide. For complete examples and all available APIs, please see the graphql playground available in the API section of your account.

Queries
GET

meetings
Get a list of existing meetings. This is the most common API query, used for the purposes of getting a list of meetings to join, update, or delete, without needing to provide an initial search criteria or filter. If called by an Admin, returns a list of all meetings on the account. If called by a Host, returns only their meetings.

Request

            
              query{
                meetings{
                  edges{
                    node{
                      meetId
                      name
                    }
                  }
                }
              }
            }
          
          

Response

            
              {
                "data": {
                "meetings": [
                  {
                    "edges": [
                      {
                        "node": {
                          "name": "My First Meeting",
                          "meetId": "1234567"
                        }
                      },
                      {
                        "node": {
                          "name": "My Second Meeting",
                          "meetId": "7654321"
                        }
                      }
                    ]
                  }
                ]
              }
            }
            

          

logins
Get a list of existing logins. Used for retrieving the details of existing users (logins) on your account. Often used for retrieving the loginId of an existing user in order to process updates via updateLogin API. Only available to Admin users.

Request

            
              query {
                logins {
                  edges {
                    node {
                      userName
                      loginId
                      email
                      fullName
                      active
                      roles
                    }
                  }
                }
              }
            
          

Response

            
              {
                "data": {
                  "logins": [{
                    "edges": [{
                        "node": {
                          "userName": "michaels",
                          "loginId": "5bf55555ac033142f8457264",
                          "email": "michaels@megameeting.com",
                          "fullName": "Michael",
                          "active": 1,
                          "roles": "owner,admin,host"
                        }
                      },
                      {
                        "node": {
                          "userName": "pamb",
                          "loginId": "5df155555a74d80b43e32a21",
                          "email": "pamb@megameeting.com",
                          "fullName": "Pam",
                          "active": 0,
                          "roles": "admin,host"
                        }
                      }
                    ]
                  }]
                }
              }
            
          

recordings
Get a list of existing recordings. Used for retrieving the details of recordings made by users of the accounts. Often used for retrieving the recId in order to call deleteRecording API, or retrieve the recPackage path in order to formulate a Download or Playback URL. If called by an Admin, returns all recordings on the account. If called by a Host, returns only their recordings.

EXAMPLE Download Prefix:

https://myaccount.megameeting.com/getrec?recordingkey=

EXAMPLE Download Full URL (Prefix + recPackage):

https://myaccount.megameeting.com/getrec?recordingkey=5bf55555ac033142f8457262/1234567/Test-Recording-michaels_Wed_Mar_13_2019_111509_0400-03-15-2019_12-47-41.mp4

Request

            
              query {
                recordings {
                  recId
                  recPackage
                  recCreateDateTime
                }
              }
            
          

Response

          
            {
              "data": {
                "recordings": [{
                    "recPackage": "5bf55555ac033142f8457262/1234567/Test-Recording-michaels_Wed_Mar_13_2019_111509_0400-03-15-2019_12-47-41.mp4",
                    "recCreateDateTime": "Fri Mar 15 2019 16:47:42 GMT+0000"
                  },
                  {
                    "recPackage": "5bf55555ac033142f8457262/7654321/1577491376/Webinar-Recording-7654321-Michael-12-27-2019:19-03-05.mp4",
                    "recCreateDateTime": "Dec 27, 2019 19:03:05"
                  }
                ]
              }
            }
          
          

apiTokenDetails
Get the api token of a specific user on the account. Requires the loginId of the user. Returns the api token, if it exists, for the user along with usage time stamp. Only available to Admin users.

Request

            
              query {
                apiTokenDetails(
                  loginId: "5cc8525555555547431600d0"
                ) {
                  domain
                  apiToken
                  createdAt
                  lastUsed
                }
              }
            
          

Response

          
            {
              "data": {
                "apiTokenDetails": {
                  "domain": "https://myaccount.megameeting.com",
                  "apiToken": "IWVFBYLWG0QWY7EI55555555VKQHQ97X",
                  "createdAt": "Tue Nov 26 2019 15:19:12 +0000",
                  "lastUsed": "Tue Nov 26 2019 15:31:34 +0000"
                }
              }
            }
          
          

getVerifiedGuest
Retrieve the links and keys of your special attendees.

Request

            
              query {
                getVerifiedGuest(meetId: "7654321") {
                  guestName
                  key
                  meetingLink
                }
              }
            
          

Response

          
            {
              "data": {
                "getVerifiedGuest": [
                  {
                    "guestName": "John Doe",
                    "key": "abcdef123456",
                    "meetingLink": "https://myaccount.megameeting.com/meeting/?key=abcdef123456"
                  }
                ]
              }
            }
          
          

Mutations
POST

createMeeting
Create a new meeting. The most common API mutation. Creating a new meeting room with a unique ID is most often used for creating separate, private meetings and providing the unqiue ID to the participants.

Video Conference
For video meetings 2 - 20 people.

            
              mutation {
                createMeeting(input: {
                  meetingName: "API Video Conference Test",
                  scheduledDateTime: "Tue Nov 24 2020 10:00:00 -0600",
                  scheduledTimeZone: "CST/UTC-06:00",
                  endDateTime: "Tue Nov 24 2020 11:30:00 -0600"
                  enableTwilio: 1,
                  enableMediaServer: true,
                }) {
                  message result status
                }
              }
            
          

Response
-

          
            {
              "data": {
                "createMeeting": {
                  "message": "createMeeting() succeeded. New Meet_ID:1234567",
                  "result": "1234567",
                  "status": "completed"
                }
              }
            }
          
          

Webinar w/ Registration
For 1-to-many broadcasts.

            
              mutation {
                createMeeting(input: {
                  meetingName: "API Webinar Test",
                  scheduledDateTime: "Tue Nov 24 2020 12:30:00 -0600",
                  scheduledTimeZone: "CST/UTC-06:00",
                  endDateTime: "Tue Nov 24 2020 14:00:00 -0600"
                  enableTwilio: 1,
                  enableMediaServer: true,
                  enableRegistration: true,
                  disableVideo: true,
                  disableAudio: true,
                  disableScreen: true,
                  disableFileUpload: true,
                  disableWebVideoPlayer: true,
                  enableRestrictedUserList: true,
                  enableRestrictedChat: true,
                }) {
                  message result status
                }
              }
            
          

Response
-

          
            {
              "data": {
                "createMeeting": {
                  "message": "createMeeting() succeeded. New Meet_ID:7654321",
                  "result": "7654321",
                  "status": "completed"
                }
              }
            }
          
          

addVerifiedGuest
Add special attendees to your meetings who get a unique link for maximum security and individualized permissions that override meeting defaults. Add the Moderator permission to add an additional host to your meeting. This API is also used in secure meetings, such as doctors meeting with patients or attorneys meeting with clients. Be sure to run the getVerifiedGuest query to get each user's link.

Add Special Attendees

            
              mutation {
                addVerifiedGuest(
                  input: {
                    meetId: "7654321"
                    guestName: "John Doe"
                    email: "johndoe@domain.com"
                    permissions: [
                      webcam
                      microphone
                      screenSharing
                      chat
                      fileUpload
                      fileDownload
                      webVideoPlayer
                    ]
                  }
                ) {
                  message
                  result
                  status
                }
              }
            
          

Response

          
            {
              "data": {
                "addVerifiedGuest": {
                  "message": "Records added successfully",
                  "result": "1",
                  "status": "completed"
                }
              }
            }
          
          

URL API

Joining the web based meeting requires visting a URL with a compatible web browser.

The URL to join the meeting should be constructed as follows:

EXAMPLE (standard meeting/webinar):

https://myaccount.megameeting.com/meeting/?id=1234567

The URL consists of 1) Your account domain 2) /meeting/ 3) query string for meeting ID.

OPTIONAL:

https://myaccount.megameeting.com/meeting/?id=1234567&name=John

Adding the name parameter allows you to include a name for the user that will appear in the meeting attendee list. If no name is provided, the user will be required to enter a name before joining the meeting.

OPTIONAL:

https://myaccount.megameeting.com/meeting/?id=1234567&name=John&go=1

Adding the go parameter allows you to bypass the guest landing page and immediately join the meeting. The name parameter is also required if using the go parameter.


Meetings with Verified Guests enabled, or Webinars with Registration enabled, cannot be joined via standard URL. The URL must contain the unique key for each individual attendee.

EXAMPLE (secured meeting/webinar):

https://myaccount.megameeting.com/meeting/?key=abcdef123456

The URL consists of 1) Your account domain 2) /meeting/ 3) query string for guest key.

OPTIONAL:

https://myaccount.megameeting.com/meeting/?key=abcdef123456&go=1

Adding the go parameter allows you to bypass the guest landing page and immediately join the meeting.

Try it FREE for 14 Days!
Try our meeting and webinar platform for 14 days, completely free!

Start My Free Trial