curl --request GET \
--url https://schoolmaker.co/api/v1/testimonials/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://schoolmaker.co/api/v1/testimonials/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://schoolmaker.co/api/v1/testimonials/{id}', 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://schoolmaker.co/api/v1/testimonials/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://schoolmaker.co/api/v1/testimonials/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://schoolmaker.co/api/v1/testimonials/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://schoolmaker.co/api/v1/testimonials/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "f41396bd-9bbe-478d-9f33-5fc0d2e2e1f8",
"status": "ready",
"source": "banner",
"rating": 5,
"created_at": "2026-10-02T08:00:00.000Z",
"product_id": null,
"products_step_id": null,
"member": {
"id": "15a1f1ae-420c-4b58-b24a-01031ec3c6f3",
"email": "member@example.com",
"first_name": "Alex",
"last_name": "Martin",
"last_seen_at": null,
"is_active": true,
"is_banned": false,
"created_at": "2026-09-01T08:00:00.000Z",
"updated_at": "2026-10-02T08:00:00.000Z",
"profile_picture_url": null
},
"review": "<div class=\"trix-content\"><p>A useful program.</p></div>",
"video_url": null,
"file_url": null,
"video_id": null,
"video_status": null,
"video_embed_url": null,
"video_poster_url": null
}{
"error": "Access denied"
}{
"error": "Record not found"
}{
"error": "Invalid arguments: /unexpected schema"
}Get Testimonial
Retrieves details from a specific testimonial.
curl --request GET \
--url https://schoolmaker.co/api/v1/testimonials/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://schoolmaker.co/api/v1/testimonials/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://schoolmaker.co/api/v1/testimonials/{id}', 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://schoolmaker.co/api/v1/testimonials/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://schoolmaker.co/api/v1/testimonials/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://schoolmaker.co/api/v1/testimonials/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://schoolmaker.co/api/v1/testimonials/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "f41396bd-9bbe-478d-9f33-5fc0d2e2e1f8",
"status": "ready",
"source": "banner",
"rating": 5,
"created_at": "2026-10-02T08:00:00.000Z",
"product_id": null,
"products_step_id": null,
"member": {
"id": "15a1f1ae-420c-4b58-b24a-01031ec3c6f3",
"email": "member@example.com",
"first_name": "Alex",
"last_name": "Martin",
"last_seen_at": null,
"is_active": true,
"is_banned": false,
"created_at": "2026-09-01T08:00:00.000Z",
"updated_at": "2026-10-02T08:00:00.000Z",
"profile_picture_url": null
},
"review": "<div class=\"trix-content\"><p>A useful program.</p></div>",
"video_url": null,
"file_url": null,
"video_id": null,
"video_status": null,
"video_embed_url": null,
"video_poster_url": null
}{
"error": "Access denied"
}{
"error": "Record not found"
}{
"error": "Invalid arguments: /unexpected schema"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Testimonial ID returned by List Testimonials.
1 - 255Response
Testimonial details
Testimonial ID.
Submission status. Includes unfinished testimonials.
new, rating, submit, ready Testimonial source. banner means the review banner. May contain a custom value.
Star rating. Completed submissions have a rating from 1 to 5. Unfinished submissions can be unrated.
Date the testimonial was created.
Program ID, including programs linked through a milestone step. Null for school testimonials.
Milestone step ID, when applicable.
Show child attributes
Show child attributes
Testimonial text rendered as HTML. Can be empty when no text has been submitted.
Attached video URL, or null if absent. Hosted videos use video_id and video_embed_url.
URL of the attached testimonial file. Null when absent.
Hosted video ID, or null if absent. Copied videos retain the original ID.
Last saved video processing status.
Video player URL when processing is complete and the video library is configured. Otherwise null.
URL of the attached video poster. Null when absent.
Was this page helpful?