curl --request POST \
--url https://qti.alpha-1edtech.ai/api/feedback/lesson \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"userId": "<string>",
"feedback": "<string>",
"lessonId": "<string>",
"questionId": "<string>",
"humanApproved": true
}
'import requests
url = "https://qti.alpha-1edtech.ai/api/feedback/lesson"
payload = {
"userId": "<string>",
"feedback": "<string>",
"lessonId": "<string>",
"questionId": "<string>",
"humanApproved": True
}
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({
userId: '<string>',
feedback: '<string>',
lessonId: '<string>',
questionId: '<string>',
humanApproved: true
})
};
fetch('https://qti.alpha-1edtech.ai/api/feedback/lesson', 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://qti.alpha-1edtech.ai/api/feedback/lesson",
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([
'userId' => '<string>',
'feedback' => '<string>',
'lessonId' => '<string>',
'questionId' => '<string>',
'humanApproved' => true
]),
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://qti.alpha-1edtech.ai/api/feedback/lesson"
payload := strings.NewReader("{\n \"userId\": \"<string>\",\n \"feedback\": \"<string>\",\n \"lessonId\": \"<string>\",\n \"questionId\": \"<string>\",\n \"humanApproved\": true\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://qti.alpha-1edtech.ai/api/feedback/lesson")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": \"<string>\",\n \"feedback\": \"<string>\",\n \"lessonId\": \"<string>\",\n \"questionId\": \"<string>\",\n \"humanApproved\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://qti.alpha-1edtech.ai/api/feedback/lesson")
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 \"userId\": \"<string>\",\n \"feedback\": \"<string>\",\n \"lessonId\": \"<string>\",\n \"questionId\": \"<string>\",\n \"humanApproved\": true\n}"
response = http.request(request)
puts response.read_body{
"userId": "<string>",
"feedback": "<string>",
"type": "QUESTION",
"lessonId": "<string>",
"questionId": "<string>",
"humanApproved": true
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}Create lesson feedback
Creates a new feedback for a lesson
curl --request POST \
--url https://qti.alpha-1edtech.ai/api/feedback/lesson \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"userId": "<string>",
"feedback": "<string>",
"lessonId": "<string>",
"questionId": "<string>",
"humanApproved": true
}
'import requests
url = "https://qti.alpha-1edtech.ai/api/feedback/lesson"
payload = {
"userId": "<string>",
"feedback": "<string>",
"lessonId": "<string>",
"questionId": "<string>",
"humanApproved": True
}
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({
userId: '<string>',
feedback: '<string>',
lessonId: '<string>',
questionId: '<string>',
humanApproved: true
})
};
fetch('https://qti.alpha-1edtech.ai/api/feedback/lesson', 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://qti.alpha-1edtech.ai/api/feedback/lesson",
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([
'userId' => '<string>',
'feedback' => '<string>',
'lessonId' => '<string>',
'questionId' => '<string>',
'humanApproved' => true
]),
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://qti.alpha-1edtech.ai/api/feedback/lesson"
payload := strings.NewReader("{\n \"userId\": \"<string>\",\n \"feedback\": \"<string>\",\n \"lessonId\": \"<string>\",\n \"questionId\": \"<string>\",\n \"humanApproved\": true\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://qti.alpha-1edtech.ai/api/feedback/lesson")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"userId\": \"<string>\",\n \"feedback\": \"<string>\",\n \"lessonId\": \"<string>\",\n \"questionId\": \"<string>\",\n \"humanApproved\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://qti.alpha-1edtech.ai/api/feedback/lesson")
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 \"userId\": \"<string>\",\n \"feedback\": \"<string>\",\n \"lessonId\": \"<string>\",\n \"questionId\": \"<string>\",\n \"humanApproved\": true\n}"
response = http.request(request)
puts response.read_body{
"userId": "<string>",
"feedback": "<string>",
"type": "QUESTION",
"lessonId": "<string>",
"questionId": "<string>",
"humanApproved": true
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}{
"error": "<string>",
"code": "<string>",
"title": "<string>",
"status": 123,
"detail": "<string>",
"details": "<string>",
"errors": [
{
"detail": "<string>",
"pointer": "<string>"
}
],
"traceId": "<string>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
The lesson feedback content to create
Schema for creating new feedback (identifier is auto-generated)
Identifier of the user who submitted the feedback
The feedback content provided by the user
Identifier of the lesson this feedback refers to (required)
Identifier of the specific question this feedback refers to (optional, for question-level feedback)
Whether the feedback has been reviewed and approved by a human
Response
Successfully created lesson feedback
Schema for creating new feedback (identifier is auto-generated)
Identifier of the user who submitted the feedback
The feedback content provided by the user
Type of feedback - either for a specific question or for the entire lesson
QUESTION, LESSON Identifier of the lesson this feedback refers to (required)
Identifier of the specific question this feedback refers to (optional, for question-level feedback)
Whether the feedback has been reviewed and approved by a human