classcharts

Query and interact with ClassCharts (UK education classroom management) via the classcharts-api JS library. Use when the user mentions ClassCharts, school behaviour points, homework, timetable, detentions, attendance, rewards shop, or wants to script/integrate with ClassCharts parent or student data.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "classcharts" with this command: npx skills add m0nkmaster/classcharts

ClassCharts API (JavaScript/TypeScript)

ClassCharts is a UK education classroom management platform. This skill uses the unofficial classcharts-api JS library to fetch homework, behaviour, timetable, detentions, attendance, announcements, badges, and more. Supports both Parent and Student authentication.

Important: The API is unofficial. Never hardcode credentials in prompts, logs, or committed code. Use environment variables or a secure secret store.

Installation

npm install classcharts-api

Requirements: Node.js 20+ or Deno

Authentication

Two client types with different login flows:

Parent Client

Parent logs in with email and password. Access to all linked pupils.

import { ParentClient } from "classcharts-api";

const client = new ParentClient(
  process.env.CLASSCHARTS_EMAIL!,
  process.env.CLASSCHARTS_PASSWORD!,
);
await client.login();

// Defaults to first pupil; switch with selectPupil
const pupils = client.pupils; // or await client.getPupils()
client.selectPupil(pupils[1].id); // if multiple children

Student Client

Student logs in with ClassCharts code and date of birth.

import { StudentClient } from "classcharts-api";

// Date of birth MUST be DD/MM/YYYY
const client = new StudentClient(
  process.env.CLASSCHARTS_CODE!, // e.g. "ABCD1234"
  "01/01/2010",
);
await client.login();

Date formats

Use caseFormatExample
API options (from, to, date)YYYY-MM-DD"2024-03-10"
Student date of birth (login)DD/MM/YYYY"01/01/2010"
getStudentCode dateOfBirthYYYY-MM-DD"2010-01-01"

Shared methods (Parent & Student)

All methods require await client.login() first. Session auto-renews after 3 minutes.

MethodOptionsDescription
getStudentInfo()Student profile and metadata
getActivity({ from, to, last_id? })Dates YYYY-MM-DD, optional paginationActivity feed (paginated)
getFullActivity({ from, to })Dates YYYY-MM-DDActivity between dates (auto-paginates)
getBehaviour({ from?, to? })Dates YYYY-MM-DDBehaviour points timeline and reasons
getHomeworks({ from?, to?, displayDate? })Dates, displayDate: "due_date" | "issue_date"Homework list
getLessons({ date })date: YYYY-MM-DDTimetable for a specific date
getBadges()Earned badges
getAnnouncements()School announcements
getDetentions()Detentions
getAttendance({ from, to })Dates YYYY-MM-DDAttendance records
getPupilFields()Custom pupil fields/stats

Parent-only methods

MethodDescription
getPupils()List pupils linked to parent account
selectPupil(pupilId)Set active pupil for subsequent requests
changePassword(current, new)Change parent account password

Student-only methods

MethodDescription
getRewards()Rewards shop items and balance
purchaseReward(itemId)Purchase item from rewards shop
getStudentCode({ dateOfBirth })Get student code (dateOfBirth: YYYY-MM-DD)

Quick examples

// Homework for date range
const homeworks = await client.getHomeworks({
  from: "2024-03-01",
  to: "2024-03-31",
  displayDate: "due_date",
});

// Today's timetable
const today = new Date().toISOString().slice(0, 10); // YYYY-MM-DD
const lessons = await client.getLessons({ date: today });

// Behaviour summary
const behaviour = await client.getBehaviour({
  from: "2024-01-01",
  to: "2024-03-10",
});

// Student: list rewards shop and purchase
const rewards = await client.getRewards();
const purchase = await client.purchaseReward(rewards.data[0].id);

Response shape

Responses follow ClassChartsResponse<Data, Meta>:

{
  success: 1,
  data: T,      // Array or object depending on endpoint
  meta: M,      // Session ID, dates, counts, etc.
  error?: string
}

Errors throw if success === 0.

When to use this skill

  • User asks about ClassCharts, school homework, behaviour points, timetable, detentions, attendance, or rewards.
  • User wants to script, integrate, or automate ClassCharts data.
  • User mentions parent/student portal in the context of UK schools and ClassCharts.

Links

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

NEIS School CLI

Query Korean school information, meals, and timetables from the official NEIS OpenAPI. Use when the user asks for school lunch menus, school timetables, or s...

Registry SourceRecently Updated
031
Profile unavailable
General

AI Tutor

AI智能家教老师。专为小学生、初中生、高中生提供全学科辅导。 特点:(1) 个性化教育,根据学生反馈调整 (2) 深入浅出讲解,支持追问 (3) 互动式教学,主动提问 (4) 课程连贯性,学习记录延续 (5) 支持语音+图形讲解 触发条件:(1) 学生问作业题 (2) 辅导功课 (3) 知识点讲解 (4) 学习规划

Registry SourceRecently Updated
143
Profile unavailable
General

Science Sim Author

Generate self-contained interactive science simulations as a single index.html from a SimSpec YAML or JSON. Use when the user asks for physics, chemistry, bi...

Registry SourceRecently Updated
0212
Profile unavailable