Discover/MagicSchool API
live

MagicSchool APIapp.magicschool.ai

Access MagicSchool AI's public teacher and student tool catalog. Two endpoints return tool cards, benefit blurbs, FAQs, and related tools from the listing page.

Endpoint health
verified 3h ago
list_tools
get_tool
2/2 passing latest checkself-healing
Endpoints
2
Updated
3h ago

What is the MagicSchool API?

The MagicSchool AI API exposes 2 endpoints that cover the public tool catalog at app.magicschool.ai, returning tool names, descriptions, categories, and detail-page content. The list_tools endpoint retrieves up to 12 tool cards from the public listing in a single call, while get_tool returns the full marketing detail page for any individual teacher tool — including benefit blurbs, FAQ entries, and related tool recommendations.

This call costs1 credit / call— charged only on success
Try it
Restrict results to one section of the listing. Omitted = all tools.
api.parse.bot/scraper/69dbfefa-c2d5-40d6-919e-c3f995943b07/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/69dbfefa-c2d5-40d6-919e-c3f995943b07/list_tools?category=teacher' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace app-magicschool-ai-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: MagicSchool public tools catalog — browse, drill down, handle missing."""
from parse_apis.app_magicschool_ai_api import MagicSchool, ToolCategory, ToolNotFound

client = MagicSchool()

# List trending teacher tools from the public catalog.
for summary in client.tool_summaries.list(category=ToolCategory.TEACHER, limit=5):
    print(summary.name, "-", summary.description)

# Drill into the first teacher tool's full detail page via its slug.
teacher_hit = client.tool_summaries.list(category=ToolCategory.TEACHER, limit=1).first()
if teacher_hit is not None and teacher_hit.detail_slug is not None:
    tool = client.tools.get(slug=teacher_hit.detail_slug)
    print(tool.page_title)
    for benefit in tool.benefits:
        print(" •", benefit.headline)
    for faq in tool.faqs[:3]:
        print(" Q:", faq.question)
    for related in tool.related_tools:
        print(" Related:", related.name, related.detail_slug)

# Demonstrate typed error handling for a slug that doesn't exist.
try:
    client.tools.get(slug="nonexistent-tool")
except ToolNotFound:
    print("Tool not found — expected for an invalid slug.")

print("exercised: tool_summaries.list / tools.get / ToolNotFound")
All endpoints · 2 totalmissing one? ·

Returns every tool card shown on MagicSchool's public 'AI tools for teachers' listing page in one round trip (no pagination; the page currently shows 12 cards across two sections). Each row is one tool with its name, one-sentence description, category ('teacher' for the trending teacher tools section, 'student' for the top student tools section, 'other' if the site adds a new section), the section heading it came from, the marketing detail-page slug (teacher tools only; null for student tools), the in-app tool code from the student launch link (student tools only; null for teacher tools), the card link and image. Optional category filter is applied locally; an unknown category is rejected. The full 80+/50+ tool library is behind login and not included.

Input
ParamTypeDescription
categorystringRestrict results to one section of the listing. Omitted = all tools.
Response
{
  "type": "object",
  "fields": {
    "count": "number of tools returned after the category filter",
    "tools": "array of tool cards: name, description, category (teacher|student|other), section_title, detail_slug (nullable; input for get_tool), app_tool_code (nullable in-app tool identifier for student tools), url, image_url",
    "category": "the category filter applied, or null",
    "source_url": "public listing page the cards were read from"
  },
  "sample": {
    "data": {
      "count": 2,
      "tools": [
        {
          "url": "https://www.magicschool.ai/tools/lesson-plan",
          "name": "AI lesson plan generator",
          "category": "teacher",
          "image_url": "https://cdn.prod.website-files.com/645187275d5e5e4179e4063b/69e91333a4c2d9a765b5786d_Tool-Lesson-Plan-Generator.png",
          "description": "Build a lesson plan for any topic so you can spend more time teaching and less time planning.",
          "detail_slug": "lesson-plan",
          "app_tool_code": null,
          "section_title": "Trending teacher tools"
        },
        {
          "url": "https://app.magicschool.ai/magic-student/room/new?tool=quiz-me-s",
          "name": "Quiz me!",
          "category": "student",
          "image_url": "https://cdn.prod.website-files.com/645187275d5e5e4179e4063b/69ea88711dd21b273e057543_Student-Tool-Quiz-me.png",
          "description": "Give students a structured way to study any topic, at their own pace, on their own terms.",
          "detail_slug": null,
          "app_tool_code": "quiz-me-s",
          "section_title": "Top AI tools for students"
        }
      ],
      "category": null,
      "source_url": "https://www.magicschool.ai/magic-tools"
    },
    "status": "success"
  }
}

About the MagicSchool API

What the API covers

The API reads MagicSchool's publicly visible AI tools catalog, which currently lists tools across teacher and student sections. list_tools returns all tool cards in one call: each card includes the tool name, a one-sentence description, a category field (teacher, student, or other), a section_title, and a detail_slug that can be passed directly to get_tool. An optional category parameter filters the result to a single section. The response also includes a count of matched tools and the source_url of the listing page.

Detail page content via get_tool

get_tool accepts a slug string — taken directly from list_tools.tools[*].detail_slug — and returns the full public marketing page for that teacher tool. The response includes name, page_title, description (meta description), an array of benefits (each with a headline and text), an array of faqs (each with question and answer as published on the tool page), and a related_tools array listing tools promoted on that page. Each entry in related_tools carries its own name, description, and detail_slug, making it straightforward to iterate through the catalog.

Scope and data freshness

Both endpoints reflect the publicly accessible, no-login-required portions of the MagicSchool website. The full in-app tool library — accessible only after creating a MagicSchool account — is not covered. The listing page currently shows 12 cards; if MagicSchool adds more public tools, those will appear in list_tools responses accordingly.

Reliability & maintenanceVerified

The MagicSchool API is a managed, monitored endpoint for app.magicschool.ai — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when app.magicschool.ai changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official app.magicschool.ai API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a searchable directory of MagicSchool AI teacher tools using names, descriptions, and categories from list_tools
  • Extract benefit blurbs and FAQ content from individual tool pages via get_tool for competitive education-tool research
  • Map related_tools relationships returned by get_tool to understand how MagicSchool clusters its AI offerings
  • Aggregate meta descriptions and page titles from multiple slugs to compare how different tools are positioned
  • Identify all tools in the student category using the category filter on list_tools
  • Seed a content brief or product catalog by pulling structured benefit headlines and answer text from get_tool responses
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does MagicSchool AI have an official developer API?+
MagicSchool does not currently publish a public developer API or documented REST interface. This Parse API covers the publicly visible tool catalog pages without requiring a MagicSchool account.
What does list_tools return, and can I filter it by section?+
list_tools returns every tool card on the public listing page in one response: the tool name, one-sentence description, category (teacher, student, or other), section_title, and a detail_slug. Passing a category value restricts results to that section; omitting it returns all sections. The response includes a count of matched tools and the source_url.
Does get_tool work for student tools, or only teacher tools?+
get_tool currently covers teacher tool detail pages. Student tool cards appear in list_tools results with a detail_slug where available, but dedicated public detail pages are only confirmed for teacher tools. You can fork this API on Parse and revise it to add an endpoint targeting student tool detail pages if those become publicly accessible.
Is the full MagicSchool in-app tool library accessible through this API?+
No. The API covers only the publicly visible listing and teacher tool detail pages — roughly 12 tool cards at present. The complete in-app library requires a MagicSchool login and is not exposed. You can fork this API on Parse and revise it to add coverage if you have credentials and MagicSchool's terms permit programmatic access.
Does the API return user reviews, ratings, or usage statistics for tools?+
It does not. The available fields are name, description, benefit blurbs, page FAQs, and related tools — all drawn from the public marketing pages. Usage statistics and user-generated content are not part of the public pages these endpoints cover. You can fork this API on Parse and revise it to add an endpoint if MagicSchool exposes such data publicly in the future.
Page content last updated . Spec covers 2 endpoints from app.magicschool.ai.
Related APIs in EducationSee all →