Developers and agents
The public lessons, as data.
A read-only JSON API, an OpenAPI document and a Model Context Protocol endpoint give exact answers about the public lessons, grade guides, worksheet skills and classroom tools of Knowledge Made Fun. No key, no account, nothing personal.
What you can read
Nine routes, one answer each.
Every route is under https://knowledgemadefun.com/api/public/v1. Each item carries the url of its public page.
- /api/public/v1/site
- The site's name, address, paragraph, facts, free actions and the addresses of the rest of this layer.
- /api/public/v1/lessons
- The lessons, in pages of up to 50, filtered by grade and subject and searched with q.
- /api/public/v1/lessons/{id}
- One lesson: its transcript with time stamps, curriculum placements, practice questions with their answers, related lessons and captions.
- /api/public/v1/grades
- Every grade with a guide: label, summary, lesson count, subjects and the guide's address.
- /api/public/v1/grades/{grade}
- One grade's guide: subjects, strands, lessons, the Province's own curriculum pages, worksheet skills and free actions.
- /api/public/v1/subjects
- Every subject with lessons and its count per grade.
- /api/public/v1/worksheets
- The maths worksheet skills, or one grade's: title, grade, strand, levels and the page's address.
- /api/public/v1/worksheets/{skill}
- One skill: what each level practises, the curriculum codes, the worked example's steps, the reference sheets and where to print it.
- /api/public/v1/tools
- The five classroom tools with their addresses.
Try it
Three ways in.
From a shell
Grade 7 lessons that mention fractions, as one page of JSON.
curl "https://knowledgemadefun.com/api/public/v1/lessons?grade=7&q=fractions"From JavaScript
One lesson with its transcript, from any origin.
const res = await fetch("https://knowledgemadefun.com/api/public/v1/lessons/math-what-a-ratio-is");
const lesson = await res.json();
console.log(lesson.title, lesson.url);
console.log(lesson.transcript_text);As an MCP server
Paste this into the MCP servers list of Claude Desktop (Settings, Developer, Edit Config), the MCP settings of Cursor, or add the address as a connector in ChatGPT. The tools are search_lessons, get_lesson, list_grades, get_grade_guide, list_worksheet_skills, get_worksheet_skill, list_classroom_tools, get_site_facts.
{
"mcpServers": {
"knowledge-made-fun": {
"url": "https://knowledgemadefun.com/mcp"
}
}
}The limits
Enough for an assistant, not for a scraper.
- 120 requests a minute
- Per address, on the API. Past that the answer is 429 with a Retry-After header.
- 60 MCP calls a minute
- Per address, counted apart from the API.
- 50 items a page
- The lessons list pages at up to 50 items; the default is 20.
- No key, no account
- Nothing to register and nothing to send but the request. Answers are cached for an hour, so repeats are quick.
What you may do with it
Read it, quote it, link to it.
The text the API returns is the text on the public pages: lesson titles, the question each answers, transcripts, curriculum placements, the practice questions, the grade guides, the worksheet skill descriptions and the tool pages. You may read it, quote it and link to the lesson page it came from.
The videos stream on the site and are not downloadable. The API never returns a video file or a link to one.
Nothing personal is in the API: no accounts, no classes, no student work, no names. There is nothing to protect because there is nothing of that kind here.
How to cite us
The name and the address.
The exact name is Knowledge Made Fun, and the address is https://knowledgemadefun.com/. Every lesson, grade guide, worksheet skill and tool the API returns carries its own url; cite that address when you use the item, so a reader lands on the page with the transcript, the player and the practice questions.
For machines
The files an agent reads first.
The MCP endpoint at https://knowledgemadefun.com/mcp answers POST only, so opening it in a browser answers 405. The eight tools are read-only and every result carries a url. Questions go to the contact page.