Key Concepts
How MasteryConnect's entities relate — and the distinctions that will trip you up if you assume the endpoint names mean what they usually mean.
MasteryConnect is a standards-based assessment platform: teachers deliver assessments, and the platform tracks each student's mastery of the standards those assessments measure. The API exposes that structure directly, so it helps to know the shape before you start querying.
Everything Is District-Scoped
A credential belongs to exactly one district, and the district is resolved from the token on the server — never from anything you send. There is no request parameter that can widen the scope.
The practical consequences:
GET /api/v2/districtsreturns exactly one district: yours.An id belonging to another district returns
404 Not Found, not403. The API does not confirm that the record exists elsewhere.You cannot query across districts, even if your organisation operates several. Each needs its own credential.
The Organisational Hierarchy
District
└── School
├── Section (the roster that comes from your SIS)
└── Classroom (the mastery tracker teachers actually work in)
└── StudentSection vs. Classroom
This is the distinction most integrations get wrong first.
Origin
Synced from your SIS
Created in MasteryConnect
Represents
The official course roster
A teacher's mastery tracker
Analogue
"Period 3 Biology" in the SIS
The gradebook the teacher opens
A Section is the SIS's view of a group of students. A Classroom is the MasteryConnect tracker a teacher assesses against. They usually correspond, but they are separate records with separate ids, and one Section can back more than one Classroom. Assessment data hangs off the Classroom, not the Section.
A "tracker" is a Classroom. The /api/v2/trackers/{tracker_id}/assessments endpoint takes a classroom id as tracker_id — the two words name the same record. There is deliberately no top-level /api/v2/trackers collection; list classrooms via /api/v2/classrooms instead.
Kid vs. Student
Both words appear in MasteryConnect, and they are not synonyms:
A Kid is the person's account at the school — one per learner.
A Student is that person's enrolment in one classroom.
So one Kid has many Students: a learner in six classrooms is one Kid and six Student records. When you are joining data, the Kid is the stable identity of a person; the Student is a person-in-a-classroom.
The Assessment Hierarchy
Material vs. Assessment
A Material is the reusable template: the assessment as it was written. An Assessment is a copy of that template delivered to a specific classroom.
Deliver one Material to five classrooms and you get one Material and five Assessments. Edit the Material afterwards and the already-delivered Assessments do not change — they are snapshots, which is what makes historical results trustworthy.
Query Materials when you care about what was authored. Query Assessments when you care about what students actually took.
Items and Questions
An Item is a question in the context of one assessment — it carries the position, the point value, and the standard alignment for that assessment. The underlying Question (stem, type, depth of knowledge) lives in an item bank and can be reused across many Items.
Standards and Objectives
A standard is called an Objective throughout the API. Objectives are the learning targets that assessments measure and mastery is reported against.
An Objective can be attached to a Material, an Item, or a Classroom.
A Class Objective is an Objective tracked for a particular classroom — the standards that classroom is working on.
A Curriculum Map organises Objectives and Materials into a planned sequence, typically a scope-and-sequence for a course.
A Pathway groups Objectives for a subject into a progression.
Item Banks
An Item Bank is a collection of reusable Questions, and the Passages (reading passages, stimuli) those Questions refer to. Banks are the source authors draw on when building a Material.
Read-Only, By Design
The API serves GET requests only. There is no endpoint that creates, updates or deletes anything, and no scope that grants write access. It is built for extracting data into your own systems, not for driving MasteryConnect from outside.
What Is Deliberately Absent
Some data is withheld regardless of the scopes you hold:
Answer keys and correct answers. Reports tell you how many students got an item right; they never tell you what the right answer was.
Individual student responses.
SIS identifiers on sections (
sis_id,lms_sis_id).
If your integration needs any of these, talk to Instructure Support rather than looking for an undocumented parameter — there isn't one.
Next
Getting Started — get a token, make a call.
Conventions — how every response is shaped.
Last updated
Was this helpful?