Trigger a mastery assessment for a student
curl --request POST \
--url https://platform.dev.timeback.com/competency-track/1.0/assessments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"assessment": {
"assignmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
'import requests
url = "https://platform.dev.timeback.com/competency-track/1.0/assessments"
payload = { "assessment": { "assignmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({assessment: {assignmentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'}})
};
fetch('https://platform.dev.timeback.com/competency-track/1.0/assessments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://platform.dev.timeback.com/competency-track/1.0/assessments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'assessment' => [
'assignmentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.dev.timeback.com/competency-track/1.0/assessments"
payload := strings.NewReader("{\n \"assessment\": {\n \"assignmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://platform.dev.timeback.com/competency-track/1.0/assessments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"assessment\": {\n \"assignmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.dev.timeback.com/competency-track/1.0/assessments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"assessment\": {\n \"assignmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}"
response = http.request(request)
puts response.read_body{
"assessment": {
"sourcedId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"studentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assessmentAppIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}{
"error": "Bad request",
"message": "Invalid request parameters"
}{
"error": "Unauthorized request",
"message": "Unauthorized request"
}{
"error": "Access forbidden",
"message": "Access forbidden"
}{
"error": "Internal server error",
"message": "Internal server error"
}Competency Track
Trigger a mastery assessment for a student
Signal that a student has completed learning and is ready for mastery assessment. Validates the student has an active assignment with resolved CFItems, looks up assessment mappings, and creates OneRosterUserProfile entries linking the student to each assessment app.
POST
/
competency-track
/
1.0
/
assessments
Trigger a mastery assessment for a student
curl --request POST \
--url https://platform.dev.timeback.com/competency-track/1.0/assessments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"assessment": {
"assignmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
}
'import requests
url = "https://platform.dev.timeback.com/competency-track/1.0/assessments"
payload = { "assessment": { "assignmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({assessment: {assignmentId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'}})
};
fetch('https://platform.dev.timeback.com/competency-track/1.0/assessments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://platform.dev.timeback.com/competency-track/1.0/assessments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'assessment' => [
'assignmentId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.dev.timeback.com/competency-track/1.0/assessments"
payload := strings.NewReader("{\n \"assessment\": {\n \"assignmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://platform.dev.timeback.com/competency-track/1.0/assessments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"assessment\": {\n \"assignmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://platform.dev.timeback.com/competency-track/1.0/assessments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"assessment\": {\n \"assignmentId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n }\n}"
response = http.request(request)
puts response.read_body{
"assessment": {
"sourcedId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assignmentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"studentId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"assessmentAppIds": [
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]
}
}{
"error": "Bad request",
"message": "Invalid request parameters"
}{
"error": "Unauthorized request",
"message": "Unauthorized request"
}{
"error": "Access forbidden",
"message": "Access forbidden"
}{
"error": "Internal server error",
"message": "Internal server error"
}Authorizations
OAuth 2.0 client credentials flow. Contact timeback@trilogy.com to request credentials for your application.
Body
application/json
Input for triggering a mastery assessment
Show child attributes
Show child attributes
Response
Assessment triggered successfully
Assessment trigger response
Show child attributes
Show child attributes
⌘I