Table of Contents

Teacher Information

Staff-Teacher Information

Course Information

Student Information

Section (from Scheduling Master Schedule)

Section (from Scheduling Master Schedule) - Create

Section (from Scheduling Master Schedule) - Update

Section (from Scheduling Master Schedule) - Delete

Student Course Requests

Student Course Requests - Create

Student Course Requests - Update

Student Course Requests - Delete

 v4p1 (i.e., version 4.1) API endpoints to support the redesigned Alternate Course Requests


Introduction

This article describes enhancements to the Aeries API that were developed for Always Be Learning, Inc for their Abl product to interact with the Aeries scheduling tables.  These enhancements are technically available to any vendor with appropriate permissions, though great caution must be exercised when adding, updating, or deleting information using the Aeries API.


Main API Documentation

Please refer to the Aeries API Full Documentation for more information about the Aeries API.  Version 4 (V4) of the Aeries API has not yet been fully released. Once a complete set of V4 endpoints is ready for publication, the main API documentation will be updated. In the meantime, separate documentation is being provided to appropriate vendors as V4 endpoints are added and updated.


Error Messages

As much as possible, human-readable errors will be returned by the endpoints described below. If the HTTP status code in the response indicates an error (code 400 or above), the response body should be parsed for the detailed error message.


Errors may occur for several reasons. Attempting to retrieve a single object that does not exist will result in a 404 Not Found error. Omitting a required field in a POST request payload will result in a 400 Bad Request error. A violation of other business rules in a POST or PUT request will also result in a 400 Bad Request error. For example, attempting to create a section using an inactive Course ID will generate an error.


Error Example (JSON):


{
    "Message": "Course ID is required."
}


Error Example (XML):


<Error>
    <Message>Course ID is required.</Message>
</Error>


Teacher Information

Revision:

  • Updated to V4 and added a new field.

Security Area:

  • "Teacher Data"

URL(s):

  • /api/v4/schools/{SchoolCode}/teachers/{TeacherNumber}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • TeacherNumber (optional) – the School-Based Aeries Teacher Number.

Notes:

  • If Teacher Number is not passed, all teacher records in the given school will be returned.

Example Multiple Teacher Information Results:

https://demo.aeries.net/aeries/api/schools/994/teachers

<ArrayOfTeacher xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
  <Teacher>
    <DisplayName>Aldrich</DisplayName>
    <EmailAddress>Teacher601@example.com</EmailAddress>
    <FirstName>Heidi</FirstName>
    <HighlyQualifiedStatusCode1></HighlyQualifiedStatusCode1>
    <HighlyQualifiedStatusCode2></HighlyQualifiedStatusCode2>
    <HighlyQualifiedStatusCode3></HighlyQualifiedStatusCode3>
    <InactiveStatusCode>I</InactiveStatusCode>
    <LastName></LastName>
    <NextYearInactiveStatusCode></NextYearInactiveStatusCode>
    <Room></Room>
    <SchoolCode>994</SchoolCode>
    <StaffID1>994601</StaffID1>
    <StaffID2>0</StaffID2>
    <StaffID3>0</StaffID3>
    <StateCourseCode></StateCourseCode>
    <TeacherNumber>601</TeacherNumber>
  </Teacher>
  …
  …
</ArrayOfTeacher>


Example Single Teacher Information Results:

https://demo.aeries.net/aeries/api/schools/994/teachers/605

<Teacher xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
  <DisplayName>Acosta</DisplayName>
  <EmailAddress>Teacher605@example.com</EmailAddress>
  <FirstName>Heather</FirstName>
  <HighlyQualifiedStatusCode1></HighlyQualifiedStatusCode1>
  <HighlyQualifiedStatusCode2></HighlyQualifiedStatusCode2>
  <HighlyQualifiedStatusCode3></HighlyQualifiedStatusCode3>
  <InactiveStatusCode></InactiveStatusCode>
  <LastName></LastName>
  <NextYearInactiveStatusCode></NextYearInactiveStatusCode>
  <Room>12</Room>
  <SchoolCode>994</SchoolCode>
  <StaffID1>994605</StaffID1>
  <StaffID2>0</StaffID2>
  <StaffID3>0</StaffID3>
  <StateCourseCode></StateCourseCode>
  <TeacherNumber>605</TeacherNumber>
</Teacher>


Field Documentation:

NameAeries Table.ColumnDescription
DisplayNameTCH.TEThe display name for the teacher that is used throughout the Aeries system. This may be different from the teacher’s actual first and last name.
EmailAddressTCH.EMThe teacher’s email address.
FirstNameTCH.TFThe teacher’s first name
HighlyQualifiedStatusCode1TCH.HQTFor self-contained elementary classroom teachers, the method by which the teacher associated with Staff ID 1 became Highly Qualified
HighlyQualifiedStatusCode2TCH.HQ2For self-contained elementary classroom teachers, the method by which the teacher associated with Staff ID 2 became Highly Qualified
HighlyQualifiedStatusCode3TCH.HQ3For self-contained elementary classroom teachers, the method by which the teacher associated with Staff ID 3 became Highly Qualified
InactiveStatusCodeTCH.TGAny value other than blank indicates that this teacher is inactive. Inactive teachers should have no active class sections and no students.
LastNameTCH.TLNThe teacher’s last name
NextYearInactiveStatusCodeTCH.NTGThe inactive status code that will be effective as of the next school year. Any value other than blank indicates that this teacher should not be scheduled for next year.
RoomTCH.RMThe teacher’s room number
SchoolCodeTCH.SCThe Aeries school code
StaffID1TCH.IDThe teacher’s staff ID
StaffID2TCH.ID2For team teaching, the 2nd teacher’s staff ID
StaffID3TCH.ID3For team teaching, the 3rd teacher’s staff ID
StateCourseCodeTCH.CBFor elementary schools without a master schedule, this value will be used when reporting course section enrollment to the state. If the school has a master schedule, the value will be taken from the Courses table instead.
TeacherNumberTCH.TNThe school-based Aeries teacher number


Staff-Teacher Information

Revision:

  • Updated to V4.

Security Area:

  • "Teacher Data"

URL(s):

  • /api/v4/staff/{StaffID}/teachers
    • StaffID (required) – The Aeries District Staff ID (numeric).

Notes:

  • This end point will return a list of teacher records associated with the given Staff ID.

Example Staff-Teacher Information Results:


<ArrayOfTeacher xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
  <Teacher>
    <DisplayName>Acosta</DisplayName>
    <EmailAddress>Teacher605@example.com</EmailAddress>
    <FirstName>Heather</FirstName>
    <HighlyQualifiedStatusCode1></HighlyQualifiedStatusCode1>
    <HighlyQualifiedStatusCode2></HighlyQualifiedStatusCode2>
    <HighlyQualifiedStatusCode3></HighlyQualifiedStatusCode3>
    <InactiveStatusCode></InactiveStatusCode>
    <LastName></LastName>
    <NextYearInactiveStatusCode></NextYearInactiveStatusCode>
    <Room>12</Room>
    <SchoolCode>994</SchoolCode>
    <StaffID1>994605</StaffID1>
    <StaffID2>0</StaffID2>
    <StaffID3>0</StaffID3>
    <StateCourseCode></StateCourseCode>
    <TeacherNumber>605</TeacherNumber>
  </Teacher>
  …
  …
</ArrayOfTeacher>


Field Documentation:

(Same as Teacher Information field documentation above)


Course Information

Revision:

  • Updated to V4 and added new fields.

Security Area:

  • "Course Data"

URL(s):

  • /api/v4/courses/{CourseID}
    • CourseID (optional) – The Aeries Course ID (alphanumeric).

Notes:

  • If Course ID is not passed, all courses in the district will be returned.

Example Multiple Course Information Results:


<ArrayOfCourse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
  <Course>
    <AlternateCourse></AlternateCourse>
    <CSFCourseList>A</CSFCourseList>
    <CSU_Rule_CanBeAnElective>G</CSU_Rule_CanBeAnElective>
    <CSU_Rule_HonorsCode></CSU_Rule_HonorsCode>
    <CSU_Rule_ValidationLevelCode></CSU_Rule_ValidationLevelCode>
    <CSU_SubjectAreaCode>C</CSU_SubjectAreaCode>
    <CollegePrepIndicatorCode>P</CollegePrepIndicatorCode>
    <ContentDescription></ContentDescription>
    <CreditDefault>5.0000</CreditDefault>
    <CreditMax>10.0000</CreditMax>
    <DefaultMaxStudents>0</DefaultMaxStudents>
    <DepartmentCode>M</DepartmentCode>
    <HighGrade>12</HighGrade>
    <ID>0618</ID>
    <InactiveStatusCode></InactiveStatusCode>
    <LongDescription>PreCalculus</LongDescription>
    <LowGrade>10</LowGrade>
    <NextYearInactiveStatusCode>X</NextYearInactiveStatusCode>
    <NonAcademicOrHonorsCode></NonAcademicOrHonorsCode>
    <Notes></Notes>
    <PhysicalEducationIndicator>false</PhysicalEducationIndicator>
    <PrerequisiteCourse></PrerequisiteCourse>
    <StateCourseCode>2498</StateCourseCode>
    <SubjectArea1Code>D</SubjectArea1Code>
    <SubjectArea2Code>J</SubjectArea2Code>
    <SubjectArea3Code> </SubjectArea3Code>
    <TeacherAideIndicator>false</TeacherAideIndicator>
    <TermTypeCode>Y</TermTypeCode>
    <Title>PreCalculus</Title>
    <UC_Rule_CanBeAnElective>G</UC_Rule_CanBeAnElective>
    <UC_Rule_HonorsCode></UC_Rule_HonorsCode>
    <UC_Rule_ValidationLevelCode>0</UC_Rule_ValidationLevelCode>
    <UC_SubjectAreaCode>C</UC_SubjectAreaCode>
  </Course>
  …
  …
</ArrayOfCourse>


Example Single Course Information Results:


<Course xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
  <AlternateCourse></AlternateCourse>
  <CSFCourseList>A</CSFCourseList>
  …
  <UC_SubjectAreaCode>C</UC_SubjectAreaCode>
</Course>


Field Documentation:

NameAeries Table.ColumnDescription
AlternateCourseCRS.ACThe Alternate Course is used as a reference for an optional course that a student can take if all classes of the primary course request are full.
CSFCourseListCRS.C1The standardized list from the California Scholarship Federation to which this course belongs.
CSU_Rule_CanBeAnElectiveCRS.CSEIf flagged with a ‘G’ this course can roll into CSU
Electives when the assigned subject area is full.
CSU_Rule_HonorsCodeCRS.CSHIf flagged with ‘H’ this course is counted as an honors course for purposes of CSU Eligibility.
CSU_Rule_ValidationLevelCodeCRS.VLCourse Validation Level is allowed by CSU for certain flexibilities when evaluating whether or not a student has completed a particular subject and gained requirements necessary to enter college.
CSU_SubjectAreaCodeCRS.E1The Subject Area that this course will count toward for completing the CSU entrance requirements.
CollegePrepIndicatorCodeCRS.CPIndicates whether the course is counted as a college preparatory course.
ContentDescriptionCRS.CDMore detailed description of the course and/or the course content.
CreditDefaultCRS.CRDefault number of credits that a student will receive by passing this course
CreditMaxCRS.MCMaximum Credit that a student can receive by taking this course multiple times.
DefaultMaxStudentsCRS.MXThe default maximum seats available for this course.
DepartmentCodeCRS.DCThe department code allows sorting reports by department, such as English.
HighGradeCRS.HIHighest grade level that would normally take this course. Used in Scheduling to prevent students outside the grade range from being scheduled into the class.
IDCRS.CNIdentification assigned to a course that can be up to 6 characters in length. The ID can contain letters and/or numbers, for example ENG123 but MUST not start with a space or special character, such as an asterisk *
InactiveStatusCodeCRS.TGAny non-blank value will inactivate the course and prevent sections from being added to the Master Schedule and Scheduling Master Schedule.
LongDescriptionCRS.DEThe long course title (max 30 characters)
LowGradeCRS.LOLowest grade level that would normally take this course. Used in Scheduling to prevent students outside the Grade Range from being scheduled into the class.
NextYearInactiveStatusCodeCRS.NTGThe inactive status code that will be effective as of the next school year. Any non-blank value indicates that the course should not be scheduled for next year.
NonAcademicOrHonorsCodeCRS.NAIndicates whether the course is a (N) Non Academic or (H) Honors.
NotesCRS.CMFree-text note about this course
PhysicalEducationIndicatorCRS.PEIndicates whether this course is a physical education course. Primarily used to single out the PE teacher among all a student’s teachers for purposes of entering Physical Fitness Test data.
PrerequisiteCourseCRS.PRThe Prerequisite Course is used as a reference for a required course that a student must take and pass prior to being enrolled in this course.
StateCourseCodeCRS.C3Specific code assigned to courses by the California Department of Education that corresponds to the content of the course.
SubjectArea1CodeCRS.S1The first Graduation Requirements subject area that this course satisfies. Code description can be found through the Graduation Requirements API
SubjectArea2CodeCRS.S2The second Graduation Requirements subject area that this course satisfies if all requirements have been met for the S1 subject area. Code description can be found through the Graduation Requirements API
SubjectArea3CodeCRS.S3The third Graduation Requirements subject area that this course satisfies if all requirements have been met for the S1 and S2 subject areas. Code description can be found through the Graduation Requirements API
TeacherAideIndicatorCRS.TAIndicates whether the course is a Teacher Aide course. Many reports within Aeries give users the option to skip TA courses.
TermTypeCodeCRS.TMIndicates the length of a given course.
TitleCRS.COThe short course title (max 15 characters)
UC_Rule_CanBeAnElectiveCRS.U2If flagged with a ‘G’ this course can roll into UC
Electives when the assigned subject area is full.
UC_Rule_HonorsCodeCRS.U3If flagged with ‘H’ this course is counted as an honors course for purposes of UC Eligibility.
UC_Rule_ValidationLevelCodeCRS.VLUCourse Validation Level is allowed by UC for certain flexibilities when evaluating whether or not a student has completed a particular subject and gained requirements necessary to enter college.
UC_SubjectAreaCodeCRS.U1The Subject Area that this course will count toward for completing the UC entrance requirements.


Student Information

Revision:

  • Updated to V4 and added new fields.

Security Area:

  • "Student Data"

URL(s):

  • /api/v4/schools/{SchoolCode}/students/{StudentID}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • StudentID (optional) – the Aeries Student District Permanent ID Number.
  • /api/v4/schools/{SchoolCode}/students/grade/{GradeLevel}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • GradeLevel (required) – the academic grade level of the set of students to return.
  • /api/v4/schools/{SchoolCode}/students/sn/{StudentNumber}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • StudentNumber (required) – the School-Based Student Number of the student to return.

Query String Filters:

  • StartingRecord – (numeric) The Record-Count value of the first record to return (inclusive).
  • EndingRecord – (numeric) The Record-Count value of the last record to return (inclusive).

Notes:

  • If Student ID is not passed, all students for the given school will be returned.
  • Results are always returned in the form of an "Array of Students" because often students have multiple records in a district if they are concurrently enrolled or have switched between schools during the school year.

Example Student Information Results:


<ArrayOfStudent xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Student">
  <Student>
    <AddressVerified>false</AddressVerified>
    <AtRiskPoints>44.0000</AtRiskPoints>
    <AttendanceProgramCodeAdditional1></AttendanceProgramCodeAdditional1>
    <AttendanceProgramCodeAdditional2></AttendanceProgramCodeAdditional2>
    <AttendanceProgramCodePrimary></AttendanceProgramCodePrimary>
    <Birthdate>2000-11-11T00:00:00</Birthdate>
    <CorrespondanceLanguageCode>00</CorrespondanceLanguageCode>
    <CounselorNumber>708</CounselorNumber>
    <DistrictEnterDate>2006-11-11T00:00:00</DistrictEnterDate>
    <EthnicityCode>N</EthnicityCode>
    <FamilyKey>1480</FamilyKey>
    <FirstName>Allan</FirstName>
    <FirstNameAlias>AJ</FirstNameAlias>
    <Gender>M</Gender>
    <Grade>12</Grade>
    <GradeLevelLongDescription>Twelfth Grade</GradeLevelLongDescription>
    <GradeLevelShortDescription>12</GradeLevelShortDescription>
    <HighSchedulingPeriod>9</HighSchedulingPeriod>
    <HomeLanguageCode>01</HomeLanguageCode>
    <HomePhone>7775559448</HomePhone>
    <HomeRoomTeacherNumber>0</HomeRoomTeacherNumber>
    <InactiveStatusCode></InactiveStatusCode>
    <LanguageFluencyCode>L</LanguageFluencyCode>
    <LastName>Abbott</LastName>
    <LastNameAlias></LastNameAlias>
    <LockerNumber></LockerNumber>
    <LowSchedulingPeriod>0</LowSchedulingPeriod>
    <MailingAddress>1118 Glenview Lane</MailingAddress>
    <MailingAddressCity>Eagle Rock</MailingAddressCity>
    <MailingAddressState>CA</MailingAddressState>
    <MailingAddressZipCode>99999</MailingAddressZipCode>
    <MailingAddressZipExt>1234</MailingAddressZipExt>
    <MiddleName>James</MiddleName>
    <MiddleNameAlias></MiddleNameAlias>
    <NetworkLoginID></NetworkLoginID>
    <NextGrade>13</NextGrade>
    <NextGradeLevelLongDescription>Reserved for Graduating Seniors</NextGradeLevelLongDescription>
    <NextGradeLevelShortDescription>13</NextGradeLevelShortDescription>
    <NextSchoolCode>0</NextSchoolCode>
    <NotificationPreferenceCode></NotificationPreferenceCode>
    <OldPermanentID>0</OldPermanentID>
    <ParentEdLevelCode>12</ParentEdLevelCode>
    <ParentEmailAddress></ParentEmailAddress>
    <ParentGuardianName>M/M A Abbott</ParentGuardianName>
    <PermanentID>99400001</PermanentID>
    <RaceCode1>700</RaceCode1>
    <RaceCode2></RaceCode2>
    <RaceCode3></RaceCode3>
    <RaceCode4></RaceCode4>
    <RaceCode5></RaceCode5>
    <ResidenceAddress>1118 Glenview Lane</ResidenceAddress>
    <ResidenceAddressCity>Eagle Rock</ResidenceAddressCity>
    <ResidenceAddressState>CA</ResidenceAddressState>
    <ResidenceAddressZipCode>99999</ResidenceAddressZipCode>
    <ResidenceAddressZipExt>1234</ResidenceAddressZipExt>
    <SchoolCode>994</SchoolCode>
    <SchoolEnterDate>2013-09-05T00:00:00</SchoolEnterDate>
    <SchoolLeaveDate i:nil="true" />
    <StateStudentID>1234567890</StateStudentID>
    <StudentEmailAddress>student@aeries.com</StudentEmailAddress>
    <StudentMobilePhone></StudentMobilePhone>
    <StudentNumber>1</StudentNumber>
    <Track></Track>
    <UserCode1></UserCode1>
    <UserCode10></UserCode10>
    <UserCode11></UserCode11>
    <UserCode12></UserCode12>
    <UserCode13></UserCode13>
    <UserCode2></UserCode2>
    <UserCode3></UserCode3>
    <UserCode4>N</UserCode4>
    <UserCode5></UserCode5>
    <UserCode6>G</UserCode6>
    <UserCode7>C</UserCode7>
    <UserCode8></UserCode8>
    <UserCode9></UserCode9>
  </Student>
  …
  …
</ArrayOfStudent>


Field Documentation:

NameAeries Table.ColumnDescription
AddressVerifiedSTU.AVIndicates whether the student’s residence address has been verified
AtRiskPointsSTU.RPThe total number of “at-risk” points. Used by the Aeries Analytics Early Warning System
AttendanceProgramCodeAdditional1STU.AP1An additional specialized attendance program to which this student belongs
AttendanceProgramCodeAdditional2STU.AP2An additional specialized attendance program to which this student belongs
AttendanceProgramCodePrimarySTU.SPThe primary specialized attendance program to which this student currently belongs. Attendance programs are used to separate certain students’ attendance data in the monthly apportionment (ADA) calculations.
BirthdateSTU.BDDate of Birth
CorrespondanceLanguageCodeSTU.CLThe preferred language for correspondence sent regarding this student
CounselorNumberSTU.CUA school-based Aeries teacher number (0-999). Represents the student’s counselor (secondary schools) or classroom teacher (elementary schools).
DistrictEnterDateSTU.DDDate student entered the district
EthnicityCodeSTU.ETH“Y” or “N” Hispanic indicator
FamilyKeySTU.FKNumeric. Students with the same nonzero Family Key are considered “siblings” in Aeries.
FirstNameSTU.FNStudent’s legal first name
FirstNameAliasSTU.FNAStudent’s first name alias
GenderSTU.GNStudent's gender identification.  May be M or F or another coded value for non-binary gender identifications.
GradeSTU.GRStudent’s grade level. Valid range is (-2) – 18.
GradeLevelLongDescriptionCOD.DELong description of the student's grade level.
GradeLevelShortDescriptionCOD.CDShort description of the student's grade level.  For most grade levels, this will be the same as Grade. There are some special grade levels such as -2, -1, 0, and 14-18 which may have different short descriptions (e.g., -1 = TK).
HighSchedulingPeriodSTU.HI0-9 Highest scheduling period
HomeLanguageCodeSTU.HLThe student’s primary language for purposes of English Learner classification
HomePhoneSTU.TLStudent’s home phone number
HomeRoomTeacherNumber(calculated value)A school-based Aeries teacher number. The student’s homeroom teacher based on the class period the school designates as homeroom.
InactiveStatusCodeSTU.TGStudent’s status (blank is active)
LanguageFluencyCodeSTU.LFLanguage fluency code
LastNameSTU.LNStudent’s legal last name
LastNameAliasSTU.LNAStudent’s last name alias
LockerNumberSTU.LKLocker number
LowSchedulingPeriodSTU.LO0-9 Lowest scheduling period
MailingAddressSTU.ADStudent’s mailing address
MailingAddressCitySTU.CYStudent’s mailing address city
MailingAddressStateSTU.STStudent’s mailing address state
MailingAddressZipCodeSTU.ZCStudent’s mailing address zip code
MailingAddressZipExtSTU.ZXStudent’s mailing address zip code extension
MiddleNameSTU.MNStudent’s legal middle name
MiddleNameAliasSTU.MNAStudent’s middle name alias
NetworkLoginIDSTU.NIDStudent’s Network Login ID. Districts may use this for various purposes, but most commonly for a directory services (e.g., Active Directory) username
NextGradeSTU.NGStudent’s grade level for next school year. Valid range is (-2) – 18.
NextGradeLevelLongDescriptionCOD.DELong description of the student's next year grade level.
NextGradeLevelShortDescriptionCOD.CDShort description of the student's next year grade level.
NextSchoolCodeSTU.NSThe Aeries school code of the school the student will attend next year.
NotificationPreferenceCodeSTU.NPIndicates the Aeries Communications notification preference of this student
OldPermanentIDSTU.OIDThe student's old permanent ID. If this is populated with a value other than 0, this usually indicates that the student was copied from a feeder district, and this value is the student's permanent ID from the previous district. It could also indicate that the student's permanent ID was previously changed for some reason. It is also possible that a district is using this field for a different purpose than what is intended.
ParentEdLevelCodeSTU.PEDHighest level of education completed by either of the student’s parents (for socioeconomically disadvantaged classification purposes)
ParentEmailAddressSTU.PEM(deprecated, but still in use by some customers) The primary parent/guardian email address
ParentGuardianNameSTU.PGParent/Guardian name
PermanentIDSTU.IDStudent’s Permanent ID
RaceCode1STU.RC1Student’s first reported race
RaceCode2STU.RC2Student’s second reported race
RaceCode3STU.RC3Student’s third reported race
RaceCode4STU.RC4Student’s fourth reported race
RaceCode5STU.RC5Student’s fifth reported race
ResidenceAddressSTU.RADResidence address
ResidenceAddressCitySTU.RCYResidence address city
ResidenceAddressStateSTU.RSTResidence address state
ResidenceAddressZipCodeSTU.RZCResidence address zip code
ResidenceAddressZipExtSTU.RZXResidence address zip code extension
SchoolCodeSTU.SCAeries school code
SchoolEnterDateSTU.EDDate student first entered this school
SchoolLeaveDateSTU.LDDate student left this school
StateStudentIDSTU.CIDStatewide Student ID
StudentEmailAddressSTU.SEMStudent’s email address
StudentMobilePhoneSTU.MPHMobile phone number
StudentNumberSTU.SNSchool-based Student Number
TrackSTU.TRStudent’s attendance track
UserCode1STU.U1User-defined code 1
UserCode10STU.U10User-defined code 10
UserCode11STU.U11User-defined code 11
UserCode12STU.U12User-defined code 12
UserCode13STU.U13User-defined code 13
UserCode2STU.U2User-defined code 2
UserCode3STU.U3User-defined code 3
UserCode4STU.U4User-defined code 4
UserCode5STU.U5User-defined code 5
UserCode6STU.U6User-defined code 6
UserCode7STU.U7User-defined code 7
UserCode8STU.U8User-defined code 8
UserCode9STU.U9User-defined code 9


Section (from Scheduling Master Schedule)

Revision:

  • New set of endpoints for full CRUD access to Scheduling Master Schedule.

Security Area:

  • "Scheduling Master Schedule"

URL(s):

  • /api/v4/schools/{SchoolCode}/scheduling/sections/{SectionNumber}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • SectionNumber (optional) – The school-based Aeries section number.

Notes:

  • If Section Number is not passed, all section records in the scheduling master schedule of the given school will be returned.

Example Multiple Section (from Scheduling Master Schedule) Results:


<ArrayOfSchedulingMasterScheduleSection xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
  <SchedulingMasterScheduleSection>
    <CareerTechnicalEducationProviderCode></CareerTechnicalEducationProviderCode>
    <ClassID>0</ClassID>
    <ClassTypeCode></ClassTypeCode>
    <CountsForADA></CountsForADA>
    <CourseID>0917</CourseID>
    <Credit>5.0000</Credit>
    <DistanceLearningIndicator></DistanceLearningIndicator>
    <EducationServiceCode>4</EducationServiceCode>
    <ExclusionCode></ExclusionCode>
    <FundingSourceCode></FundingSourceCode>
    <GenderRestriction></GenderRestriction>
    <HighGrade>12</HighGrade>
    <HighlyQualifiedStatusCode1></HighlyQualifiedStatusCode1>
    <HighlyQualifiedStatusCode2></HighlyQualifiedStatusCode2>
    <HighlyQualifiedStatusCode3></HighlyQualifiedStatusCode3>
    <HourlyAttendanceProgramCode></HourlyAttendanceProgramCode>
    <InactiveStatusCode></InactiveStatusCode>
    <IndependentStudyIndicator></IndependentStudyIndicator>
    <InstructionalStrategyCode>500</InstructionalStrategyCode>
    <ItinerantTeacherIndicator>0</ItinerantTeacherIndicator>
    <LanguageOfInstructionCode>00</LanguageOfInstructionCode>
    <LowGrade>9</LowGrade>
    <MaxStudents>20</MaxStudents>
    <MonthlyMinutes>0</MonthlyMinutes>
    <MultiTeacherCode></MultiTeacherCode>
    <Period>1</Period>
    <PeriodBlock>1</PeriodBlock>
    <PopulationServedCode></PopulationServedCode>
    <ProgramCode></ProgramCode>
    <Room>F8</Room>
    <SchedulingGroup></SchedulingGroup>
    <SchoolCode>994</SchoolCode>
    <SectionNumber>1109</SectionNumber>
    <Semester>Y</Semester>
    <SemesterGroup></SemesterGroup>
    <SplitTerm>MTWTF</SplitTerm>
    <TeacherNumber1>808</TeacherNumber1>
    <TeacherNumber2>0</TeacherNumber2>
    <TeacherNumber3>0</TeacherNumber3>
    <TeamCourseGroup></TeamCourseGroup>
    <TeamNumber>0</TeamNumber>
    <TotalBoys>12</TotalBoys>
    <TotalGirls>4</TotalGirls>
    <TotalOtherGender>0</TotalOtherGender>
    <TotalPrescheduled>0</TotalPrescheduled>
    <TotalStudents>16</TotalStudents>
    <Track></Track>
    <UseSupplementalAttendance>false</UseSupplementalAttendance>
    <UserCode1></UserCode1>
    <UserCode2></UserCode2>
    <UserCode3></UserCode3>
    <UserCode4></UserCode4>
    <UserCode5></UserCode5>
    <UserCode6></UserCode6>
    <UserCode7></UserCode7>
    <UserCode8></UserCode8>
  </SchedulingMasterScheduleSection>
  …
  …
</ArrayOfSchedulingMasterScheduleSection>


Example Single Section (from Scheduling Master Schedule) Results:


<SchedulingMasterScheduleSection xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
  <CareerTechnicalEducationProviderCode></CareerTechnicalEducationProviderCode>
  …
  <UserCode8></UserCode8>
</SchedulingMasterScheduleSection>


Field Documentation:


NameAeries Table.ColumnDescription
CareerTechnicalEducationProviderCodeSMS.TEPIndicates what entity is providing the Career Technical Education class (e.g., “ROP” or “District”)
ClassIDSMS.CIDThis field is used to identify separate sections as an individual "Class". The Class Size Reduction Reports use the Class ID field.
ClassTypeCodeSMS.CTYFor Texas state reporting, this field indicates the type of class.
CountsForADASMS.ADASections tagged with “N” will not affect the running of the Mass Change All Day Code process when requiring an absence in every period.
CourseIDSMS.CNThe Aeries District Course ID
CreditSMS.CRThe number of credits a student will receive for taking this section.
DaysSMS.DYThe days of the week this class meets
DistanceLearningIndicatorSMS.DLIIndicates whether this section is offered through distance learning (e.g., online course).
EducationServiceCodeSMS.ESRThe type of education service provided to English Learners in this class
ExclusionCodeSMS.STWhether this section should be excluded from grades and/or attendance reporting
FundingSourceCodeSMS.FSThe funding source for this section (e.g., California Partnership Academy)
GenderRestrictionSMS.GNThis section is restricted to students of a particular gender
HighGradeSMS.HIThe highest grade level of students who would normally take this section.
HighlyQualifiedStatusCode1SMS.HQTThe method by which the primary teacher became Highly Qualified to teach this subject
HighlyQualifiedStatusCode2SMS.HQ2For team teaching/job sharing, the method by which Teacher 2 became Highly Qualified to teach this subject
HighlyQualifiedStatusCode3SMS.HQ3For team teaching/job sharing, the method by which Teacher 3 became Highly Qualified to teach this subject
HourlyAttendanceProgramCodeSMS.HP(no longer used) Was used in summer schools for funding purposes.
InactiveStatusCodeSMS.STGAny value other than blank indicates this section is inactive. Inactive sections should not have any students enrolled.
IndependentStudyIndicatorSMS.ISIIndicates whether this is an independent study class
InstructionalStrategyCodeSMS.INSThe instructional strategy used in this class for specific student groups such English Learners or special education students
ItinerantTeacherIndicatorSMS.ITIndicates whether this section is taught by an itinerant teacher
LanguageOfInstructionCodeSMS.LIThe language in which this class is taught.
LowGradeSMS.LOThe lowest grade level of students who would normally take this section.
MaxStudentsSMS.MXThe maximum number of students who can enroll in this section (i.e., class capacity).
MonthlyMinutesSMS.MMNFor Texas state reporting, this field represents the total number of minutes this class is taught in a month (typically a four-week period).
MultiTeacherCodeSMS.MTSThe type of multi-teacher configuration for this section (such as team teaching or job sharing)
PeriodSMS.PDThe period (0 – 9) this class meets
PeriodBlockSMS.BLIf the class spans multiple consecutive periods, this value will be greater than 1. E.g., if Period is 3 and PeriodBlock is 2, then the class spans period 3 – 4.
PopulationServedCodeSMS.PSVFor Texas state reporting, this field indicates the type of student population served by this section.
ProgramCodeSMS.PRSpecial program related to this section. Certain reports in Aeries can be limited by special program.
RoomSMS.RMThe room number in which this class meets
SchedulingGroupSMS.SGThe Scheduling Group for this section. This is used to create scheduling restrictions and is used in conjunction with the student’s Scheduling Group (see Student Information Extended). Students with a blank scheduling group cannot be scheduled into sections with a non-blank scheduling group, and students with a non-blank scheduling group can only be scheduled into sections with the same or blank scheduling group.
SchoolCodeSMS.SCThe Aeries school code
SectionNumberSMS.SEThe school-based Aeries section number
SemesterSMS.SMThe term during which this section meets
SemesterGroupSMS.GPThe Semester Group for this section. Semester Groups are used to ensure that certain classes are scheduled for a student in different semesters and not at the same time.
TeacherNumber1SMS.TNThe school-based Aeries teacher number of the teacher primarily responsible for this section.
TeacherNumber2SMS.TN2The teacher number of the second teacher teaching this section
TeacherNumber3SMS.TN3The teacher number of the third teacher teaching this section
TeamCourseGroupSMS.CGThe team course group is used to create groups of sections to be further divided into teams.
TeamNumberSMS.TMIn conjunction with the team course group, the team number is used to group sections of different courses into teams. For instance, team scheduling can be used to ensure that students are scheduled into English, Math, Social Studies, and Science courses together while allowing PE and elective courses to have a mixture of students.
TotalBoysSMS.TBThe total number of boys (males) currently enrolled in the section
TotalGirlsSMS.TGThe total number of girls (females) currently enrolled in the section
TotalOtherGenderSMS.TOGThe total number of students of other gender identities (e.g., non-binary) enrolled in the section
TotalPrescheduledSMS.PSThe total number of students currently pre-scheduled in the section
TotalStudentsSMS.TSThe total number of students currently enrolled in the sections
TrackSMS.TRThis section is restricted to students in a specific attendance track.
UseSupplementalAttendanceSMS.USAIndicates whether attendance for the section is based on Supplemental Attendance.
UserCode1SMS.U1User-defined code 1
UserCode2SMS.U2User-defined code 2
UserCode3SMS.U3User-defined code 3
UserCode4SMS.U4User-defined code 4
UserCode5SMS.U5User-defined code 5
UserCode6SMS.U6User-defined code 6
UserCode7SMS.U7User-defined code 7
UserCode8SMS.U8User-defined code 8



Section (from Scheduling Master Schedule) - Create


Security Area:

  • "Scheduling Master Schedule" - Insert

URL(s):

  • POST /api/v4/schools/{SchoolCode}/scheduling/sections
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.

Notes:

  • After a successful request, this end point returns HTTP status code 201, and the response body contains the "SchedulingMasterScheduleSection" object that was just created.

POST Payload Object:

  • “SchedulingMasterScheduleSectionUpdate” object


“SchedulingMasterScheduleSectionUpdate” Object Definition:

NameData TypeNotes
SectionNumberInt16The section number that forms part of the primary key. If omitted, the section number will automatically be generated for the new record.
PeriodInt16REQUIRED: Valid values are 0-9.
PeriodBlockInt16REQUIRED: Valid values are 1-10. Also, the sum of Period + PeriodBlock must be less than or equal to 10.
SemesterStringREQUIRED Max length: 1. Must be a valid Term for the school.
SplitTermStringMax length: 6. Indicates when the class meets. Valid values include "A-DAYS", "B-DAYS", "FIRST", "SECOND", "DAILY", or a list of days of the week with dashes as placeholders for days the class does not meet. E.g., MTWTF or M-W-F or -T-T- .
CourseIDStringREQUIRED Max length: 6: The District Course ID for this section
TeacherNumber1Int16REQUIRED: The school-based teacher number of the primary teacher of this section
TeacherNumber2Int16
TeacherNumber3Int16
HighlyQualifiedStatusCode1StringMax length: 1
HighlyQualifiedStatusCode2StringMax length: 1
HighlyQualifiedStatusCode3StringMax length: 1
RoomStringMax length: 6
CreditDecimal
GenderRestrictionStringMax length: 1
LowGradeInt16
HighGradeInt16
MaxStudentsInt16
InactiveStatusCodeStringMax length: 1
ProgramCodeStringMax length: 3
HourlyAttendanceProgramCodeStringMax length: 2
ExclusionCodeStringMax length: 1
CountsForADAStringMax length: 1
MultiTeacherCodeStringMax length: 2
SchedulingGroupStringMax length: 2
TeamCourseGroupStringMax length: 2
TeamNumberInt16
SemesterGroupStringMax length: 1
TrackStringMax length: 1
ClassIDInt32
EducationServiceCodeStringMax length: 1
LanguageOfInstructionCodeStringMax length: 2
InstructionalStrategyCodeStringMax length: 3
FundingSourceCodeStringMax length: 3
CareerTechnicalEducationProviderCodeStringMax length: 1
IndependentStudyIndicatorStringMax length: 1
DistanceLearningIndicatorStringMax length: 1
ItinerantTeacherIndicatorStringMax length: 1
UseSupplementalAttendanceBooleantrue or false
PopulationServedCodeStringMax length: 2
ClassTypeCodeStringMax length: 2
MonthlyMinutesInt16
UserCode1StringMax length: 3
UserCode2StringMax length: 3
UserCode3StringMax length: 3
UserCode4StringMax length: 3
UserCode5StringMax length: 3
UserCode6StringMax length: 3
UserCode7StringMax length: 3
UserCode8StringMax length: 3


Example POST Payload:

{
    "Period": 8,
    "PeriodBlock": 2,
    "Semester": "Y",
    "SplitTerm": "MTWTF",
    "CourseID": "0917",
    "TeacherNumber1": 808,
    "TeacherNumber2": 0,
    "TeacherNumber3": 0,
    "HighlyQualifiedStatusCode1": "",
    "HighlyQualifiedStatusCode2": "",
    "HighlyQualifiedStatusCode3": "",
    "Room": "F8",
    "Credit": 5,
    "GenderRestriction": "",
    "LowGrade": 9,
    "HighGrade": 12,
    "MaxStudents": 20,
    "InactiveStatusCode": "",
    "ProgramCode": "",
    "HourlyAttendanceProgramCode": "",
    "ExclusionCode": "",
    "CountsForADA": "",
    "MultiTeacherCode": "",
    "SchedulingGroup": "",
    "TeamCourseGroup": "",
    "TeamNumber": 0,
    "SemesterGroup": "",
    "Track": "",
    "ClassID": 0,
    "EducationServiceCode": "4",
    "LanguageOfInstructionCode": "00",
    "InstructionalStrategyCode": "500",
    "FundingSourceCode": "",
    "CareerTechnicalEducationProviderCode": "",
    "IndependentStudyIndicator": "",
    "DistanceLearningIndicator": "",
    "ItinerantTeacherIndicator": "0",
    "UseSupplementalAttendance": false,
    "PopulationServedCode": "",
    "ClassTypeCode": "",
    "MonthlyMinutes": 0,
    "UserCode1": "",
    "UserCode2": "",
    "UserCode3": "",
    "UserCode4": "",
    "UserCode5": "",
    "UserCode6": "",
    "UserCode7": "",
    "UserCode8": ""
}


Section (from Scheduling Master Schedule) - Update


Security Area:

  • "Scheduling Master Schedule" - Update

URL(s):

  • PUT /api/v4/schools/{SchoolCode}/scheduling/sections/{SectionNumber}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • SectionNumber (required) - the school-based section number for a single record

Notes:

  • If the section number does not exist, a new record will be created.
  • After a successful request, this end point returns the "SchedulingMasterScheduleSection" object that was just updated or created. If an existing record was updated, the status code will be 200. If a new record was created, the status code will be 201.

PUT Payload Object:

  • “SchedulingMasterScheduleSectionUpdate” object


“SchedulingMasterScheduleSectionUpdate” Object Definition:


The definition is the same that is given with the Section (from Scheduling Master Schedule) - Create documentation, with the following exceptions:


  • SectionNumber is ignored in the body. The SectionNumber from the URL is used instead.
  • There are no required elements when updating an existing record. Elements that are omitted from the request will be unchanged on the existing record.
  • IMPORTANT: When changing the CourseID, the following additional element is required in the object passed in the request body:


NameData TypeNotes
StudentScheduleOptionsStringValid values are "LockedStudents", "AllStudents", and "DropStudents". This element determines what action to take with Student Course Requests that are already assigned to this section.  If there are no Student Course Requests assigned to this section, this element will be ignored.

LockedStudents: Update the Course Request Course ID only for students whose section assignment is Locked (either the PermanentLockCode is populated, or the RejectCode is populated with '*'). All other students will have their Course Request unassigned from this section.
AllStudents: Update the Course Request Course ID for all students currently assigned to this section.
DropStudents: Unassign all students from this section. The actual Student Course Requests will be kept, but the section assignment will be cleared.


Example PUT Payload:

{
    "CourseID": "0917",
    "StudentScheduleOptions": "LockedStudents"
}


Section (from Scheduling Master Schedule) - Delete


Security Area:

  • "Scheduling Master Schedule" - Delete

URL(s):

  • DELETE /api/v4/schools/{SchoolCode}/scheduling/sections/{SectionNumber}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • SectionNumber (required) - the school-based section number for a single record

Notes:

  • After a successful request, an empty response with HTTP status code 204 will be returned.
  • If there are Student Course Requests assigned to the section, they will automatically be unassigned from the section. The actual Student Course Requests will be kept, but the section assignment will be cleared.


Student Course Requests

Revision:

  • New set of endpoints for full CRUD access to Student Course Requests.

Security Area:

  • "Student Scheduling Schedules (Course Requests)"

URL(s):

  • /api/v4/schools/{SchoolCode}/scheduling/courserequests
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
  • /api/v4/schools/{SchoolCode}/students/{StudentID}/courserequests/{SequenceNumber}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • StudentID (required) - The Aeries Student District Permanent ID Number.
    • SequenceNumber (optional) - The sequence number for a single record for the given student.

Notes:

  • If the student is not passed, all student course request records for the school will be returned.
  • If Sequence Number is not passed, all student course request records for the given student will be returned.

Example Multiple Student Course Requests Results:


<ArrayOfStudentCourseRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
  <StudentCourseRequest>
    <AlternateCourseID>311</AlternateCourseID>
    <AlternateTag></AlternateTag>
    <CourseID>0726</CourseID>
    <PermanentID>99400001</PermanentID>
    <PermanentLockCode></PermanentLockCode>
    <PreferredTeacherNumber>605</PreferredTeacherNumber>
    <RejectCode>*</RejectCode>
    <SchoolCode>994</SchoolCode>
    <SectionNumber>1038</SectionNumber>
    <SequenceNumber>1</SequenceNumber>
  </StudentCourseRequest>
  …
</ArrayOfStudentCourseRequest>


Example Single Student Course Request Results:


<StudentCourseRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" 
   xmlns="http://schemas.datacontract.org/2004/07/Aeries.API.v4.Models.Scheduling">
    <AlternateCourseID>311</AlternateCourseID>
    <AlternateTag></AlternateTag>
    <CourseID>0726</CourseID>
    <PermanentID>99400001</PermanentID>
    <PermanentLockCode></PermanentLockCode>
    <PreferredTeacherNumber>605</PreferredTeacherNumber>
    <RejectCode>*</RejectCode>
    <SchoolCode>994</SchoolCode>
    <SectionNumber>1038</SectionNumber>
    <SequenceNumber>1</SequenceNumber>
</StudentCourseRequest>


Field Documentation:

NameAeries Table.ColumnDescription
AlternateCourseIDSSS.ACThe District course ID of the alternate course that has been requested.
AlternateTagSSS.ATValid values are blank and 'X'. An 'X' indicates that the Scheduler has swapped the alternate course and the primary course because the primary course could not be scheduled.
CourseIDSSS.CNThe District course ID of the primary course that has been requested.
PermanentIDSTU.IDThe Permanent ID for the student
PermanentLockCodeSSS.PLA non-blank value indicates that the assigned section is locked and should not be changed on subsequent runs of the Scheduler.
PreferredTeacherNumberSSS.TNThe school-specific teacher number for the preferred teacher for this student course request. If a section number is assigned, this is NOT necessarily the same as the teacher of that section.
RejectCodeSSS.RTSee Codes API for valid values and descriptions. A value of '*' indicates that the assigned section is locked and should not be changed on subsequent runs of the Scheduler. Any other non-blank value indicates a reason that the requested course could not be scheduled for the student.
SchoolCodeSSS.SCThe Aeries school code
SectionNumberSSS.SEThe section number assigned to this student course request from the Scheduling Master Schedule
SequenceNumberSSS.SQThe sequence number is part of the primary key. It has no independent meaning.


Student Course Requests - Create


Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Insert

URL(s):

  • POST /api/v4/schools/{SchoolCode}/students/{StudentID}/courserequests
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • StudentID (required) - The Aeries Student District Permanent ID Number.ven student.

Notes:

  • After a successful request, this end point returns HTTP status code 201, and the response body contains the "StudentCourseRequest" object that was just created.

POST Payload Object:

  • “StudentCourseRequestUpdate” object


“StudentCourseRequestUpdate” Object Definition:

NameData TypeNotes
SequenceNumberInt16The sequence number that forms part of the primary key. If omitted, the sequence number will automatically be generated for the new record. Aeries recommends allowing the system to automatically assign the sequence number.
SectionNumberInt16If populated, must be a valid Section Number from the Scheduling Master Schedule. This indicates that the student has been assigned to this section during the scheduling process. Also, the Course ID for this course request must match the Course ID of the Scheduling Master Schedule section.
CourseIDStringREQUIRED Max length: 6: The District Course ID for this course request.
PreferredTeacherNumberInt16The school-based teacher number of the preferred teacher for this course request.
RejectCodeStringMax length: 2. Must be a valid code. Use the Codes API for valid codes and descriptions.
AlternateCourseIDStringMax length: 6. If populated, must be a valid District Course ID. The Alternate Course ID may not be the same as the primary Course ID.
AlternateTagStringMax length: 1. Valid values are blank and 'X'. An 'X' indicates that the Scheduler has swapped the alternate course and the primary course because the primary course could not be scheduled.
PermanentLockCodeStringMax length: 2


Example POST Payload:

{
    "SectionNumber": 1109,
    "CourseID": "0917",
    "PreferredTeacherNumber": 808,
    "RejectCode": "*",
    "AlternateCourseID": "0095",
    "AlternateTag": "",
    "PermanentLockCode": ""
}


Student Course Requests - Update


Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Update

URL(s):

  • PUT /api/v4/schools/{SchoolCode}/students/{StudentID}/courserequests/{SequenceNumber}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • StudentID (required) - The Aeries Student District Permanent ID Number.
    • SequenceNumber (required) - The sequence number for a single record for the given student. Must be greater than 0.

Notes:

  • If the sequence number does not exist, a new record will be created.
  • After a successful request, this end point returns the "StudentCourseRequest" object that was just updated or created. If an existing record was updated, the status code will be 200. If a new record was created, the status code will be 201.

PUT Payload Object:

  • “StudentCourseRequestUpdate” object


“StudentCourseRequestUpdate” Object Definition:


The definition is the same that is given with the Student Course Requests - Create documentation, with the following exceptions:


  • SequenceNumber is ignored in the body. The SequenceNumber from the URL is used instead.
  • There are no required elements when updating an existing record. Elements that are omitted from the request will be unchanged on the existing record.


Example PUT Payload:

{     "SectionNumber": 1038,
      "PermanentLockCode": "A"
}


Student Course Requests - Delete


Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Delete

URL(s):

  • DELETE /api/v4/schools/{SchoolCode}/students/{StudentID}/courserequests/{SequenceNumber}
    • SchoolCode (required) – the Aeries School Code. This is normally 1-999.
    • StudentID (required) - The Aeries Student District Permanent ID Number.
    • SequenceNumber (required) - The sequence number for a single record for the given student.

Notes:

  • After a successful request, an empty response with HTTP status code 204 will be returned.


 v4p1 (i.e., version 4.1) API endpoints to support the redesigned Alternate Course Requests


GET methods

Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Read

URL(s)

  • GET /api/v4/schools/{SchoolCode}/scheduling/courserequests/
  • Returns list of course requests (SSS) for the entire school
Differences from v4:
  • AlternateCourseID property is NOT returned
  • If the Alternate Tag is set (SSS.AT = "X"), then the ActualPrimaryCourseID property will have the value from SSS.AC.  This means that an alternate course is currently being scheduled, so SSS.AC contains the original course while SSS.CN is now the alternate
  • AlternateCourseRequests is included and is a list of alternate course requests from ACR that are associated with each primary course request
{
"ActualPrimaryCourseID": "",
"AlternateCourseRequests": [
{
"PermanentID": 99400198,
"SchoolCode": 994,
"SequenceNumber": 2,
"CourseID": "0351",
"PrioritySortOrder": 9.0
},
{
"PermanentID": 99400198,
"SchoolCode": 994,
"SequenceNumber": 3,
"CourseID": "0224",
"PrioritySortOrder": 17.0
}
],
"PermanentID": 99400198,
"SchoolCode": 994,
"SequenceNumber": 7,
"SectionNumber": 0,
"CourseID": "0765",
"PreferredTeacherNumber": 0,
"RejectCode": "C",
"AlternateTag": "",
"PermanentLockCode": ""
},



 /api/v4/schools/{SchoolCode}/students/{StudentID}/courserequests/
  • Returns list of course requests for a single student (by student ID)
  • If sq is passed, then returns a single course request for the student

 /api/v4/schools/{SchoolCode}/students/{StudentID}/courserequests/{sq}
  • Returns list of course requests for a single student (by student number)
  • If sq is passed, then returns a single course request for the student

 /api/v4/schools/{SchoolCode}/scheduling/alternatecourserequests/
  • Returns list of alternate course requests (ACR) for the entire school
  {
"PermanentID": 99400198,
"SchoolCode": 994,
"SequenceNumber": 1,
"CourseID": "0592",
"PrioritySortOrder": 1.0
},
{
"PermanentID": 99400198,
"SchoolCode": 994,
"SequenceNumber": 2,
"CourseID": "0351",
"PrioritySortOrder": 9.0
},


 /api/v4/schools/{SchoolCode}/students/{StudentID}/alternatecourserequests/{sq}
  • Returns list of alternate course requests for a single student (by student ID)
  • If sq is passed, then returns a single alternate course request for the student

 /api/v4/schools/{SchoolCode}/students/sn/{sn}/alternatecourserequests/{sq}
  • Returns list of alternate course requests for a single student (by student number)
  • If sq is passed, then returns a single alternate course request for the student


INSERT/UPDATE/DELETE methods

Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Insert

URL(s)

  • POST /api/v4/schools/{SchoolCode}/students/{StudentID}/courserequests/

Creates a new SSS record and associate existing Alternate Course Requests

Differences from v4:
  • AlternateCourseID is not used
  • ActualPrimaryCourseID can be included (see explanation above) and will be used only if AlternateTag = "X"
  • AlternateCourseRequestReferences can be included as an array of numbers.  The numbers represent sequence numbers of existing alternate course requests for the student (ACR.SQ).  This will associate the new course request with the existing alternate requests (i.e., create ACA records to link SSS to ACR)
Sample Request Body:
{
"SectionNumber": 0,
"CourseID": "0001",
"PreferredTeacherNumber":0,
"RejectCode": "",
"AlternateTag": "",
"ActualPrimaryCourseID": "",
"PermanentLockCode": "",
"AlternateCourseRequestReferences": [
1,
3
]
}


PUT /api/v4/schools/{SchoolCode}/students/{StudentID}/courserequests/{sq}


Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Update

Updates an existing SSS record

Differences from v4:
  • AlternateCourseID is not used
  • ActualPrimaryCourseID can be included (see explanation above) and will be used only if AlternateTag = "X"
  • AlternateCourseRequestReferences can be included as an array of numbers.  The numbers represent sequence numbers of existing alternate course requests for the student (ACR.SQ).  This will associate the course request with the existing alternate requests (i.e., create ACA records to link SSS to ACR)
  • If AlternateCourseRequestReferences is included, then AlternateCourseRequestUpdateOptions should be included with a value of either "Append" or "Replace".
    • If "Append", then no existing ACA records will be deleted, and the AlternateCourseRequestReferences will be added to the existing ACA records
    • If "Replace", then any existing ACA records that are NOT in AlternateCourseRequestReferences will be deleted.  Afterwards, the alternates associated with this course request will be ONLY those given in AlternateCourseRequestReferences
Sample Request Body:
{   "CourseID":"0646",
"AlternateCourseRequestReferences": [
3
],
"AlternateCourseRequestUpdateOptions": "replace"
}

{ "CourseID":"0500",
"AlternateCourseRequestReferences": [
1,2
],
"AlternateCourseRequestUpdateOptions": "Append"
}


POST /api/v4/schools/{SchoolCode}/students/{StudentID}/alternatecourserequests

Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Insert


Creates a new ACR record


Sample request body:
{
"CourseID": "1234",
"RelativePrioritySortOrder": 2
}



The sequence number (ACR.SQ) for the new record will be created automatically.  It is possible to include a new SequenceNumber in the request body, but that is not the recommended practice.

If RelativePrioritySortOrder is omitted/null, then the new record will be sorted last after any existing ACR records.  However, a value of 0 for RelativePrioritySortOrder is invalid and will generate an error response.

NOTE: RelativePrioritySortOrder is the order that the new ACR record should be in.  This is different from the raw PrioritySortOrder value in the ACR.SRT field.  ACR.SRT is calculated automatically using a formula that "squeezes" a new SRT value between existing values so sort order can be maintained while only updating one ACR record at a time.  The caller of the API does not need to worry about this calculation.  For example, if you want the new record to be 2nd, just pass 2 and the system will do the rest.  Therefore, after calling this endpoint, the value returned for PrioritySortOrder will be different from the value requested for RelativePrioritySortOrder.

PUT /api/v4/schools/{SchoolCode}/students/{StudentID}/alternatecourserequests/{sq}


Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Update

Updates an existing ACR record


Sample request body:


{  

"RelativePrioritySortOrder": 4

}


NOTE: RelativePrioritySortOrder is the order that the ACR record should be in.  This is different from the raw PrioritySortOrder value in the ACR.SRT field.  ACR.SRT is calculated automatically using a formula that "squeezes" a new SRT value between existing values so sort order can be maintained while only updating one ACR record at a time.  The caller of the API does not need to worry about this calculation.  For example, if you want the record to be moved to the 1st position, just pass 1 and the system will do the rest.  Therefore, after calling this endpoint, the value returned for PrioritySortOrder will be different from the value requested for RelativePrioritySortOrder.


DELETE /api/v4/schools/{SchoolCode}/students/{StudentID}/alternatecourserequests/{sq}


Security Area:

  • "Student Scheduling Schedules (Course Requests)" - Delete

Delete an existing ACR record and association with Primary Course.



Other Notes
Error handling is in place for things like invalid school, invalid student, trying to get or delete a single record by SQ that doesn't exist, creating/updating with invalid data (e.q., invalid course ID), etc.