Enrollments associate users to courses or groups.
Fields
Field | Name | Description | Type | Required |
---|---|---|---|---|
id
| Enrollment ID | The Schoology assigned ID of the enrollment record. | string
| no |
uid
| User ID | The Schoology ID of the user. | string
| yes |
admin
| Admin | Whether this user is an administrator (e.g. teacher) as opposed to a regular member (e.g. student) | {0,1}
| yes |
status
| Status | The current status of the enrollment.
| {1-5}
| yes |
Operations
The operations below are available for the following realms (replace [realm]
with the appropriate realm and ID):
Realm | Path |
---|---|
Course Sections | sections/{id}
|
Groups | groups/{id}
|
create
Create an enrollment
Path |
|
Content |
An object containing enrollment fields JSON{ "uid": "2461632", "admin": "0", "status": "1" }XML <body> <uid>2461632</uid> <admin>0</admin> <status>1</status> </body> |
Return |
An object containing enrollment fields JSON{ "id": "44783136", "uid": "48289", "school_uid": "s1", "name_title": "", "name_title_show": "0", "name_first": "James", "name_first_preferred": "", "name_middle": "", "name_middle_show": "0", "name_last": "Howlett", "name_display": "James Howlett", "admin": 0, "status": 1, "picture_url": "http:\/\/..\/pictures\/default_user.gif", "links": { "self": "http:\/\/...\/enrollments\/44783136" } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <id>44783136</id> <uid>48289</uid> <school_uid>s1</school_uid> <name_title /> <name_title_show>0</name_title_show> <name_first>James</name_first> <name_first_preferred /> <name_middle /> <name_middle_show>0</name_middle_show> <name_last>Howlett</name_last> <name_display>James Howlett</name_display> <admin>0</admin> <status>1</status> <picture_url>http://.../default_user.gif</picture_url> <links> <self>http://.../44783136</self> </links> </result> |
create
Create an enrollment with an access code
Path |
|
Content |
An object containing an access code. The object will look like { "access_code": "VCVKF-4MJG9" }XML <body> <access_code>VCVKF-4MJG9</access_code> </body> |
Return |
An object containing enrollment fields JSON{ "id": "54179017", "uid": "45552", "school_uid": "", "name_title": "", "name_title_show": "0", "name_first": "Mr.", "name_first_preferred": "", "name_middle": "", "name_middle_show": "0", "name_last": "Strickland", "name_display": "Mr. Strickland", "admin": 0, "status": "1", "picture_url": "http:\/\/...\/default_user.gif" }XML <?xml version="1.0" encoding="utf-8" ?> <result> <id>54179017</id> <uid>45552</uid> <school_uid /> <name_title /> <name_title_show>0</name_title_show> <name_first>Mr.</name_first> <name_first_preferred /> <name_middle /> <name_middle_show>0</name_middle_show> <name_last>Strickland</name_last> <name_display>Mr. Strickland</name_display> <admin>0</admin> <status>1</status> <picture_url>http://.../default_user.gif</picture_url> </result> |
bulk create - single realm
Create multiple enrollments at a time in one realm
Path |
|
Content |
Multiple enrollments can be created at a time (up to 50) by wrapping your response in 'enrollments', with enrollment fields wrapped in 'enrollment'. JSON { "enrollments": { "enrollment": [ { "uid": "2461632", "admin": "0", "status": "1" }, { "uid": "23453322", "admin": "0", "status": "1" } ] } }XML <body> <enrollments> <enrollment> <uid>2461632</uid> <admin>0</admin> <status>1</status> </enrollment> <enrollment> <uid>23453322</uid> <admin>0</admin> <status>1</status> </enrollment> </enrollments> </body> |
Return |
The API endpoint (location) of each enrollment created, or an error message if there was a problem creating the enrollment. JSON{ "enrollments": { "enrollment": [ { "response_code": 200, "id": "54302505", "uid": 248101, "location": "http:\/\/...\/54302505" }, { "response_code": 200, "id": "54302521", "uid": 48489, "location": "http:\/\/...\/54302521" } ] } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <enrollments> <enrollment> <response_code>200</response_code> <id>54302505</id> <uid>248101</uid> <location>http://.../54302505</location> </enrollment> <enrollment> <response_code>200</response_code> <id>54302521</id> <uid>48489</uid> <location>http://.../54302521</location> </enrollment> </enrollments> </result> |
bulk create - multi realm
Create multiple enrollments across multiple realms at one time
Path |
|
Content |
Multiple enrollments can be created at a time (up to 50) by wrapping your response in 'enrollments', with enrollment fields wrapped in 'enrollment'. Along with the base enrollment fields include realm [group, section] and group_id or section_id in the enrollment objects. Each enrollment object would look something like The whole body will look something like: JSON { "enrollments":{ "enrollment":[ { "realm" : "section", "section_id" : 12345, "status" : 1, "admin" : 1, "uid" : 87942 }, { "realm" : "section", "section_id" : 98762, "status" : 1, "admin" : 0, "uid" : 87942 }, { "realm" : "group", "group_id" : 65371, "status" : 1, "admin" : 1, "uid" : 12873 } ] } }XML <body> <enrollments> <enrollment> <realm>section</realm> <section_id>12345</section_id> <status>1</status> <admin>1</admin> <uid>87942</uid> </enrollment> <enrollment> <realm>section</realm> <section_id>98762</section_id> <status>1</status> <admin>0</admin> <uid>87942</uid> </enrollment> <enrollment> <realm>group</realm> <group_id>65371</group_id> <status>1</status> <admin>1</admin> <uid>12873</uid> </enrollment> </enrollments> </body>This endpoint does support the update_existing flag. |
Return |
The API endpoint (location) of each enrollment created, or an error message if there was a problem creating the enrollment. JSON{ "enrollments": { "enrollment": [ { "response_code": 200, "location": "http:\/\/...\/54302505", "uid": 248101, "id": "54302505", "realm": "section", "realm_id": "3719526" }, { "response_code": 200, "location": "http:\/\/...\/44783161", "uid": 48489, "id": "44783161", "realm": "section", "realm_id": "4318461" } ] } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <enrollments> <enrollment> <response_code>200</response_code> <location>http://.../54302505</location> <uid>248101</uid> <id>54302505</id> <realm>section</realm> <realm_id>3719526</realm_id> </enrollment> <enrollment> <response_code>200</response_code> <location>http://.../44783161</location> <uid>48489</uid> <id>44783161</id> <realm>section</realm> <realm_id>4318461</realm_id> </enrollment> </enrollments> </result> |
course enrollment import
Create and update many course enrollments at a time by grading_period_id, course_code, section_code, and user unique_id. This this endpoint does not require you to know the Schoology IDs for each course, section, or user, this can be used for easy synchronization. You are required, however, to pass a Schoology grading period ID (or multiple, comma-separated IDs). For example, if you pass 5,6,7 as a grading_period_id, you will be importing into sections that span all three grading periods for the given course_code/section_code combination. This endpoint is only available for courses (and not for groups).
Path |
|
Content |
Multiple enrollments can be created at a time (up to 50), and require a course course_code, section section_code, and user school_uid. You can also pass admin to mark an enrollment as a teacher, or delete to remove an enrollment. JSON { "enrollments": { "enrollment": [ { "course_code": "E200", "section_code": "34", "school_uid": "test1234", "admin": "1" }, { "course_code": "E200", "section_code": "34", "school_uid": "test456", "admin": "0" } ] } }XML <body> <enrollments> <enrollment> <course_code>E200</course_code> <section_code>34</section_code> <school_uid>test1234</school_uid> <admin>1</admin> </enrollment> <enrollment> <course_code>E200</course_code> <section_code>34</section_code> <school_uid>test456</school_uid> <admin>1</admin> </enrollment> </enrollments> </body> |
Return |
The API endpoint (location) of each enrollment created, or an error message if there was a problem creating the enrollment. JSON{ "enrollments": { "enrollment": [ { "response_code": 200, "location": "http:\/\/...\/54302505", "school_uid": "s2", "course_code": "CC106", "section_code": "SC101" }, { "response_code": 200, "location": "http:\/\/...\/54302521", "school_uid": "s3", "course_code": "CC106", "section_code": "SC101" } ] } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <enrollments> <enrollment> <response_code>200</response_code> <location>http://.../enrollments/54302505</location> <school_uid>s2</school_uid> <course_code>CC106</course_code> <section_code>SC101</section_code> </enrollment> <enrollment> <response_code>200</response_code> <location>http://.../enrollments/54302521</location> <school_uid>s3</school_uid> <course_code>CC106</course_code> <section_code>SC101</section_code> </enrollment> </enrollments> </result> |
course enrollment import alternative
Create and update multiple course enrollments using section_school_code and user unique_id. This is similar to the course enrollment import above with the exception of not having to provide the grading_period_id. Instead, unique section_school_code values are used to determine the sections for each enrollment.
Path |
|
Content |
Multiple enrollments can be created at a time (up to 50), and require a course section section_school_code and user school_uid. You can also pass admin to mark an enrollment as a teacher, or delete to remove an enrollment. JSON { "enrollments": { "enrollment": [ { "section_school_code": "23", "school_uid": "test1234", "admin": "1" }, { "section_school_code": "344", "school_uid": "test456", "delete": "1" } ] } }XML <body> <enrollments> <enrollment> <section_school_code>23</section_school_code> <school_uid>test1234</school_uid> <admin>1</admin> </enrollment> <enrollment> <section_school_code>344</section_school_code> <school_uid>test456</school_uid> <delete>1</delete> </enrollment> </enrollments> </body> |
Return |
The API endpoint (location) of each enrollment created, or an error message if there was a problem creating the enrollment. JSON{ "enrollments": { "enrollment": [ { "response_code": 200, "location": "http:\/\/...\/54302505", "school_uid": "s2", "section_school_code": "SC111", "course_code": "CC106", "section_code": "" }, { "response_code": 200, "location": "http:\/\/...\/54302521", "school_uid": "s3", "section_school_code": "SC111", "course_code": "CC106", "section_code": "" } ] } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <enrollments> <enrollment> <response_code>200</response_code> <location>http://...//54302505</location> <school_uid>s2</school_uid> <section_school_code>SC111</section_school_code> <course_code>CC106</course_code> <section_code /> </enrollment> <enrollment> <response_code>200</response_code> <location>http://.../54302521</location> <school_uid>s3</school_uid> <section_school_code>SC111</section_school_code> <course_code>CC106</course_code> <section_code /> </enrollment> </enrollments> </result> |
list
View a list of enrollments (paged). The following query strings can (optionally) be appended to the path to filter results:
- uid: filter enrollments for a given user
- enrollment_status: filter enrollments for a given enrollment status (1-5)
- type: filter enrollments by an enrollment type. Possible values: ['admin', 'member']
- picture_size: specify size of profile picture returned with this user. Possible values: ['big', 'reg', 'sm', 'tiny']
For each of the above query strings, you can specify a coma delimited list of values. Retrieving this list without specifying the above parameters will return a paged list of all enrollments in the given realm.
Path |
|
Content |
none |
Return |
A collection of enrollment objects, each one containing enrollment fields JSON{ "enrollment": [ { "id": "43807916", "uid": "45552", "school_uid": "", "name_title": "", "name_title_show": "0", "name_first": "Mr.", "name_first_preferred": "", "name_middle": "", "name_middle_show": "0", "name_last": "Strickland", "name_display": "Mr. Strickland", "admin": 1, "status": "1", "picture_url": "http:\/\/..\/images\/avatar1.png", "links": { "self": "http:\/\/...enrollments\/43807916" } }, { "id": "44783136", "uid": "48289", "school_uid": "s1", "name_title": "", "name_title_show": "0", "name_first": "James", "name_first_preferred": "", "name_middle": "", "name_middle_show": "0", "name_last": "Howlett", "name_display": "James Howlett", "admin": 0, "status": "1", "picture_url": "http:\/\/...\/default_user.gif", "links": { "self": "http:\/\/...\/enrollments\/44783136" } } ], "total": "2", "links": { "self": "http:\/\/...enrollment_status=1&start=0&limit=20" } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <enrollment> <id>43807916</id> <uid>45552</uid> <school_uid /> <name_title /> <name_title_show>0</name_title_show> <name_first>Mr.</name_first> <name_first_preferred /> <name_middle /> <name_middle_show>0</name_middle_show> <name_last>Strickland</name_last> <name_display>Mr. Strickland</name_display> <admin>1</admin> <status>1</status> <picture_url>http://...//images/avatar1.png</picture_url> <links> <self>http://.../enrollments/43807916</self> </links> </enrollment> <enrollment> <id>44783136</id> <uid>48289</uid> <school_uid>s1</school_uid> <name_title /> <name_title_show>0</name_title_show> <name_first>James</name_first> <name_first_preferred /> <name_middle /> <name_middle_show>0</name_middle_show> <name_last>Howlett</name_last> <name_display>James Howlett</name_display> <admin>0</admin> <status>1</status> <picture_url>http://.../default_user.gif</picture_url> <links> <self>http://.../v1/sections/3719526/enrollments/44783136</self> </links> </enrollment> <total>2</total> <links> <self>http://...enrollment_status=1&start=0&limit=20</self> </links> </result> |
view
View a specified enrollment
Path |
|
Content |
none |
Return |
An object containing enrollment fields JSON{ "id": "44783136", "uid": "48289", "school_uid": "s1", "name_title": "", "name_title_show": "0", "name_first": "James", "name_first_preferred": "", "name_middle": "", "name_middle_show": "0", "name_last": "Howlett", "name_display": "James Howlett", "admin": 0, "status": "1", "picture_url": "http:\/\/..\/default_user.gif" }XML <?xml version="1.0" encoding="utf-8" ?> <result> <id>44783136</id> <uid>48289</uid> <school_uid>s1</school_uid> <name_title /> <name_title_show>0</name_title_show> <name_first>James</name_first> <name_first_preferred /> <name_middle /> <name_middle_show>0</name_middle_show> <name_last>Howlett</name_last> <name_display>James Howlett</name_display> <admin>0</admin> <status>1</status> <picture_url>http://.../default_user.gif</picture_url> </result> |
update
Modify an enrollment
Path |
|
Content |
An object containing enrollment fields JSON{ "uid": "2461632", "status": "2" }XML <body> <uid>2461632</uid> <status>2</status> </body> |
Return |
none |
bulk update
Modify multiple enrollments
Path |
|
Content |
Up to 50 enrollments can be updated at a time by wrapping your response in 'enrollments', with enrollment fields wrapped in 'enrollment'. JSON { "enrollments": { "enrollment": [ { "id": "2461632", "status": "2" }, { "id": "23453322", "status": "2" } ] } }XML <body> <enrollments> <enrollment> <uid>2461632</uid> <status>2</status> </enrollment> <enrollment> <uid>23453322</uid> <status>2</status> </enrollment> </enrollments> </body> |
Return |
The schoology ID of each enrollment updated, or an error message if there was a problem creating the enrollment. JSON{ "enrollments": { "enrollment": [ { "response_code": 200, "id": "44783151" }, { "response_code": 200, "id": "44783156" } ] } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <enrollments> <enrollment> <response_code>200</response_code> <id>44783151</id> </enrollment> <enrollment> <response_code>200</response_code> <id>44783156</id> </enrollment> </enrollments> </result> |
delete
Delete an enrollment (cannot be undone)
Path |
|
Content |
none |
Return |
none |
bulk delete
Delete up to 50 enrollments. Comma-separated Schoology IDs are passed in the query string with the enrollment_ids parameter.
Path |
|
Content |
none |
Return |
none |