Teachers and students are enrolled into course sections; each section must belong to a parent course. Assignments, documents, events, and other materials are created and associated with course sections.
Fields
Field | Name | Description | Type | Required |
---|---|---|---|---|
id
| Schoology Section ID | The internal Schoology ID of the section | string
| no |
title | Section Title | The section title (e.g. Section 10b). | string
| yes |
section_code
| Section Code | The section code must be unique across the course and grading period (e.g. "Spring 2010" can only have one "10b" for course "ENG101"). | string
| Either section_code or section_school_code must be set. If both are specified section code will be ignored and section school code will be used. |
section_school_code
| Section School Code | The section school code must be unique across the school | string
| Either section_code or section_school_code must be set. If both are specified section code will be ignored and section school code will be used. |
access_code
| Access Code | The access code is created by Schoology automatically, and cannot be adjusted. If this field is blank, the course cannot be enrolled in via access code | string
| no |
grading_periods
| Grading Periods | The grading period IDs with which this course is associated. | array of integers
| yes |
description
| Description | The section description. | string
| |
profile_url
| Profile picture URL | The full URL of the section's profile picture | string
| |
location
| Location | The location of the course section. | string
| |
meeting_days
| Meeting Days | Days of the week that this course section meets. Each day is represented by a number (Sun is 0, Sat is 7). | array of integers
| |
start_time
| Start Time | The time this section starts on the specified meeting days, from 00:00 to 23:59 (local time). Not applicable if your school uses class period blocks (i.e. sections meet at different times on different days). | string (HH:mm)
| |
end_time
| End Time | The time this section ends on the specified meeting days. | string (HH:mm)
| |
class_periods
| Class Periods | The class period IDs with which this course is associated. Not applicable if your school does not use class period blocks (see start_time ). | array of integers
| |
options/course_format
| Course Format | The course format - 1 for basic (default), 2 for topic-based | {1,2}
| default: 1 |
options/weighted_grading_categories
| Weighted Grading Categories | Whether grading categories for this course are weighted; otherwise, categories will be weighted evenly. | {0,1}
| default: 0 |
options/upload_document
| Upload Documents | Whether students can upload documents to the course profile. | {0,1}
| default: 0 |
options/create_discussion
| Create Discussion Topic | Whether students can create discussion topics. | {0,1}
| default: 0 |
options/member_post
| Post to Course Feed | Whether students can post to the course feed. | {0,1}
| default: 0 |
options/member_post_comment
| Post Course Feed Comments | Whether students can post comments to course feed entries. | {0,1}
| default: 0 |
synced
| Sync Status | Whether or not this course section was synced with an external system (eg, Student Information System). The default value is 0. For synced course sections, the Section School Code field is not editable through Schoology. | {0,1}
|
Operations
create
Create a course section
Path |
|
Content |
An object containing course section fields JSON{ "title": "Section 1", "description": "Section 1 Math", "section_school_code": "35", "grading_periods": [ 13221, 2344, 1246 ] }XML <body> <title>Section 1</title> <description>Section 1 Math</description> <section_school_code>37</section_school_code> <grading_periods>13221</grading_periods> <grading_periods>2344</grading_periods> <grading_periods>1246</grading_periods> </body> |
Return |
An object containing course section fields JSON{ "id": "5614973", "course_id": "1407691", "school_id": "344232", "access_code": "C2BGQ-F3TCV", "section_title": "Section API", "section_code": "", "section_school_code": "SA1", "synced": null, "active": 1, "description": "discuss REST API", "grading_periods": [ 13011 ], "profile_url": "http:\/\/......\/course-default.gif", "location": "", "meeting_days": [ "" ], "start_time": null, "end_time": null, "options": { "weighted_grading_categories": null, "upload_documents": null, "create_discussion": null, "member_post": null, "member_post_comment": null, "content_index_visibility": [ ] }, "links": { "self": "http:\/\/...\/v1\/sections\/5614973" } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <id>5614973</id> <course_id>1407691</course_id> <school_id>344232</school_id> <access_code>C2BGQ-F3TCV</access_code> <section_title>Section API</section_title> <section_code /> <section_school_code>SA1</section_school_code> <synced /> <active>1</active> <description>discuss REST API</description> <grading_periods>13011</grading_periods> <profile_url>http://......course-default.gif</profile_url> <location /> <meeting_days /> <start_time /> <end_time /> <options> <weighted_grading_categories /> <upload_documents /> <create_discussion /> <member_post /> <member_post_comment /> <content_index_visibility /> </options> <links> <self>http://.../v1/sections/5614973</self> </links> </result> |
bulk create
Create multiple sections at a time. The following parameters can be added to this endpoint:
- update_existing: Set this to 1 (e.g. ?update_existing=1) in order update existing sections, matched by the 'section_code' and 'grading_periods' fields. Without this parameter, creation will fail if a pre-existing section has the same 'section_code' for the given 'grading_periods' as a passed section object.
Path |
|
Content |
Multiple sections can be created at a time (up to 50) by wrapping your response in 'sections' with section fields wrapped in 'section'. JSON { "sections": { "section": [ { "title": "Section 1", "description": "Section 1 Math", "section_school_code": "35", "grading_periods": [ 13221, 2344, 1246 ] }, { "title": "Section 2", "description": "Section 2 Math", "section_school_code": "37", "grading_periods": [ 13221, 2344, 1246 ] } ] } }XML <body> <sections> <section> <title>Section 1</title> <description>Section 1 Math</description> <section_school_code>35</section_school_code> <grading_periods>13221</grading_periods> <grading_periods>2344</grading_periods> <grading_periods>1246</grading_periods> </section> <section> <title>Section 2</title> <description>Section 2 Math</description> <section_school_code>37</section_school_code> <grading_periods>13221</grading_periods> <grading_periods>2344</grading_periods> <grading_periods>1246</grading_periods> </section> </sections> </body> |
Return |
The API endpoint (location) of each sectioncreated, or an error message if there was a problem creating the section. JSON{ "section": [ { "response_code": 200, "id": "5614975", "location": "http:\/\/...\/v1\/sections\/5614975", "section_code": "", "section_school_code": "SA4", "synced": null, "grading_periods": [ 13011 ] }, { "response_code": 200, "id": "5614977", "location": "http:\/\/...\/v1\/sections\/5614977", "section_code": "", "section_school_code": "SA5", "synced": null, "grading_periods": [ 13011 ] } ] }XML <?xml version="1.0" encoding="utf-8" ?> <result> <section> <response_code>200</response_code> <id>5614975</id> <location>http://.../v1/sections/5614975</location> <section_code /> <section_school_code>SA4</section_school_code> <synced /> <grading_periods>13011</grading_periods> </section> <section> <response_code>200</response_code> <id>5614977</id> <location>http://.../v1/sections/5614977</location> <section_code /> <section_school_code>SA5</section_school_code> <synced /> <grading_periods>13011</grading_periods> </section> </result> |
bulk copy
Copy existing sections and their content into new or existing sections
Fields
- source_section_id or source_section_school_code - the identifier of the section getting copied - required
- section_id or section_school_code or section_code - required
- if section_id is provided then we assume section exists - check permissions, make sure section has no content, and then just copy content to existing section
- if section_school_code is provided then check if section_school_code exists.
- If exists, check if section is empty and then copy contents to existing section.
- If does not exist then create new section and then copy contents to new section.
- If section_code is provided then try and create new section
- course_id or course_code - the identifier of the parent course that the copied section will live in - required
- title - the title of the new section - required
- grading_periods - the grading_periods the new section with span - required
- description - the description of the new section - optional
- synced - If set to 1 course section fields (section_school_code, grading_periods) will not be editable. If not set, "synced" property will be inherited from source section - optional
Optional Query Parameters
- enroll_user: Set this to 1 (e.g. ?enroll_user=1) in order enroll the user making the API call into the newly copied section
Path |
|
Content |
JSON { "sections": { "section": [ { "source_section_id": 123456, "title": "Section 2A", "description": "Science Section 2A", "section_school_code": "SCI2A", "course_id": 5432751, "course_id": 1, "grading_periods": [ 175, 212 ] }, { "source_section_school_code": "MASTERSCIENCE", "title": "Section 3A", "description": "Science Section 3A", "section_school_code": "SCI3A", "course_code": "SCIFULL", "grading_periods": [ 175, 212 ] } ] } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <sections> <section> <source_section_id>123456</source_section_id> <title>Section 2A</title> <description>Science Section 2A</description> <section_school_code>SCI2A</section_school_code> <course_id>5432751</course_id> <synced>1</synced> <grading_periods>175</grading_periods> <grading_periods>212</grading_periods> </section> <section> <source_section_school_code>MASTERSCIENCE</source_section_school_code> <title>Section 3A</title> <description>Science Section 3A</description> <section_school_code>SCI3A</section_school_code> <course_code>SCIFULL</course_code> <grading_periods>175</grading_periods> <grading_periods>212</grading_periods> </section> </sections> </result> |
Return |
JSON
{ "section": [ { "section_school_code": "SCI2A", "grading_periods": [ 175, 212 ], "title": "Section 2A", "transfer_url": "https:\/\/schoology.com\/settings\/transfers", "response_code": 200, "description": "Science Section 2A" }, { "section_school_code": "3A", "grading_periods": [ 175, 212 ], "title": "Section 3A", "transfer_url": "https:\/\/schoology.com\/settings\/transfers", "response_code": 200, "description": "Science Section 3A" } ] }XML <?xml version="1.0" encoding="utf-8" ?> <result> <section> <section_school_code>SCI2A</section_school_code> <grading_periods>175</grading_periods> <grading_periods>212</grading_periods> <title>Section 2A</title> <transfer_url>https://schoology.com/settings/transfers</transfer_url> <response_code>200</response_code> <description>Science Section 2A</description> </section> <section> <section_school_code>3A</section_school_code> <grading_periods>175</grading_periods> <grading_periods>212</grading_periods> <title>Section 3A</title> <transfer_url>https://schoology.com/settings/transfers</transfer_url> <response_code>200</response_code> <description>Science Section 3A</description> </section> </result> |
list
View a list of sections for a course (paged). The following parameters can be added to this path:
- include_past: Set this to 1 to include sections from expired/past grading periods.
Path |
|
Content |
none |
Return |
A collection of section objects, each one containing course section fields JSON{ "section": [ { "id": "4318461", "course_title": "Time Travel", "course_code": "CC106", "course_id": "1407691", "school_id": "344232", "access_code": "GBMWW-2QKN5", "section_title": "Section 9nw", "section_code": "", "section_school_code": "SI200", "synced": "0", "active": 1, "description": "", "grading_periods": [ 435, 13011 ], "profile_url": "http:\/\/...\/images\/course-default.gif", "location": "", "meeting_days": [ "" ], "start_time": "", "end_time": "", "weight": "0", "options": { "weighted_grading_categories": "0", "upload_documents": "0", "create_discussion": "0", "member_post": "1", "member_post_comment": "1", "content_index_visibility": { "topics": 1, "assignments": 1, "assessments": 1, "documents": 1, "discussion": 1, "album": 1, "pages": 1 } }, "links": { "self": "http:\/\/...\/v1\/sections\/4318461" }, "admin": 1 }, { "id": "3719526", "course_title": "Time Travel", "course_code": "CC106", "course_id": "1407691", "school_id": "344232", "access_code": "88548-D5TVT", "section_title": "Section 8i", "section_code": "SC101", "section_school_code": "", "synced": "0", "active": 1, "description": "", "grading_periods": [ 13011 ], "profile_url": "http:\/\/...\/images\/course-default.gif", "location": "", "meeting_days": [ "" ], "start_time": "", "end_time": "", "weight": "0", "options": { "weighted_grading_categories": "0", "upload_documents": "0", "create_discussion": "0", "member_post": "1", "member_post_comment": "1", "content_index_visibility": { "topics": 1, "assignments": 1, "assessments": 1, "documents": 1, "discussion": 1, "album": 1, "pages": 1 } }, "links": { "self": "http:\/\/...\/v1\/sections\/3719526" }, "admin": 1 } ], "total": "2", "links": { "self": "http:\/\/...\/sections?start=0&limit=20" } }XML <?xml version="1.0" encoding="utf-8" ?> <result> <section> <id>4318461</id> <course_title>Time Travel</course_title> <course_code>CC106</course_code> <course_id>1407691</course_id> <school_id>344232</school_id> <access_code>GBMWW-2QKN5</access_code> <section_title>Section 9nw</section_title> <section_code /> <section_school_code>SI200</section_school_code> <synced>0</synced> <active>1</active> <description /> <grading_periods>435</grading_periods> <grading_periods>13011</grading_periods> <profile_url>http://.../images/course-default.gif</profile_url> <location /> <meeting_days /> <start_time /> <end_time /> <weight>0</weight> <options> <weighted_grading_categories>0</weighted_grading_categories> <upload_documents>0</upload_documents> <create_discussion>0</create_discussion> <member_post>1</member_post> <member_post_comment>1</member_post_comment> <content_index_visibility> <topics>1</topics> <assignments>1</assignments> <assessments>1</assessments> <documents>1</documents> <discussion>1</discussion> <album>1</album> <pages>1</pages> </content_index_visibility> </options> <links> <self>http://.../v1/sections/4318461</self> </links> <admin>1</admin> </section> <section> <id>3719526</id> <course_title>Time Travel</course_title> <course_code>CC106</course_code> <course_id>1407691</course_id> <school_id>344232</school_id> <access_code>88548-D5TVT</access_code> <section_title>Section 8i</section_title> <section_code>SC101</section_code> <section_school_code /> <synced>0</synced> <active>1</active> <description /> <grading_periods>13011</grading_periods> <profile_url>http://...images/course-default.gif</profile_url> <location /> <meeting_days /> <start_time /> <end_time /> <weight>0</weight> <options> <weighted_grading_categories>0</weighted_grading_categories> <upload_documents>0</upload_documents> <create_discussion>0</create_discussion> <member_post>1</member_post> <member_post_comment>1</member_post_comment> <content_index_visibility> <topics>1</topics> <assignments>1</assignments> <assessments>1</assessments> <documents>1</documents> <discussion>1</discussion> <album>1</album> <pages>1</pages> </content_index_visibility> </options> <links> <self>http://.../v1/sections/3719526</self> </links> <admin>1</admin> </section> <total>2</total> <links> <self>http://.../sections?start=0&limit=20</self> </links> </result> |
list by section school code
View a list of sections by specifying a comma separated list of section school codes. The following parameters can be added to this path:
- section_school_codes: A comma-separated list of section school codes, up to 50 at a time.
- include_past: Set this to 1 to include sections from expired/past grading periods.
Path |
|
Content |
none |
Return |
A collection of section objects, each one containing course section fields |
view
View a specified course section
Path |
|
Content |
none |
Return |
An object containing course section fields JSON{ "id": "4318461", "course_title": "Time Travel", "course_code": "CC106", "course_id": "1407691", "school_id": "344232", "access_code": "GBMWW-2QKN5", "section_title": "Section 9nw", "section_code": "", "section_school_code": "SI200", "synced": "0", "active": 1, "description": "", "subject_area": "0", "grade_level_range_start": "12", "grade_level_range_end": "14", "grading_periods": [ 13011, 435 ], "profile_url": "http:\/\/...\/images\/course-default.gif", "location": "", "meeting_days": [ "" ], "start_time": "", "end_time": "", "weight": "0", "options": { "weighted_grading_categories": "0", "upload_documents": "0", "create_discussion": "0", "member_post": "1", "member_post_comment": "1", "content_index_visibility": { "topics": 1, "assignments": 1, "assessments": 1, "documents": 1, "discussion": 1, "album": 1, "pages": 1 } }, "admin": 1 }XML <?xml version="1.0" encoding="utf-8" ?> <result> <id>4318461</id> <course_title>Time Travel</course_title> <course_code>CC106</course_code> <course_id>1407691</course_id> <school_id>344232</school_id> <access_code>GBMWW-2QKN5</access_code> <section_title>Section 9nw</section_title> <section_code /> <section_school_code>SI200</section_school_code> <synced>0</synced> <active>1</active> <description /> <subject_area>0</subject_area> <grade_level_range_start>12</grade_level_range_start> <grade_level_range_end>14</grade_level_range_end> <grading_periods>13011</grading_periods> <grading_periods>435</grading_periods> <profile_url>http://.../images/course-default.gif</profile_url> <location /> <meeting_days /> <start_time /> <end_time /> <weight>0</weight> <options> <weighted_grading_categories>0</weighted_grading_categories> <upload_documents>0</upload_documents> <create_discussion>0</create_discussion> <member_post>1</member_post> <member_post_comment>1</member_post_comment> <content_index_visibility> <topics>1</topics> <assignments>1</assignments> <assessments>1</assessments> <documents>1</documents> <discussion>1</discussion> <album>1</album> <pages>1</pages> </content_index_visibility> </options> <admin>1</admin> </result> |
update
Modify a course
Path |
|
Content |
An object containing course section fields JSON{ "title": "Updated Section 1 title", "section_school_code": "35", "synced": "1" }XML <body> <title>Updated Section 1 title</title> <section_school_code>37</section_school_code> <synced>1</synced> </body> |
Return |
none |
bulk update
Modify multiple sections
Path |
|
Content |
Up to 50 sections can be updated at a time by wrapping your response in 'sections', with section fields wrapped in 'section'.
{ "sections": { "section": [ { "id": 123456, "title": "Updated Section 1 title", "section_school_code": "35", "synced": "1" }, { "id": 123457, "title": "Updated Section 2 title", "section_school_code": "37", "synced": "1" } ] } }XML <body> <sections> <section> <id>123456</id> <title>Updated Section 1 title</title> <section_school_code>35</section_school_code> <synced>1</synced> </section> <section> <id>123457</id> <title>Updated Section 2 title</title> <section_school_code>37</section_school_code> <synced>1</synced> </section> </sections> </body> |
Return |
The schoology ID of each section updated, or an error message if there was a problem creating the section. JSON{ "section": [ { "response_code": 200, "id": "3719526", "location": "http:\/\/...\/v1\/sections\/3719526", "section_code": "", "section_school_code": "SC111", "synced": "0", "grading_periods": [ 13011 ] }, { "response_code": 200, "id": "4318461", "location": "http:\/\/...\/v1\/sections\/4318461", "section_code": "", "section_school_code": "SI200", "synced": "0", "grading_periods": [ 13011, 435 ] } ] }XML <?xml version="1.0" encoding="utf-8" ?> <result> <section> <response_code>200</response_code> <id>3719526</id> <location>http://.../v1/sections/3719526</location> <section_code /> <section_school_code>SC111</section_school_code> <synced>0</synced> <grading_periods>13011</grading_periods> </section> <section> <response_code>200</response_code> <id>4318461</id> <location>http://.../v1/sections/4318461</location> <section_code /> <section_school_code>SI200</section_school_code> <synced>0</synced> <grading_periods>13011</grading_periods> <grading_periods>435</grading_periods> </section> </result> |
delete
Delete a course (cannot be undone)
Path |
|
Content |
none |
Return |
none |
bulk delete
Delete up to 50 sections. Comma-separated Schoology IDs are passed in the query string with the section_ids parameter.
Path |
|
Content |
none |
Return |
none |
Other Calls
Grading Category
List the available grading categories for the given course section
Fields
Field | Name | Description | Type | Required |
---|---|---|---|---|
title
| Grading category title | The name of the grading category | integer
| |
calculation_type
| Calculation type | Whether the grades for the given category are calculated as a percentage (1) or as points (2). Only course section administrators can see this value. | {1,2}
| |
default_max_points
| Default max points | The default number of max points given to assignments in this category. Only course section administrators can see this value. | integer
| |
default_grading_scale_id
| Default grading scale Id | The default grading scale assigned to assignments in this category. Only course section administrators can see this value. | integer
| |
drop_lowest
| Drop lowest | Indicates the number of lower most grades to drop when calculating the final grade for the given category. Only course section administrators can see this value. | integer
|
List
Path
GET https://api.schoology.com/v1/sections/{id}/grading_categories
{ "grading_category": [ { "id": 3081, "title": "e.g. Homework", "delta": 0, "calculation_type": 2, "default_max_points": 100, "default_grading_scale_id": 0, "drop_lowest": 0, "weight": 0 }, { "id": 4341, "title": "xtra points", "delta": 0, "calculation_type": 2, "default_max_points": 100, "default_grading_scale_id": 0, "drop_lowest": 0, "weight": 0 } ] }XML
<?xml version="1.0" encoding="utf-8" ?> <result> <grading_category> <id>3081</id> <title>e.g. Homework</title> <delta>0</delta> <calculation_type>2</calculation_type> <default_max_points>100</default_max_points> <default_grading_scale_id>0</default_grading_scale_id> <drop_lowest>0</drop_lowest> <weight>0</weight> </grading_category> <grading_category> <id>4341</id> <title>xtra points</title> <delta>0</delta> <calculation_type>2</calculation_type> <default_max_points>100</default_max_points> <default_grading_scale_id>0</default_grading_scale_id> <drop_lowest>0</drop_lowest> <weight>0</weight> </grading_category> </result>
Grading Scales
List the available grading scales for the given course section
Path
GET https://api.schoology.com/v1/sections/{id}/grading_scales
{ "grading_scale": [ { "id": 1, "title": "Classic five point chromatic", "type": 1, "auto_averaging": 0, "hide_numeric": 0, "scale": { "level": [ { "grade": "F", "cutoff": 0, "average": 0 }, { "grade": "D-", "cutoff": 60, "average": 60 }, { "grade": "D", "cutoff": 63, "average": 63 }, { "grade": "D+", "cutoff": 67, "average": 67 }, { "grade": "C-", "cutoff": 70, "average": 70 }, { "grade": "C", "cutoff": 73, "average": 73 }, { "grade": "C+", "cutoff": 77, "average": 77 }, { "grade": "B-", "cutoff": 80, "average": 80 }, { "grade": "B", "cutoff": 83, "average": 83 }, { "grade": "B+", "cutoff": 87, "average": 87 }, { "grade": "A-", "cutoff": 90, "average": 90 }, { "grade": "A", "cutoff": 93, "average": 93 }, { "grade": "A+", "cutoff": 97, "average": 97 } ] } } ], "links": { "self": "https:\/\/...\/v1\/sections\/4318461\/grading_scales" } }XML
<?xml version="1.0" encoding="utf-8" ?> <result> <grading_scale> <id>1</id> <title>Classic five point chromatic</title> <type>1</type> <auto_averaging>0</auto_averaging> <hide_numeric>0</hide_numeric> <scale> <level> <grade>F</grade> <cutoff>0</cutoff> <average>0</average> </level> <level> <grade>D-</grade> <cutoff>60</cutoff> <average>60</average> </level> <level> <grade>D</grade> <cutoff>63</cutoff> <average>63</average> </level> <level> <grade>D+</grade> <cutoff>67</cutoff> <average>67</average> </level> <level> <grade>C-</grade> <cutoff>70</cutoff> <average>70</average> </level> <level> <grade>C</grade> <cutoff>73</cutoff> <average>73</average> </level> <level> <grade>C+</grade> <cutoff>77</cutoff> <average>77</average> </level> <level> <grade>B-</grade> <cutoff>80</cutoff> <average>80</average> </level> <level> <grade>B</grade> <cutoff>83</cutoff> <average>83</average> </level> <level> <grade>B+</grade> <cutoff>87</cutoff> <average>87</average> </level> <level> <grade>A-</grade> <cutoff>90</cutoff> <average>90</average> </level> <level> <grade>A</grade> <cutoff>93</cutoff> <average>93</average> </level> <level> <grade>A+</grade> <cutoff>97</cutoff> <average>97</average> </level> </scale> </grading_scale> <links> <self>https://.../v1/sections/4318461/grading_scales</self> </links> </result>
Grading Periods
List the available grading periods for the given course section
Path
GET https://api.schoology.com/v1/sections/{id}/grading_periods
{ "grading_period": [ { "id": 435, "title": "Fall 2013", "weight": 50, "start": "2013-09-01 00:00:00", "end": "2013-12-31 00:00:00" }, { "id": 13011, "title": "Never Ending Period", "weight": 50, "start": "2012-09-17 00:00:00", "end": "2016-09-17 00:00:00" } ], "links": { "self": "https:\/\/...\/v1\/sections\/4318461\/grading_periods" } }XML
<?xml version="1.0" encoding="utf-8" ?> <result> <grading_period> <id>435</id> <title>Fall 2013</title> <weight>50</weight> <start>2013-09-01 00:00:00</start> <end>2013-12-31 00:00:00</end> </grading_period> <grading_period> <id>13011</id> <title>Never Ending Period</title> <weight>50</weight> <start>2012-09-17 00:00:00</start> <end>2016-09-17 00:00:00</end> </grading_period> <links> <self>https://.../v1/sections/4318461/grading_periods</self> </links> </result>