Overview
This guide details the steps to create an API client, generate API keys, and access data using the provided endpoint.
Open the API Client Management Screen as shown below. Please note you must have Admin privileges in OnDataSuite to access the set up screens.
- Administrator>Site Settings>OnDataSuite API Connection
A list of previously created API connects will appear as shown below if any exist. Click Create Client.
In the modal that appears, enter the Client Name (e.g., “Postman Client”) and click Submit.
View API Keys
Once the client is created, locate the client in the list. Click on the client name to view its API Key and Secret. Keep these credentials secure, as they are needed for API authentication.
CCMR API Endpoint Details
https://your_district_ods_url/v1/accountability/ccmr/students
Available Parameters
- year (required): The academic year for the data.
- per_page (optional): Number of records per page. Default is 25. Max is 100
- page (optional): The page number for paginated data.
Example Request
GET https://your_district_ods_url/v1/accountability/ccmr/students?year=2025&per_page=10
Authorization: Bearer {your_access_token}
Example Response
Authenticating Requests with OAuth
Send post request to get a token to “https://sample.ondatasuite.com/oauth/token”. The token expires after 2 hours an will need to be requested again.
POST /oauth/token HTTP/1.1
Host: https://sample.ondatasuite.com <--(Replace with your ODS URL)
Accept: application/json
Content-Type: application/json
{
"grant_type": "client_credentials",
"client_id": "9db36-f4-48c-9c2-c20bd47f",
"client_secret": "nYneb2gZLbZqrvwxm7MltzrhDOGwkBspxAW"
}
This returns an access_token:
{ "token_type": "Bearer", "expires_in": 7200, "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6ImZha2Ugand0IiwiaWF0IjoxNTE2MjM5MDIyfQ.AjqDex3b94pJmSJWZENZ_tKVOravitcvL8J0x011lxQ" }
Send the access_token as a bearer token to authorize API requests.
GET /v1/health HTTP/1.1
Host: sample.ondatasuite.com
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6ImZha2Ugand0IiwiaWF0IjoxNTE2MjM5MDIyfQ.AjqDex3b94pJmSJWZENZ_tKVOravitcvL8J0x011lxQ
Example with CURL
curl -X GET "https://your_district_ods_url/v1/accountability/ccmr/students?year=2025" \
--header "Accept: application/json" \
--header "Authorization: Bearer {your_access_token}"
Data Fields Description
Field | Description |
year | Academic year of the record |
e0923 | Unique student ID |
cte_code | Career & Technical Education code |
ela_tsia | English Language Arts TSIA status |
math_tsia | Mathematics TSIA status |
ccmr_met | Indicates if CCMR criteria were met |
graduation_status | Graduation status of the student |
continuously_enrolled | Whether the student was continuously enrolled |
Refer to the response object for a full list of available fields.
Pagination
The API supports pagination. Use the per_page and page parameters to fetch records in chunks.
- meta.pagination.total: Total number of records.
- meta.pagination.per_page: Number of records per page.
- meta.pagination.current_page: Current page number.
For further assistance please create a support ticket, and you will be contacted!