ESC
Type to search...

EduRoster.ReadWrite.All

Export JSON
Export CSV
Copy URL
Print
Application Read/Write All Resources

Allows the app to read and write the structure of schools and classes in the organization's roster and education-specific information about all users to be read and written.

Permission data: April 6, 2026 at 4:06 AM UTC
Delegated Access App-Only Access

Permission Details

Application Permission

Read and write the organization's roster

Allows the app to read and write the structure of schools and classes in the organization's roster and education-specific information about all users to be read and written.

Properties

Microsoft Graph v1.0 endpoint-derived-docs

Properties is shown from stable Microsoft Graph v1.0 metadata.

Property Type Description
classCode StringNullable Class code used by the school to identify the class.
createdBy identitySet Entity who created the class
description StringNullable Description of the class.
displayName String Name of the class.
externalId StringNullable ID of the class from the syncing system.
externalSource educationExternalSource How this class was created. The possible values are: sis, manual.
externalSourceDetail StringNullable The name of the external source this resource was generated from.
externalName StringNullable Name of the class in the syncing system.
grade StringNullable Grade level of the class.
id String Object identifier. Inherited from entity.
mailNickname String Mail name for sending email to all members, if this is enabled.
term educationTerm Term for this class.
assignmentCategories educationCategory collection All categories associated with this class. Nullable.
assignmentDefaults object Specifies class-level defaults respected by new assignments created in the class.
assignments educationAssignment collection All assignments associated with this class. Nullable.

Showing 15 of 22 properties.

JSON Representation

Microsoft Graph v1.0 endpoint-derived-docs

JSON representation is shown from stable Microsoft Graph v1.0 metadata.

JSON representation
{
  "@odata.type": "#microsoft.graph.educationClass",
  "description": "String",
  "displayName": "String",
  "createdBy": {
    "@odata.type": "microsoft.graph.identitySet"
  },
  "classCode": "String",
  "externalName": "String",
  "externalId": "String",
  "externalSource": "String",
  "externalSourceDetail": "String",
  "grade": "String",
  "id": "String (identifier)",
  "mailNickname": "String",
  "term": {
    "@odata.type": "microsoft.graph.educationTerm"
  }
}

Relationships

Microsoft Graph v1.0 endpoint-derived-docs

Relationships is shown from stable Microsoft Graph v1.0 metadata.

Relationship Type Description
assignments educationAssignment collection All assignments associated with this class. Nullable.
assignmentCategories educationCategory collection All categories associated with this class. Nullable.
assignmentDefaults educationAssignmentDefaults collection Specifies class-level defaults respected by new assignments created in the class.
assignmentSettings educationAssignmentSettings collection Specifies class-level assignments settings.
group group The underlying Microsoft 365 group object.
members educationUser collection All users in the class. Nullable.
modules [educationModule] collection All modules in the class. Nullable.
schools educationSchool collection All schools that this class is associated with. Nullable.
teachers educationUser collection All teachers in the class. Nullable.

Graph Methods

Delegated access App-only access
Exact Microsoft Learn match

Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /education/classes
GET /education/classes/{id}
GET /education/classes/{id}/members
GET /education/classes/{id}/schools
GET /education/classes/{id}/teachers
GET /education/classes/delta
GET /education/me
GET /education/me/classes
GET /education/me/schools
GET /education/me/taughtClasses
GET /education/me/user
GET /education/schools
GET /education/schools/{educationSchoolId}
GET /education/schools/{educationSchoolId}/administrativeUnit
GET /education/schools/{educationSchoolId}/classes
GET /education/schools/{educationSchoolId}/users
GET /education/schools/delta
GET /education/users
GET /education/users/{educationUserId}/schools
GET /education/users/{educationUserId}/taughtClasses
GET /education/users/{id}
GET /education/users/{id}/classes
GET /education/users/{id}/user
GET /education/users/delta
POST /education/classes
POST /education/classes/{id}/members/$ref
POST /education/classes/{id}/teachers/$ref
POST /education/schools
POST /education/schools/{id}/classes/$ref
POST /education/schools/{id}/users/$ref
POST /education/users
PATCH /education/classes/{id}
PATCH /education/me
PATCH /education/schools/{id}
PATCH /education/users/{id}
DELETE /education/classes/{id}
DELETE /education/classes/{id}/members/{userId}/$ref
DELETE /education/classes/{id}/teachers/{userId}/$ref
DELETE /education/schools/{id}
DELETE /education/schools/{id}/classes/{classId}/$ref
DELETE /education/schools/{id}/users/{userId}/$ref
DELETE /education/users/{id}
Exact Microsoft Learn match

Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /education/classes
GET /education/classes/{id}
GET /education/classes/{id}/group
GET /education/classes/{id}/members
GET /education/classes/{id}/schools
GET /education/classes/{id}/teachers
GET /education/classes/delta
GET /education/me
GET /education/me/classes
GET /education/me/schools
GET /education/me/user
GET /education/schools
GET /education/schools/{id}/administrativeUnit
GET /education/schools/{id}/classes
GET /education/schools/{id}/users
GET /education/schools/delta
GET /education/users
GET /education/users/{id}
GET /education/users/{id}/classes
GET /education/users/{id}/schools
GET /education/users/{id}/user
GET /education/users/delta
GET /education/users/schools
POST /education/classes
POST /education/classes/{id}/members/$ref
POST /education/classes/{id}/teachers/$ref
POST /education/schools
POST /education/schools/{id}/classes/$ref
POST /education/schools/{id}/users/$ref
POST /education/users
PATCH /education/classes/{id}
PATCH /education/me
PATCH /education/schools/{id}
PATCH /education/users/{id}
DELETE /education/classes/{id}
DELETE /education/classes/{id}/members/{userId}/$ref
DELETE /education/classes/{id}/teachers/{userId}/$ref
DELETE /education/schools/{id}
DELETE /education/schools/{id}/classes/{classId}/$ref
DELETE /education/schools/{id}/users/{userId}/$ref
DELETE /education/users/{id}
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgEducationClass /education/classes
List educationClasses
Get-MgEducationClass /education/classes/{id}
Get educationClass
Get-MgEducationClassDelta /education/classes/delta
educationClass: delta
Get-MgEducationClassMember /education/classes/{id}/members
List members of an educationClass
Get-MgEducationClassSchool /education/classes/{id}/schools
List schools
Get-MgEducationClassTeacher /education/classes/{id}/teachers
List teachers
Get-MgEducationMeClass /education/me/classes
List classes of an educationUser
Get-MgEducationMeSchool /education/me/schools
List schools of an educationUser
Get-MgEducationMeUser /education/me/user
Get educationUser
Get-MgEducationSchool /education/schools
List educationSchools
Get-MgEducationSchool /education/schools/{educationSchoolId}
Get educationSchool
Get-MgEducationSchoolClass /education/schools/{educationSchoolId}/classes
List classes of an educationSchool
Get-MgEducationSchoolDelta /education/schools/delta
educationSchool: delta
Get-MgEducationSchoolUser /education/schools/{educationSchoolId}/users
List users of an educationSchool
Get-MgEducationUser /education/me
Get educationUser
Get-MgEducationUser /education/users
List educationUser
Get-MgEducationUserDelta /education/users/delta
educationUser: delta
Get-MgEducationUserTaughtClass /education/me/taughtClasses
List taughtClasses
New-MgEducationClass /education/classes
Create educationClass
New-MgEducationClassMemberByRef /education/classes/{id}/members/$ref
Add a student
New-MgEducationClassTeacherByRef /education/classes/{id}/teachers/$ref
Add teacher
New-MgEducationSchool /education/schools
Create educationSchool
New-MgEducationSchoolClassByRef /education/schools/{id}/classes/$ref
Add educationClass to educationSchool
New-MgEducationSchoolUserByRef /education/schools/{id}/users/$ref
Add educationUser to an educationSchool
New-MgEducationUser /education/users
Create educationUser
Remove-MgEducationClass /education/classes/{id}
Delete educationClass
Remove-MgEducationClassMemberEducationUserByRef /education/classes/{id}/members/{userId}/$ref
Remove member from educationClass
Remove-MgEducationSchool /education/schools/{id}
Delete educationSchool
Remove-MgEducationSchoolUserEducationUserByRef /education/schools/{id}/users/{userId}/$ref
Remove educationUser from an educationSchool
Remove-MgEducationUser /education/users/{id}
Delete educationUser
Update-MgEducationClass /education/classes/{id}
Update educationClass
Update-MgEducationSchool /education/schools/{id}
Update educationSchool
Update-MgEducationUser /education/me
Update educationUser
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgBetaEducationClass /education/classes
List classes
Get-MgBetaEducationClass /education/classes/{id}
Get educationClass
Get-MgBetaEducationClassDelta /education/classes/delta
educationClass: delta
Get-MgBetaEducationClassGroup /education/classes/{id}/group
Get group
Get-MgBetaEducationClassMember /education/classes/{id}/members
List members
Get-MgBetaEducationClassSchool /education/classes/{id}/schools
List schools
Get-MgBetaEducationClassTeacher /education/classes/{id}/teachers
List teachers
Get-MgBetaEducationMeClass /education/me/classes
List classes
Get-MgBetaEducationMeSchool /education/me/schools
List schools
Get-MgBetaEducationMeUser /education/me/user
Get user
Get-MgBetaEducationSchool /education/schools
Get educationSchool
Get-MgBetaEducationSchool /education/schools
List educationSchools
Get-MgBetaEducationSchoolAdministrativeUnit /education/schools/{id}/administrativeUnit
Get administrativeUnit
Get-MgBetaEducationSchoolClass /education/schools/{id}/classes
List educationClasses
Get-MgBetaEducationSchoolDelta /education/schools/delta
educationSchool: delta
Get-MgBetaEducationSchoolUser /education/schools/{id}/users
List educationUsers
Get-MgBetaEducationUser /education/me
Get educationUser
Get-MgBetaEducationUser /education/users
List users
Get-MgBetaEducationUserDelta /education/users/delta
educationUser: delta
New-MgBetaEducationClass /education/classes
Create educationClass
New-MgBetaEducationClassMemberByRef /education/classes/{id}/members/$ref
Add a student
New-MgBetaEducationClassTeacherByRef /education/classes/{id}/teachers/$ref
Add teacher
New-MgBetaEducationSchool /education/schools
Create educationSchool
New-MgBetaEducationSchoolClassByRef /education/schools/{id}/classes/$ref
Add educationClass to educationSchool
New-MgBetaEducationSchoolUserByRef /education/schools/{id}/users/$ref
Add educationUser to an educationSchool
New-MgBetaEducationUser /education/users
Create educationUser
Remove-MgBetaEducationClass /education/classes/{id}
Delete educationClass
Remove-MgBetaEducationClassMemberEducationUserByRef /education/classes/{id}/members/{userId}/$ref
Remove a student
Remove-MgBetaEducationSchool /education/schools/{id}
Delete educationSchool
Remove-MgBetaEducationSchoolUserEducationUserByRef /education/schools/{id}/users/{userId}/$ref
Remove educationUser from an educationSchool
Remove-MgBetaEducationUser /education/users/{id}
Delete educationUser
Update-MgBetaEducationClass /education/classes/{id}
Update educationclass properties
Update-MgBetaEducationSchool /education/schools/{id}
Update educationSchool properties
Update-MgBetaEducationUser /education/me
Update educationUser properties
Update-MgBetaEducationUser /education/users/{id}
Update relatedContacts

Code Examples

C# / .NET SDK
Add a student
// Code snippets are only available for the latest version. Current version is 5.x

// Dependencies
using Microsoft.Graph.Models;

var requestBody = new ReferenceCreate
{
	OdataId = "https://graph.microsoft.com/v1.0/education/users/13015",
};

// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Education.Classes["{educationClass-id}"].Members.Ref.PostAsync(requestBody);
JavaScript
Add a student
const options = {
	authProvider,
};

const client = Client.init(options);

const educationUser = {
  '@odata.id':'https://graph.microsoft.com/v1.0/education/users/13015'
};

await client.api('/education/classes/{class-id}/members/$ref')
	.post(educationUser);
PowerShell
Add a student
Import-Module Microsoft.Graph.Education

$params = @{
	"@odata.id" = "https://graph.microsoft.com/v1.0/education/users/13015"
}

New-MgEducationClassMemberByRef -EducationClassId $educationClassId -BodyParameter $params
Python
Add a student
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.reference_create import ReferenceCreate
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ReferenceCreate(
	odata_id = "https://graph.microsoft.com/v1.0/education/users/13015",
)

await graph_client.education.classes.by_education_class_id('educationClass-id').members.ref.post(request_body)

App Registration

1

Navigate to Azure Portal

Go to App registrations in Microsoft Entra admin center

2

Add API Permission

Select your app → API permissions → Add a permission → Microsoft Graph

3

Select Permission Type

Choose Application permissions and search for EduRoster.ReadWrite.All

4

Grant Admin Consent

Application permissions always require admin consent.