These API calls make it possible to:

  • get information about existing templates and courses
  • create new courses or update existing courses
  • set permissions for instructors
  • link learners and instructors
  • delete courses
  • copy templates

Context

aNewSpring has templates that contain a design for the learning journey. This design consists of blocks that all have their own set of activities. Administrators can make an instance of the template by creating a course. A template can have multiple courses.

You can subscribe learners to a course, they can then do the activities.

You can also link one instructor group and one mentor group to the course. These groups contain (one or more) users with the instructor or mentor role. Mentors can only view statistics. Instructors can have more permissions.

For most activity types, you can select which instructor is allowed to assess this activity (for example: open questions or a hand-in assignment)

There can also be a link between instructors and learners in the context of a course. This way, the instructor can only see the linked learners e.g. in the statistics of the course.

Support articles:

  • The platform structure
  • Which activities can I use in a template?
  • Subscribe learners
  • Add an instructor to a course
  • Course settings - Tab: Instructors
  • Course settings - Tab: Activities
  • Course settings - Tab: Managing instructor learner

For historical reasons and to continue to support old API integrations, the terminology of the API and the front-end for administrators does not always match completely. In the API:
- A Learner is called a Student.
- An Instructor is called a Teacher.
- An Activity is sometimes called a CoursePart.

API calls

You can view more information and an example of each API call in the API Documentation by clicking the titles below. However, all links go to the /apidocs page of a demo environment that you cannot use for your own testing purposes.
To test the API calls, you will need to change the first part of the URL to match the right learning environment.

GET requests

GET /getTemplates
Use this to get all published templates that have an external ID. Archived templates are excluded.

GET /getCourses/{templateID}
Use this to get all courses of a specific template. You will need to use the external ID of the template.

GET /courseExists/{courseID}
Use this to check if a specific course already exists. You will need to use the external ID of the course.

GET /getCourse/{courseID}
Use this to get the details of a specific course. You will need to use the external ID of the course.

GET /getStudentSubscriptions/{courseID}
Use this to get all learners that are subscribed to a specific course. You will need to use the external ID of the course.

GET /getStudentTeachers/{userID}/{courseID}
Use this to get all instructors of a specific learner in a specific course. You will need to use the external IDs of the user (learner) and the course.

GET /getTeacherStudents/{userID}/{courseID}
Use this to get all learners of a specific instructor in a specific course. You will need to use the external IDs of the user (instructor) and the course.

POST requests

POST /instantiate/{templateID}/{courseID}
Use this to create a new course based on a specific template. You will need to use the external ID of the template and the new course will get the external ID that you specify as courseID.

POST /updateCourse/{courseID}
Use this to change the properties of an existing course. Also use this API call if you want to link an instructor and/or mentor group.
You will need to use the external ID of the course and optionally the external ID(s) of the instructor and/or mentor group.

POST /setCoursePermissions/{courseID}/{teacherID}
Use this to set (or unset) the instructor rights for this course. By default, all permissions are enabled. If that's the case, you should send the parameter unset with value true to disable the permissions that the instructor shouldn't have.

The values that you can place in the permission parameter are:
- CourseSettings: Instructor can edit the settings of the course.
- EditCalendar: Instructor can add calendar items.
- EditTeacherStudents: Instructor can create and instruct a specific group of learners.
- ReceiveStudentMessage: Instructor can send and receive messages from learners.
- ReceiveCoursePartNotifications: Instructor receives statistics mail, a copy of the course notifications for learners and notifications from discussions and completed selected activities.
- AssessorPossible: Instructor can assess open questions, hand-in assignments and 360° feedback. You can further specify which activities instructors are allowed to assess with POST /setActivityPermissions.
You can send the permissions in as an array by repeating the same parameter with different values.
You will need to use the external IDs of the course and the user (instructor).

POST /setActivityPermissions/{courseID}/{activityID}/{teacherID}
Use this to set (or unset) if an instructor can assess a specific activity. This only works if an instructor also has the coursePermission AssessorPossible which you can set with POST /setCoursePermissions.
You will need to send the value Assess in the permission parameter.
You will need to use the external IDs of the course, the activity and the user (instructor).

POST /addTeacherStudents/{courseID}/{teacherID}
Use this to link learners to a specific instructor. The instructor can only see learners that they are linked to. You will need to use the external IDs of the course, the user (instructor) and all users (learners) that you want to link to the instructor, which can be sent as an array in the parameter student, by repeating the same parameter with different values.

POST /deleteTeacherStudents/{courseID}/{teacherID}
This works the same as /addTeacherStudents/, but will instead unlink the learners from the specific instructor.

POST /deleteCourse/{courseID}
Use this to remove the course. You can only do this if there are no active learners anymore, unless you add the parameter force with value true. This cannot be undone. You will need to use the external ID of the course.

POST /copyTemplate/{existing templateID}/{new templateID}
Use this to create a copy of a template.
Templates are linked to one or more content libraries. Multiple templates can share the same content libraries. You can specify if the new template needs to use the same content libraries or if you also want to copy these by setting copyContent to true or false.
Set publish to true if you want to be able to instantiate new courses from the copied template. If you set publish to false, a user with the role designer will need to publish the template manually after finishing to make changes to it.
You will need to use the external ID of the template and you also need to specify the new external ID for the copy.