Class (fka ClassEDU) Schedules API

Manage the scheduled dates (sessions) for a class.

Operations 3

POST /api/v1/schedules Add a Class Date #
GET /api/v1/schedules Get Class Dates #
DELETE /api/v1/schedules Remove a Class Date #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/class-fka-classedu-schedules-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

class-fka-classedu-schedules-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Class Developer Classes Schedules API
  version: v1
  x-apievangelist-provenance:
    generated: '2026-07-18'
    method: generated
    source: https://developer.class.com/
    note: Faithful OpenAPI reconstruction of the operations, paths, HTTP methods, authentication scheme, permission scopes, pagination model and documented request fields published on developer.class.com. Request/response object schemas capture only fields named in the public documentation; no fields were invented. This is an API Evangelist generated spec, not a Class-published artifact.
  description: REST API for Class (fka ClassEDU), the virtual classroom platform built for Zoom and Microsoft Teams. The API lets administrators and integrators provision classes, manage enrollments, generate learner launch links, schedule class dates, manage reusable class templates, manage non-learner users, and pull attendance and engagement reporting. Authentication uses a per-organization API key presented as a Bearer token, gated by permission scopes.
  contact:
    name: Class Developer Platform
    url: https://developer.class.com/
  termsOfService: https://www.class.com/terms-of-service/
servers:
- url: https://{organization}.class.com
  description: Base URL is unique to each organization and is retrieved from the API Keys page in the Class Admin UI after an API key is created.
  variables:
    organization:
      default: your-organization
      description: Your organization's Class subdomain.
security:
- bearerAuth: []
tags:
- name: Schedules
  description: Manage the scheduled dates (sessions) for a class.
paths:
  /api/v1/schedules:
    post:
      operationId: addClassDate
      summary: Add a Class Date
      tags:
      - Schedules
      security:
      - bearerAuth:
        - schedule:write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScheduleCreate'
      responses:
        '201':
          $ref: '#/components/responses/ScheduleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    get:
      operationId: getClassDates
      summary: Get Class Dates
      tags:
      - Schedules
      security:
      - bearerAuth:
        - schedule:read
      parameters:
      - $ref: '#/components/parameters/ClassId'
      - $ref: '#/components/parameters/ExtClassId'
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Limit'
      responses:
        '200':
          $ref: '#/components/responses/ScheduleListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: removeClassDate
      summary: Remove a Class Date
      tags:
      - Schedules
      security:
      - bearerAuth:
        - schedule:write
      parameters:
      - $ref: '#/components/parameters/ScheduleId'
      responses:
        '200':
          $ref: '#/components/responses/Deleted'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    ScheduleListResponse:
      description: A page of class dates.
      content:
        application/json:
          schema:
            type: object
            properties:
              data:
                type: array
                items:
                  $ref: '#/components/schemas/Schedule'
              pagination:
                $ref: '#/components/schemas/Pagination'
    BadRequest:
      description: Bad Request - validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Deleted:
      description: The resource was removed.
    NotFound:
      description: Not Found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ScheduleResponse:
      description: A class date.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Schedule'
    Unauthorized:
      description: Unauthorized - missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden - the API key lacks the required scope.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
          description: Human-readable explanation of the failure.
    ScheduleCreate:
      type: object
      required:
      - class_id
      - start_time
      - end_time
      properties:
        class_id:
          type: string
        start_time:
          type: integer
          description: Unix time.
        end_time:
          type: integer
          description: Unix time.
        timezone:
          type: string
          deprecated: true
          description: Time Zone ID (deprecated).
    Pagination:
      type: object
      properties:
        total_records:
          type: integer
        current_page:
          type: integer
        total_pages:
          type: integer
        next_page:
          type:
          - integer
          - 'null'
        prev_page:
          type:
          - integer
          - 'null'
    Schedule:
      type: object
      properties:
        schedule_id:
          type: string
        session_id:
          type: string
        class_id:
          type: string
        start_time:
          type: integer
        end_time:
          type: integer
  parameters:
    ScheduleId:
      name: schedule_id
      in: query
      description: Schedule (class date) identifier.
      required: false
      schema:
        type: string
    ClassId:
      name: class_id
      in: query
      description: Class identifier assigned by Class.
      required: false
      schema:
        type: string
    ExtClassId:
      name: ext_class_id
      in: query
      description: External class identifier supplied by the integrator.
      required: false
      schema:
        type: string
    Limit:
      name: limit
      in: query
      description: Records per page (1-1000).
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 100
    Page:
      name: page
      in: query
      description: Page number to retrieve (positive integer).
      required: false
      schema:
        type: integer
        minimum: 1
        default: 1
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Per-organization API key presented as a Bearer token in the Authorization header (Authorization: Bearer <api_key_secret>). The key secret is shown only once, at key creation, in the Admin UI. Each key is granted a set of permission scopes; selecting a write scope automatically grants the matching read scope. Documented scopes: class:read, class:write, enrollment:read, enrollment:write, attendance:read, metrics:read, schedule:read, schedule:write, template:read, template:write, user:read, user:write.'