Introduction
Welcome to the ActiveClass API! You can use our API to access ActiveClass API endpoints, which can get information on various elements from our platform.
We will demonstrate everything as shell commands. You can view code examples in the dark area to the right and you can switch the programming language of the examples with the tabs in the top right once more are available.
Authentication
To access any endpoint, make a HTTP call with the token
curl "https://my.activeclass.com/api/v1.0/credentials"
-H "Token: someToken"
Make sure to replace
someTokenwith your API key.
ActiveClass uses API keys to allow access to the API. You can get your API key by requesting it from your campus support contact.
ActiveClass expects for the API key to be included in all API requests to the server in either the header or as a query parameter that looks like the following:
Token: someToken
&token=someToken
Assignments
Get All Assignments
curl "https://my.activeclass.com/api/v1.0/assignments"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"time": 0.57968306541443,
"code": 200,
"method": "GET",
"url": "https://my.activeclass.com/api/v1.0/assignments",
"result": [
{
"remoteUrl": null,
"anonymousPosting": false,
"availableDate": "2000-01-01T00:00:00.000000+00:00",
"commentsDueDate": null,
"commentsRequired": "Recommended",
"description": "<p>Some instructions go here</p>",
"discussionEditDeleteEnabled": false,
"discussionVisibility": "always",
"dueDate": "2025-01-01T00:00:00.000000+00:00",
"googleConvertSubmissions": false,
"gradeOnly": false,
"gradeScheme": "Points",
"graderScheme": "Professor",
"gradesPublished": false,
"groupMax": 2,
"lateSubmissionPermitted": false,
"minNumComments": 0,
"minNumPosts": 0,
"permalink": "activeassignment--dev-onl",
"permittedSubmissionAttempts": null,
"points": 10,
"postsRequired": "Recommended",
"submissionScheme": "Discussion Board",
"tiiSubmit": false,
"title": "ActiveAssignment (Dev Only)",
"type": "Individual",
"uploadRestrictExtensions": null,
"wordCountComments": 0,
"wordCountPosts": 0,
"owner": "https://my.activeclass.com/api/v1.0/courses/resourceKey",
"parent": "https://my.activeclass.com/api/v1.0/courses/resourceKey",
"category": "https://my.activeclass.com/api/v1.0/categories/resourceKey",
"resourceKey": "resourceKey",
"itemType": "AssignmentIndividualDiscussion",
"url": "https://my.activeclass.com/api/v1.0/assignments/resourceKey",
"createdAt": "2023-01-06T12:33:48.941100+00:00",
"updatedAt": "2023-01-15T10:29:09.437800+00:00"
}
]
}
This endpoint retrieves all assignments.
HTTP Request
GET https://my.activeclass.com/api/v1.0/assignments
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| filters | [“title:HAS:Sample”] | Can specify an array of filters to search the given collection for matching values |
Get a Specific Assignment
curl "https://my.activeclass.com/api/v1.0/assignments/resourceKey"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"time": 0.39351582527161,
"code": 200,
"method": "GET",
"url": "https://my.activeclass.com/api/v1.0/assignments/resourceKey",
"count": 19,
"result": {
"remoteUrl": null,
"anonymousPosting": false,
"availableDate": "2000-01-01T00:00:00.000000+00:00",
"commentsDueDate": null,
"commentsRequired": "Recommended",
"description": "<p>Some instructions go here</p>",
"discussionEditDeleteEnabled": false,
"discussionVisibility": "always",
"dueDate": "2025-01-01T00:00:00.000000+00:00",
"googleConvertSubmissions": false,
"gradeOnly": false,
"gradeScheme": "Points",
"graderScheme": "Professor",
"gradesPublished": false,
"groupMax": 2,
"lateSubmissionPermitted": false,
"minNumComments": 0,
"minNumPosts": 0,
"permalink": "activeassignment--dev-onl",
"permittedSubmissionAttempts": null,
"points": 10,
"postsRequired": "Recommended",
"submissionScheme": "Discussion Board",
"tiiSubmit": false,
"title": "ActiveAssignment (Dev Only)",
"type": "Individual",
"uploadRestrictExtensions": null,
"wordCountComments": 0,
"wordCountPosts": 0,
"owner": "https://my.activeclass.com/api/v1.0/courses/resourceKey",
"parent": "https://my.activeclass.com/api/v1.0/courses/resourceKey",
"category": "https://my.activeclass.com/api/v1.0/categories/resourceKey",
"resourceKey": "resourceKey",
"itemType": "AssignmentIndividualDiscussion",
"url": "https://my.activeclass.com/api/v1.0/assignments/resourceKey",
"createdAt": "2023-01-06T12:33:48.941100+00:00",
"updatedAt": "2023-01-15T10:29:09.437800+00:00"
}
}
This endpoint retrieves a specific course.
HTTP Request
GET https://my.activeclass.com/api/v1.0/assignments/resourceKey
Courses
Get All Courses
curl "https://my.activeclass.com/api/v1.0/courses"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"time": 0.57968306541443,
"code": 200,
"method": "GET",
"url": "https://my.activeclass.com/api/v1.0/courses",
"count": 1,
"result": [
{
"inviteCodeUrl": null,
"name": "Electro Magnetic Physics",
"number": "241",
"permalink": "phys-241",
"subject": "PHYS",
"units": 4,
"location": "Harville 220",
"description": "In addition to the basic concepts of Electromagnetism, a vast variety of interesting topics are covered in this course: Lightning, Pacemakers, Electric Shock Treatment, Electrocardiograms, Metal Detectors, Musical Instruments, Magnetic Levitation, Bullet Trains, Electric Motors, Radios, TV, Car Coils, Superconductivity, Aurora Borealis, Rainbows, Radio Telescopes, Interferometers, Particle Accelerators (a.k.a. Atom Smashers or Colliders), Mass Spectrometers, Red Sunsets, Blue Skies, Haloes around Sun and Moon, Color Perception, Doppler Effect, Big-Bang Cosmology.",
"type": null,
"availableDate": "2014-01-01T00:00:00.000000+00:00",
"useWeightedGrades": false,
"useDropLowest": false,
"_term": "https://my.activeclass.com/api/v1.0/terms/resourceKey",
"_university": "https://my.activeclass.com/api/v1.0/universities/resourceKey",
"resourceKey": "bOVgMXqceI7050G5oNQI8G7TgALRy5gz",
"itemType": "Course",
"url": "https://my.activeclass.com/api/v1.0/courses/resourceKey",
"createdAt": "2016-05-13T01:59:34.340111+00:00",
"updatedAt": "2016-05-13T01:59:34.340111+00:00"
}
]
}
This endpoint retrieves all courses.
HTTP Request
GET https://my.activeclass.com/api/v1.0/courses
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| filters | [“name:HAS:Sample”] | Can specify an array of filters to search the given collection for matching values |
Get a Specific Course
curl "https://my.activeclass.com/api/v1.0/courses/resourceKey"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"time": 0.39351582527161,
"code": 200,
"method": "GET",
"url": "https://my.activeclass.com/api/v1.0/courses/resourceKey",
"count": 19,
"result": {
"inviteCodeUrl": null,
"name": "Electro Magnetic Physics",
"number": "241",
"permalink": "phys-241",
"subject": "PHYS",
"units": 4,
"location": "Harville 220",
"description": "In addition to the basic concepts of Electromagnetism, a vast variety of interesting topics are covered in this course: Lightning, Pacemakers, Electric Shock Treatment, Electrocardiograms, Metal Detectors, Musical Instruments, Magnetic Levitation, Bullet Trains, Electric Motors, Radios, TV, Car Coils, Superconductivity, Aurora Borealis, Rainbows, Radio Telescopes, Interferometers, Particle Accelerators (a.k.a. Atom Smashers or Colliders), Mass Spectrometers, Red Sunsets, Blue Skies, Haloes around Sun and Moon, Color Perception, Doppler Effect, Big-Bang Cosmology.",
"type": null,
"availableDate": "2014-01-01T00:00:00.000000+00:00",
"useWeightedGrades": false,
"useDropLowest": false,
"_term": "https://my.activeclass.com/api/v1.0/terms/resourceKey",
"_university": "https://my.activeclass.com/api/v1.0/universities/resourceKey",
"resourceKey": "bOVgMXqceI7050G5oNQI8G7TgALRy5gz",
"itemType": "Course",
"url": "https://my.activeclass.com/api/v1.0/courses/resourceKey",
"createdAt": "2016-05-13T01:59:34.340111+00:00",
"updatedAt": "2016-05-13T01:59:34.340111+00:00"
}
}
This endpoint retrieves a specific course.
HTTP Request
GET https://my.activeclass.com/api/v1.0/courses/resourceKey
Jobs
Get All Jobs
curl "https://my.activeclass.com/api/v1.0/jobs"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"code": 200,
"method": "GET",
"result": [
{
"percent": 100,
"status": "finished",
"message": "Job has finished successfully",
"name": "CreateZip",
"result": {
"location":"https://notebowl.s3.amazonaws.com/MjAxNi0xMi0xNS0wNy0xOS0zNw/jobs/createzip/EckURT/jj0T9q/K0MWNm.zip?response-content-disposition=attachment%3Bfilename%3Dfile-downloads-12-15-2016.zip&response-content-type=application%2Foctet-stream&AWSAccessKeyId=AKIAIBUZHF7H3AOYGP3A&Expires=1481786678&Signature=R6EP5q1oy2lIOSp2nPvQ2Sb5I3E%3D"
},
"_owner": "https://my.activeclass.com/api/v1.0/users/resourceKey",
"resourceKey": "Y9xuIl11jl9q5IFweLRJHqu21uavSCV9",
"itemType": "Job",
"url": "https://my.activeclass.com/api/v1.0/jobs/Y9xuIl11jl9q5IFweLRJHqu21uavSCV9",
"createdAt": "2016-12-15T07:19:36.516399+00:00"
},
{
"percent": 0,
"status": "failed",
"message": "An unexpected error occured",
"name": "CreateZip",
"result": null,
"_owner": "https://my.activeclass.com/api/v1.0/users/resourceKey",
"resourceKey": "5Diu6kpM5rpODWvFqnz4OXnWkjxpmyTw",
"itemType": "Job",
"url": "https://my.activeclass.com/api/v1.0/jobs/5Diu6kpM5rpODWvFqnz4OXnWkjxpmyTw",
"createdAt": "2016-12-15T07:15:59.780900+00:00"
}
],
"count": 2,
"url": "https://my.activeclass.com/api/v1.0/jobs"
}
This will return all of the jobs this user has ever created
Import
This functionality can be used to perform bulk import of users and courses.
curl "https://my.activeclass.com/api/v1.0/jobs" -d
-H "Token: someToken"
-F "name=SISImport"
-F "files[]=@./users.csv"
-F "files[]=@./terms.csv"
-F "files[]=@./courses.csv"
-F "files[]=@./roster.csv"
users.csv
| Name | Type | Default | Required | Sample Values(s) |
|---|---|---|---|---|
| first_name | string | NULL | YES | Alex |
| last_name | string | NULL | YES | Slaughter |
| string | NULL | YES | alexs@activeclass.com | |
| sis_id | string | NULL | NO | D01010101 |
Please see sample csv file below
| first_name | last_name | sis_id | |
|---|---|---|---|
| Alex | Slaughter | alexs@activeclass.com | D01010101 |
terms.csv
| Name | Type | Default | Required | Sample Values(s) |
|---|---|---|---|---|
| name | string | NULL | YES | Fall 2016 |
| start_date | datetime | NULL | YES | 2030-01-01 00:00:00, 2030-01-01, 01/01/2030 |
| id | string | NULL | NO | 201720 |
| available_date | datetime | NULL | NO | 2030-01-01 00:00:00, 2030-01-01, 01/01/2030 |
| end_date | datetime | NULL | YES | 2030-01-01 00:00:00, 2030-01-01, 01/01/2030 |
Please see sample csv file below
| name | start_date | id | available_date | end_date |
|---|---|---|---|---|
| Fall 2016 | 2017-01-16T00:00:00-05:00 | 201720 | 2017-01-15T00:00:00-05:00 | 2017-05-23T00:00:00-05:00 |
courses.csv
| Name | Type | Default | Required | Sample Values(s) | |
|---|---|---|---|---|---|
| name | string | NULL | YES | Honors English | |
| subject | string | NULL | YES | ENG | |
| number | string | NULL | YES | 109 | |
| section | string(6) | 1 | NO | 1, 01, 001 | |
| term_id | string | int | NULL | NO | 1 |
| units | int(3) | NULL | NO | 2, 0-999 | |
| location | string | NULL | NO | Harville 200, 32.26251,-110.98519 | |
| cross_list_id | string | NULL | NO | 123456, someID | |
| remote_id | string | NULL | NO | 123456, someId |
Please see sample csv file below
| name | subject | number | section | term_id | units | location | cross_list_id | remote_id |
|---|---|---|---|---|---|---|---|---|
| Honors English | ENG | 109 | 01 | 201720 | 4 | Harville 200 | J8 | 21064 |
roster.csv
| Name | Type | Default | Required | Sample Values(s) | |
|---|---|---|---|---|---|
| course_id | string | NULL | YES | 123456 | |
| term_id | string | int | NULL | NO | 1 |
| user_id | string | NULL | YES | 123456 | |
| role | enum | NULL | YES | student, ta, instructor, admin |
Please see sample csv file below
| course_id | term_id | user_id | role |
|---|---|---|---|
| 21064 | 201720 | D01010101 | instructor |
Universities
Get All Universities
curl "https://my.activeclass.com/api/v1.0/universities"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"time": 0.57968306541443,
"code": 200,
"method": "GET",
"url": "https://my.activeclass.com/api/v1.0/universities",
"result": [
{
"casLoginUrl": "https://my.activeclass.com/gateway/services/cas/ua-az/google",
"casLogoutUrl": "https://www.google.com/accounts/Logout",
"isAdmin": true,
"cas": "google",
"clubOfficerDate": null,
"clubReregisterCloseDate": null,
"clubReregisterOpenDate": null,
"clubsContact": null,
"defaultLogo": "https://my.activeclass.com/latest/images/logos/wordmark_black.png",
"domain": "my.activeclass.com",
"enableGoogleConvertSubmissions": false,
"enableGradeAveragesAssistant": false,
"enableInsights": true,
"enableAssignments": true,
"enableObserverRole": false,
"enableTrueAnonymous": false,
"gradeScale": "F,0,30;D,60,65;C,70,75;B,80,85;A,90,95",
"name": "ActiveClass",
"permalink": "ua-az",
"profileLogo": "https://my.activeclass.com/latest/images/logos/favicon_black.png",
"pronounOptions": [
"None",
"She/Her",
"He/Him",
"They/Them",
"Ze/Zir",
"Name Only"
],
"sisTimeoutType": "none",
"sisTimeout": null,
"supportEmail": "support@activeclass.com",
"tiiKey": "",
"zip": 0,
"resourceKey": "resourceKey",
"itemType": "University",
"url": "https://my.activeclass.com/api/v1.0/universities/resourceKey",
"createdAt": "2016-05-13T01:59:34.195980+00:00",
"updatedAt": "2023-06-15T04:16:41.975500+00:00"
}
]
}
This endpoint retrieves all universities.
HTTP Request
GET https://my.activeclass.com/api/v1.0/universities
Query Parameters
| Parameter | Default | Description |
|---|---|---|
| filters | [“name:HAS:Sample”] | Can specify an array of filters to search the given collection for matching values |
Get a Specific Assignment
curl "https://my.activeclass.com/api/v1.0/universities/resourceKey"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"time": 0.39351582527161,
"code": 200,
"method": "GET",
"url": "https://my.activeclass.com/api/v1.0/universities/resourceKey",
"count": 19,
"result": {
"casLoginUrl": "https://my.activeclass.com/gateway/services/cas/ua-az/google",
"casLogoutUrl": "https://www.google.com/accounts/Logout",
"isAdmin": true,
"cas": "google",
"clubOfficerDate": null,
"clubReregisterCloseDate": null,
"clubReregisterOpenDate": null,
"clubsContact": null,
"defaultLogo": "https://my.activeclass.com/latest/images/logos/wordmark_black.png",
"domain": "my.activeclass.com",
"enableGoogleConvertSubmissions": false,
"enableGradeAveragesAssistant": false,
"enableInsights": true,
"enableAssignments": true,
"enableObserverRole": false,
"enableTrueAnonymous": false,
"gradeScale": "F,0,30;D,60,65;C,70,75;B,80,85;A,90,95",
"name": "ActiveClass",
"permalink": "ua-az",
"profileLogo": "https://my.activeclass.com/latest/images/logos/favicon_black.png",
"pronounOptions": [
"None",
"She/Her",
"He/Him",
"They/Them",
"Ze/Zir",
"Name Only"
],
"sisTimeoutType": "none",
"sisTimeout": null,
"supportEmail": "support@activeclass.com",
"tiiKey": "",
"zip": 0,
"resourceKey": "resourceKey",
"itemType": "University",
"url": "https://my.activeclass.com/api/v1.0/universities/resourceKey",
"createdAt": "2016-05-13T01:59:34.195980+00:00",
"updatedAt": "2023-06-15T04:16:41.975500+00:00"
}
}
This endpoint retrieves a specific course.
HTTP Request
GET https://my.activeclass.com/api/v1.0/universities/resourceKey
Users
Get All User
curl "https://my.activeclass.com/api/v1.0/users"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"time": 0.065594434738159,
"code": 200,
"method": "GET",
"url": "https://my.activeclass.com/api/v1.0/users",
"count": 1,
"result": [
{
"profileThumbUrl": "https://secure.gravatar.com/avatar/e664a8d5832a59a8ffa28b1921686504",
"sessionExpiry": 7200,
"intercomUserHash": "someHash",
"canCreateEvent": true,
"canCreateGroup": true,
"canCreatePost": true,
"email": "alexs@activeclass.com",
"firstName": "Alex",
"lastName": "Slaughter",
"profileUrl": "https://secure.gravatar.com/avatar/e664a8d5832a59a8ffa28b1921686504",
"tosVerify": true,
"isUniversityAdmin": true,
"_university": "https://my.activeclass.com/api/v1.0/universities/resourceKey",
"resourceKey": "gBjp0Ce9sd036YMmVrHgy45woJNXKUgM",
"itemType": "User",
"url": "https://my.activeclass.com/api/v1.0/users/gBjp0Ce9sd036YMmVrHgy45woJNXKUgM",
"createdAt": "2013-12-11T10:52:17.000000+00:00",
"updatedAt": "2018-03-14T23:42:24.448700+00:00"
},
]
}
This endpoint retrieves all users.
HTTP Request
GET https://my.activeclass.com/api/v1.0/users
Query Parameters
| Parameter | Example | Description |
|---|---|---|
| filters | [“name:HAS:Sample”] | Can specify an array of filters to search the given collection for matching values |
| filters | [“name:HAS:Sample”, “email:=:user@example.edu”] | Can specify an array of filters to search the given collection for matching values |
| limit | 100 | Sets the number of responses that come down |
Filter Opperations
| Filter | Description |
|---|---|
| IN | checks to see if the provided values (comma deleniated) are present in the collection |
| TYPE | asserts the morph type is of class given the provided value |
| HAS | the provided value is encapulsated by wildcards on both sides %someValue% |
| IS_NULL | asserts the given column is null, no value required |
| = | asserts the given column is equal to the provided value |
| != | asserts the given column is not equal to the provided value |
Get a Specific User
curl "https://my.activeclass.com/api/v1.0/users/resourceKey"
-H "Token: someToken"
The above command returns JSON structured like this:
{
"time": 0.059411764144897,
"code": 200,
"method": "GET",
"url": "https://my.activeclass.com/api/v1.0/users/gBjp0Ce9sd036YMmVrHgy45woJNXKUgM",
"count": 1,
"result": {
"profileThumbUrl": "https://secure.gravatar.com/avatar/e664a8d5832a59a8ffa28b1921686504",
"sessionExpiry": 7200,
"intercomUserHash": "someHash",
"canCreateEvent": true,
"canCreateGroup": true,
"canCreatePost": true,
"email": "alexs@activeclass.com",
"firstName": "Alex",
"lastName": "Slaughter",
"profileUrl": "https://secure.gravatar.com/avatar/e664a8d5832a59a8ffa28b1921686504",
"tosVerify": true,
"isUniversityAdmin": true,
"_university": "https://my.activeclass.com/api/v1.0/universities/resourceKey",
"resourceKey": "gBjp0Ce9sd036YMmVrHgy45woJNXKUgM",
"itemType": "User",
"url": "https://my.activeclass.com/api/v1.0/users/gBjp0Ce9sd036YMmVrHgy45woJNXKUgM",
"createdAt": "2013-12-11T10:52:17.000000+00:00",
"updatedAt": "2018-03-14T23:42:24.448700+00:00"
}
}
This endpoint retrieves a specific user.
HTTP Request
GET https://my.activeclass.com/api/v1.0/users/resourceKey
Create a User
curl "https://my.activeclass.com/api/v1.0/universities/resourceKey/users"
-H "Token: admin@activeclass.com"
-F "email=alex.slaughter@activeclass.com"
-F "firstName=Alex"
-F "lastName=Slaghter"
The above command returns JSON structured like this:
{
"time": 0.47085738182068,
"code": 200,
"method": "POST",
"url": "https://my.activeclass.com/api/v1.0/universities/resourceKey/users",
"count": 1,
"result": {
"_university": "https://my.activeclass.com/api/v1.0/universities/resourceKey",
"profileThumbUrl": "https://my.activeclass.com/latest/images/profile-picture/default_0.png",
"isUniversityAdmin": false,
"itemType": "User",
"firstName": "Alex",
"url": "https://my.activeclass.com/api/v1.0/users/cQ69c7MEnl0ONUGFphFc4KXAanZ4b2wr",
"lastName": "Slaghter",
"resourceKey": "cQ69c7MEnl0ONUGFphFc4KXAanZ4b2wr",
"tosVerify": null,
"profileUrl": null,
"updatedAt": "2018-03-15T04:43:29.918900+00:00",
"email": "alex.slaughter@activeclass.com",
"createdAt": "2018-03-15T04:43:29.918900+00:00"
}
}
This endpoint create user.
HTTP Request
POST https://my.activeclass.com/api/v1.0/universities/resourceKey/users
Errors
The ActiveClass API uses the following error codes:
| Error Code | Meaning |
|---|---|
| 400 | Bad Request – Invalid data sent |
| 401 | Unauthorized – API Key not found / not sent |
| 403 | Forbidden – The resource requested is hidden for the current user |
| 404 | Not Found – The specified resource could not be found |
| 405 | Method Not Allowed – Access to a resource with an invalid http method |
| 410 | Gone – The resource requested has been deleted |
| 429 | Too Many Requests – Requested too many resources within a given interval |
| 500 | Internal Server Error – We had a problem with our server. Try again later. |
| 503 | Service Unavailable – We’re temporarily offline for maintenance. Please try again later. |