# ClassDo's API

Integrating ClassDo seamlessly with your existing cloud based SAAS services

ClassDo's API lets you quickly and easily integrate ClassDo into your own application within days or even hours.

With minimal development, you can effortlessly turn your existing web application, such as a Learning Management System (LMS), Forum...and more, into a fully-fledged application that works seamlessly with ClassDo's virtual rooms. It's all custom-branded to you, feels like a part of your application and makes user experience for your users very smooth.

ClassDo's API can be accessed via:

  1. GraphQL (recommended), where you can find the schema here (opens new window)
  2. Our open-sourced JavaScript SDK (opens new window), which you are free to fork and modify
  3. Zapier, which allows you to link up ClassDo with your favourite applications

Here is a glimpse of what you can do with the API:

  • Provide a fuss-free, one-click access into ClassDo's virtual room
  • Send out multiple room invitations at once
  • Create or delete multiple rooms
  • Retrieve billing information for your organisation
  • ...and many more, right from your application itself!

# What is ClassDo's API?

Objects are the main building blocks of ClassDo's API, such as "Organization", "Organization Member", "Room", "Room Group", "Room Member", and many more. They are the core "entities" that are composed together, with clear relationships that define how each object interacts and relates to another object.

For instance, an "Organization" can have many "Organization Member" and many "Room". Each "Organization Member" can belong to many "Room" as well.

With ClassDo's API, it provides a way for you to retrieve or modify the information for these objects at once, using GraphQL's powerful capabilities. Here is a quick abstracted example:

query { # 'query' operation to read data
  ...
  # Gets the first 20 rooms, ordered by creation date in descending order
  rooms(input: { first: 20, orderBy: createdAt_DESC }) {
    ...
      id # Room ID
      name #Room name
      members { # Gets all the members within each room
        ...
        id # Room member ID
        profile { # Unwrap the user profile
          firstName # User's first name
          lastName # User's last name
        }
      }
  }
}

With just a few lines of code, we are obtaining a lot of information in just 1 single request. Let's break that down- we obtained the first 20 rooms, ordered by creation date in descending order. For each room, we retrieve several information: the room ID, room name, as well as the particulars for the room members.

Some of the actions you can programmatically perform on ClassDo include:

  • Room Modifications:

    • Create Room
    • Delete Room
    • Lock/Unlock Room
    • Start/Stop Recording
  • Room Member Modifications:

    • Add Room Members
    • Delete Room Members
    • Send Invitation
  • User Modificiations:

    • Update Organization Member

You can see the whole list here (opens new window)

# How can you integrate with ClassDo's API?

You can integrate ClassDo without writing a single line of code via our Zapier (opens new window) plugin, which allows you to connect ClassDo with over 3000+ of applications.

Zapier

Or, if you want more flexibility with complex logic, you can write code yourself by connecting with our API via:

  1. GraphQL (recommended), where you can find the schema here (opens new window)
  2. Our open-sourced JavaScript SDK (opens new window), which you are free to fork and modify

The main way to do so is directly via GraphQL. GraphQL is supported on many different languages, such as NodeJS, Python and Go. For the full list of supported language, please refer to this documentation (opens new window).

Unfamiliar with GraphQL?

Check out this article about GraphQL to learn more.

Other options include a Javascript SDK (opens new window), which is a NodeJS library wrapper that makes the GraphQL calls for you.