Log in

API Reference

Introduction

REST-style

The Coursepath API has predictable, resource-oriented URLs and we use HTTP response codes to indicate API errors.
All endpoints are at your academy's hostname, under /api/v1/*. For example the courses in your academy are at:

https://academy123xxx.coursepath.com/api/v1/courses  

All API requests must be made over SSL/HTTPS. Calls over plain HTTP will fail.

Authentication

You always call our API on behalf of one of your users. You don't need to know their password. Instead, you pass a JSON Web Token (JWT) in the “Authorization” request header, using the “Bearer” authentication scheme. For example:

curl -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOjUwODg3MDEzOCwiaWF0IjoxNDMxNDI2NTQxLCJlbWFpbCI6ImpvaG4uc21pdGhAZXhhbXBsZS5jb20ifQ.ChS4fJK5fXT0jYcIVxuJarFBfGP1FkBSE_sk9E4cVuY' https://academy123xxx.coursepath.com/api/v1/courses  

Please read our JWT page to learn how to generate the JWT token.

JSON

Data is returned as JSON, where dates are ISO 8601 formatted. Please check our Formats page for further details.

Pagination

By default we limit the results to 100, 250 or 500 objects, depending on the API endpoint.
We strongly recommend implementing paging if you have large data sets. Use the parameters offset and limit.

Errors

The API uses conventional HTTP response codes to indicate success or failure of a request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing, there was no permission, etc.), and codes in the 5xx range indicate an error with our servers.

Endpoints

Courses

  • GET /api/v1/courses/{courseId} returns the specified course.
  • GET /api/v1/courses returns all courses.
  • GET /api/v1/members/{memberId}/courses returns the courses for the specified member.

Members

  • GET /api/v1/members/me returns information about you, the current member.
  • GET /api/v1/members/{memberId} returns the specified member.
  • GET /api/v1/members returns all members.
  • GET /api/v1/courses/{courseId}/members returns the members in the specified course.

You can filter the results by passing query string parameters such as: email, company, department, country, externalId, association, identification, registration.

Create and update members

  • POST /api/v1/members creates a new member.
  • POST /api/v1/members/{memberId} updates the specified member.
  • POST /api/v1/courses/{courseId}/members creates a member and adds her to the specified course as learner.
  • POST /api/v1/programs/{programId}/members creates a member and adds her to the specified program as learner.

The only required parameter is email. You may pass additional parameters such as name, company, department, country, externalId, etc. If you don't supply a name, we will derive the member's name from their email address.

Course enrollment

  • GET /api/v1/courses/{courseId}/members/{memberId}/coursemember returns information about the learner's result in the specified course, such as score, success, completed date, and the certificate.
  • POST /api/v1/courses/{courseId}/members/{memberId}/coursemember enrolls the member in the specified course.
  • DELETE /api/v1/courses/{courseId}/members/{memberId}/coursemember removes the member from the specified course. Beware: this also deletes all learning results of that member!

Tip: Check out our webhooks page to learn how to be notified when a learner completes a course.

Program enrollment

  • POST /api/v1/programs/{programId}/members/{memberId}/programmember adds the member to the specified program.
  • DELETE /api/v1/programs/{programId}/members/{memberId}/programmember removes the member from the specified program.

Invite members

The following endpoints allow you (re)send the invitation email to your members. This email will include the activation link, so your members can join the academy, course or program, and start learning right away:

  • POST /api/v1/members/{memberId}/invite sends an (email) invite the specified member.
  • POST /api/v1/courses/{courseId}/members/{memberId}/invite sends an (email) invite the specified member.
  • POST /api/v1/programs/{programId}/members/{memberId}/invite sends an (email) invite the specified member.

Optionally you can choose to override the invitation text as saved in the academy, course, or program. Use the parameters mail[subject], mail[body], mail[action].

Groups

  • GET /api/v1/groups returns all groups.
  • GET /api/v1/groups/{groupId}/members returns the members in the specified group.
  • GET /api/v1/members/{memberId}/groups returns the groups for the specified member.
  • POST /api/v1/members/{memberId}/groups adds the member to a group identified by the required parameter name.
  • DELETE /api/v1/members/{memberId}/groups removes the member from the specified group(s). Use the parameter name to remove from a particular group. Omit the parameter name to remove the member from all groups.

Did you know we also support webhooks?
Back to index

EnglishPowered by Fellow Digitals