API Endpoints

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

Account and user management:

Endpoint Function
GET  /api/2/session Request session information
PUT  /api/2/session Update session locale
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/ Update 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
PUT  /api/2/user/…/upgrade Upgrade user account to Premium
GET  /api/2/users Search in users list
POST  /api/2/users Create basic user
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/account-upgrade-paypal Allow user to upgrade using PayPal
PUT  /api/2/account-upgrade-paypal Finalize account upgrade using PayPal
POST  /api/2/account-upgrade-paypal Initiate account upgrade using PayPal
PUT  /api/2/account-upgrade-product-key Upgrade account using product key

Drill creation:

Endpoint Function
POST  /api/2/drills Create a new drill
PUT  /api/2/drill/{drill_id} Update drill name, subject or description
GET  /api/2/drill/{drill_id}/tags Retrieve drill tags

Drill management:

Endpoint Function
GET  /api/2/drill Retrieve drill or course details
POST  /api/2/courses Create a course
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

Practice and test:

Endpoint Function
GET  /api/2/question/{drill_id}? Retrieve practice question
PUT  /api/2/answer/{reference} Submit practice answer
GET  /api/2/practice-preferences/{drill_id} Retrieve practice preferences
PUT  /api/2/practice-preferences/{drill_id} Store practice preferences
GET  /api/2/test-question/{test_id}/{ticket}? Retrieve test question
PUT  /api/2/test-answer/{reference} Submit test answer
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
GET  /api/2/test-result/{test_id}/{user_id_or_ticket}? Retrieve test results
GET  /api/2/objectives Retrieve list of objectives including evaluations
GET  /api/2/objective Retrieve a specific objective including evaluation

Drill store and repertoire:

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

Group management and analysis:

Endpoint Function
GET  /api/2/groups Retrieve list of groups
POST  /api/2/groups Create new group
DELETE  /api/2/groups Remove a group
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/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

Developer related:

Endpoint Function
GET  /api/2/client-apps Retrieve all client apps
POST  /api/2/client-apps Create a new client app
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
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

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