Class (fka ClassEDU) Templates API
Manage reusable class templates.
Manage reusable class templates.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/class-fka-classedu-templates-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Class Developer Classes Templates 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: Templates
description: Manage reusable class templates.
paths:
/api/v1/templates:
post:
operationId: createTemplate
summary: Create a Template
tags:
- Templates
security:
- bearerAuth:
- template:write
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TemplateCreate'
responses:
'201':
$ref: '#/components/responses/TemplateResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
get:
operationId: getTemplates
summary: Get templates
description: Get all templates, or a single template by template_id.
tags:
- Templates
security:
- bearerAuth:
- template:read
parameters:
- $ref: '#/components/parameters/TemplateId'
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Limit'
responses:
'200':
$ref: '#/components/responses/TemplateListResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateTemplate
summary: Update a Template
tags:
- Templates
security:
- bearerAuth:
- template:write
parameters:
- $ref: '#/components/parameters/TemplateId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TemplateCreate'
responses:
'200':
$ref: '#/components/responses/TemplateResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteTemplate
summary: Remove a Template
tags:
- Templates
security:
- bearerAuth:
- template:write
parameters:
- $ref: '#/components/parameters/TemplateId'
responses:
'200':
$ref: '#/components/responses/Deleted'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
TemplateResponse:
description: A template.
content:
application/json:
schema:
$ref: '#/components/schemas/Template'
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'
TemplateListResponse:
description: A page of templates.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Template'
pagination:
$ref: '#/components/schemas/Pagination'
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.
Template:
type: object
properties:
template_id:
type: string
name:
type: string
description:
type: string
status:
type: string
TemplateCreate:
type: object
required:
- name
properties:
name:
type: string
description:
type: string
status:
type: string
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'
parameters:
TemplateId:
name: template_id
in: query
description: Template identifier.
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.'