The Aeries v5 API has been expanded with new endpoints and capabilities designed to support the Aeries Enroll Path integration, including the ability to search for students, transfer students between schools, manage medical history, immunizations, medical insurance, language assessments, student authorizations, Free and Reduced Price Meals records, parent survey responses, school supplemental data, upload documents, and track enrollment compliance, all through a secure, consistent REST API built on the v5 standard. This expansion is designed for district administrators who manage the Aeries Enroll Path integration.

From this article, you can:

  • Review the prerequisites and security areas required for each endpoint
  • Reference the full set of new and extended endpoints, including request/response behavior and key constraints

These enhancements are available to "Enroll Path" customers only.


Table of Contents

Prerequisites and Security

Student APIs
District-Wide Student Search
Inter-School Student Transfer
Create Student
Update Student (District-Wide)
Update Student (School-Scoped)
Update Student Address
Student Field Write Extensions
Medical History
Language Assessment
Multi-Language Survey (MLS)
Contact Comment Write Support
External Student IDs
Document Uploads
Document Confirmation Log
Other District Enrollments
Immunizations
Medical Insurance
Student Authorizations
Free and Reduced Price Meals — Income Eligibility
Free and Reduced Price Meals Records
Parent Survey Responses
School Supplemental Data
Student Programs

School & District APIs
Street Address Lookup
Supplemental Field Definitions
Portal Document Definitions
Writable Schema
District Options
SAML Service Providers

Portal APIs
Parent Portal Account Provisioning
Frequently Asked Questions


Prerequisites and Security

Before using these endpoints, make sure the following are in place:

  • All requests require a valid AERIES-CERT certificate header.
  • Each endpoint is protected by a dedicated API security area. A district administrator must grant the appropriate permissions to the Aeries Enroll Path integration on the API Security page in Aeries.
  • After adding new permissions, the system may take up to 15 minutes to activate. Log out and back into Aeries before changes take effect.
Important: If the v5 Enhancements are not yet enabled, new Enroll Path endpoints return HTTP 501 Not Implemented and no data is read or written. These new endpoints are available only to Enroll Path customers.

Student APIs

Endpoints scoped to an individual student.


Overview

Search for students across every school in the district before creating an enrollment record. This lets Enroll Path check for an existing student before deciding whether to start a new enrollment or route the request to a school transfer.

Endpoint

MethodRoutePurpose
GET/api/v5/studentsSearch for students district-wide by name, birthdate, or student ID

Query Parameters

FieldTypeRequired?Notes
lastNamestringOptionalPartial match (starts-with). "Smi" matches "Smith", "Smithson". At least one of the four search fields below is required.
firstNamestringOptionalPartial match (starts-with).
birthdatedate (YYYY-MM-DD)OptionalExact match.
studentIdintegerOptionalExact match on Student Permanent ID.
afterintegerOptionalLast student ID from the previous page (keyset pagination).
limitintegerOptionalResults per page. Default and maximum are 100. Values outside that range are automatically capped at 100 rather than rejected.

Response

FieldTypeNotes
StudentsarrayThe matching students for this page. See below for what each entry includes.
NextKeyintegerThe last student ID on this page. Pass it back as the after parameter to fetch the next page.
HasMorebooleanTrue when more results remain beyond this page.

Each entry in Students includes: student ID, first/last name, birthdate, grade, school code, enrollment status (Active or Inactive), and up to two guardians’ contact information (first name, last name, relationship, home phone, cell phone, email). A missing guardian is returned as null.

Key Behaviors

  • Requests with none of the four search fields return HTTP 400.
  • Results include both active and inactive/transferred students across every school in the district.
  • The grade field is returned as stored in Aeries. Pre-K grades follow the Aeries storage convention, where TK appears as -1 and PS as -2.

Security

Requires the District-Wide Student Search security area with Read permission.


Inter-School Student Transfer

Overview

Transfer an existing student from their current school to a destination school within the same district.

Endpoint

MethodRoutePurpose
POST/api/v5/students/{studentId}/transfersTransfer a student to a destination school

Request Payload

FieldTypeRequired?Notes
destinationSchoolCodeintegerRequiredThe school the student is transferring to.
enterDatedateOptionalDefaults to today’s date if not provided.
statusstringOptionalDefaults to active. Validated against the district’s enrollment status codes.
gradeintegerOptionalDefaults to the student’s current grade. Must fall within the destination school’s configured grade range.

Response

FieldTypeNotes
StudentobjectThe student’s full record at the destination school after the transfer.
SourceSchoolCodeintegerThe school the student transferred from.
DestinationSchoolCodeintegerThe school the student transferred to.

Key Behaviors

  • The origin school record is not modified. No withdrawal is performed at the source school. If a withdrawal is required, handle it separately.
  • If the student is already enrolled at the destination school, the request is idempotent and returns the existing record unchanged.
  • Supports active students, inactive students, and previously returning students.

Security

Requires the Transfer Student Between Schools security area with Insert permission.


Create Student

Overview

A REST-conventional endpoint for creating a student record. It accepts the complete student-creation payload, the same fields already available on the legacy insert endpoint, plus the four new Enroll Path fields described in Student Field Write Extensions below.

Endpoint

MethodRoutePurpose
POST/api/v5/schools/{schoolCode}/studentsCreate a new student at the given school

Request Payload

FieldTypeRequired?Notes
StudentIDintegerOptionalOnly used to pre-assign a specific permanent ID; omit to let Aeries assign one.
LastNamestringOptional
FirstNamestringOptional
MiddleNamestringOptional
NameSuffixstringOptional
GenderstringOptional
GradeintegerOptional
NextGradeintegerOptional
NextSchoolintegerOptional
BirthdatedateOptional
InactiveStatusCodestringOptional
HomeLanguageCodestringOptional
CorrespondenceLanguageCodestringOptional
LanguageFluencyCodestringOptional
HomePhonestringOptional
LastSchoolintegerOptional
ResidenceSchoolintegerOptional
NextResidenceSchoolintegerOptional
EthnicityCodestringOptional
Race1CodestringOptional
Race2CodestringOptional
Race3CodestringOptional
Race4CodestringOptional
Race5CodestringOptional
SchoolEnterDatedateOptional
DistrictEnterDatedateOptional
BirthCitystringOptional
BirthStateCodestringOptional
BirthCountryCodestringOptional
ParentEdLevelCodestringOptional
ParentGuardianNamestringOptional
MailingAddressstringOptional
MailingAddressCitystringOptional
MailingAddressStatestringOptional
MailingAddressZipCodestringOptional
MailingAddressZipExtstringOptional
ResidenceAddressstringOptional
ResidenceAddressCitystringOptional
ResidenceAddressStatestringOptional
ResidenceAddressZipCodestringOptional
ResidenceAddressZipExtstringOptional
HomeLanguageSurveyFirstLanguageCodestringOptional
HomeLanguageSurveyPrimaryLanguageCodestringOptional
HomeLanguageSurveyHomeLanguageCodestringOptional
HomeLanguageSurveyAdultLanguageCodestringOptional
USEnterDatedateOptional
USSchoolEnterDatedateOptional
UserCode1stringOptional
UserCode2stringOptional
UserCode3stringOptional
UserCode4stringOptional
UserCode5stringOptional
UserCode6stringOptional
UserCode7stringOptional
UserCode8stringOptional
UserCode9stringOptional
UserCode10stringOptional
UserCode11stringOptional
UserCode12stringOptional
UserCode13stringOptional
RecordsReleaseCodestringOptional
HomeLanguageSurveyDatedateOptional
LastNameAliasstringOptional
FirstNameAliasstringOptional
MiddleNameAliasstringOptional
SuffixAliasstringOptional
InterIntraDistrictTransferCodestringOptional
InterIntraDistrictStateCodestringOptional
InterDistrictTransferExpirationDatedateOptional
NextInterIntraDistrictTransferCodestringOptional
MobilePhonestringOptionalNew.
StudentEmailstringOptionalNew.
RegistrationDatedateOptionalNew. Insert-only.
RegistrationSourcestringOptionalNew.  Insert-only.

Response

Returns the newly created student’s full record with HTTP 201 Created. This is the same record shape returned by the existing student read endpoints.

Key Behaviors

  • It shares its underlying student-creation logic with the legacy POST /api/v5/schools/{schoolCode}/InsertStudent endpoint, so the two are interchangeable for creating a student. That legacy endpoint predates Enroll Path and works for any v5 API customer; the Aeries API Full Documentation covers it in full.
  • No fields are enforced as required by the API itself beyond a non-empty request body and a valid school code. 

Security

Requires the Student (STU) security area with Insert permission.


Update Student (District-Wide)

Overview

A REST-conventional endpoint for updating a student’s record by permanent ID, without needing to specify a school code in the URL. It carries the same fields as the legacy update endpoint, plus the two new Enroll Path fields covered in Student Field Write Extensions below.

Endpoint

MethodRoutePurpose
PUT/api/v5/students/{studentId}Update an existing student, district-wide

Request Payload

FieldTypeRequired?Notes
LastNamestringOptional
FirstNamestringOptional
MiddleNamestringOptional
NameSuffixstringOptional
BirthdatedateOptional
GenderstringOptional
GradeintegerOptional
NextGradeintegerOptional
NextSchoolintegerOptional
LastSchoolintegerOptional
ResidenceSchoolintegerOptional
NextResidenceSchoolintegerOptional
CorrespondenceLanguageCodestringOptional
HomePhonestringOptional
SchoolEnterDatedateOptional
DistrictEnterDatedateOptional
ParentEdLevelCodestringOptional
ParentGuardianNamestringOptional
EthnicityCodestringOptional
Race1CodestringOptional
Race2CodestringOptional
Race3CodestringOptional
Race4CodestringOptional
Race5CodestringOptional
USEnterDatedateOptional
USSchoolEnterDatedateOptional
UserCode1stringOptional
UserCode2stringOptional
UserCode3stringOptional
UserCode4stringOptional
UserCode5stringOptional
UserCode6stringOptional
UserCode7stringOptional
UserCode8stringOptional
UserCode9stringOptional
UserCode10stringOptional
UserCode11stringOptional
UserCode12stringOptional
UserCode13stringOptional
EndOfYearStatusCodestringOptional
RecordsReleaseCodestringOptional
WellbeingDatedateOptional
WellbeingScorestringOptional
WellbeingAttentionCodestringOptional
LastNameAliasstringOptional
FirstNameAliasstringOptional
MiddleNameAliasstringOptional
SuffixAliasstringOptional
InterIntraDistrictTransferCodestringOptional
InterIntraDistrictStateCodestringOptional
InterDistrictTransferExpirationDatedateOptional
NextInterIntraDistrictTransferCodestringOptional
InactiveStatusCodestringOptional
MobilePhonestringOptionalNew.
StudentEmailstringOptionalNew.

Response

Returns the updated student’s record(s) with HTTP 200 OK. This is the same record shape returned by the existing student read endpoints. The response is a list, since the update can touch the student’s record at more than one school.

Key Behaviors

  • It shares its underlying update logic with the legacy POST /api/v5/UpdateStudent/{id} endpoint, so the two are interchangeable for updating a student. That legacy endpoint predates Enroll Path and isn’t restricted to it; the Aeries API Full Documentation covers it in full.
  • Only the fields you include are changed. Omitted fields are left as-is.
  • No fields are enforced as required by the API itself.

Security

Requires the Student (STU) security area with Update permission.


Update Student (School-Scoped)

Overview

The school-scoped counterpart to Update Student (District-Wide) above. Identical purpose, but scoped to a specific school in the URL.

Endpoint

MethodRoutePurpose
PUT/api/v5/schools/{schoolCode}/students/{studentId}Update an existing student at a specific school

Request Payload

Same payload as Update Student (District-Wide) above. The two endpoints share an identical field set and differ only in URL scope.

Response

Returns the updated student’s record(s) with HTTP 200 OK, same shape as the district-wide endpoint above.

Key Behaviors

  • The same is true of its legacy counterpart, POST /api/v5/schools/{sc}/UpdateStudent/{id}. The two are interchangeable, and it’s covered alongside the other legacy routes in the Aeries API Full Documentation.
  • Only the fields you include are changed. Omitted fields are left as-is.

Security

Requires the Student (STU) security area with Update permission.


Update Student Address

Overview

A dedicated endpoint for updating a student’s mailing and residence address fields, separate from the general student update endpoints above.

Endpoint

MethodRoutePurpose
PUT/api/v5/students/{id}/addressUpdate a student’s address fields

Request Payload

FieldTypeRequired?Notes
MailingAddressstringOptional
MailingAddressCitystringOptional
MailingAddressStatestringOptional
MailingAddressZipCodestringOptional
MailingAddressZipExtstringOptional
ResidenceAddressstringOptional
ResidenceAddressCitystringOptional
ResidenceAddressStatestringOptional
ResidenceAddressZipCodestringOptional
ResidenceAddressZipExtstringOptional
CorrectionOrChangestringOptional
EffectiveStartDatedateOptional

Response

Returns the updated student’s record(s) with HTTP 200 OK, same shape as the other student update endpoints.

Key Behaviors

  • It shares its underlying logic with the legacy POST /api/v5/UpdateStudentAddress/{id} endpoint, which the Aeries API Full Documentation covers in full.
  • Only the fields you include are changed. Omitted fields are left as-is.
  • Exactly how CorrectionOrChange and EffectiveStartDate affect the historical record is explained in that same documentation.

Security

Requires the Student (STU) security area with Update permission.


Student Field Write Extensions

Overview

Four additional student fields, previously unavailable via the API, can now be written during student insert and update operations. These fields are available on the legacy student insert endpoint below, and on every new student create/update endpoint described in the preceding sections (Create Student, Update Student (District-Wide), and Update Student (School-Scoped)).

Endpoint

MethodRoutePurpose
POST/api/v5/schools/{schoolCode}/InsertStudentCreate a student. Not limited to Enroll Path customers; the Aeries API Full Documentation has the complete endpoint reference

Request Payload

FieldTypeRequired?Notes
MobilePhonestringOptionalStudent’s mobile phone number collected during enrollment. Writable on insert and update.
StudentEmailstringOptionalStudent’s email address. Writable on insert and update. Returned on GET as StudentEmailAddress. The field is named differently when reading it back.
RegistrationDatedateOptionalDate the enrollment registration was submitted. Insert only. If omitted, defaults to the current date/time.
RegistrationSourcestringOptionalIdentifies the originating enrollment system. Insert only. If omitted, defaults to a system-generated value identifying the API vendor.

Response

FieldTypeNotes
MobilePhonestring
StudentEmailAddressstringRead-back name differs from the request field StudentEmail.
RegistrationDatedate
RegistrationSourcestring

Key Behaviors

  • Writable only on insert: RegistrationDate and RegistrationSource have no effect if sent on an update.

Security

These are new writable fields on the existing student create/update endpoints. Access is governed by the same security area already required for those endpoints.


Medical History

Overview

Create, read, update, and delete student medical history records via the v5 API. This lets Enroll Path write medical information collected during enrollment directly into Aeries.

Endpoints

MethodRoutePurpose
GET/api/v5/schools/{sc}/students/{id}/medical-historyRetrieve medical history records
POST/api/v5/schools/{sc}/students/{id}/medical-historyCreate a new record
PUT/api/v5/schools/{sc}/students/{id}/medical-history/{sq}Update an existing record
DELETE/api/v5/schools/{sc}/students/{id}/medical-history/{sq}Delete a record

Request Payload

FieldTypeRequired?Notes
MedicalConditionCodestringOptionalValidated against the district’s medical condition code list. This code-value validation is the enhancement Enroll Path adds to this endpoint.
EnteredDatedateOptionalDate the condition was recorded, in YYYY-MM-DD format. In responses this value is returned as Date.
ParentCommentstringOptional
SchoolCommentstringOptional

Response

FieldTypeNotes
PermanentIDinteger
SchoolCodeinteger
SequenceNumberintegerServer-generated.
MedicalConditionCodestringReturned with its resolved description.
Datedate
ParentCommentstring
SchoolCommentstring

Key Behaviors

  • Medical History predates Enroll Path and isn’t limited to it. The Aeries API Full Documentation has the full reference. What Enroll Path adds here is code-value validation of the Medical Condition Code on create and update.
  • Invalid school codes return HTTP 404.
  • DELETE returns HTTP 204 No Content. Deleting a nonexistent record returns HTTP 404.

Security

Requires the Medical History security area. Read is available to all v5 API callers; Insert, Update, and Delete are used for writes.


Language Assessment

Overview

Write and retrieve a student’s language assessment record, including Home Language Survey data, state-specific fields, and signature tracking. This lets complete language assessment data be written to Aeries without manual entry.

Endpoints

MethodRoutePurpose
GET/api/v5/students/{studentId}/language-assessmentsRetrieve the language assessment record for a student
POST/api/v5/students/{studentId}/language-assessmentsCreate a new record
PUT/api/v5/students/{studentId}/language-assessmentsUpdate an existing record
DELETE/api/v5/students/{studentId}/language-assessmentsDelete a record

Request Payload

FieldTypeRequired?Notes
HomeLanguageSurveyFirstLanguageCodestringOptionalHome Language Survey question 1.
HomeLanguageSurveyPrimaryLanguageCodestringOptionalHome Language Survey question 2.
HomeLanguageSurveyHomeLanguageCodestringOptionalHome Language Survey question 3.
HomeLanguageSurveyAdultLanguageCodestringOptionalHome Language Survey question 4.
PreviousLanguageCodestringOptionalTexas-specific.
HomeLanguageSurveyDatedateOptional
HomeLanguageSurveyCompletedBystringOptionalInsert only. It has no effect on update, so an existing value is never overwritten by a later PUT.
SignatureNamestringOptionalInsert only, for the same reason as above.
SourcestringOptionalInsert only. Validated against the district’s code list.
HomeLanguageSurveyHashstringOptional
USEnterDatedateOptional
USPreSchoolEnterDatedateOptional
USSchoolEnterDatedateOptional
StateSchoolEnterDatedateOptionalCalifornia school entry date.

Response

FieldTypeNotes
StudentPermanentIDintegerThe student’s permanent ID. Not part of the request payload; added on read.
HomeLanguageSurveyFirstLanguageCodestring
HomeLanguageSurveyPrimaryLanguageCodestring
HomeLanguageSurveyHomeLanguageCodestring
HomeLanguageSurveyAdultLanguageCodestring
PreviousLanguageCodestring
HomeLanguageSurveyDatedate
HomeLanguageSurveyCompletedBystring
SignatureNamestring
Sourcestring
HomeLanguageSurveyHashstring
USEnterDatedate
USPreSchoolEnterDatedate
USSchoolEnterDatedate
StateSchoolEnterDatedate

Every Request Payload field above is echoed back as submitted. A student has at most one language assessment record, so GET returns a single object rather than an array.

Key Behaviors

  • A student can only have one language assessment record. GET returns HTTP 404 when none exists yet. That is the normal "no assessment on file" signal, not an error.
  • POST returns HTTP 201 Created on a new insert, and HTTP 409 Conflict if an active record already exists for the student. Treat 409 as informational (the record is already in place), not as a failure.
  • If a prior record was deleted, a new POST silently restores it instead of returning 409.
  • Each field is individually gated by its own permission. A caller without permission for a given field simply can’t set it, rather than the whole request failing.

Security

Requires the Language Assessment security area. Read is available; Insert, Update, and Delete are used for writes.


Multi-Language Survey (MLS)

Overview

Write records to the Multi-Language Survey, a separate record from Language Assessment. This supports the Texas Multi-Language Survey and California Foreign Language Instruction (FLI) forms, which collect additional language-slot and communication-preference data not represented in Language Assessment.

Endpoint

MethodRoutePurpose
POST/api/v5/students/{studentId}/multi-language-surveysCreate or update the student’s Multi-Language Survey record

Request Payload

FieldTypeRequired?Notes
FormTypestringRequiredMust be either "TX_HLS" or "CA_FLI". Any other value is rejected. Determines which of the California-only fields below are accepted.
SurveyDatedateOptionalDate the survey was completed.
HomeLanguage15stringOptionalThe five language-slot fields for the "home language" question.
CorrespondenceLanguage15stringOptionalThe five language-slot fields for family correspondence.
EnvironmentLanguage15stringOptionalThe five language-slot fields for the student’s environment.
ReceptiveLanguage15stringOptionalCalifornia forms only. It is rejected on a Texas submission.
HomeMostUsedLanguagestringOptionalMost-used language at home.
ChildMostUsedLanguagestringOptionalStudent’s most-used language.
PreferredWrittenLanguagestringOptionalFamily’s preferred written communication language.
PreferredOralLanguagestringOptionalFamily’s preferred oral communication language.
DLLstringOptionalCalifornia only. Dual Language Learner designation, stored exactly as submitted; this endpoint never computes or overrides it.
OptOutstringOptionalCalifornia only. Survey opt-out, also store-only. If set, every language and follow-on field above must be left blank.

Response

FieldTypeNotes
StudentPermanentIdinteger
SurveyDatedate
HomeLanguage15string
CorrespondenceLanguage15string
EnvironmentLanguage15string
ReceptiveLanguage15stringCalifornia forms only.
HomeMostUsedLanguagestring
ChildMostUsedLanguagestring
PreferredWrittenLanguagestring
PreferredOralLanguagestring
DualLanguageLearnerstringReturned under this name. The request field is DLL.

FormType and OptOut are not echoed back in the response.

Key Behaviors

  • The record is upserted, keyed on the student’s permanent ID. A repeat submission updates the existing record rather than creating a duplicate, and always overwrites with the newly submitted values.
  • Multi-Language Survey is a separate record from Language Assessment, with its own field set. Submitting here does not change the language assessment record.
  • On a successful submission, the student’s Home Language and Correspondence Language are updated from HomeMostUsedLanguage and PreferredWrittenLanguage, but only when the corresponding submitted value is non-blank. An opt-out submission (with those fields blank) leaves the student’s existing values untouched.
  • A studentId that doesn’t exist is rejected, and no changes are made.

Security

Requires the Multi-Language Survey security area with Insert permission.


Contact Comment Write Support

Overview

The Comment field on student contact records can now be written via the API on both insert and update operations.

Endpoints

MethodRoutePurpose
POST/api/v5/students/{studentId}/contactsCreate contact (Comment field now accepted)
PUT/api/v5/students/{studentId}/contacts/{sequence}Update contact (Comment field now accepted)

Request Payload

FieldTypeRequired?Notes
CommentstringOptionalFree-text comment stored on the contact record.

Response

FieldTypeNotes
StudentIDinteger
SequenceNumberintegerIdentifies this contact record.
CommentstringEchoed back as submitted, alongside the contact’s other standard fields.

Key Behaviors

  • These contact create/update endpoints predate Enroll Path and work for any v5 API customer; full details are in the Aeries API Full Documentation. What’s new for Enroll Path is that the Comment field is now accepted on both, not a new route.
  • The Comment field is included in the contact’s full record on both create and update.

Security

Access is governed by the Contacts security area on the endpoint. There is no separate per-field gate, and the value is not silently ignored.


External Student IDs

Overview

Create and read external student ID records via the API, useful for keeping a third-party system’s own student identifier linked to the Aeries record.

Endpoints

MethodRoutePurpose
GET/api/v5/schools/{schoolCode}/students/{studentId}/external-idsList all external ID records for a student
POST/api/v5/schools/{schoolCode}/students/{studentId}/external-idsCreate a new external ID record

Request Payload

FieldTypeRequired?Notes
VendorNamestringRequiredIdentifies the external system. Combined with the student and school, this must be unique.
ExternalIdstringOptionalThe identifier used by the external system.
UsernamestringOptional
EmailAddressstringOptional
StatusstringOptionalValidated against the district’s code list.

Response

FieldTypeNotes
StudentIDinteger
SchoolCodeinteger
VendorNamestring
ExternalIdstring
Usernamestring
EmailAddressstring
Statusstring

Key Behaviors

  • The combination of student, school, and VendorName must be unique. Duplicate keys return HTTP 409 Conflict.

Security

Requires the External Student IDs security area with Read and Insert permission.


Document Uploads

Overview

Upload documents and metadata, read and update metadata, and delete documents via the v5 API.

Endpoints

MethodRoutePurpose
GET/api/v5/students/{studentId}/documentsList document metadata for a student (paginated)
POST/api/v5/students/{studentId}/documentsUpload a new document (metadata + binary in a single request)
PUT/api/v5/students/{studentId}/documents/{sq}Update document metadata
DELETE/api/v5/students/{studentId}/documents/{sq}Delete document and binary content

Request Payload

FieldTypeRequired?Notes
FileNamestringRequired
CategorystringOptional
SubCategorystringOptional
DocumentTypestringOptional
GradestringOptional
UploadedBystringOptionalDefaults to the calling vendor’s name if not supplied.

Response

FieldTypeNotes
StudentIDinteger
SequenceNumberintegerServer-generated.
FileNamestring
ExtensionTypestringReflects the stored file type. See the HEIC note below.
FileSizeinteger
UploadDatedate
Categorystring
SubCategorystring
DocumentTypestring
Sourcestring
UploadedBystring
Gradestring
Lockedboolean

The list endpoint wraps results as { Documents: [...], NextKey, HasMore }.

Key Behaviors

  • A second upload with the same file name, category, sub-category, and document type as an existing document is treated as a duplicate: the existing document is returned instead of creating a new one.
  • Results are paginated using keyset pagination. Pass the after parameter with the last document sequence number to retrieve the next page. Maximum page size is 100.
  • The maximum upload size is 50 MB. Oversized files return HTTP 413.
  • DELETE removes both the metadata record and the binary file content.
  • HEIC files are silently converted to JPG before storage. The ExtensionType field in the response reflects the converted type (jpg), not the original (heic). This matters for uploads from iOS devices, where HEIC is the default camera format.

Security

Requires the Student Documents security area. Read is available; Insert, Update, and Delete are used for writes.


Document Confirmation Log

Overview

Create and read document confirmation log records for compliance tracking, for example recording that a parent viewed or confirmed a specific document.

Endpoints

MethodRoutePurpose
GET/api/v5/schools/{schoolCode}/students/{studentId}/document-confirmationsList all document confirmation records for a student
POST/api/v5/schools/{schoolCode}/students/{studentId}/document-confirmationsCreate a new confirmation record

Request Payload

FieldTypeRequired?Notes
DocumentDefinitionIDstringRequiredIdentifies which document this confirmation is for.
ConfirmationTypestring ("C" or "V")Required"C" = Confirmed, "V" = Viewed.
LanguageCodestringRequired
ConfirmationDatedateOptionalDefaults to the current date/time.
SourcestringOptional
DocumentHashstringOptionalIf not supplied, the server derives a hash from the document’s current content.
SignerIDstringOptionalOpaque identifier for who confirmed, stored as submitted, not validated.

Response

FieldTypeNotes
StudentIDinteger
SchoolCodeinteger
SequenceNumberintegerServer-generated.
DocumentDefinitionIDstring
ConfirmationDatedate
ConfirmationTypestring
LanguageCodestring
Sourcestring
DocumentHashstringInsert response only.
SignerIDstringInsert response only.
AlreadyExistedbooleanInsert response only. It is true if this call matched an existing same-day confirmation instead of creating a new one.

Key Behaviors

  • A confirmation matching the same student, school, document, language, type, and signer submitted earlier the same day is treated as a duplicate: the existing record is returned instead of creating a new one.
  • SequenceNumber is server-generated and appears only in the response. It is not a field callers send on POST.
  • Pagination is not required. Confirmation records are scoped to a single student, which naturally limits the result set.

Security

Requires the Document Confirmations security area with Read and Insert permission.


Other District Enrollments

Overview

Full create, read, update, and delete support for records of a student’s enrollment history at other districts.

Endpoints

MethodRoutePurpose
GET/api/v5/students/{id}/other-district-enrollmentsRetrieve records for a student
POST/api/v5/students/{id}/other-district-enrollmentsCreate a new record
PATCH/api/v5/students/{id}/other-district-enrollments/{sq}Update an existing record
DELETE/api/v5/students/{id}/other-district-enrollments/{sq}Delete a record

Request Payload

FieldTypeRequired?Notes
DistrictNamestringRequired (one of DistrictName or SchoolName)
SchoolNamestringRequired (one of DistrictName or SchoolName)
AddressstringOptional
CitystringOptional
StatestringOptional
CountrystringOptionalUse a value from the district’s country code list.
ZipCodestringOptional
EntryGradeintegerOptional
LeaveGradeintegerOptional
EntryDatedateOptional
LeaveDatedateOptional
CommentsstringOptional
ContactNamestringOptional
TelephonestringOptional
FaxstringOptional
ExpelledstringOptional
SpecialEducationstringOptional
Section504stringOptional

Response

FieldTypeNotes
StudentIDinteger
SequenceNumberinteger
DistrictNamestring
SchoolNamestring
Addressstring
Citystring
Statestring
Countrystring
ZipCodestring
EntryGradeinteger
LeaveGradeinteger
EntryDatedate
LeaveDatedate
Commentsstring
ContactNamestring
Telephonestring
Faxstring
Expelledstring
SpecialEducationstring
Section504string

Key Behaviors

  • Either DistrictName or SchoolName must be provided.
  • Each field is individually gated by its own permission. A caller without permission for a given field simply can’t set it.

Security

Requires the Other District Enrollment security area. Read is available; Insert, Update, and Delete are used for writes.


Immunizations

Overview

Read existing immunization records and write vaccination dose records via the v5 API. This lets Enroll Path sync vaccination data collected during enrollment directly into Aeries. Reading immunization records is generally available and works without Enroll Path. Enroll Path uses these endpoints too, and adds the dose-write operations.

Endpoints

MethodRoutePurpose
GET/api/v5/schools/{sc}/students/{id}/immunizationsList a student’s existing immunization records, so you can check what’s already on file before submitting new doses
POST/api/v5/schools/{sc}/students/{id}/immunizationsWrite vaccination dose records
PUT/api/v5/schools/{sc}/students/{id}/immunizationsWrite vaccination dose records (same behavior as POST)
GET/api/v5/vaccine-requirementsRetrieve the district-wide vaccination schedule (no school scope). Call this to determine which vaccines are required before writing doses

Request Payload

FieldTypeRequired?Notes
VaccinesarrayRequiredOne entry per vaccine. A single request can carry the full set.
Vaccines[].CodestringRequiredOne of: POL, DTP, MMR, HEPB, HEPA, HIB, VAR, TB, MCV, PCV, COVID, TDAP, DTPB. An unrecognized code is rejected for that entry (see Key Behaviors).
Vaccines[].DoseDatesarray of date or nullOptionalOne entry per dose slot. A date records that dose; null at a position clears that dose slot. A shorter array leaves the remaining slots untouched.

Response

FieldTypeNotes
SchoolCodeinteger
StudentIDinteger
OutcomesarrayOne entry per vaccine submitted.
Outcomes[].Codestring
Outcomes[].Statusstring"Created", "Updated", "Skipped", or "Failed".
Outcomes[].WrittenDosesarrayThe dose dates now on file for this vaccine.
Outcomes[].SkipReasonstringPresent when Status is "Skipped" or "Failed", for example "EMPTY_DOSES" or "VACCINE_CODE_MISMATCH".
Outcomes[].MessagestringHuman-readable detail.

Key Behaviors

  • Reading immunization records works the same for any v5 API customer, not only Enroll Path ones (full reference: Aeries API Full Documentation). Writing doses and the vaccine-requirements schedule, though, are new specifically for Enroll Path.
  • Vaccines with no populated doses are omitted from the GET response. When no immunization records exist for the student yet, the response is an object with an empty Outcomes array (not HTTP 404).
  • When writing doses, send them in the DoseDates array on each vaccine; the response returns the stored doses as WrittenDoses.
  • Each vaccine’s outcome reflects what changed for that vaccine: "Created" or "Updated" when doses were written, "Skipped" when nothing changed or no doses were sent, "Failed" for an unrecognized code.

Security

Read on the Immunizations security area covers the two immunization endpoints above; Insert is required to write doses. The vaccine-requirements endpoint uses the same security area.


Medical Insurance

Overview

Create, read, update, and delete student medical insurance records via the v5 API. This lets Enroll Path write insurance information collected during enrollment directly into Aeries.

Endpoints

MethodRoutePurpose
GET/api/v5/schools/{sc}/students/{id}/medical-insuranceList a student’s existing insurance records, so you can check what’s already on file before adding a new one
POST/api/v5/schools/{sc}/students/{id}/medical-insuranceCreate a new insurance record
PATCH/api/v5/schools/{sc}/students/{id}/medical-insurance/{sq}Update an existing insurance record
DELETE/api/v5/schools/{sc}/students/{id}/medical-insurance/{sq}Delete an insurance record

Request Payload

FieldTypeRequired?Notes
CarrierCodestringOptionalValidated against the district’s insurance carrier code list.
InsuranceTypestringOptionalValidated against the district’s code list.
CarrierNamestringOptional
GroupNumberstringOptional
EffectiveDatedateOptional
ExpirationDatedateOptional
MedicaidbooleanOptional
BenefitsIdstringOptionalShould be provided when Medicaid is set to Yes
PolicyNumberstringOptional
MemberIdstringOptional
PrimaryCareNamestringOptional
PrimaryCarePhonestringOptional
PrimaryCoveragebooleanOptional
SubscriberFirstNamestringOptional
SubscriberLastNamestringOptional
SubscriberAddressstringOptional
SubscriberAddress2stringOptional
SubscriberCitystringOptional
SubscriberStatestringOptional
SubscriberZipstringOptional
CommentsstringOptional

Response

FieldTypeNotes
SchoolCodeinteger
StudentIDinteger
SequenceNumberintegerServer-generated.
CarrierCodestring
InsuranceTypestring
CarrierNamestring
GroupNumberstring
EffectiveDatedate
ExpirationDatedate
Medicaidboolean
BenefitsIdstring
PolicyNumberstring
MemberIdstring
PrimaryCareNamestring
PrimaryCarePhonestring
PrimaryCoverageboolean
SubscriberFirstNamestring
SubscriberLastNamestring
SubscriberAddressstring
SubscriberAddress2string
SubscriberCitystring
SubscriberStatestring
SubscriberZipstring
Commentsstring

Key Behaviors

  • Multiple insurance policies per student are supported. Each POST creates a new record with its own sequence number rather than replacing an existing one.
  • Provide a Medicaid Benefits ID when the Medicaid indicator is set to Yes.
  • GET returns an array. An empty array means the student has no insurance records on file. That’s a valid empty state, not an error. An invalid or nonexistent student returns HTTP 404.
  • Read existing records via GET before inserting to avoid duplicates. The server does not enforce a collision constraint.
  • Enroll Path currently uses GET and POST only. PATCH and DELETE are available on the endpoint but not part of the current Enroll Path workflow.

Security

Requires the Medical Insurance Information security area. Read is available; Insert is required for POST.


Student Authorizations

Overview

Create, read, and update student authorization records via the v5 API. This lets Enroll Path write authorization decisions collected during enrollment directly into Aeries, and later update their status, for example revoking a previously granted authorization. Student Authorizations is a generally available part of the v5 API and works without Enroll Path. Enroll Path uses it too.

Endpoints

MethodRoutePurpose
GET/api/v5/schools/{sc}/students/{id}/authorizationsList a student’s existing authorization records, so you can check what’s already on file before creating a new one
POST/api/v5/schools/{sc}/students/{id}/authorizationsCreate a new authorization record
PUT/api/v5/schools/{sc}/students/{id}/authorizations/{sq}Update an existing authorization record
DELETE/api/v5/schools/{sc}/students/{id}/authorizations/{sq}Delete an authorization record

Request Payload

FieldTypeRequired?Notes
TypeCodestringRequiredValidated against the district’s code list. This and the two code fields below are the code-value validation Enroll Path adds to this endpoint.
MiscCodestringRequiredValidated against the district’s code list.
SequenceNumberintegerOptionalRequired only when updating (PUT) a specific record.
DateEntereddateOptional
StatusCodestringOptionalValidated against the district’s code list. Common values: 1 = Granted, 2 = Denied, 3 = Withdrawn.
StatusDatedateOptional
EffectiveEndDatedateOptional
CommentstringOptional
TestAdministrationstringOptional
SourcestringOptional

Response

FieldTypeNotes
StudentIDinteger
SchoolCodeinteger
SequenceNumberinteger
DateEntereddate
TypeCodestring
MiscCodestring
StatusstringReturned under this name. The request field is StatusCode.
StatusDatedate
EffectiveEndDatedate
Commentstring
TestAdministrationstring
Sourcestring

Key Behaviors

  • Student Authorizations predates Enroll Path and isn’t restricted to it; the Aeries API Full Documentation covers it in full. Enroll Path’s contribution is code-value validation of TypeCode, MiscCode, and StatusCode on create and update.
  • Enroll Path’s enrollment workflow uses POST to create an authorization and PUT to change its status, for example revoking a previously granted authorization.
  • One record is created per authorization. Multiple authorizations for one student require multiple POST calls.
  • Read existing records via GET before inserting to avoid duplicate rows on re-runs.

Security

Requires the Authorizations security area with Read, Insert, Update, and Delete permission.


Free and Reduced Price Meals — Income Eligibility

Overview

Records a student’s income eligibility for Free and Reduced Price Meals, typically from an income survey response. Submitting a new record automatically closes the student’s current active record first.

Endpoints

MethodRoutePurpose
GET/api/v5/students/{id}/free-and-reducedList income eligibility records for a student
POST/api/v5/students/{id}/free-and-reducedClose the current active record and insert a new one

Request Payload

FieldTypeRequired?Notes
Codestring (F/R/N)Required
ParentIncomeLevelinteger (1–3)Required
SchoolCodeintegerRequired
FamilySizeintegerOptional
SourcestringOptional

Response

FieldTypeNotes
Codestring
ParentIncomeLevelinteger
SchoolCodeinteger
FamilySizeinteger
Sourcestring
ClosedPreviousSequenceNumberintegerThe sequence number of the record that was closed, or blank if none was active.

Key Behaviors

  • Any v5 API customer can read this endpoint, not just Enroll Path ones (Aeries API Full Documentation). Writing to it, though, is new for Enroll Path.
  • This endpoint is student-scoped only. There is no school code in the URL.
  • Submitting a new record automatically closes the student’s current active record before inserting the new one. Use this when a new income survey response should replace the prior one.
  • GET supports an activeOnly query parameter (defaults to true) to filter to the current active record only.

Security

Read is available; Insert is used for writes, under the Free and Reduced security area.


Free and Reduced Price Meals Records

Overview

Full create, read, update, and delete access to a student’s Free and Reduced Price Meals records, carrying the record’s complete field set. Unlike Free and Reduced Price Meals — Income Eligibility above, submitting a new record here does not close any prior one.

Endpoints

MethodRoutePurpose
GET/api/v5/students/{id}/free-reduced-recordsList a student’s existing records, so you can check what’s already on file before submitting a new one
POST/api/v5/students/{id}/free-reduced-recordsInsert a new record without closing any prior one
PATCH/api/v5/students/{id}/free-reduced-records/{sq}Update an existing record
DELETE/api/v5/students/{id}/free-reduced-records/{sq}Delete a record

Request Payload

FieldTypeRequired?Notes
FamilyStatusstringOptional
ApplicationFormstringOptional
FreeReducedCodestringOptional
FamilySizeintegerOptional
AnnualIncome / MonthlyIncome / WeeklyIncomedecimalOptional
ApplicantNamestringOptional
ApplicantSSNstringOptional
ApplicationDatedateOptional
StatusCodestringOptional
UserCodestringOptional
EligibilityCodestringOptional
ModificationDatedateOptional
DirectCertificationDatedateOptional
DirectCertifiedbooleanOptional
EffectiveStartDate / EffectiveEndDatedateOptional
PriorityStartDate / PriorityEndDatedateOptional
MealStartDate / MealExpirationDatedateOptional
CommentsstringOptional
UserField28stringOptional7 general-purpose fields.
SchoolCodeintegerOptional
SourcestringOptional
ParentSurveyResponsestringOptional
ParentResponseDatedateOptional
CteTransportationstringOptional

No field is enforced as required by the API itself. Use GET to see the exact fields on an existing record before submitting an update.

Response

FieldTypeNotes
StudentIDinteger
SequenceNumberinteger
FamilyStatusstring
ApplicationFormstring
FreeReducedCodestring
FamilySizeinteger
AnnualIncome / MonthlyIncome / WeeklyIncomedecimal
ApplicantNamestring
ApplicantSSNstring
ApplicationDatedate
StatusCodestring
UserCodestring
EligibilityCodestring
ModificationDatedate
DirectCertificationDatedate
DirectCertifiedboolean
EffectiveStartDate / EffectiveEndDatedate
PriorityStartDate / PriorityEndDatedate
MealStartDate / MealExpirationDatedate
Commentsstring
UserField28string7 general-purpose fields.
SchoolCodeinteger
Sourcestring
ParentSurveyResponsestring
ParentResponseDatedate
CteTransportationstring

Key Behaviors

  • As with Income Eligibility above, reading here isn’t limited to Enroll Path customers (Aeries API Full Documentation has the details); writing is what’s new for Enroll Path.
  • This endpoint is student-scoped only. There is no school code in the URL.
  • Submitting a new record here is a plain insert. It does not close any prior record, so read existing records first and update or delete the prior active row yourself, or repeated submissions will accumulate rows.

Security

Read is available; Insert, Update, and Delete are used for writes, under the Free and Reduced security area.


Parent Survey Responses

Overview

Create, read, and update Parent Survey Response records via the v5 API. This lets Enroll Path write residence, military, and foster care survey data collected during enrollment directly into Aeries.

Endpoints

MethodRoutePurpose
GET/api/v5/students/{id}/parent-survey-responsesRetrieve a student’s existing survey response records, so you can check what’s already on file before submitting a new one
POST/api/v5/students/{id}/parent-survey-responsesCreate a new record
PUT/api/v5/students/{id}/parent-survey-responsesUpdate an existing record (fields you don’t include are left unchanged)

Request Payload

FieldTypeRequired?Notes
SurveyTypeintegerOptional1 = Residence, 2 = Military, 4 = Foster. (A third value, 3 = LivingTree, appears on GET but is a read-only, third-party survey type that Enroll Path never writes.)
AnswerCodestringOptionalThe survey answer. The meaning depends on SurveyType (for example, a homeless-dwelling code for Residence, or a yes/no/sub-status for Military and Foster).
UnaccompaniedYouthstringOptionalCalifornia only, ignored elsewhere.
SourcestringOptionalDefaults to an Enroll Path attribution value.
AdditionalChildrenarrayOptionalCalifornia only, and accepted on create only. An update does not modify this list. Each entry: Name, Gender, Birthdate, Grade (a numeric value), SchoolName.
SubmittedBystringOptionalThe guardian’s name or email as asserted by the integration, recorded for reference, not used to authenticate the request.

Response

FieldTypeNotes
StudentIDinteger
SurveyTypeinteger
SequenceNumberintegerServer-generated.
DateSubmitteddate
AnswerCodestring
Statusstring"P" (Pending) by default, "C" once Confirmed.
UnaccompaniedYouthstring
Sourcestring
AdditionalChildrenarray

Key Behaviors

  • This endpoint writes the survey response only. It does not confirm it. Confirmation is handled downstream through the standard Aeries staff workflow.
  • A confirmed record (Status = "C") is protected. Attempting to PUT a confirmed record is rejected, so a finalized response can’t be overwritten.
  • PATCH and DELETE are not available on this endpoint.

Security

Requires the Parent Response to Survey security area with Read and Insert permission.


School Supplemental Data

Overview

Update specific per-school student fields via the v5 API without affecting any other field on the student record.

Endpoint

MethodRoutePurpose
PATCH/api/v5/schools/{sc}/students/{id}/supplemental-dataUpdate one or more per-school student fields

Request Payload

FieldTypeRequired?Notes
ColumnsarrayRequiredA request with an empty or missing Columns array is rejected.
Columns[].ColumnCodestringRequiredMust correspond to a column code your district has configured for Supplemental Data. Supplemental Field Definitions above shows how to look these up.
Columns[].ValuestringRequiredThe value to store, sent as a string even for numeric or date columns. Aeries interprets it according to the target column’s actual type. If the column is one tied to a district code list, the value is validated against that list. Set to null to clear the column.

Response

FieldTypeNotes
SchoolCodeinteger
StudentIDinteger
ColumnsarrayEvery column currently on file for the student at this school, not just the ones sent in the request.

Each entry in Columns includes: ColumnCode, ColumnDescription, ColumnType, and Value.

Key Behaviors

  • Only the columns you include are written. Every other field on the student record is left untouched.
  • A request can include any number of columns.
  • Scoped by the student’s permanent ID, not the legacy student number.

Security

Requires the Supplemental Data security area with Update permission.


Student Programs

Overview

Create and read survey-driven Special Program (PGM) records for a student. Covers three programs: Foster Care, Residential/Homeless, and Family Military. Separate from the existing legacy Programs endpoint.

Endpoints

MethodRoutePurpose
GET/api/v5/students/{id}/programsList a student’s existing program records, so you can check what’s already on file before creating a new one
POST/api/v5/students/{id}/programsCreate a new program record

Request Payload

FieldTypeRequired?Notes
CodestringRequiredOne of 190 (Foster Care), 191 (Residential/Homeless), or 192 (Family Military). The record’s existence is the program flag. There is no separate yes/no answer field.
SchoolCodeintegerRequiredThe student’s enrolling school. Used to resolve the student and stored on the record.
HomelessDwellingTypestringOptionalApplies only to Residential (Code 191). Ignored for other codes.
UnaccompaniedYouthstringOptionalApplies only to Residential (Code 191). Ignored for other codes.
ProgramTypestringOptionalReserved for future use. Not currently sent by Enroll Path.

Response

FieldTypeNotes
StudentIDinteger
SchoolCodeinteger
SequenceNumberintegerServer-generated.
Codestring
ProgramTypestring
StartDatedateServer-stamped to the current date.
UnaccompaniedYouthstringNull for non-Residential codes.

Key Behaviors

  • GET defaults to codes 190/191/192 and active-only records; both are overridable via query parameters for administrative or forensic reads.
  • This endpoint writes the program record only. The related survey answer (the "Yes" itself) is written separately to Parent Survey Responses. The two are not linked automatically by this endpoint.
  • Separate from the existing legacy programs endpoint, built specifically for this survey-driven workflow.

Security

Requires the Student Programs security area with Read and Insert permission.


School & District APIs

District- and school-level configuration and metadata endpoints. Not tied to one student.


Street Address Lookup

Overview

Resolves a street address to the schools serving that address, by grade. Districts use this to determine the correct destination school during enrollment, before creating or transferring a student.

Endpoint

MethodRoutePurpose
GET/api/v5/streets/lookupResolve an address to its school-by-grade zone map

Query Parameters

FieldTypeRequired?Notes
addressstringRequiredFull address string to parse and match, for example "123 Main St".
citystringOptionalRefines the match when the same street name exists in more than one city.
gradeintegerOptionalStudent grade. Aeries storage convention: -2 = PS, -1 = TK, 0–18 = K through post-12. Supply with statusTag to get a resolved school.
nextGradeintegerOptionalNext-year grade, for resolving the next-year school.
statusTagstringOptional"*" for a pre-enrolled student, blank for an active one. Supply with grade to get a resolved school.

Response

FieldTypeNotes
RecordNumberintegerThe matched street record, or 0 when there is no match.
Statusstring"Found", "NotFound", or "MultiMatch".
Citystring
ZipCodestring
SchoolByGradeCurrentobjectCurrent-year school code keyed by grade.
SchoolByGradeNextobjectNext-year school code keyed by grade.
ResolvedSchoolintegerSet only when grade and statusTag were both supplied and the match succeeded.
ResolvedNextSchoolintegerSet alongside ResolvedSchool.
CandidatesarrayPresent only when Status is "MultiMatch". Lists candidate matches to disambiguate, each with: RecordNumber, StreetName, Direction, City, HouseLow, HouseHigh, EvenOdd.

Key Behaviors

  • HTTP 200 is returned for every match outcome, including "NotFound" and "MultiMatch". Check the Status field, not the HTTP status code, to determine the outcome. Only a missing address returns HTTP 400.
  • This is a read-only endpoint. It does not create or modify any records.

Security

Requires the Streets security area with Read permission.


Supplemental Field Definitions

Overview

Returns the district’s available School Supplemental Data column definitions, so an integration can present a field-mapping picker without hardcoding district-specific column codes. Complements School Supplemental Data.

Endpoint

MethodRoutePurpose
GET/api/v5/supplemental-fieldsList the district’s available Supplemental Data columns

Query Parameters

This is a read-only endpoint with no query parameters.

Response

FieldTypeNotes
FieldsarrayOne entry per available Supplemental Data column.
ETagstringCache-validation token. Also returned as the HTTP ETag header.

Each entry in Fields includes: ColumnCode, ColumnType, and Description.

Key Behaviors

  • Send the previously-returned ETag as an If-None-Match request header to get HTTP 304 Not Modified instead of the full body when nothing has changed.
  • This endpoint is district-scoped only. It has no student or school parameter.

Security

Requires the Supplemental Data security area with Read permission.


Portal Document Definitions

Overview

Manage the district’s catalog of Portal Document definitions: the documents parents acknowledge or confirm during enrollment, including their binary content per language. This is separate from Document Uploads and Document Confirmation Log, which handle documents for an individual student rather than the district’s document catalog.

Endpoints

MethodRoutePurpose
GET/api/v5/portal-documentsList every document definition in the district’s catalog
GET/api/v5/portal-documents/{did}/content/{languageCode}Retrieve the binary content of one document’s language variant
POST/api/v5/portal-documentsCreate a new document definition with its first language variant
PUT/api/v5/portal-documents/{did}/content/{languageCode}Create or update one language variant on an existing document definition

Request Payload

EndpointFieldTypeRequired?Notes
POSTTitlestringRequired
ContentstringRequiredBase64-encoded binary content. Maximum decoded size is 20 MB.
FileNamestringRequired
LanguageCodestringRequiredMust match a language code Aeries recognizes.
CommentstringOptional
FileTypestringOptionalFile extension, for example "pdf" or "html".
SetOnlineEnrollmentVisiblebooleanOptionalWhen true, makes the document visible in Online Enrollment immediately.
ExpectedDocumentHashstringOptionalIf supplied, the server verifies it against the computed content hash and rejects a mismatch with HTTP 422.
PUT .../content/{languageCode}TitlestringRequired
ContentstringRequiredBase64-encoded binary content. Maximum decoded size is 20 MB.
FileNamestringRequired
CommentstringOptional
FileTypestringOptional
ExpectedDocumentHashstringOptional

Response

EndpointFieldTypeNotes
GET (list)DocumentDefinitionIDstringOne entry per (document, language) pair.
LanguageCodestring
Titlestring
Commentstring
FileTypestring
FileNamestring
TimestampdateLast updated.
OnlineEnrollmentVisibleboolean
LanguageLabelstringHuman-readable language name, for example "Spanish(Español)".
POST / PUTDocumentDefinitionIDstring
LanguageCodestring
DocumentHashstring
OnlineEnrollmentVisibleboolean

GET .../content/{languageCode} returns the raw binary content directly (not JSON), with the appropriate content type and an ETag header for conditional requests.

Key Behaviors

  • POST returns HTTP 201 Created. PUT returns HTTP 201 Created when it creates a new language variant, or HTTP 200 OK when it updates an existing one.
  • PUT is a full overwrite of that language variant. Every field in the request replaces the stored value, and there is no partial update.
  • The content-retrieval GET supports conditional requests: send the previous ETag as If-None-Match to receive HTTP 304 Not Modified when the content hasn’t changed.
  • This endpoint is district-scoped, with no school or student parameter. It manages the document catalog itself, not any one student’s confirmations.

Security

Requires the Document Setup security area. Read is available; Insert is required for the create endpoint; Update is required for the language-variant upsert.

Writable Schema

Overview

Returns a read-only catalog of every Aeries table and field the v5 EnrollPath API surface accepts as input. Integration Center uses this catalog to build a vendor-field-to-Aeries-column mapping picker. This is distinct from and complements Student Field Write Extensions above, which covers a small set of ad hoc supplemental extension fields; Writable Schema is the full cross-entity writable-field catalog.

Endpoint

MethodRoutePurpose
GET/api/v5/enroll-path/writable-schemaList every writable Aeries table and field the v5 EnrollPath API accepts as input

Query Parameters

This is a district-scoped, read-only endpoint that takes no query parameters.

Response

FieldTypeNotes
TablestringAeries table code, for example STU or CON.
DescriptionstringHuman-readable label for the table.
FieldsarrayOne entry per writable field on this table.

Each entry in Fields includes: Description, ColumnCode, IsCodeset, and IsSchoolBased. IsCodeset is true when valid values for that field must be looked up via the district’s code list for that table and column; IsSchoolBased is only meaningful when IsCodeset is true, and indicates the codeset varies per school.

Key Behaviors

  • This is a GET-only endpoint. There is no request body to validate.
  • Results are always scoped to the calling district.
  • Tables covered: STU (Student Data), CON (Contacts), AUT (Authorizations), ODE (Other District Enrollments), MII (Medical Insurance), MHS (Medical History), LAC (Language Assessment), MLS (Multi-Language Survey), FRE (Free and Reduced Meals), PRS (Parent Survey Responses), PGM (Special Program Details), PWA (Parent Web Account), PWS (Parent Web Student Link), DOC (Student Documents), DCL (Document Confirmation Log), ESI (External Student IDs), IMM (Immunizations, exposed as logical vaccine codes rather than raw columns), and SUP (Supplemental Data).
  • SUP entries are computed dynamically per district rather than static, so an empty SUP entry is a valid response, not an error.

Security

No security area scope is required beyond standard v5 API authentication — this endpoint returns schema metadata only, not district or student data.


District Options

Overview

Read and update a narrow, EnrollPath-specific set of district options. This endpoint does not expose general district settings or preferences — those are managed through an older Classic UI that is not exposed via this v5 endpoint.

Endpoints

MethodRoutePurpose
GET/api/v5/district/optionsRead the district’s current EnrollPath options
PATCH/api/v5/district/optionsUpdate one or more EnrollPath options

Request Payload

GET takes no request body. The fields below apply to PATCH only.

FieldTypeRequired?Notes
EnrollPathShortNamestringOptionalMust be non-empty if provided, and match the pattern ^[a-zA-Z0-9_-]+$ (letters, digits, hyphens, and underscores only).
EnrollPathEnvironmentstringOptionalMust be one of "", "sandbox", "dev", or "staging". A non-empty value is only accepted when the request is made against a development server; otherwise the request is rejected with HTTP 400 and error code EnvironmentRestrictedToDevServer.

At least one of the two fields must be included in the PATCH body, or the request is rejected with HTTP 400 and error code RequestBodyRequired if the body itself is null or missing.

Response

FieldTypeNotes
EnrollPathShortNamestring
EnrollPathEnvironmentstring

Key Behaviors

  • A non-empty EnrollPathEnvironment is only accepted when the API is called against a development server; calling it against any other server with a non-empty value returns HTTP 400 with error code EnvironmentRestrictedToDevServer.
  • Each PATCH is audited under the calling vendor’s username.
  • Both GET and PATCH return the same response shape.

Security

Requires the District Options security area with Read or Update permission depending on the operation.


SAML Service Providers

Overview

Create, read, update, and delete the district’s SAML service provider records, used to configure single sign-on integrations. Vendors use this to register and maintain their own service provider metadata without going through Aeries Support.

Endpoints

MethodRoutePurpose
GET/api/v5/saml/service-providersList all SAML service provider records
GET/api/v5/saml/service-providers/{rid}Get one record by record ID
POST/api/v5/saml/service-providersCreate a new record
PUT/api/v5/saml/service-providers/{rid}Update an existing record
DELETE/api/v5/saml/service-providers/{rid}Delete a record

Request Payload

FieldTypeRequired?Notes
DisplayNamestringOptionalMaximum 255 characters.
EntityIdstringRequiredMaximum 255 characters. Required and non-blank on create; cannot be blanked on update. Must be unique case-insensitively across all non-deleted records for the district — a duplicate is rejected with HTTP 400 and error code EntityIdDuplicate.
AssertionConsumerServiceUrlstringOptionalMaximum 255 characters. Must parse as a valid absolute URI if provided.
CertificatestringOptionalMust start with -----BEGIN CERTIFICATE----- if provided. This is a string-prefix format check only, not full X.509 validation.
MetadataUrlstringOptionalMaximum 255 characters.
SignSamlResponsebooleanOptional
SignAssertionbooleanOptional
RequireSignedAuthnRequestbooleanOptional
SupportIdpInitiatedSsobooleanOptional
RelayStatestringOptionalMaximum 255 characters.
TypestringOptionalMaximum 2 characters. Must be a valid code from the district’s SSP code table. The type code EP (Enroll Path) is special-cased to allow only one non-deleted record of that type per district — attempting to create a second returns HTTP 409 Conflict.

The request body is required for both POST and PUT; a missing body returns HTTP 400. Disabled cannot be set through either verb: new records are always created disabled, and PUT cannot enable or disable an existing record. PUT is a sparse update — fields omitted from the request body are preserved, not cleared.

Response

FieldTypeNotes
RecordIDinteger
DisplayNamestring
EntityIDstring
AssertionConsumerServiceUrlstring
Certificatestring
MetadataUrlstring
SignSamlResponseboolean
SignAssertionboolean
RequireSignedAuthnRequestboolean
SupportIdpInitiatedSsoboolean
DisabledbooleanRead-only via this API. Set only through the Classic admin SSO configuration screens, which are not covered in this article.
RelayStatestring
Typestring

Key Behaviors

  • EntityId must be unique case-insensitively across all non-deleted records for the district; a duplicate returns HTTP 400 with error code EntityIdDuplicate.
  • Only one non-deleted record with Type EP (Enroll Path) is allowed per district; creating a second returns HTTP 409 Conflict.
  • The Certificate check is a string-prefix format check only, not full X.509 certificate validation.
  • {rid} must be a positive integer, or the API returns HTTP 400.
  • A request body is required for POST and PUT; a missing body returns HTTP 400.
  • New records are always created disabled, and Disabled cannot be changed through POST or PUT.
  • DELETE is a soft delete and returns HTTP 204 No Content.

Security

Requires the SAML Service Providers security area with Read, Insert, Update, or Delete permission depending on the operation.



Portal APIs

Parent Portal account endpoints.


Parent Portal Account Provisioning

Overview

When an API caller flagged as an Enroll Path Vendor Type inserts or updates a qualifying contact, the system automatically provisions a Parent Portal account for that contact, searching for an existing account by email, creating a new (or resurrecting a prior) account when none is found, and linking the student to that account. This eliminates the need for school staff to manually create portal accounts for parents. Automatic provisioning happens only for API callers whose Vendor Type is flagged as Enroll Path on the API Security page; the three endpoints below can be called directly by any caller with the right permission, regardless of Vendor Type.

Endpoints

MethodRoutePurpose
GET/api/v5/parent-portal/accounts/lookup?email={email}Check whether a portal account exists for this email
POST/api/v5/parent-portal/accountsCreate or resurrect a portal account
POST/api/v5/parent-portal/accounts/{aid}/studentsLink a student to an existing portal account

Request Payload

EndpointFieldTypeRequired?Notes
GET .../lookupemailstring (query param)Required
POST /accountsEmailstringRequired
FirstNamestringOptional
LastNamestringOptional
StudentIDintegerOptionalWhen sent together with ContactSequenceNumber, the system checks whether that contact is restricted before creating the account.
ContactSequenceNumberintegerOptionalSee note above.
POST .../studentsStudentIDintegerRequiredThe student to link to this portal account.

Response

EndpointFieldTypeNotes
GET .../lookupAIDintegerPortal account ID.
ASTstringAccount status.
POST /accountsAIDinteger
ASTstring
ActivationUrlstringAssembled by the server. The raw activation code is never returned to the caller.
POST .../studentsAccountIDintegerNote the different field name from the two responses above (AccountID here vs. AID above). The three endpoints don’t share one response shape.
StudentIDinteger
StatusstringAlso a different field name than AST above. Returned with HTTP 201 Created.

Key Behaviors

  • A contact is eligible for automatic provisioning when: the API caller’s Vendor Type is flagged as Enroll Path, the contact has a valid email address, the contact is the Primary contact, the contact’s Access to Portal flag is on, the district has not disabled portal account creation, and no account or access already exists for that email/student combination.
  • Duplicate account creation is prevented. If a portal account already exists for the contact’s email, no new account is created.
  • All provisioning attempts are logged regardless of outcome.
  • The link-student call is idempotent on the account/student pair.

Security

Requires the Parent Portal Account security area with Read and Insert permission for the three endpoints above.


Frequently Asked Questions

How do I grant the Aeries Enroll Path integration access to these endpoints?

Navigate to the API Security page in Aeries and grant the appropriate security area permission to the Aeries Enroll Path API certificate. Each section above lists its required security area.

Does the student transfer endpoint withdraw the student from their current school?

No. The Key Behaviors in the Inter-School Student Transfer section above cover exactly what does and doesn’t happen to the origin school record.

Can I search for students who are no longer active?

Yes. The district-wide student search returns both active and inactive/transferred students. The EnrollmentStatus field in the response indicates the current status.

Is Aeries Enroll Path granted access to all of these endpoints automatically?

No. Each endpoint requires a specific API security area permission. District administrators control which security areas are granted to the Aeries Enroll Path integration on the API Security page. Parent Portal account provisioning is additionally restricted to API callers whose Vendor Type is flagged as Enroll Path on the API Security page.


Back to Top