XML Interface

The EducatorsHandbook.com XML interface is implemented over HTTPS using the HTTP GET method. Its primary purpose is to provide access to incident data in a machine readable format.

Accounts

HTTP Basic Authentication is used to authenticate users at the account root and retrieve a list of account keys associated with that user. The authentication mode should be set to Basic and should contain a Base64 encoded username and password. Any request to the XML Account Root that does not contain an HTTP Authorization header with the proper credentials will fail and return a “401 Unauthorized” response. Access to the XML interface is restricted to the following account types.

Role School Account District Account*
Teacher
School Administrator
District Administrator
Read-Only

*District account access is limited to district-level users.

URI

GET https://discipline.educatorshandbook.com/xml.xml

Required Request Headers

Header Description Values/Format
Authorization Authorization header. HTTP Basic

XML Response Format

<accounts count="{integer}">
   <account key="{string}">{string}</account>
   <!-- ... -->
</accounts>

Incident Data

Incident data is accessed through the URI of each account. An HTTP Authorization header is not required for requests that include a valid account key in the URI and will be ignored if set. Account keys can be re-used in subsequent sessions, but will change when a user changes his or her password.

URI

GET https://discipline.educatorshandbook.com/xml/{key}.xml

Supported Query Parameters

Parameter Description Type Values
action The action assigned. Use a comma-separated list to query multiple actions. S District action code specified in Settings -> Actions
arrangement The instructional arrangement. Use a comma-separated list to query multiple arrangements. S District arrangement code specified in Settings -> Arrangements
cost The action assigned removed the student from instructional time. B true, false
employee The referring employee.Use a comma-separated list to query multiple employees. S District employee id
end The last day in the range of dates included in the query. D YYYY-MM-DD
ethnicity The ethnicity of the referred student(s). Use a comma-separated list to query multiple ethnicities. S District ethnicity code
grade The grade of the referred student(s). Use a comma-separated list to query multiple grades. S EC, PK, KG, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
iep The IEP status of the referred student(s). B true, false
injury The injury type.Use a comma-separated list to query multiple injuries. S District injury code specified in Settings -> Injuries
location Where the incident occurred. Use a comma-separated list to query multiple locations. S District location code specified in Settings -> Locations
offense The behavior resulting in referral. Use a comma-separated list to query multiple behaviors. S District offense code specified in Settings -> Offenses
plan The Section 504 Plan status of the referred student(s). B true, false
race The race of the referred student(s). Use a comma-separated list to query multiple races. S District race code
school The school where the incident took place. Use a comma-separated list to query multiple schools. S District school id
gender The gender of the referred student(s). S male, female
start The first day in the range of dates included in the query. D YYYY-MM-DD
student The the referred student.Use a comma-separated list to query multiple students. S District student id
subject The subject being taught at the time of the discipline incident. Use a comma-separated list to query multiple subjects. S District subject code specified in Settings -> Subjects
tag The tag assigned to the incident. Use a comma-separated list to query multiple tags. S District tag code specified in Settings -> Tags
type Either classroom managed incidents or office referrals. S classroom, referral
weapon The weapon type.Use a comma-separated list to query multiple weapons. S District weapon code specified in Settings -> Weapons

XML Response Format

<incidents count="{integer}">
   <incident uuid="{string}" type="{string}" last-modified="{datetime}">
      <date>{date}</date>
      <time>{time}</time>
      <written-by datetime="{datetime}" district-id="{string}">{string}</written-by>
      <school code="{string}">{string}</school>
      <location code="{string}">{string}</location>
      <subject code="{string}">{string}</subject>
      <arrangement code="{string}">{string}</arrangement>
      <offense code="{string}">
         <name>{string}</name>
         <tags count="{integer}">
            <tag code="{string}">{string}</tag>
            <!-- ... -->
         </tags>
      </offense>
      <description>{string}</description>
      <offenders count="{integer}">
         <offender>
            <student district-id="{string}">
               <name>{string}</name>
               <grade>{string}</grade>
               <gender>{string}</gender>
               <race>{string}</race>
               <ethnicity>{string}</ethnicity>
               <iep>{boolean}</iep>
               <plan>{boolean}</plan>
            </student>
            <weapons count="{integer}">
               <weapon code="{string}">{string}</weapon>
               <!-- ... -->
            </weapons>            
            <injury code="{string}">{string}</injury>
            <actions count="{integer}">
               <action code="{string}" cost="{boolean}">
                  <name>{string}</name>
                  <duration day-length="{integer}">{float}</duration>
                  <schedule count="{integer}">
                     <event>
                        <date>{date}</date>
                        <start>{time}</start>
                        <end>{time}</end>
                        <served>{boolean}</served>
                     </event>
                     <!-- ... -->
                  </schedule>
                  <details>{string}</details>
                  <assigned-by datetime="{datetime}" district-id="{string}">
                     {string}
                  </assigned-by>
               </action>
               <!-- ... -->
            </actions>
         </offender>
         <!-- ... -->
      </offenders>
      <victims count="{integer}">
         <victim>
            <student district-id="{string}">
               <name>{string}</name>
               <grade>{string}</grade>
               <gender>{string}</gender>
               <race>{string}</race>
               <ethnicity>{string}</ethnicity>
               <iep>{boolean}</iep>
               <plan>{boolean}</plan>
            </student>
         </victim>
         <!-- ... -->
      </victims>
   </incident>
   <!-- ... -->
</incidents>

Examples

GET /xml/925c0fb7-bece-4b34-a693-15c40ee212ab.xml?iep=true

Get discipline incidents for students with an IEP.

GET /xml/925c0fb7-bece-4b34-a693-15c40ee212ab.xml?student=323129234

Get discipline incidents for a specific student.