🔌 API Reference
Technical documentation for developers integrating with the Content Cache API.
Authentication
All API requests require authentication via httpOnly cookies.
JavaScript
// All requests must include credentials
fetch('/api/class-content/{classId}', {
credentials: 'include', // Required for httpOnly cookies
headers: {
'Content-Type': 'application/json'
}
});
⚠️ Access Control
Only the class owner and invited content experts can access these endpoints.
Unauthorized requests return 403 Forbidden.
List Class Content
Get all cached content for a class organized by competency and mode.
HTTP
GET /api/class-content/:classId
Response
JSON
{
"success": true,
"classId": "class-123",
"competencies": [
{
"competencyId": "comp-1",
"competencyName": "AI Ethics",
"modes": {
"KE": {
"versions": [1, 2, 3, 4],
"activeVersion": 2
},
"SPL": {
"versions": [1],
"activeVersion": 1
},
"SATA": {
"versions": [1, 2],
"activeVersion": 2
}
}
}
]
}
Get Specific Version
Retrieve content for a specific version.
HTTP
GET /api/class-content/:classId/:competencyId/:mode/:version
Parameters
| Parameter | Type | Description |
|---|---|---|
classId |
string | The class identifier |
competencyId |
string | The competency identifier |
mode |
string | KE, SPL, or SATA |
version |
number | Version number (1-4) |
Response
JSON
{
"success": true,
"content": {
// Content data varies by mode
},
"metadata": {
"version": 2,
"generatedAt": "2025-11-25T10:30:00Z",
"editedBy": "teacher@school.edu",
"lastEditedAt": "2025-11-25T14:45:00Z",
"editCount": 3,
"isActive": true
}
}
Edit Version
Update content for a specific version. Creates a new version.
HTTP
PUT /api/class-content/:classId/:competencyId/:mode/:version
Request Body
JSON
{
"content": {
// Updated content data
}
}
Response
JSON
{
"success": true,
"newVersion": 3,
"message": "Content updated successfully"
}
Set Active Version
Change which version students see.
HTTP
POST /api/class-content/:classId/:competencyId/:mode/set-active
Request Body
JSON
{
"version": 2
}
Response
JSON
{
"success": true,
"activeVersion": 2,
"message": "Active version updated"
}
Delete Version
Remove a specific version. Cannot delete active version.
HTTP
DELETE /api/class-content/:classId/:competencyId/:mode/:version
Response
JSON
{
"success": true,
"message": "Version deleted successfully"
}
⚠️ Cannot Delete Active
Attempting to delete the active version returns 400 Bad Request.
Switch to a different active version first.
Regenerate Content
Request new AI-generated versions.
HTTP
POST /api/class-content/:classId/:competencyId/:mode/regenerate
Request Body
JSON
{
"count": 2, // Number of new versions (1-4)
"customPrompt": null // Optional: custom generation instructions
}
Response
JSON
{
"success": true,
"newVersions": [3, 4],
"message": "Generated 2 new versions"
}
Error Codes
| Code | Meaning | Resolution |
|---|---|---|
400 |
Bad Request | Check request body format |
401 |
Unauthorized | Login required |
403 |
Forbidden | Not owner/content expert |
404 |
Not Found | Class or content doesn't exist |
500 |
Server Error | Contact support |