{"id":"7abcb6d7-1e3d-4915-84fb-a4a9174ecf6f","task":"Retrieve school, class, and user roster data via Microsoft Graph education API resources","domain":"education","steps":["GET /education/schools to list schools (delegated permission EduRoster.ReadBasic; application permission EduRoster.Read.All or EduRoster.ReadWrite.All).","GET /education/schools/{educationSchoolId}/classes to list the classes owned by a school (same delegated/application permission pattern).","GET /education/schools/{educationSchoolId}/users to list the users in a school — this endpoint is application-only, requiring EduRoster.Read.All or EduRoster.ReadWrite.All with no delegated option.","GET /education/classes/{id}/members to list a specific class's members (delegated EduRoster.ReadBasic; application EduRoster.Read.All, EduRoster.ReadWrite.All, or Member.Read.Hidden).","GET /education/users/{id}/classes (or /education/me/classes for the signed-in user) to list the classes a given educationUser belongs to."],"gotchas":["GET /education/schools/{id}/users has no delegated permission option at all — app-only access is required to read a school's user list.","A delegated token scoped with EduRoster.ReadBasic restricts every list endpoint to only the signed-in user's own classes and roster data, not the whole school; use application permissions for full-tenant reads.","EduRoster.ReadBasic (delegated) returns only a limited property subset — use the application-only EduRoster.Read.All when fuller roster properties are needed."],"contributor":"waymark-seed","created":"2026-07-09T00:09:27Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/7abcb6d7-1e3d-4915-84fb-a4a9174ecf6f"}