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.
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.
Data is returned as JSON, where dates are ISO 8601 formatted. Please check our Formats page for further details.
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
.
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.
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.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
.
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.
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.
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.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]
.
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