Introduction
The Aeries API is a web-based, REST API system. Currently, only certain data sets are updatable through the API, although future versions will contain more updatable objects. The API can output JSON or XML. This document describes all endpoints for the API and how to construct the HTTP Requests.
NOTE: This document is intended for use by vendors wishing to interface with the Aeries API. The current version is v5. This version has been updated to allow for the new Flexible scheduling model using Section-Staff records instead of Teachers. At schools using the new Flex model, TCH records are not used and may not exist, so adjustments may have to made to vendors' code. Teacher number (TCH.TN) is no longer used and PermanentID has been changed to StudentID throughout the API. Details for every API endpoint are described in each section. All previous versions 1-4 are still available.
Things to Know Before You Begin
- Join the "Interfacing With Aeries" Google Group for updates and information about the Aeries API: https://groups.google.com/forum/#!forum/interfacing-with-aeries and interfacing-with-aeries+subscribe@googlegroups.com
- Every customer using Aeries will have an independent website with an independent URL. This includes BOTH districts hosted by Aeries Software and those who host their own installations of Aeries.
- Not every customer has a public-facing instance of Aeries for you to tap into the API through. Districts have a wide range of options in the implementation of the Aeries SIS. The vast majority have some public-facing instance of Aeries in their environment, but not EVERY.
- Some districts will only have an instance of Aeries available to you through a Windows-authenticated URL. This happens when a district is not using the Aeries Parent/Student Portal and only has an instance of Aeries for Teachers accessible through the Internet and that access point is secured using Active Directory Integration / Windows Authentication (i.e., no anonymous access to the website).
- The majority of customers will use SSL, though some may not. So, besides needing to code for both anonymous and Windows-authenticated requests, you need to code for both HTTPS and HTTP. Aeries Software ALWAYS recommends the use of HTTPS, but self-hosted customers are responsible for this decision.
- We also have a Powershell module available for interacting with the API: GitHub - AeriesSoftware/Posh-AeriesApi.
Certificate and Security Permissions
Each district will issue you a certificate that is unique for that district.
A "certificate" for purposes of interacting with the Aeries API is a 32-character alphanumeric string.
When a district creates a certificate for a vendor, they can grant access to certain APIs and restrict access to others. This document describes the security area that each endpoint requires. It would be prudent to document the security areas that you need access to and relay that information to your customers.
It is VERY important to NEVER share or expose your district-issued certificate to end users. That includes being output to the client in Javascript or HTML. All uses of the certificate should be from your server to the district's Aeries web server.
The Aeries demo website can be used to test your code: https://demo.aeries.net/aeries/. The certificate for the demo website that you can use is "477abe9e7d27439681d62f4e0de1f5e1". You can also log into the demo website using the username "admin" and password "admin". Your certificate is case-sensitive!
API Documentation:
Building a Request
School Information
Pre-Enrollment of Students
Student Information
Student Grades
Attendance and Enrollment
Staff Information
Scheduling
Gradebook
Revision History
4/16/2014
- Original Release of API
5/16/2014
- SSO Released
10/31/2014
- Gradebook API Released
4/29/2015
- School Info now contains Terms
- Terms is a new End Point
- Student Programs is a new End Point
- Class Roster by Section is a new End Point
- Staff data now contains Email Address, Username and Primary School
- Gradebooks for a section can now be retrieved
- Documented in the Gradebook Information End Point
- Gradebook API End Points upgraded to V2
- Gradebook Information object changed to include multiple Terms
- Gradebook Students End Point changed to require "Term Code" as now student have different overall grades for each Term in a Gradebook
7/24/2015
- "Staff-Teacher Information" is a new end point that returns a list of teachers associated with a given Staff ID.
- Student Class Schedules and Section Class Rosters now display information before the beginning of the school year.
- "Student Test Scores" is a new end point (and security area) that will return a full history of all State and locally administered Standardized Tests in Aeries. This includes tests like CST, CELDT, and CAHSEE but does not include tests like SAT I, SAT II, ACT, IB, or AP (yet).
8/28/2015
- "Student Information Extended" is a new end point that returns additional student fields that are more rarely used than the fields available in the primary Student Information end point. Use this additional end point if there are fields it provides that you need to access.
- Adjusted documentation to include grades -2 through 18. Grade -2 is normally used for PreSchool, -1 for Transitional Kindergarten, 0 for Kindergarten. The higher grade levels (those above 12) are used for Special Ed students included ungraded students, infants, and adults. Consult with each customer to see how they are using each grade level and which ones you should care about when interfacing with Aeries.
- Student Programs now, for some program codes, has an ExtendedProperties collection to output information that is specific to the program. The specific extended properties are documented in the Student Programs section of this document.
- Student Programs now supported pulling data from the new "504 Program" area of Aeries.
- Various text fields now filter for characters that would be considered invalid in JSON and XML objects: ", <, >.
- Enrollment History is a new End Point. This data set contains a full history of enrollment for a student in the current district, including the current school year. It will not contain current enrollment information until about the first day of school as most schools do not intialize enrollment until that time. This might be adjusted in the future. There are multiple end points that allow for retrieving just enrollment for a specific school and/or school year.
- New end points have been added to return lists of students, courses, sections, class rosters, and staff who have had data changes since a given date and time.
9/9/2015
- Adjusted Student Information Extended End Points URLs. They were previously documented incorrectly.
2/17/2017
- Upgraded to Version 3
- Many New End Points Added:
- Absence Codes
- Attendance
- Attendance History
- Bell Schedule
- Calendar
- Assertive Discipline
- College Test Scores
- District Supplemental Student Data
- School Supplemental Student Data
- Fees and Fines
- Report Cards
- Report Card Marking Periods
- Transcripts
- Graduation Requirements
- Student Graduation Status Summary
- Student Picture
- Staff Classes/Sections
- Enrollment History V3
- "ID" changed to "PermanentID"
- Section (from Master Schedule)
- Many new fields added
- Student Information
- "DisplayName" and "DisplayNameAlias" fields removed (never used)
- Added "HomeroomTeacher" for all Daily Attendance Schools (Elementary and Secondary)
- Changed "TeacherNumber" to "CounselorNumber"
- Student Information, GPA, and Student Extended
- Added Pagination Support: "?StartingRecord={#}&EndingRecord={#}" Query String Parameters
- School Information
- New fields: PrincipalName, PrincipalEmailAddress, AttendancePeriod, Tracks
- Changed single "School" end point to return an "Array" of "School" objects with a single item in it. This matches the data structure when not requesting a single school.
- Terms
- No changes, but added "V3" end point to match School Information End Point
- Staff
- New Fields: NetworkLoginID, AlternateEmailAddress, HumanResourcesSystemID
- QueryString conditions can now be included to filter on any Staff object field.
- Codes
- Added support for newly added end points and fields
- Assignment
- Added "UniqueID" and "ExternalID" fields
- "V3" end points added for all gradebook end points
- Added new end points to allow Assignment Unique ID to be sent instead of Gradebook Number and Assignment Number.
- New "Insert Assignment" End Point.
- “V3” Contacts end point added
- The V3 Staff API now includes additional fields as well as School and Communications Access permissions
- Added support for “DatabaseYear” query string parameter to connect to a previous year database
- Added 5 new fields to the School Information end point
- Added NotificationPreferenceCode field to the Student Information end point
- Gradebook Assignments can now be updated/changed.
- New fields have been added to the Student Extended end point: EnglishLearnerProgram, EnglishLearnerServiceCode, EnglishLearnerStartDate, EnglishLearnerEndDate, LongTermEnglishLearnerCode, YearsAsEnglishLearner, BirthCity, BirthStateCode, BirthCountryCode
- A Title field has been added to the Staff Information end point
- A PhoneNumber field has been added to the School Information end point
- A Comments field has been added to the Contacts end point
- Code Sets now has a “V3” end point that includes more fields from the Aeries COD table
- Programs now has a “V3” end point and supports filtering for a specific program code using a query string parameter (?code=144)
- The Student Transcripts end point now supports pagination using "StartingStudent" and "EndingStudent" query string Parameters (?StartingStudent=11&EndingStudent=20).
- Gradebook Information “V3” end point would sometimes throw a SerializationException, fixed.
- Support for many missing Code Sets has been added.
- The Staff Information query string filters now support searching for “null” date fields.
- The following spelling corrections have been made to “V3”. If your code uses the misspelled properties, you should update your code immediately:
- School Information
- AttendanceType (was AttendenceType)
- AttendanceReporting (was AttendenceReporting)
- Student Information
- CounselorNumber (was CouselorNumber)
- Gradebook Information
- Comment (was Commment)
2/27/2017
- Field-level documentation has been completed. There is now an Aeries database table.column reference and a description for every field output by the API.
3/10/2017
- Gradebook “V3”
- Gradebook Settings new fields added: AddDropStudentsAutomatically, HideDroppedStudents, HideOverallScore, HideOverallScoreFromParentStudent, ShowFinalMarkToParentStudent
- Assignment Category new field added: Color
9/15/2017
- Student Groups end point added
8/14/2020
- Added new "v4" API endpoints to support additional Contact editing and operations on Authorizations (AUT),
- Field-Level permissions are now available for STU and CON
8/28/2020
- All v1,v2,v3 and v4 endpoints were updated to v5. This includes support for Flex Scheduling and Section Staff for all endpoints related to attendance and scheduling. Every endpoint available in a prior version now has a V5 version except:
- Report Cards,
- SMS Update/Create/Delete
- Gradebook
- Many new fields were added to various endpoints
- "PermanentID" has been renamed to "StudentID" throughout V5 of the API
9/15/2020
- Adjusted Aeries Grade Reporting API to support Flex Scheduling
4/1/2021
- Added endpoint to provide Aeries Version, Database Year Available Database Years, Local Time Zone Name and Current Date Time