The table below describes the routes that the HTTP interface provides. This HTTP interface is available for all models in Learning Locker.
GET http://www.example.org/api/v2/MODEL_NAME |
For example, to get a count of stores via this API, you’d use the following route.
GET http://www.example.org/api/v2/lrs |
To access this interface, you must additionally supply your Basic Auth details with each request in the Authorization
header. Your Basic Auth details can be found under Settings > Clients.
Method | Description |
---|---|
Gets a count of the models. | |
Gets a subset of the models. | |
Creates a model. | |
Gets a single model. | |
Creates or overwrites a model. | |
Creates or overwrites a model. | |
Patches a model. | |
Deletes a model. |
The table below lists the models supported by this interface, you can view the model schemas by clicking the model names.
Name | API Model Name | Description |
---|---|---|
| Activity with many identifiers. | |
| Credentials that access HTTP Interfaces. | |
| Customisable grid of visualisations. | |
| Record of downloaded exports. | |
| Template for exporting statements. | |
| Journeys visualisation. | |
| Journey progress. | |
| Container of clients and stores that a subset of users can access. | |
| Person with many identifiers and attributes across systems. | |
| Unique xAPI identifier for a persona. | |
| Attribute of a persona. | |
| Saved filter for statements. | |
| Group of permissions for accessing organisation data via users. | |
| Container for xAPI data (statements, documents, and attachments). | |
| Login details for accessing the UI. | |
| Graphical view of statements. |
This route returns a count of the models. A request to this route would look something like the request below.
GET http://www.example.org/api/v2/lrs/count Authorization: Basic YOUR_BASIC_AUTH |
A request like the one above, will respond with a 200 response like the one below containing a count of the models in the body.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "count": 3 } |
For more information about the acceptable URL query parameters, view the Restify documentation. Note that the limit parameter will default to 10 if not given and cannot exceed 1,000 if it is given.
Important: In case of User route, query parameter will be ignored and search
parameter should be used instead (only available in Enterprise). search
query parameter is a simple string and will be transformed into filter shown below.
{ "$or": [ { "name": { "$regex": "exampleSearchString", "$options": "i" } }, { "email": { "$regex": "exampleSearchString", "$options": "i" } } ] } |
This route returns an array of models. A request to this route would look something like the request below.
GET http://www.example.org/api/v2/lrs Authorization: Basic YOUR_BASIC_AUTH |
A request like the one above, will respond with a 200 response like the one below containing the models as JSON in the body. Different models will respond with a different schema, you can view the schemas by clicking the model names in the model table above.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 [ { "createdAt": "2017-08-08T14:35:18.400Z", "organisation": "111aaa1111a111111aa11111", "statementCount": 987, "title": "Example Store", "__v": 0, "updatedAt": "2017-08-08T14:35:33.721Z", "_id": "111aaa1111a111111aa11112" } ] |
For more information about the acceptable URL query parameters, view the Restify documentation.
Important: In case of User route, query parameter will be ignored and search
parameter should be used instead. search
query parameter is a simple string and will be transformed into filter shown below.
{ "$or": [ { "name": { "$regex": "exampleSearchString", "$options": "i" } }, { "email": { "$regex": "exampleSearchString", "$options": "i" } } ] } |
This route creates a model. A request to this route would look something like the request below. Different models will require and respond with a different schema, you can view the schemas by clicking the model names in the model table above.
POST http://www.example.org/api/v2/lrs Authorization: Basic YOUR_BASIC_AUTH Content-Type: application/json; charset=utf-8 { "title": "Example Store" } |
A request like the one above, will respond with a 201 response like the one below containing the created model in the JSON body.
HTTP/1.1 201 CREATED Content-Type: application/json; charset=utf-8 { "createdAt": "2017-08-08T14:35:18.400Z", "organisation": "111aaa1111a111111aa11111", "statementCount": 0, "title": "Example Store", "updatedAt": "2017-08-08T14:35:33.721Z", "_id": "111aaa1111a111111aa11112", "__v": 0 } |
This route returns a single model that has the specified identifier from the URL. A request to this route would look something like the request below.
GET http://www.example.org/api/v2/lrs/111aaa1111a111111aa11112 Authorization: Basic YOUR_BASIC_AUTH |
A request like the one above, will respond with a 200 response like the one below containing the model as JSON in the body. Different models will respond with a different schema, you can view the schemas by clicking the model names in the model table above. Note that the request will return a 404 response if the model doesn’t exist.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "createdAt": "2017-08-08T14:35:18.400Z", "organisation": "111aaa1111a111111aa11111", "statementCount": 987, "title": "Example Store", "__v": 0, "updatedAt": "2017-08-08T14:35:33.721Z", "_id": "111aaa1111a111111aa11112" } |
For more information about the acceptable URL query parameters, view the Restify documentation.
This route creates or updates a single model that has the specified identifier from the URL. A request to this route would look something like the request below. Different models will require and respond with a different schema, you can view the schemas by clicking the model names in the model table above.
PUT http://www.example.org/api/v2/lrs/111aaa1111a111111aa11112 Authorization: Basic YOUR_BASIC_AUTH Content-Type: application/json; charset=utf-8 { "createdAt": "2017-08-08T14:35:18.400Z", "organisation": "111aaa1111a111111aa11111", "statementCount": 987, "title": "Updated Title", "updatedAt": "2017-08-08T14:35:33.721Z", "_id": "111aaa1111a111111aa11112" } |
A request like the one above, will respond with a 200 response like the one below containing the model as JSON in the body.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "createdAt": "2017-08-08T14:35:18.400Z", "organisation": "111aaa1111a111111aa11111", "statementCount": 987, "title": "Updated Title", "__v": 0, "updatedAt": "2017-08-08T14:35:33.721Z", "_id": "111aaa1111a111111aa11112" } |
This route patches a single model that has the specified identifier from the URL. A request to this route would look something like the request below. Different models will require and respond with a different schema, you can view the schemas by clicking the model names in the model table above.
PATCH http://www.example.org/api/v2/lrs/111aaa1111a111111aa11112 Authorization: Basic YOUR_BASIC_AUTH Content-Type: application/json; charset=utf-8 { "title": "Patched Title" } |
A request like the one above, will respond with a 200 response like the one below containing the model as JSON in the body.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "createdAt": "2017-08-08T14:35:18.400Z", "organisation": "111aaa1111a111111aa11111", "statementCount": 987, "title": "Patched Title", "__v": 0, "updatedAt": "2017-08-08T14:35:33.721Z", "_id": "111aaa1111a111111aa11112" } |
This route deletes a single model that has the specified identifier from the URL. A request to this route would look something like the request below.
DELETE http://www.example.org/api/v2/lrs/111aaa1111a111111aa11112 Authorization: Basic YOUR_BASIC_AUTH |
A request like the one above, will respond with a 204 response like the one below.
HTTP/1.1 204 NO CONTENT |