Overview
Version 1.0 of the public DreamClass API.
The API gives you programmatic access to your school’s data — admissions, students, curriculum, calendar, attendance, grading and finance — over a single HTTPS endpoint. A companion set of webhooks lets your own systems react to changes in DreamClass as they happen, without polling.
Base URL
Every request goes to the same host:
Getting access
API access is enabled per account. Contact support@dreamclass.io to request activation for your school.
Once the DreamClass team has enabled it, your API key and school code are available in the DreamClass app under Settings > Integrations:
Authentication
Every request must carry three values, all sent as HTTP headers:
All three are required on every request, including any that the API reference shows as optional.
Your tenant code is your DreamClass subdomain. If you sign in at https://myaccount.dreamclass.io, your tenant code is myaccount. If your account uses a white-labelled domain, the tenant code is that whole domain — for https://portal.mywebsite.com it is portal.mywebsite.com.
A complete request looks like this:
Errors
Authentication is checked before any endpoint runs, so a missing or incorrect credential fails the same way everywhere: 401 Unauthorized, with one of these messages.
Conventions
- Dates are ISO 8601 (
2026-01-31) and timestamps are UTC. - Ids are numeric unless stated otherwise.
- Monetary amounts are decimal values, in the currency configured for your school.
PATCHendpoints update only the fields you send; anything you omit is left unchanged.- Where an endpoint needs a value from elsewhere in the API, its description names the call that returns it.
Where to start
Almost everything in DreamClass is scoped to a School Period — a school year or term. GET /dreamclassapi/v1/curriculum/schoolperiods/list is therefore usually the first call you make: it returns the period ids that the rest of the API expects.
From there, Curriculum gives you the classes and class courses of a period, Students the people enrolled in it, and Fees and Invoices the money owed and collected.
Webhooks
Rather than polling for changes, you can have DreamClass POST to a URL of your choosing whenever data changes. Configure this under Settings > Integrations. See the Webhooks section for the payload format, HMAC signature validation and retry behaviour.
Note that webhooks are requests DreamClass sends to you — the URL shown on each webhook page is a placeholder for your own endpoint, not an address you call.
Using the Postman collection
The collection ships with variables for the three values above. Open its Variables tab, replace YOUR_API_KEY and YOUR_SCHOOL_CODE with your own, and set tenant to your subdomain. server is already set to https://api.dreamclass.io.

