This API allows third party applications to interact and communicate with
the Illuminate system.
Please note that the cache clears every 2 hours.
Do you want to get access? Access is given to districts and 3rd party vendors on an as needed basis. Just contact [email protected] and tell us about your application and how you will use our API. If you are a 3rd party vendor, be sure to tell us which districts you are working with.
The Illuminate API is a REST based API, meaning that it accepts traditional HTTP requests. Currently all requests and responses are handled in JSON encoded strings.
OAuth is used for user centric Web Service Authentication. OAuth is an open, simple and secure protocol that enables applications to authenticate users and interact with the Illuminate system on behalf of those users.
For general non user interactive Web Service Authentication, some of the same principals of OAuth are used. The Illuminate API uses the same Public Keys, Secrets, and Signature methodology as used with OAuth. The only major differences being that the User Access Token and Secret will be pre-generated and Browser Redirection will not take place.
Using an OAuth 1.0 library that exists for your programming language of choice is highly recommended. The following code samples are using two popular OAuth libraries from their programming communities.
PHP - OAuth Library
$base_url = 'https://{subdomain}.illuminateed.com/{directory}/rest_server.php'; $consumer_key = '{consumer_key}'; $consumer_secret = '{consumer_secret}'; $user_key ='{user_token}'; $user_secret='{user_secret}'; $oauth = new OAuth($consumer_key, $consumer_secret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION); $oauth->enableDebug(); $oauth->setToken($user_key,$user_secret); $url_endpoint = '/Api/Sites'; $oauth->fetch($base_url . $url_endpoint); $json = json_decode($oauth->getLastResponse()); print_r($json); $url_endpoint = '/Api/Students?limit=2'; $oauth->fetch($base_url . $url_endpoint); $json = json_decode($oauth->getLastResponse()); print_r($json);
Python - requests-oauthlib Library
base_url = 'https://{subdomain}.illuminateed.com/{directory}/rest_server.php' consumer_key = '{consumer_token}' consumer_secret = '{consumer_secret}' user_key = '{user_token}' user_secret ='{user_secret}' import requests from requests_oauthlib import OAuth1 import urllib import json oauth = OAuth1(client_key=consumer_key, client_secret=consumer_secret, resource_owner_key=user_key, resource_owner_secret=user_secret, signature_type='auth_header' ) client = requests.session() api_endpoint = '/Api/Sites' response = client.get(base_url + api_endpoint, auth=oauth) results = json.loads(response.content) print results api_endpoint = '/Api/Students' params = {'limit': 2} query = "%s?%s" % (base_url + api_endpoint, urllib.urlencode(params)) response = client.get(query, auth=oauth) results = json.loads(response.content) print results
Consumer Key & Secret
Every application that will communicate with the Web Service is known as a Consumer. Each instance of your application will need it's own Consumer Key and Secret. Every request made will need to include the Consumer Key as a parameter. The Consumer Secret will be used to create a Signature for every request made to the API.
User Token & Secret
Every request made to the server must also include a Token specifically representing an individual user. This will be combined with a User Secret Key and will be used for generating the Signature along with the Consumer Key & Secret.
Signing Requests & Calling the API
You must sign all requests to the Illuminate system using HMAC-SHA1 signature encryption. If using an OAuth library, the request signature will be handled for you automatically.
To create a signature you must first create a base string from your request details. The base string is constructed by concatenating the HTTP request method, the encoded request URL, and any request parameters encoded, sorted by name, and separated with the '&' symbol.
Currently, Illuminate only accepts the signature via the request Authorization Header.
For example, the following Request:
URL:
https://demo.illuminateed.com/live/rest_server.php/Api/Students
?page=2
&limit=50
Authorization Parameters:
oauth_consumer_key=653e7a6ecc1d528c516cc8f92cf98611
oauth_nonce=bfa41b93ec995f9385b5f34027181dc4
oauth_signature_method=HMAC-SHA1
oauth_timestamp=1305583298
oauth_version=1.0
oauth_token=72157626737672178-022bbd2f4c2f3432
Would have a base string of the following:
GET&https%3A%2F%2Fdemo.illuminateed.com%2Flive%2Frest_server.php%2FApi%2FStudents&limit%3D50%26oauth_consumer_key%3D653e7a6ecc1d528c516cc8f92cf98611%26oauth_nonce%3Dbfa41b93ec995f9385b5f34027181dc4%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1305583298%26oauth_token%3D72157626737672178-022bbd2f4c2f3432%26oauth_version%3D1.0%26page%3D2
Concatenate the consumer secret and user secret separated with the '&' symbol when running it through HMAC-SHA1 encryption:
4f88a6d17f8b9ad90e00005f&fccb68c4e6103197
Which would be used to create the following signature using HMAC-SHA1 encryption:
dbBJa4gFTWq9Z0utPzwmfncOleU=
You would then create the OAuth Authorization HTTP Header string. OAuth Authorization Parameters currently must be included as part of the Authorization HTTP Header and not the Query Parameters. To create the string, concatenate the OAuth parameters with a comma while in the format key="value". Don't forget to include the generated signature. You will also need to prefix the string 'OAuth '.
OAuth oauth_consumer_key="653e7a6ecc1d528c516cc8f92cf98611",oauth_nonce="bfa41b93ec995f9385b5f34027181dc4",oauth_signature_method="HMAC-SHA1",oauth_timestamp="1305583298",oauth_version="1.0",oauth_token="72157626737672178-022bbd2f4c2f3432",oauth_signature="dbBJa4gFTWq9Z0utPzwmfncOleU="
Here are the steps needed to connect to our API via OAuth2.
API Access SetupServer Errors will have a HTTP Response Status Code and the response body will be blank unless otherwise noted.
Returns a list of District and School sites.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Sites/
Returns a list of Grade Levels and their IDs.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradeLevels/
Returns a paginated list of Students.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Students/
Returns a paginated list of Students, without home room teachers. This may be used for much larger query results.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Students2/
DEPRECATED. Use Student Contacts
Returns a paginated list of Students and their Contact information.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/StudentContacts/
Returns a paginated list of student program records.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/ProgramCode/
Returns a paginated list of Students and their Counselors.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/StudentCounselors/
Returns a paginated list of Students and thier special ed information.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/StudentSpecialEd/
Get up to 50 records from the second page of results for students who are currently in special education.
Returns a paginated list of Users.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Users/
Returns a paginated list of User Roles.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/UserRoles/
Returns a paginated list of SchoolFocus User Permissions.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/SchoolFocusPermissions/
Return a list of sites associated with the user.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/SchoolFocusSites
Returns a paginated list of Terms.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Terms/
Returns a paginated list of Courses.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Courses/
Returns a paginated list of Enrollment records.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Enrollment/
Returns a paginated list of Sections.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/MasterSchedule/
Returns a paginated list of Roster records.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Roster/
Returns a paginated list of Assessments records.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Assessments/
Submit student scores to an assessment.
POST
https://demo.illuminateed.com/live/rest_server.php/Api/Assessment/{assessment_id}/Scores/
orhttps://demo.illuminateed.com/live/rest_server.php/Api/ Assessment/local_assessment_id/{local_assessment_id}/Scores/
Returns a paginated list of aggregated student scores for an assessment.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/AssessmentAggregateStudentResponses/
Returns a paginated list of aggregated student scores for an assessment by question group.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/AssessmentAggregateStudentResponsesGroup/
Returns a paginated list of aggregated student scores for an assessment by standard.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/AssessmentAggregateStudentResponsesStandard/
Returns a paginated list of aggregated student scores for a pool assessment.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/PoolAssessmentAggregateStudentResponses/
Returns a paginated list of aggregated student scores for a pool assessment by standard.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/ PoolAssessmentAggregateStudentResponsesStandard/
View the information in an assessment.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Assessment/{assessment_id}/View/
Submit data to a summary assessment or demographic, AKA repository.
POST
https://demo.illuminateed.com/live/rest_server.php/Api/Repository/{repository_id}/Data/
Retrieve attendance daily records for a particular date.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Attendance/Daily/
Retrieve attendance section records for a particular date.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Attendance/Section/
Retrieve list of attendance flags
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Attendance/Flags/
Retrieve status of course requirement checks (both graduation and UC checks) for all students
GET
https://demo.illuminateed.com/live/rest_server.php/Api/CourseRequirementChecks/
Create a set of User API Keys for another user. This is useful for vendors with administrator rights to make requests on behalf of different users. (I.E. Return a list of Assessments that a particular user has permission to.)
POST
https://demo.illuminateed.com/live/rest_server.php/Api/CreateUserApiKeys/
The Response will either return the user information or an error.
Returns paginated list of students and their graduation eligibility information
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GraduationEligibility/
Returns paginated list of students and their behavior information
GET
https://demo.illuminateed.com/live/rest_server.php/Api/Behavior/
Retrieve GradeBook scores for all students
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradebookScores/
Retrieve overall GradeBook scores for all students
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradebookOverallScores/
Retrieve GradeBook scores per category for all students
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradebookCategoryScores
Retrieve GradeBook scores per standard for all students
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradebookStandardsScores
Retrieve GradeBook scores for all students associated to sections. Scores from GradeBooks associated via student groups will not be included.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradebookScoresWithSection/
Retrieve overall GradeBook scores for all students associated to sections. Scores from GradeBooks associated via student groups will not be included.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradebookOverallScoresWithSection/
Retrieve GradeBook scores per category for all students associated to sections. Scores from GradeBooks associated via student groups will not be included.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradebookCategoryScoresWithSection
Retrieve GradeBook scores per standard for all students associated to sections. Scores from GradeBooks associated via student groups will not be included.
GET
https://demo.illuminateed.com/live/rest_server.php/Api/GradebookStandardsScoresWithSection