canonical: https://jentic.com/apis/classdo.com/classdo

# ClassDo API

The ClassDo API lets developers build, manage, and operate online classrooms, virtual rooms, and organizations on the ClassDo platform. It exposes both a GraphQL endpoint and REST-style operations for room lifecycle management, participant administration, recording control, and billing inspection. The API supports inviting members, locking rooms during sessions, and starting or stopping cloud recordings programmatically. It is designed for education providers, tutoring platforms, and SaaS products that embed live teaching experiences.

## For AI agents

Create and manage ClassDo virtual classrooms, add participants, control recordings, and inspect organization billing. Useful for tutoring, training, and live-class workflows.

## Scope

Does not handle course content, grading, payment processing, or learner assessments - use for ClassDo virtual classroom and organization management only.

## Capabilities

- Create, update, and delete ClassDo rooms with custom configuration
- Add or remove participants from rooms and organizations
- Start and stop cloud recordings for live sessions
- Lock or unlock rooms to control mid-session access
- Send invitations to onboard new organization members
- Retrieve current billing information for an organization
- Execute arbitrary GraphQL queries against the ClassDo schema

## Use cases

### Tutoring platform classroom orchestration

Tutoring platforms can spin up a fresh ClassDo room for each lesson, add the student and tutor, and tear the room down afterward. Using POST /rooms to provision and DELETE `/rooms/{roomId}` to clean up keeps the workspace tidy and ensures each session is isolated. Recording can be triggered automatically at lesson start so transcripts and replays are captured without manual intervention.

Example prompt: Create a new ClassDo room titled 'Algebra 101 - 2026-06-10', add the tutor and student as members, and start cloud recording when the session begins

### Cohort onboarding for training organizations

Corporate training and bootcamp organizations onboard new cohorts by inviting members in bulk and assigning them to organization-level rooms. POST /invitations sends the invite email and POST `/organizations/{orgId}/members` enrolls the user once they accept. This removes the manual admin work of seat assignment and ensures every learner has a room they can access on day one.

Example prompt: Send invitations to 25 new bootcamp learners and add them to the 'Spring Cohort' ClassDo organization once they accept

### Recording control for compliance and review

Schools and compliance-bound training providers must record certain sessions for review. Calling POST `/rooms/{roomId}/recording/start` at session open and POST `/rooms/{roomId}/recording/stop` at close gives a deterministic recording window. Recordings can be tied to attendance lists fetched via GET `/rooms/{roomId}/members` for downstream archival.

Example prompt: Start recording on ClassDo room ID 'rm_123' at 09:00, stop it at 10:00, and log the participant list to the audit database

### AI agent integration via Jentic

An AI scheduling assistant uses Jentic to discover the ClassDo API by intent, loads the create-room schema, and provisions classrooms in response to natural-language requests from teachers. Because authentication is JWT bearer, the token is held in your Jentic One instance and never exposed to the agent's prompt context. This pattern lets a single agent serve multiple ClassDo organizations without leaking credentials between tenants.

Example prompt: Receive 'create a maths room for 3 PM Friday' via chat, search Jentic for ClassDo room creation, load the schema, and execute POST /rooms with the parsed parameters

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/rooms` | Create a new virtual classroom |
| GET | `/rooms/{roomId}` | Retrieve room details |
| POST | `/rooms/{roomId}/members` | Add a member to a room |
| POST | `/rooms/{roomId}/recording/start` | Start cloud recording |
| POST | `/rooms/{roomId}/recording/stop` | Stop cloud recording |
| POST | `/rooms/{roomId}/lock` | Lock a room to prevent new joins |
| POST | `/invitations` | Send an invitation to a new user |
| GET | `/billing` | Get organization billing information |

## Key resources

- **Rooms** — Create, list, update, lock, unlock, and delete virtual classrooms
- **Room Members** — Add and list participants within a specific room
- **Recordings** — Start and stop cloud recording for a live room
- **Organizations** — Manage organization-level membership
- **Invitations** — Send invitation links to new users
- **Billing** — Retrieve current billing information for an organization
- **Viewer** — Fetch the currently authenticated user

## Why Jentic

- **Setup:** Wiring ClassDo by hand means attaching its bearer token to every call against api.classdo.com and tracking room ids across create, member, and recording operations yourself. Through Jentic you install once, import ClassDo from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** ClassDo puts the room id in the URL path (`/rooms/{roomId}/...`), so a rule can pin your agent to one room: it can add members and start or stop recording for that room and nothing else. You choose the operations it may call, so room locking is not included unless you add it.
- **Credential handling:** Your ClassDo token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'start recording a room' or 'invite a member in ClassDo', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Whereby API** — Embedded video meeting rooms with similar room-lifecycle operations
- **Zoom Meetings API** — Enterprise-grade meeting and webinar platform with broader endpoint coverage
- **Moodle API** — Open-source LMS for course content and grading

## FAQ

### What authentication does the ClassDo API use?

The ClassDo API uses HTTP bearer authentication with JWT tokens, declared as the BearerAuth security scheme. Tokens are issued by ClassDo and passed in the Authorization header. Through Jentic, the JWT is stored in the credential vault so agents can call the API without ever holding the raw token in their prompt context.

### Can I record live sessions with the ClassDo API?

Yes. Call POST `/rooms/{roomId}/recording/start` to begin a cloud recording for the session, and POST `/rooms/{roomId}/recording/stop` to end it. This gives you precise control over the recording window and lets you tie recordings to specific scheduled sessions.

### How do I lock a ClassDo room mid-session?

Send POST `/rooms/{roomId}/lock` to prevent any further participants from joining. Use POST `/rooms/{roomId}/unlock` to allow joins again. This is useful for exam scenarios or once a class has reached capacity.

### Does the ClassDo API expose GraphQL or REST?

Both. The base server is https://api.classdo.com/graphql and POST /graphql accepts arbitrary GraphQL queries, while named REST-style paths such as /rooms and `/organizations/{orgId}/members` are also available for common operations. Use whichever style matches your client tooling.

### How do I create a ClassDo classroom through Jentic?

Install the SDK with pip install jentic, then run a search for 'create a classdo room', load the returned operation schema, and execute it with the parameters for room name and members. Jentic handles credential injection so the JWT never touches your agent's context.

### Can I retrieve billing information programmatically?

Yes. GET /billing returns the current billing information for the authenticated organization, including plan and usage details. This lets finance automation pull subscription data without logging into the ClassDo dashboard.

### Can I limit what my agent is allowed to do with the ClassDo API?

Yes. Because you run Jentic One yourself, your own rules decide which ClassDo operations and credentials the agent may use. Since ClassDo carries the room id in the URL path (`/rooms/{roomId}/...`), you can pin the agent to a single room so it can add members and start or stop recording for that room and nothing else. You pick the operations it may call, so an action like locking a room stays off the list unless you add it.
