Skip to content

API Reference v1.0

Tom Taylor edited this page May 3, 2019 · 13 revisions

See below for a list of all API endpoints exposed by the authoring tool's Node.js server.

Note: this API will be deprecated in the near future in favour of API v1.5, and then API v2.0. If you're unsure which API version to develop against, ask on Gitter.

☑️ Used by front-end     👽 Unused by front-end

Asset

Route Method Description Used?
/api/asset/:id DELETE 👽
/api/asset/:id GET 👽
/api/asset/:id PATCH 👽
/api/asset/:id PUT ☑️
/api/asset/query GET ☑️
/api/asset/restore/:id PATCH 👽
/api/asset/restore/:id PUT ☑️
/api/asset/serve/:id GET ☑️
/api/asset/thumb/:id GET ☑️
/api/asset/trash/:id PATCH 👽
/api/asset/trash/:id PUT ☑️
/api/asset POST ☑️
/api/shared/asset/:id GET 👽

Auth

Route Method Description Used?
/api/authcheck GET ☑️
/api/createtoken POST ☑️
/api/login POST ☑️
/api/logout POST ☑️
/api/userpasswordreset/:token GET ☑️
/api/userpasswordreset/:token PATCH ☑️
/api/userpasswordreset/:token PUT

Content

Route Method Description Used? Notes
/api/content/:type/:id DELETE ☑️
/api/content/:type/:id GET ☑️
/api/content/:type/:id PATCH ☑️
/api/content/:type/:id PUT ☑️
/api/content/:type/query GET 👽
/api/content/:type/switch/:id/:switchid PATCH 👽
/api/content/:type/switch/:id/:switchid PUT 👽
/api/content/:type GET ☑️
/api/content/:type POST ☑️
/api/content/clipboard/copy POST ☑️
/api/content/clipboard/paste POST ☑️
/api/content/schema GET ☑️
/api/autocomplete/tag GET ☑️

Plugins

Route Method Description Used?
/api/extension/disable/:courseid POST ☑️
/api/extension/enable/:courseid POST ☑️
/api/menu/:menuid/makeitso/:courseid POST ☑️
/api/theme/:themeid/makeitso/:courseid POST ☑️
/api/theme/preview/:themename/:version GET ☑️

Course

Route Method Description Used?
/api/duplicatecourse/:id GET ☑️
/api/my/course GET ☑️
/api/shared/course GET ☑️

Content Plugins

Route Method Description Used?
/api/upload/contentplugin POST ☑️

Componenttype

Route Method Description Used?
/api/componenttype/:id GET
/api/componenttype/:id PATCH
/api/componenttype/:id PUT
/api/componenttype/checkversion/:id GET ☑️
/api/componenttype/update POST
/api/componenttype GET ☑️

Extensiontype

Route Method Description Used?
/api/extensiontype/:id GET
/api/extensiontype/:id PATCH
/api/extensiontype/:id PUT
/api/extensiontype/checkversion/:id GET ☑️
/api/extensiontype/update POST
/api/extensiontype GET ☑️

Menutype

Route Method Description Used?
/api/menutype/:id GET
/api/menutype/:id PATCH
/api/menutype/:id PUT
/api/menutype/checkversion/:id GET
/api/menutype/update POST
/api/menutype GET ☑️

Themetype

Route Method Description Used?
/api/themetype/:id GET
/api/themetype/:id PATCH
/api/themetype/:id PUT
/api/themetype/checkversion/:id GET ☑️
/api/themetype/update POST
/api/themetype GET ☑️

Output

Route Method Description Used?
/api/output/:type/preview/:courseid GET ☑️
/api/output/:type/publish/:courseid GET ☑️

Non-API

The below routes are not passed through the API router, but should be.

Route Method Description Used?
/download/:tenant/:course/:title/download.zip GET ☑️
/download/:tenant/:course GET ☑️
/export/:tenant/:course/download.zip GET ☑️
/export/:tenant/:course GET ☑️
/import POST 👽
/importsource POST ☑️

Role

Route Method Description Used?
/api/role/:id/assign/:userid POST ☑️
/api/role/:id/unassign/:userid POST ☑️
/api/role/:id DELETE 👽
/api/role/:id GET 👽
/api/role/:id PATCH ☑️
/api/role/:id PUT 👽
/api/role GET ☑️
/api/role POST 👽

Tenant

Route Method Description Used?
/api/tenant/:id DELETE 👽
/api/tenant/:id GET 👽
/api/tenant/:id PATCH 👽
/api/tenant/:id PUT 👽
/api/tenant/query GET 👽
/api/tenant GET ☑️
/api/tenant POST 👽

User

Route Method Description Used?
/api/user/:id DELETE ☑️
/api/user/:id GET 👽
/api/user/:id PATCH ☑️
/api/user/:id PUT 👽
/api/user/bulkaction PATCH 👽
/api/user/bulkaction PUT 👽
/api/user/invite POST ☑️
/api/user/me GET ☑️
/api/user/me PATCH ☑️
/api/user/me PUT 👽
/api/user/resetpassword POST ☑️
/api/user GET ☑️
/api/user POST ☑️

Miscellaneous

Route Method Description Used?
/config/config.json GET Retrieves the available client-side configuration options (note: this is not a complete list of the options in config/config.json) ☑️
/lang/:lang GET Retrieves the language strings for the specified language code for use in the front-end app. ☑️
/poll/:id GET 👽

Non-API

The below routes serve HTML pages, and should not be handled by the API router (it would be a good idea to include some of these as part of a relevant API response).

Route Method Description Used? Notes
/ GET The main entry-point to the application. Renders the index HTML page. ☑️
/loading GET Renders a loading screen. ☑️
/preview/:tenant/:course/* GET Renders a course preview ☑️

Footnotes

Route Note
/api/content/:type/:id Seemingly only used to change component layout (see editorMenuView.js).
/api/content/:type/:id This URL should be returned as part of an API response rather than piecing it together from the front-end.
Clone this wiki locally