API Endpoints

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

Account and user management

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


Endpoint Function
GET /api/2.1/course/{course} Retrieve course details
PUT /api/2.1/course/{course} Update course
PUT /api/2.1/course/{course}/{drill} Add a drill to a course
DELETE /api/2.1/course/{course}/{drill} Remove a drill from a course
POST /api/2.1/courses Create a course
POST /api/2.1/drill/{drill}/duplicate Duplicate a drill
POST /api/2.1/drill/{drill}/merge Merge two or more drills
PUT /api/2.1/drill/{drill} Update drill name, subject or description
GET /api/2.1/drill/{drill}/tags Retrieve drill tags
DELETE /api/2.1/drillable/{drillable} Delete drillable
POST /api/2.1/drills Create a new drill
POST /api/2.1/drills/upload Upload drill from file
GET /api/2.1/oeuvre Retrieve authored playables
GET /api/2.1/playable/{playable} Retrieve playable details
PUT /api/2.1/playable/{playable}/publish Publish playable to Drill Store or catalog
GET /api/2.1/test/{test} Retrieve test details

Practice and test

Endpoint Function
PUT /api/2.1/answer/{reference} Submit practice answer
GET /api/2.1/drillable/{drillable}/easy-and-difficult-entries Retrieve a drillable's easy and difficult entries
GET /api/2.1/drillable/{drillable}/reviews Retrieve drillable reviews
GET /api/2.1/drillable/{drillable}/review Retrieve drillable review
GET /api/2.1/drillable/{drillable}/proficiency-chart Retrieve data for drillable proficiency chart
PUT /api/2.1/drillable/{drillable}/review Post a drillable review
GET /api/2.1/drillable/{drillable}/reception Retrieve drillable reception
PUT /api/2.1/group-invitation/{token} Accept or decline group invitation
GET /api/2.1/playable/{playable}/appreciation Retrieve playable appreciation
PUT /api/2.1/playable/{playable}/appreciation/{appreciation} Store playable appreciation
POST /api/2.1/playable/{playable}/contact-author Contact playable author
PUT /api/2.1/playable/{playable}/forwarded Accept forwarded playable
DELETE /api/2.1/playable/{playable}/forwarded Decline forwarded playable
GET /api/2.1/playables/forwarded Retrieve list of drills forwarded to user
PUT /api/2.1/playables/forward Forward drills to others
GET /api/2.1/rendition/{drillable} Retrieve practice status
GET /api/2.1/rendition/{drillable}/preferences Retrieve practice preferences for rendition
PUT /api/2.1/rendition/{drillable}/preferences Store practice preferences for rendition
GET /api/2.1/rendition/{drillable}/projected-proficiency/{duration} Retrieve projected proficiency
PUT [/api/2.1/test/{test}/{type}/{id}]
GET /api/2.1/tests Retrieve a user's tests
POST /api/2.1/tests Define a new test
GET /api/2.1/test-result/{test} Retrieve test results
PUT /api/2.1/test-result/{test} Complete a test
GET /api/2.1/question/{drill} Retrieve practice question
GET /api/2.1/test-question/{test} Retrieve test question
GET /api/2.1/test-score-transformers Retrieve test score transformers
GET /api/2.1/objectives Retrieve list of objectives including evaluations
GET /api/2.1/objective/{objective_id} Retrieve a specific objective including evaluation
GET /api/2.1/repertoire Search in repertoire
PUT /api/2.1/repertoire/{drillable} Add drill to repertoire
DELETE /api/2.1/repertoire/{drillable} Remove a drill or course from the user's repertoire

Drill store

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

Group management and analysis

Endpoint Function
GET /api/2.1/group/{group} Retrieve group details
PUT /api/2.1/group/{group} Update group details
GET /api/2.1/group/{group}/drillables Retrieve group drillables
DELETE /api/2.1/group/{group}/drills/{drill} Remove drill from group
PUT /api/2.1/group/{group}/drills/{drill} Adds a drill to a group
DELETE /api/2.1/group/{group}/members Retrieve or search list of members for group
GET /api/2.1/group/{group}/members Retrieve or search list of members for group
PUT /api/2.1/group/{group}/members/{user} Add user to group
GET /api/2.1/group/{group}/objectives Retrieve group objectives
DELETE /api/2.1/group/{group}/objective/{objective} Removes an objective from a group
GET /api/2.1/group/{group}/objective/{objective}/evaluations Retrieve a group objective evaluations
PUT /api/2.1/group/{group}/objective/{objective} Update group objective
POST /api/2.1/group/{group}/objectives Define practice objective
GET /api/2.1/group/{group}/staff Retrieve group staff permissions
PUT /api/2.1/group/{group}/staff/{user}/permission Update group staff permissions
DELETE /api/2.1/group/{group}/staff/{user}/{permission} Revoke group staff permissions
GET /api/2.1/group/{group}/tests Retrieve group tests
DELETE /api/2.1/group/{group}/tests/{test} Remove test from group
POST /api/2.1/group/{group}/tests Add test to group
GET /api/2.1/group/{group}/results Retrieve group drill results
GET /api/2.1/groups Search in list of groups
POST /api/2.1/groups Create new group
DELETE /api/2.1/groups/{group} Delete group


Endpoint Function
GET /api/2.1/beacon/{beacon} Retrieve beacon details
PUT /api/2.1/beacon/{beacon} Store or update beacon definition
DELETE /api/2.1/beacon/{beacon} Delete a beacon definition
GET /api/2.1/beacons List beacon definitions
Endpoint Function
GET /api/2.1/client-app/{client} Retrieve client app details
PUT /api/2.1/client-app/{client} Update client app details
DELETE /api/2.1/client-app/{client} Delete a client app
GET /api/2.1/client-apps/{user}? Retrieve all client apps
POST /api/2.1/client-apps Create a new client app
PUT /api/2.1/mobile-push-notification-subscription/{platform}/{address} Register mobile device for push notifications
DELETE /api/2.1/mobile-push-notification-subscription/{platform}/{address} Deregister mobile device for push notifications
GET /api/2.1/version Retrieve backend API version

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