Wyzed API v1
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
The Wyzed API is a set of HTTP endpoints that help your app integrate with Wyzed.
The Wyzed API allows developers to manage learners, courses, signup pages, enrolments and learner progress in their Wyzed account.
Base URLs:
Authentication
-
oAuth2 authentication.
-
Flow: clientCredentials
-
Token URL = /api/v1/oauth/token
-
| Scope | Scope Description |
|---|---|
| fullaccess | Full access to all resources |
Courses
Manage courses
editCourse
Code samples
# You can also use wget
curl -X PUT https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
PUT https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"submission_notifications": "string",
"renewal_type": "string",
"creator": "string",
"display_priority": 0,
"show_details": true,
"track_progress": true,
"id": "string",
"archived": true,
"disable_certificates": true,
"show_grade_certificate": true,
"completion_notifications": "string",
"has_cover_art": true,
"pass_mark_type": "string",
"renewal_date": "string",
"cover_art_url": "string",
"description": "string",
"suggested_duration": "string",
"user_version": "string",
"renewal_repeat": true,
"auto_due_seconds": "string",
"show_grade_learner": true,
"permalink": "string",
"locked": true,
"name": "string",
"created": "string",
"auto_due_type": "none",
"is_graded": true,
"renewal_days": "string",
"modified": "string",
"enable_progression": true,
"pass_mark": "string",
"thumbnail_url": "string",
"published": true,
"auto_due_date": "2021-07-11T05:44:51Z"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /courses/{id}
Update an existing course.
Body parameter
{
"submission_notifications": "string",
"renewal_type": "string",
"creator": "string",
"display_priority": 0,
"show_details": true,
"track_progress": true,
"id": "string",
"archived": true,
"disable_certificates": true,
"show_grade_certificate": true,
"completion_notifications": "string",
"has_cover_art": true,
"pass_mark_type": "string",
"renewal_date": "string",
"cover_art_url": "string",
"description": "string",
"suggested_duration": "string",
"user_version": "string",
"renewal_repeat": true,
"auto_due_seconds": "string",
"show_grade_learner": true,
"permalink": "string",
"locked": true,
"name": "string",
"created": "string",
"auto_due_type": "none",
"is_graded": true,
"renewal_days": "string",
"modified": "string",
"enable_progression": true,
"pass_mark": "string",
"thumbnail_url": "string",
"published": true,
"auto_due_date": "2021-07-11T05:44:51Z"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
| body | body | Course | true | none |
Example responses
200 Response
{
"submission_notifications": "string",
"renewal_type": "string",
"creator": "string",
"display_priority": 0,
"show_details": true,
"track_progress": true,
"id": "string",
"archived": true,
"disable_certificates": true,
"show_grade_certificate": true,
"completion_notifications": "string",
"has_cover_art": true,
"pass_mark_type": "string",
"renewal_date": "string",
"cover_art_url": "string",
"description": "string",
"suggested_duration": "string",
"user_version": "string",
"renewal_repeat": true,
"auto_due_seconds": "string",
"show_grade_learner": true,
"permalink": "string",
"locked": true,
"name": "string",
"created": "string",
"auto_due_type": "none",
"is_graded": true,
"renewal_days": "string",
"modified": "string",
"enable_progression": true,
"pass_mark": "string",
"thumbnail_url": "string",
"published": true,
"auto_due_date": "2021-07-11T05:44:51Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Course |
getCourse
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /courses/{id}
Find course by id
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Example responses
200 Response
{
"submission_notifications": "string",
"renewal_type": "string",
"creator": "string",
"display_priority": 0,
"show_details": true,
"track_progress": true,
"id": "string",
"archived": true,
"disable_certificates": true,
"show_grade_certificate": true,
"completion_notifications": "string",
"has_cover_art": true,
"pass_mark_type": "string",
"renewal_date": "string",
"cover_art_url": "string",
"description": "string",
"suggested_duration": "string",
"user_version": "string",
"renewal_repeat": true,
"auto_due_seconds": "string",
"show_grade_learner": true,
"permalink": "string",
"locked": true,
"name": "string",
"created": "string",
"auto_due_type": "none",
"is_graded": true,
"renewal_days": "string",
"modified": "string",
"enable_progression": true,
"pass_mark": "string",
"thumbnail_url": "string",
"published": true,
"auto_due_date": "2021-07-11T05:44:51Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Course |
deleteCourse
Code samples
# You can also use wget
curl -X DELETE https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id} \
-H 'Authorization: Bearer {access-token}'
DELETE https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}', headers = headers)
print(r.json())
'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /courses/{id}
Deletes a course.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | None |
addCourse
Code samples
# You can also use wget
curl -X POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"archived": true,
"name": "string",
"display_priority": 1,
"cover_art": "string",
"suggested_duration": "string",
"published": true,
"description": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /courses
Add a new course
Body parameter
{
"archived": true,
"name": "string",
"display_priority": 1,
"cover_art": "string",
"suggested_duration": "string",
"published": true,
"description": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AddCourse | true | none |
Example responses
200 Response
{
"submission_notifications": "string",
"renewal_type": "string",
"creator": "string",
"display_priority": 0,
"show_details": true,
"track_progress": true,
"id": "string",
"archived": true,
"disable_certificates": true,
"show_grade_certificate": true,
"completion_notifications": "string",
"has_cover_art": true,
"pass_mark_type": "string",
"renewal_date": "string",
"cover_art_url": "string",
"description": "string",
"suggested_duration": "string",
"user_version": "string",
"renewal_repeat": true,
"auto_due_seconds": "string",
"show_grade_learner": true,
"permalink": "string",
"locked": true,
"name": "string",
"created": "string",
"auto_due_type": "none",
"is_graded": true,
"renewal_days": "string",
"modified": "string",
"enable_progression": true,
"pass_mark": "string",
"thumbnail_url": "string",
"published": true,
"auto_due_date": "2021-07-11T05:44:51Z"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Course |
listCourses
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/courses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /courses
List courses
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | string(int64) | false | none |
| cursor | query | string | false | none |
| archived | query | boolean | false | none |
| published | query | boolean | false | none |
Example responses
200 Response
{
"archived": true,
"items": [
{
"submission_notifications": "string",
"renewal_type": "string",
"creator": "string",
"display_priority": 0,
"show_details": true,
"track_progress": true,
"id": "string",
"archived": true,
"disable_certificates": true,
"show_grade_certificate": true,
"completion_notifications": "string",
"has_cover_art": true,
"pass_mark_type": "string",
"renewal_date": "string",
"cover_art_url": "string",
"description": "string",
"suggested_duration": "string",
"user_version": "string",
"renewal_repeat": true,
"auto_due_seconds": "string",
"show_grade_learner": true,
"permalink": "string",
"locked": true,
"name": "string",
"created": "string",
"auto_due_type": "none",
"is_graded": true,
"renewal_days": "string",
"modified": "string",
"enable_progression": true,
"pass_mark": "string",
"thumbnail_url": "string",
"published": true,
"auto_due_date": "2021-07-11T05:44:51Z"
}
],
"number_found": "string",
"cursor": "string",
"next_cursor": "string",
"limit": 200,
"published": true,
"more": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | CourseList |
Topic Progress
View learner progress in topics.
getTopicProgress
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress/{user}/{topic} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress/{user}/{topic} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress/{user}/{topic}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress/{user}/{topic}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress/{user}/{topic}', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress/{user}/{topic}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress/{user}/{topic}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress/{user}/{topic}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /topic_progress/{user}/{topic}
View a learner's progress in a topic.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user | path | string | true | none |
| topic | path | string | true | none |
| course | query | string | false | none |
| completed | query | boolean | false | none |
Example responses
200 Response
{
"confirmed": true,
"completed_on": "string",
"created": "string",
"completed": true,
"modified": "string",
"confirmed_by": "string",
"topic": "string",
"course": "string",
"completed_by": "string",
"id": "string",
"confirmed_on": "string",
"user": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | TopicProgress |
listTopicProgress
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/topic_progress", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /topic_progress
List topic progress.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| cursor | query | string | false | none |
| limit | query | string(int64) | false | none |
| user | query | string | false | none |
| topic | query | string | false | none |
| course | query | string | false | none |
| completed | query | boolean | false | none |
Example responses
200 Response
{
"topic": "string",
"items": [
{
"confirmed": true,
"completed_on": "string",
"created": "string",
"completed": true,
"modified": "string",
"confirmed_by": "string",
"topic": "string",
"course": "string",
"completed_by": "string",
"id": "string",
"confirmed_on": "string",
"user": "string"
}
],
"completed": true,
"number_found": "string",
"cursor": "string",
"course": "string",
"next_cursor": "string",
"limit": 200,
"user": "string",
"more": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | TopicProgressList |
Custom Field Permissions
listUserFieldPermissions
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_field_permissions \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_field_permissions HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_field_permissions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_field_permissions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_field_permissions', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_field_permissions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_field_permissions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_field_permissions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{user}/user_field_permissions
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user | path | string | true | none |
| limit | query | string(int64) | false | none |
| cursor | query | string | false | none |
Example responses
200 Response
{
"items": [
{
"user_field": "string",
"not_applicable": true,
"user": "string",
"user_visible": true,
"user_editable": true
}
],
"number_found": "string",
"cursor": "string",
"next_cursor": "string",
"limit": 100,
"user": "string",
"more": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | UserFieldPermissionList |
Course Completions
View course completion history
listCourseCompletions
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_completions \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_completions HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_completions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_completions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_completions', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_completions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_completions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_completions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /course_completions
Lists course completions.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| course | query | string | false | none |
| user | query | string | false | none |
| cursor | query | string | false | none |
| limit | query | string(int64) | false | none |
Example responses
200 Response
{
"items": [
{
"course": "string",
"user": "string",
"id": "string",
"happened": "2021-07-11T05:44:51Z"
}
],
"next_cursor": "string",
"more": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | CourseCompletionsResponse |
Course Progress
View learner progress in courses.
getCourseProgress
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_progress/{course}/{user} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_progress/{course}/{user} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_progress/{course}/{user}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_progress/{course}/{user}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_progress/{course}/{user}', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_progress/{course}/{user}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_progress/{course}/{user}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/course_progress/{course}/{user}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /course_progress/{course}/{user}
View a learner's progress in a course.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| course | path | string | true | none |
| user | path | string | true | none |
Example responses
200 Response
{
"user": "string",
"completed_on": "string",
"completed": true,
"course": "string",
"processed": true,
"id": "string",
"overdue": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | CourseProgress |
Sign-Up Pages
View available signup pages
listSignupPages
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/signup_pages \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/signup_pages HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/signup_pages',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/signup_pages',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/signup_pages', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/signup_pages', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/signup_pages");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/signup_pages", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /signup_pages
List sign-up pages
Example responses
200 Response
{
"items": [
{
"page_description": "string",
"page_title": "string",
"name": "string",
"created": "string",
"url": "string",
"tags": [
"string"
],
"modified": "string",
"courses": [
"string"
],
"id": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | SignupPageList |
Records
getActiveRecord
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_fields/{user_field}/record \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_fields/{user_field}/record HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_fields/{user_field}/record',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_fields/{user_field}/record',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_fields/{user_field}/record', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_fields/{user_field}/record', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_fields/{user_field}/record");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/users/{user}/user_fields/{user_field}/record", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /users/{user}/user_fields/{user_field}/record
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user | path | string | true | none |
| user_field | path | string | true | none |
Example responses
200 Response
{
"attachments": [
{
"kind": "string",
"course_name": "string",
"blob_key": "string",
"user_log": "string",
"user_field_file": "string",
"filename": "string",
"course": "string",
"content_type": "string",
"file_size": "string"
}
],
"reference": "string",
"cost": "string",
"user_visible": true,
"achievable": true,
"file_size": "string",
"id": "string",
"payment_date": "string",
"modified_by": "string",
"user_editable": true,
"has_value": true,
"blob_key": "string",
"created_by": "string",
"filename": "string",
"user_field": "string",
"valid": true,
"not_applicable": true,
"expires_on": "string",
"upcoming": true,
"expires": true,
"achieved_on": "string",
"user": "string",
"content_type": "string",
"active": true,
"expired": true,
"created": "string",
"notes": "string",
"modified": "string",
"value": "string",
"training_provider": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Record |
Profiles
View available profiles.
Profiles allow you to assign a list of tags, courses and custom fields to a learner at the same time simply by assigning the profile.
listProfiles
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/profiles \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/profiles HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/profiles',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/profiles',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/profiles', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/profiles', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/profiles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/profiles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /profiles
List profiles
Example responses
200 Response
{
"items": [
{
"name": "string",
"created": "string",
"tags": [
"string"
],
"modified": "string",
"courses": [
"string"
],
"id": "string",
"permissions": [
{
"user_field": "string",
"not_applicable": true,
"user_editable": true,
"user_visible": true
}
]
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | ProfileList |
OAuth
Fetch new authorization tokens.
me
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/me \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/me HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/me',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/me',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/me', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/me', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/me");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/me", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /oauth/me
Test authorization
Example responses
200 Response
{
"tid": "string",
"domain": "string",
"aud": "string",
"name": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | MeResponse |
getToken
Code samples
# You can also use wget
curl -X POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/token \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/token HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"code": "string",
"audience": "string",
"redirect_uri": "string",
"client_id": "string",
"client_secret": "string",
"grant_type": "string",
"refresh_token": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/token',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/token',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/token', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/token', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/oauth/token", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /oauth/token
Request a new token.
Body parameter
{
"code": "string",
"audience": "string",
"redirect_uri": "string",
"client_id": "string",
"client_secret": "string",
"grant_type": "string",
"refresh_token": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | TokenRequest | true | none |
Example responses
200 Response
{
"aud": "string",
"access_token": "string",
"expires_in": "string",
"token_type": "string",
"scope": "string",
"refresh_token": "string",
"name": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | TokenResponse |
Duplicate Courses
Duplicate courses
addDuplicateCourse
Code samples
# You can also use wget
curl -X POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"course": "string",
"copy_enrolments": true,
"copy_responses": true,
"name": "string",
"published": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /duplicate_courses
Create a duplicate of an existing course.
Body parameter
{
"course": "string",
"copy_enrolments": true,
"copy_responses": true,
"name": "string",
"published": true
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AddDuplicateCourse | true | none |
Example responses
200 Response
{
"complete": true,
"new_course": "string",
"progress": "string",
"old_course": "string",
"id": "string",
"stage": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | DuplicateCourse |
viewDuplicateCourse
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses/{id}', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/duplicate_courses/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /duplicate_courses/{id}
Find a duplicate course task by id.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Example responses
200 Response
{
"complete": true,
"new_course": "string",
"progress": "string",
"old_course": "string",
"id": "string",
"stage": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | DuplicateCourse |
Custom Fields
Manage user_fields
getUserField
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields/{id}', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /user_fields/{id}
Find user_field by id
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Example responses
200 Response
{
"kind": "string",
"resource": {
"kind": "string",
"name": "string",
"resource_id": "string"
},
"description": "string",
"created": "string",
"default": "string",
"required": true,
"modified": "string",
"user_visible": true,
"user_editable": true,
"disable_notifications": true,
"indexed": true,
"not_applicable": true,
"id": "string",
"name": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | UserField |
listUserFields
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/user_fields", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /user_fields
List user_fields
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | string(int64) | false | none |
| cursor | query | string | false | none |
| archived | query | boolean | false | none |
| published | query | boolean | false | none |
Example responses
200 Response
{
"items": [
{
"kind": "string",
"resource": {
"kind": "string",
"name": "string",
"resource_id": "string"
},
"description": "string",
"created": "string",
"default": "string",
"required": true,
"modified": "string",
"user_visible": true,
"user_editable": true,
"disable_notifications": true,
"indexed": true,
"not_applicable": true,
"id": "string",
"name": "string"
}
],
"number_found": "string",
"cursor": "string",
"next_cursor": "string",
"limit": 100,
"more": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | UserFieldList |
Enrolments
Manage learner enrolments in courses.
addEnrolment
Code samples
# You can also use wget
curl -X POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"course": "string",
"user": "string",
"send_emails": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /enrolments
Create a new enrolment
Body parameter
{
"course": "string",
"user": "string",
"send_emails": true
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AddEnrolment | true | none |
Example responses
200 Response
{
"course": "string",
"user": "string",
"id": "string",
"created": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Enrolment |
listEnrolments
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /enrolments
List enrolments
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | string(int64) | false | none |
| cursor | query | string | false | none |
| course | query | string | false | none |
| user | query | string | false | none |
Example responses
200 Response
{
"items": [
{
"course": "string",
"user": "string",
"id": "string",
"created": "string"
}
],
"number_found": "string",
"cursor": "string",
"course": "string",
"next_cursor": "string",
"limit": 200,
"user": "string",
"more": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | EnrolmentList |
deleteEnrolment
Code samples
# You can also use wget
curl -X DELETE https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments \
-H 'Authorization: Bearer {access-token}'
DELETE https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments HTTP/1.1
Host: tenant_id.region.api.wyzed.com
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments', headers = headers)
print(r.json())
'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/enrolments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /enrolments
Delete an enrolment
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| user | query | string | false | none |
| course | query | string | false | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | None |
Test
For testing you have the correct endpoint.
Does not require authorization.
test
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/test \
-H 'Accept: application/json'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/test HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/test',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/test',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/test', headers = headers)
print(r.json())
'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/test', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/test");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/test", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /test
Endpoint for testing that requests are reaching the server.
Does not require authentication.
Example responses
200 Response
{
"tid": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | TestResponse |
Topics
For managing course topics.
listTopics
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /topics
Lists topics.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| cursor | query | string | false | none |
| limit | query | string(int64) | false | none |
| course | query | string | false | none |
| kind | query | string | false | none |
| published | query | boolean | false | none |
Example responses
200 Response
{
"kind": "string",
"items": [
{
"kind": "string",
"hide_heading": true,
"locked": true,
"name": "string",
"created": "string",
"modified": "string",
"course": "string",
"require_confirmation": true,
"published": true,
"id": "string"
}
],
"number_found": "string",
"cursor": "string",
"course": "string",
"next_cursor": "string",
"limit": 200,
"published": true,
"more": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | TopicList |
getTopic
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics/{id}', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/topics/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /topics/{id}
Find a topic by id.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Example responses
200 Response
{
"kind": "string",
"hide_heading": true,
"locked": true,
"name": "string",
"created": "string",
"modified": "string",
"course": "string",
"require_confirmation": true,
"published": true,
"id": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Topic |
Tags
View available tags.
listTags
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/tags \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/tags HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/tags',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/tags',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/tags', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/tags', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/tags");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/tags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /tags
List tags.
Example responses
200 Response
{
"items": [
{
"color": "string",
"name": "string",
"id": "string",
"modified": "string",
"created": "string"
}
]
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | TagList |
Learners
Manage learner accounts.
addLearner
Code samples
# You can also use wget
curl -X POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
POST https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"phone_number": "string",
"username": "string",
"generate_password": true,
"surname": "string",
"sso_id": "string",
"firstname": "string",
"send_email": true,
"tags": [
"string"
],
"send_sms": true,
"signup_page": "string",
"profiles": [
"string"
],
"courses": [
"string"
],
"password": "string",
"email": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.post 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /learners
Create a new learner.
Body parameter
{
"phone_number": "string",
"username": "string",
"generate_password": true,
"surname": "string",
"sso_id": "string",
"firstname": "string",
"send_email": true,
"tags": [
"string"
],
"send_sms": true,
"signup_page": "string",
"profiles": [
"string"
],
"courses": [
"string"
],
"password": "string",
"email": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AddLearner | true | none |
Example responses
200 Response
{
"username": "string",
"surname": "string",
"image": "string",
"id": "string",
"archived": true,
"sso_id": "string",
"signup_page": "string",
"created_by": "string",
"create_type": "string",
"email": "string",
"last_logged_in": "string",
"phone_number": "string",
"updated": "string",
"creator_kind": "string",
"firstname": "string",
"tags": [
"string"
],
"deleted": true,
"is_admin": true,
"is_learner": true,
"password": "string",
"created": "string",
"notes": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Learner |
listLearners
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /learners
Lists learners.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| cursor | query | string | false | none |
| limit | query | string(int64) | false | none |
| signup_page | query | string | false | none |
| tags | query | array[string] | false | none |
| order_by | query | string | false | none |
| order_direction | query | string | false | none |
| query | string | false | none | |
| username | query | string | false | none |
Enumerated Values
| Parameter | Value |
|---|---|
| order_direction | ASC |
| order_direction | DESC |
Example responses
200 Response
{
"username": "string",
"order_by": "string",
"tags": [
"string"
],
"items": [
{
"username": "string",
"surname": "string",
"image": "string",
"id": "string",
"archived": true,
"sso_id": "string",
"signup_page": "string",
"created_by": "string",
"create_type": "string",
"email": "string",
"last_logged_in": "string",
"phone_number": "string",
"updated": "string",
"creator_kind": "string",
"firstname": "string",
"tags": [
"string"
],
"deleted": true,
"is_admin": true,
"is_learner": true,
"password": "string",
"created": "string",
"notes": "string"
}
],
"signup_page": "string",
"number_found": "string",
"cursor": "string",
"order_direction": "ASC",
"next_cursor": "string",
"limit": 200,
"email": "string",
"more": true
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | LearnerList |
getLearnerByEmail
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/email/{email} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/email/{email} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/email/{email}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/email/{email}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/email/{email}', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/email/{email}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/email/{email}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/email/{email}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /learners/email/{email}
Find learner by email address.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| path | string | true | none |
Example responses
200 Response
{
"username": "string",
"surname": "string",
"image": "string",
"id": "string",
"archived": true,
"sso_id": "string",
"signup_page": "string",
"created_by": "string",
"create_type": "string",
"email": "string",
"last_logged_in": "string",
"phone_number": "string",
"updated": "string",
"creator_kind": "string",
"firstname": "string",
"tags": [
"string"
],
"deleted": true,
"is_admin": true,
"is_learner": true,
"password": "string",
"created": "string",
"notes": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Learner |
editLearner
Code samples
# You can also use wget
curl -X PUT https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
PUT https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"phone_number": "string",
"username": "string",
"surname": "string",
"firstname": "string",
"tags": [
"string"
],
"notes": "string",
"id": "string",
"password": "string",
"email": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.put 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.put('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}', headers = headers)
print(r.json())
'application/json',
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('PUT','https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /learners/{id}
Update an existing learner.
Body parameter
{
"phone_number": "string",
"username": "string",
"surname": "string",
"firstname": "string",
"tags": [
"string"
],
"notes": "string",
"id": "string",
"password": "string",
"email": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
| body | body | EditLearner | true | none |
Example responses
200 Response
{
"username": "string",
"surname": "string",
"image": "string",
"id": "string",
"archived": true,
"sso_id": "string",
"signup_page": "string",
"created_by": "string",
"create_type": "string",
"email": "string",
"last_logged_in": "string",
"phone_number": "string",
"updated": "string",
"creator_kind": "string",
"firstname": "string",
"tags": [
"string"
],
"deleted": true,
"is_admin": true,
"is_learner": true,
"password": "string",
"created": "string",
"notes": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Learner |
getLearnerById
Code samples
# You can also use wget
curl -X GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id} \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}'
GET https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
Accept: application/json
const headers = {
'Accept':'application/json',
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.get 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.get('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}', headers = headers)
print(r.json())
'application/json',
'Authorization' => 'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /learners/{id}
Find learner by id.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Example responses
200 Response
{
"username": "string",
"surname": "string",
"image": "string",
"id": "string",
"archived": true,
"sso_id": "string",
"signup_page": "string",
"created_by": "string",
"create_type": "string",
"email": "string",
"last_logged_in": "string",
"phone_number": "string",
"updated": "string",
"creator_kind": "string",
"firstname": "string",
"tags": [
"string"
],
"deleted": true,
"is_admin": true,
"is_learner": true,
"password": "string",
"created": "string",
"notes": "string"
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | Learner |
deleteLearner
Code samples
# You can also use wget
curl -X DELETE https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id} \
-H 'Authorization: Bearer {access-token}'
DELETE https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id} HTTP/1.1
Host: tenant_id.region.api.wyzed.com
const headers = {
'Authorization':'Bearer {access-token}'
};
fetch('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Authorization' => 'Bearer {access-token}'
}
result = RestClient.delete 'https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Authorization': 'Bearer {access-token}'
}
r = requests.delete('https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}', headers = headers)
print(r.json())
'Bearer {access-token}',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('DELETE','https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Authorization": []string{"Bearer {access-token}"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://TENANT_ID.REGION.api.wyzed.com/api/v1/learners/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /learners/{id}
Delete an existing learner.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| id | path | string | true | none |
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | A successful response | None |
Schemas
CourseCompletionsResponse
{
"items": [
{
"course": "string",
"user": "string",
"id": "string",
"happened": "2021-07-11T05:44:51Z"
}
],
"next_cursor": "string",
"more": true
}
A list of course completion events.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| items | [CourseCompletion] | false | none | A course completion event. |
| next_cursor | string | false | none | none |
| more | boolean | false | none | none |
DuplicateCourse
{
"complete": true,
"new_course": "string",
"progress": "string",
"old_course": "string",
"id": "string",
"stage": "string"
}
View the progress of a duplicate course task.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| complete | boolean | false | none | none |
| new_course | string | false | none | none |
| progress | string(int64) | false | none | none |
| old_course | string | false | none | none |
| id | string | false | none | none |
| stage | string(int64) | false | none | none |
TokenResponse
{
"aud": "string",
"access_token": "string",
"expires_in": "string",
"token_type": "string",
"scope": "string",
"refresh_token": "string",
"name": "string"
}
A new token.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| aud | string | false | none | none |
| access_token | string | false | none | none |
| expires_in | string(int64) | false | none | none |
| token_type | string | false | none | none |
| scope | string | false | none | none |
| refresh_token | string | false | none | none |
| name | string | false | none | none |
AddCourse
{
"archived": true,
"name": "string",
"display_priority": 1,
"cover_art": "string",
"suggested_duration": "string",
"published": true,
"description": "string"
}
Create a new course.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| archived | boolean | false | none | none |
| name | string | true | none | none |
| display_priority | number(double) | false | none | none |
| cover_art | string | false | none | none |
| suggested_duration | string | false | none | none |
| published | boolean | false | none | none |
| description | string | false | none | none |
Learner
{
"username": "string",
"surname": "string",
"image": "string",
"id": "string",
"archived": true,
"sso_id": "string",
"signup_page": "string",
"created_by": "string",
"create_type": "string",
"email": "string",
"last_logged_in": "string",
"phone_number": "string",
"updated": "string",
"creator_kind": "string",
"firstname": "string",
"tags": [
"string"
],
"deleted": true,
"is_admin": true,
"is_learner": true,
"password": "string",
"created": "string",
"notes": "string"
}
A learner
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| username | string | false | none | none |
| surname | string | false | none | none |
| image | string | false | none | none |
| id | string | false | none | none |
| archived | boolean | false | none | none |
| sso_id | string | false | none | none |
| signup_page | string | false | none | none |
| created_by | string | false | none | none |
| create_type | string | false | none | none |
| string | false | none | none | |
| last_logged_in | string | false | none | none |
| phone_number | string | false | none | none |
| updated | string | false | none | none |
| creator_kind | string | false | none | none |
| firstname | string | false | none | none |
| tags | [string] | false | none | none |
| deleted | boolean | false | none | none |
| is_admin | boolean | false | none | none |
| is_learner | boolean | false | none | none |
| password | string | false | none | none |
| created | string | false | none | none |
| notes | string | false | none | none |
Enrolment
{
"course": "string",
"user": "string",
"id": "string",
"created": "string"
}
A learner's enrolment in a course
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| course | string | false | none | none |
| user | string | false | none | none |
| id | string | false | none | none |
| created | string | false | none | none |
UserFieldResource
{
"kind": "string",
"name": "string",
"resource_id": "string"
}
A resource attached to a custom field
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | false | none | none |
| name | string | false | none | none |
| resource_id | string | false | none | none |
AddLearner
{
"phone_number": "string",
"username": "string",
"generate_password": true,
"surname": "string",
"sso_id": "string",
"firstname": "string",
"send_email": true,
"tags": [
"string"
],
"send_sms": true,
"signup_page": "string",
"profiles": [
"string"
],
"courses": [
"string"
],
"password": "string",
"email": "string"
}
Create a new learner.
The password field is required if generate_password is false.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| phone_number | string | false | none | none |
| username | string | false | none | none |
| generate_password | boolean | false | none | none |
| surname | string | true | none | none |
| sso_id | string | false | none | none |
| firstname | string | true | none | none |
| send_email | boolean | false | none | none |
| tags | [string] | false | none | none |
| send_sms | boolean | false | none | none |
| signup_page | string | false | none | none |
| profiles | [string] | false | none | none |
| courses | [string] | false | none | none |
| password | string | false | none | none |
| string | true | none | none |
CourseProgress
{
"user": "string",
"completed_on": "string",
"completed": true,
"course": "string",
"processed": true,
"id": "string",
"overdue": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user | string | false | none | none |
| completed_on | string | false | none | none |
| completed | boolean | false | none | none |
| course | string | false | none | none |
| processed | boolean | false | none | none |
| id | string | false | none | none |
| overdue | boolean | false | none | none |
TopicProgress
{
"confirmed": true,
"completed_on": "string",
"created": "string",
"completed": true,
"modified": "string",
"confirmed_by": "string",
"topic": "string",
"course": "string",
"completed_by": "string",
"id": "string",
"confirmed_on": "string",
"user": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| confirmed | boolean | false | none | none |
| completed_on | string | false | none | none |
| created | string | false | none | none |
| completed | boolean | false | none | none |
| modified | string | false | none | none |
| confirmed_by | string | false | none | none |
| topic | string | false | none | none |
| course | string | false | none | none |
| completed_by | string | false | none | none |
| id | string | false | none | none |
| confirmed_on | string | false | none | none |
| user | string | false | none | none |
UserFieldList
{
"items": [
{
"kind": "string",
"resource": {
"kind": "string",
"name": "string",
"resource_id": "string"
},
"description": "string",
"created": "string",
"default": "string",
"required": true,
"modified": "string",
"user_visible": true,
"user_editable": true,
"disable_notifications": true,
"indexed": true,
"not_applicable": true,
"id": "string",
"name": "string"
}
],
"number_found": "string",
"cursor": "string",
"next_cursor": "string",
"limit": 100,
"more": true
}
A paginated list of custom fields.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| items | [UserField] | false | none | A custom field |
| number_found | string(int64) | false | none | none |
| cursor | string | false | none | none |
| next_cursor | string | false | none | none |
| limit | string(int64) | false | none | none |
| more | boolean | false | none | none |
AddEnrolment
{
"course": "string",
"user": "string",
"send_emails": true
}
Enrol a learner in a course.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| course | string | true | none | none |
| user | string | true | none | none |
| send_emails | boolean | false | none | none |
Profile
{
"name": "string",
"created": "string",
"tags": [
"string"
],
"modified": "string",
"courses": [
"string"
],
"id": "string",
"permissions": [
{
"user_field": "string",
"not_applicable": true,
"user_editable": true,
"user_visible": true
}
]
}
A profile.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | none |
| created | string | false | none | none |
| tags | [string] | false | none | none |
| modified | string | false | none | none |
| courses | [string] | false | none | none |
| id | string | false | none | none |
| permissions | [ProfilePermission] | false | none | Custom field permission to go with a profile. |
EnrolmentList
{
"items": [
{
"course": "string",
"user": "string",
"id": "string",
"created": "string"
}
],
"number_found": "string",
"cursor": "string",
"course": "string",
"next_cursor": "string",
"limit": 200,
"user": "string",
"more": true
}
A list of enrolments.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| items | [Enrolment] | false | none | A learner's enrolment in a course |
| number_found | string(int64) | false | none | none |
| cursor | string | false | none | none |
| course | string | false | none | none |
| next_cursor | string | false | none | none |
| limit | string(int64) | false | none | none |
| user | string | false | none | none |
| more | boolean | false | none | none |
UserField
{
"kind": "string",
"resource": {
"kind": "string",
"name": "string",
"resource_id": "string"
},
"description": "string",
"created": "string",
"default": "string",
"required": true,
"modified": "string",
"user_visible": true,
"user_editable": true,
"disable_notifications": true,
"indexed": true,
"not_applicable": true,
"id": "string",
"name": "string"
}
A custom field
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | false | none | none |
| resource | UserFieldResource | false | none | A resource attached to a custom field |
| description | string | false | none | none |
| created | string | false | none | none |
| default | string | false | none | none |
| required | boolean | false | none | none |
| modified | string | false | none | none |
| user_visible | boolean | false | none | none |
| user_editable | boolean | false | none | none |
| disable_notifications | boolean | false | none | none |
| indexed | boolean | false | none | none |
| not_applicable | boolean | false | none | none |
| id | string | false | none | none |
| name | string | false | none | none |
Course
{
"submission_notifications": "string",
"renewal_type": "string",
"creator": "string",
"display_priority": 0,
"show_details": true,
"track_progress": true,
"id": "string",
"archived": true,
"disable_certificates": true,
"show_grade_certificate": true,
"completion_notifications": "string",
"has_cover_art": true,
"pass_mark_type": "string",
"renewal_date": "string",
"cover_art_url": "string",
"description": "string",
"suggested_duration": "string",
"user_version": "string",
"renewal_repeat": true,
"auto_due_seconds": "string",
"show_grade_learner": true,
"permalink": "string",
"locked": true,
"name": "string",
"created": "string",
"auto_due_type": "none",
"is_graded": true,
"renewal_days": "string",
"modified": "string",
"enable_progression": true,
"pass_mark": "string",
"thumbnail_url": "string",
"published": true,
"auto_due_date": "2021-07-11T05:44:51Z"
}
A Course
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| submission_notifications | string | false | none | none |
| renewal_type | string | false | none | none |
| creator | string | false | none | none |
| display_priority | number(double) | false | none | none |
| show_details | boolean | false | none | none |
| track_progress | boolean | false | none | none |
| id | string | false | none | none |
| archived | boolean | false | none | none |
| disable_certificates | boolean | false | none | none |
| show_grade_certificate | boolean | false | none | none |
| completion_notifications | string | false | none | none |
| has_cover_art | boolean | false | none | none |
| pass_mark_type | string | false | none | none |
| renewal_date | string | false | none | none |
| cover_art_url | string | false | none | none |
| description | string | false | none | none |
| suggested_duration | string | false | none | none |
| user_version | string(int64) | false | none | none |
| renewal_repeat | boolean | false | none | none |
| auto_due_seconds | string(int64) | false | none | none |
| show_grade_learner | boolean | false | none | none |
| permalink | string | false | none | none |
| locked | boolean | false | none | none |
| name | string | false | none | none |
| created | string | false | none | none |
| auto_due_type | string | false | none | none |
| is_graded | boolean | false | none | none |
| renewal_days | string(int64) | false | none | none |
| modified | string | false | none | none |
| enable_progression | boolean | false | none | none |
| pass_mark | string(int64) | false | none | none |
| thumbnail_url | string | false | none | none |
| published | boolean | false | none | none |
| auto_due_date | string(date-time) | false | none | none |
CourseCompletion
{
"course": "string",
"user": "string",
"id": "string",
"happened": "2021-07-11T05:44:51Z"
}
A course completion event.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| course | string | false | none | none |
| user | string | false | none | none |
| id | string | false | none | none |
| happened | string(date-time) | false | none | none |
TestResponse
{
"tid": "string"
}
Response from the test endpoint.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| tid | string | false | none | none |
Tag
{
"color": "string",
"name": "string",
"id": "string",
"modified": "string",
"created": "string"
}
A Tag
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| color | string | false | none | none |
| name | string | true | none | none |
| id | string | false | none | none |
| modified | string | false | none | none |
| created | string | false | none | none |
TopicList
{
"kind": "string",
"items": [
{
"kind": "string",
"hide_heading": true,
"locked": true,
"name": "string",
"created": "string",
"modified": "string",
"course": "string",
"require_confirmation": true,
"published": true,
"id": "string"
}
],
"number_found": "string",
"cursor": "string",
"course": "string",
"next_cursor": "string",
"limit": 200,
"published": true,
"more": true
}
A list of topics.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | false | none | none |
| items | [Topic] | false | none | none |
| number_found | string(int64) | false | none | none |
| cursor | string | false | none | none |
| course | string | false | none | none |
| next_cursor | string | false | none | none |
| limit | string(int64) | false | none | none |
| published | boolean | false | none | none |
| more | boolean | false | none | none |
MeResponse
{
"tid": "string",
"domain": "string",
"aud": "string",
"name": "string"
}
Response from the me service.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| tid | string | false | none | none |
| domain | string | false | none | none |
| aud | string | false | none | none |
| name | string | false | none | none |
TopicProgressList
{
"topic": "string",
"items": [
{
"confirmed": true,
"completed_on": "string",
"created": "string",
"completed": true,
"modified": "string",
"confirmed_by": "string",
"topic": "string",
"course": "string",
"completed_by": "string",
"id": "string",
"confirmed_on": "string",
"user": "string"
}
],
"completed": true,
"number_found": "string",
"cursor": "string",
"course": "string",
"next_cursor": "string",
"limit": 200,
"user": "string",
"more": true
}
A list of topic progress objects.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| topic | string | false | none | none |
| items | [TopicProgress] | false | none | none |
| completed | boolean | false | none | none |
| number_found | string(int64) | false | none | none |
| cursor | string | false | none | none |
| course | string | false | none | none |
| next_cursor | string | false | none | none |
| limit | string(int64) | false | none | none |
| user | string | false | none | none |
| more | boolean | false | none | none |
TokenRequest
{
"code": "string",
"audience": "string",
"redirect_uri": "string",
"client_id": "string",
"client_secret": "string",
"grant_type": "string",
"refresh_token": "string"
}
Request a new token.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| code | string | false | none | none |
| audience | string | false | none | none |
| redirect_uri | string | false | none | none |
| client_id | string(int64) | false | none | none |
| client_secret | string | false | none | none |
| grant_type | string | false | none | none |
| refresh_token | string | false | none | none |
ProfileList
{
"items": [
{
"name": "string",
"created": "string",
"tags": [
"string"
],
"modified": "string",
"courses": [
"string"
],
"id": "string",
"permissions": [
{
"user_field": "string",
"not_applicable": true,
"user_editable": true,
"user_visible": true
}
]
}
]
}
A list of all profiles.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| items | [Profile] | false | none | A profile. |
EditLearner
{
"phone_number": "string",
"username": "string",
"surname": "string",
"firstname": "string",
"tags": [
"string"
],
"notes": "string",
"id": "string",
"password": "string",
"email": "string"
}
Update an existing learner.
All fields will be updated except for password, which will only be
changed if present in the request.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| phone_number | string | false | none | none |
| username | string | false | none | none |
| surname | string | true | none | none |
| firstname | string | true | none | none |
| tags | [string] | false | none | none |
| notes | string | false | none | none |
| id | string | false | none | none |
| password | string | false | none | none |
| string | true | none | none |
SignupPageList
{
"items": [
{
"page_description": "string",
"page_title": "string",
"name": "string",
"created": "string",
"url": "string",
"tags": [
"string"
],
"modified": "string",
"courses": [
"string"
],
"id": "string"
}
]
}
A list of all signup pages.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| items | [SignupPage] | false | none | none |
SignupPage
{
"page_description": "string",
"page_title": "string",
"name": "string",
"created": "string",
"url": "string",
"tags": [
"string"
],
"modified": "string",
"courses": [
"string"
],
"id": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| page_description | string | false | none | none |
| page_title | string | false | none | none |
| name | string | false | none | none |
| created | string | false | none | none |
| url | string | false | none | none |
| tags | [string] | false | none | none |
| modified | string | false | none | none |
| courses | [string] | false | none | none |
| id | string | false | none | none |
UserFieldPermission
{
"user_field": "string",
"not_applicable": true,
"user": "string",
"user_visible": true,
"user_editable": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user_field | string | false | none | none |
| not_applicable | boolean | false | none | none |
| user | string | false | none | none |
| user_visible | boolean | false | none | none |
| user_editable | boolean | false | none | none |
Record
{
"attachments": [
{
"kind": "string",
"course_name": "string",
"blob_key": "string",
"user_log": "string",
"user_field_file": "string",
"filename": "string",
"course": "string",
"content_type": "string",
"file_size": "string"
}
],
"reference": "string",
"cost": "string",
"user_visible": true,
"achievable": true,
"file_size": "string",
"id": "string",
"payment_date": "string",
"modified_by": "string",
"user_editable": true,
"has_value": true,
"blob_key": "string",
"created_by": "string",
"filename": "string",
"user_field": "string",
"valid": true,
"not_applicable": true,
"expires_on": "string",
"upcoming": true,
"expires": true,
"achieved_on": "string",
"user": "string",
"content_type": "string",
"active": true,
"expired": true,
"created": "string",
"notes": "string",
"modified": "string",
"value": "string",
"training_provider": "string"
}
A custom field record
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| attachments | [RecordAttachment] | false | none | An attachment to a record |
| reference | string | false | none | none |
| cost | string | false | none | none |
| user_visible | boolean | false | none | none |
| achievable | boolean | false | none | none |
| file_size | string(int64) | false | none | none |
| id | string | false | none | none |
| payment_date | string | false | none | none |
| modified_by | string | false | none | none |
| user_editable | boolean | false | none | none |
| has_value | boolean | false | none | none |
| blob_key | string | false | none | none |
| created_by | string | false | none | none |
| filename | string | false | none | none |
| user_field | string | false | none | none |
| valid | boolean | false | none | none |
| not_applicable | boolean | false | none | none |
| expires_on | string | false | none | none |
| upcoming | boolean | false | none | none |
| expires | boolean | false | none | none |
| achieved_on | string | false | none | none |
| user | string | false | none | none |
| content_type | string | false | none | none |
| active | boolean | false | none | none |
| expired | boolean | false | none | none |
| created | string | false | none | none |
| notes | string | false | none | none |
| modified | string | false | none | none |
| value | string | false | none | none |
| training_provider | string | false | none | none |
ProfilePermission
{
"user_field": "string",
"not_applicable": true,
"user_editable": true,
"user_visible": true
}
Custom field permission to go with a profile.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| user_field | string | false | none | none |
| not_applicable | boolean | false | none | none |
| user_editable | boolean | false | none | none |
| user_visible | boolean | false | none | none |
RecordAttachment
{
"kind": "string",
"course_name": "string",
"blob_key": "string",
"user_log": "string",
"user_field_file": "string",
"filename": "string",
"course": "string",
"content_type": "string",
"file_size": "string"
}
An attachment to a record
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | false | none | none |
| course_name | string | false | none | none |
| blob_key | string | false | none | none |
| user_log | string | false | none | none |
| user_field_file | string | false | none | none |
| filename | string | false | none | none |
| course | string | false | none | none |
| content_type | string | false | none | none |
| file_size | string(int64) | false | none | none |
Topic
{
"kind": "string",
"hide_heading": true,
"locked": true,
"name": "string",
"created": "string",
"modified": "string",
"course": "string",
"require_confirmation": true,
"published": true,
"id": "string"
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| kind | string | false | none | none |
| hide_heading | boolean | false | none | none |
| locked | boolean | false | none | none |
| name | string | true | none | none |
| created | string | false | none | none |
| modified | string | false | none | none |
| course | string | false | none | none |
| require_confirmation | boolean | false | none | none |
| published | boolean | true | none | none |
| id | string | false | none | none |
CourseList
{
"archived": true,
"items": [
{
"submission_notifications": "string",
"renewal_type": "string",
"creator": "string",
"display_priority": 0,
"show_details": true,
"track_progress": true,
"id": "string",
"archived": true,
"disable_certificates": true,
"show_grade_certificate": true,
"completion_notifications": "string",
"has_cover_art": true,
"pass_mark_type": "string",
"renewal_date": "string",
"cover_art_url": "string",
"description": "string",
"suggested_duration": "string",
"user_version": "string",
"renewal_repeat": true,
"auto_due_seconds": "string",
"show_grade_learner": true,
"permalink": "string",
"locked": true,
"name": "string",
"created": "string",
"auto_due_type": "none",
"is_graded": true,
"renewal_days": "string",
"modified": "string",
"enable_progression": true,
"pass_mark": "string",
"thumbnail_url": "string",
"published": true,
"auto_due_date": "2021-07-11T05:44:51Z"
}
],
"number_found": "string",
"cursor": "string",
"next_cursor": "string",
"limit": 200,
"published": true,
"more": true
}
A list of courses.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| archived | boolean | false | none | none |
| items | [Course] | false | none | A Course |
| number_found | string(int64) | false | none | none |
| cursor | string | false | none | none |
| next_cursor | string | false | none | none |
| limit | string(int64) | false | none | none |
| published | boolean | false | none | none |
| more | boolean | false | none | none |
UserFieldPermissionList
{
"items": [
{
"user_field": "string",
"not_applicable": true,
"user": "string",
"user_visible": true,
"user_editable": true
}
],
"number_found": "string",
"cursor": "string",
"next_cursor": "string",
"limit": 100,
"user": "string",
"more": true
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| items | [UserFieldPermission] | false | none | none |
| number_found | string(int64) | false | none | none |
| cursor | string | false | none | none |
| next_cursor | string | false | none | none |
| limit | string(int64) | false | none | none |
| user | string | false | none | none |
| more | boolean | false | none | none |
AddDuplicateCourse
{
"course": "string",
"copy_enrolments": true,
"copy_responses": true,
"name": "string",
"published": true
}
Create a duplicate of an existing course.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| course | string | true | none | none |
| copy_enrolments | boolean | false | none | none |
| copy_responses | boolean | false | none | none |
| name | string | false | none | none |
| published | boolean | false | none | none |
LearnerList
{
"username": "string",
"order_by": "string",
"tags": [
"string"
],
"items": [
{
"username": "string",
"surname": "string",
"image": "string",
"id": "string",
"archived": true,
"sso_id": "string",
"signup_page": "string",
"created_by": "string",
"create_type": "string",
"email": "string",
"last_logged_in": "string",
"phone_number": "string",
"updated": "string",
"creator_kind": "string",
"firstname": "string",
"tags": [
"string"
],
"deleted": true,
"is_admin": true,
"is_learner": true,
"password": "string",
"created": "string",
"notes": "string"
}
],
"signup_page": "string",
"number_found": "string",
"cursor": "string",
"order_direction": "ASC",
"next_cursor": "string",
"limit": 200,
"email": "string",
"more": true
}
A list of learners.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| username | string | false | none | none |
| order_by | string | false | none | none |
| tags | [string] | false | none | none |
| items | [Learner] | false | none | A learner |
| signup_page | string | false | none | none |
| number_found | string(int64) | false | none | none |
| cursor | string | false | none | none |
| order_direction | string | false | none | none |
| next_cursor | string | false | none | none |
| limit | string(int64) | false | none | none |
| string | false | none | none | |
| more | boolean | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| order_direction | ASC |
| order_direction | DESC |
TagList
{
"items": [
{
"color": "string",
"name": "string",
"id": "string",
"modified": "string",
"created": "string"
}
]
}
A list of all tags.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| items | [Tag] | false | none | A Tag |