NAV
Logo
shell

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 someToken with 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
email string NULL YES alexs@activeclass.com
sis_id string NULL NO D01010101

Please see sample csv file below

first_name last_name email 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.