API Endpoints

The API 2.0 consists of the following resources, listed as individual endpoints:

Account and user management

Endpoint Function
GET /api/2/access/{for} Request organization login
GET /api/2/organization/{organization_id}? Retrieve organization details
GET /api/2/organization/{organization_id}/license Retrieve organization license details
GET /api/2/organization/{organization_id}/staff Retrieve organization staff users
PUT /api/2/organization/{organization_id}/staff/{user_id_or_email} Add organization staff user
DELETE /api/2/organization/{organization_id}/staff/{user_id} Remove organization staff user
GET /api/2/organizations Retrieve list of organizations
GET /api/2/session Request session information
POST /api/2/token Request a new OAuth token
GET /api/2/user/{user_id}? Retrieve user details
PUT /api/2/user Update own real name, locale or time zone
DELETE /api/2/user/{user}/catalog/{catalog} Revoke user access to catalog
PUT /api/2/user/{user}/catalog/{catalog} Grant user access to catalog
GET /api/2/user/…/contract Retrieve user contract
GET /api/2/user/…/email-address/ Retrieve user email address
PUT /api/2/user/…/email-address/ Add user email address
DELETE /api/2/user/…/email-address/ Remove user email address
POST /api/2/user/…/email-address/…/request-verification Request verification of user email address
PUT /api/2/user/…/email-address/…/verify/… Verify the authenticity of a user's email address
GET /api/2/user/…/email-addresses Retrieve user email addresses
PUT /api/2/user/…/email-addresses/…/set-primary Set one of the user’s email addresses as primary
GET /api/2/user/…/permissions Retrieve user permissions
PUT /api/2/user/…/permission Update user permissions
DELETE /api/2/user/…/permission Remove user permissions
POST /api/2/users Create user account

Content

Endpoint Function
PUT /api/2/course/{course_id}/{drill_id} Add a drill to a course
DELETE /api/2/course/{course_id}/{drill_id} Remove a drill from a course
POST /api/2/courses Create a course
GET /api/2/drill Retrieve drill or course details
PUT /api/2/drill/{drill_id} Update drill name, subject or description
GET /api/2/drill/{drill_id}/tags Retrieve drill tags
POST /api/2/drills Create a new drill

Practice and test

Endpoint Function
PUT /api/2/answer/{reference} Submit practice answer
GET /api/2/objective Retrieve a specific objective including evaluation
GET /api/2/objectives Retrieve list of objectives including evaluations
GET /api/2/practice-preferences/{drill_id} Retrieve practice preferences
PUT /api/2/practice-preferences/{drill_id} Store practice preferences
GET /api/2/question/{drill_id}? Retrieve practice question
GET /api/2/test/{test_id} Retrieve test details
PUT /api/2/test/{test_id}/{type}/{id} Link a test definition
POST /api/2/tests Define an individual or anonymous test
PUT /api/2/test-answer/{reference} Submit test answer
GET /api/2/test-question/{test_id}/{ticket}? Retrieve test question
GET /api/2/test-result/{test_id}/{user_id_or_ticket}? Retrieve test results
GET /api/2/repertoire Search in repertoire
PUT /api/2/repertoire Add drill to repertoire
DELETE /api/2/repertoire Remove a drill or course from the user's repertoire

Drill store

Endpoint Function
GET /api/2/store Search in Drill store
GET /api/2/store/categories Retrieve Drill Store categories
GET /api/2/store/highlights Request list of Drill Store highlights
GET /api/2/store/popular Requests list of most practiced public drills
GET /api/2/store/recent Requests list of recently published Drill Store entries
GET /api/2/store/related/{drill_id} Requests list of public drills related to given drill

Group management and analysis

Endpoint Function
PUT /api/2/group/{group_id}/drills/{drill_id} Add drill or course to group
PUT /api/2/group/{group_id}/members/{user_reference} Add member
GET /api/2/group/{group_id}/members Retrieve or search list of members for group
DELETE /api/2/group/{group_id}/members/{user_reference} Remove group member
GET /api/2/group/{group_id}/drills Retrieve list of drills for group
DELETE /api/2/group/{group_id}/drills/{drill_id} Remove drill from group
GET /api/2/group/{group_id}/results Retrieve group drill results
GET /api/2/group/{group_id}/objectives Retrieve group objectives
DELETE /api/2/group/{group_id}/objectives/{objective_id} Remove objective from group
GET /api/2/group/{group_id}/tests Retrieve group tests
POST /api/2/group/{group_id}/tests Define group test
DELETE /api/2/group/{group_id}/tests/{test_id} Remove test from group
POST /api/2/group/{group_id}/objectives Define practice objective
GET /api/2/group/{group_id}/staff Retrieve group staff permissions
PUT /api/2/group/{group_id}/staff Update group staff permissions
DELETE /api/2/group/{group_id}/staff Revoke group staff permissions
GET /api/2/groups Retrieve list of groups
POST /api/2/groups Create new group
DELETE /api/2/groups Remove a group
GET /api/2/group-invitations Retrieve pending group invitations
GET /api/2/group-invitation/{token} Retrieve details of group invitation
PUT /api/2/group-invitation/{token} Accept or decline group invitation
Endpoint Function
GET /api/2/client-app Retrieve client app details
PUT /api/2/client-app Update client app details
DELETE /api/2/client-app Delete a client app
GET /api/2/client-apps Retrieve all client apps
POST /api/2/client-apps Create a new client app
PUT /api/2/mobile-push-notification-subscription Register mobile device for push notifications
DELETE /api/2/mobile-push-notification-subscription Deregister mobile device for push notifications
GET /api/2/version Retrieve backend API version

Please see the list of objects for the message content for these endpoints.