curl --request GET \
--url https://{host}/primula/api/v3/pre_registration_fallout \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/primula/api/v3/pre_registration_fallout"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/primula/api/v3/pre_registration_fallout', 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://{host}/primula/api/v3/pre_registration_fallout",
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://{host}/primula/api/v3/pre_registration_fallout"
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://{host}/primula/api/v3/pre_registration_fallout")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/primula/api/v3/pre_registration_fallout")
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{
"years": [
123
],
"school_summaries": [
{
"school_id": "<string>",
"school_name": "<string>",
"school_short_name": "<string>",
"year_summaries": [
{
"year": 123,
"data": {
"year": 123,
"pre_registered": 123,
"withdrew_same_year": 123,
"fallout_rate": 123,
"yoy_delta": 123,
"is_ytd": true
}
}
]
}
],
"total_summary": {
"school_id": "<string>",
"school_name": "<string>",
"school_short_name": "<string>",
"year_summaries": [
{
"year": 123,
"data": {
"year": 123,
"pre_registered": 123,
"withdrew_same_year": 123,
"fallout_rate": 123,
"yoy_delta": 123,
"is_ytd": true
}
}
]
}
}Get pre-registration fallout
The session must have schools assigned. Results are restricted to those schools; an optional school_id narrows this scope and must be assigned to the session. Omitting view returns a PreRegistrationFalloutReport object containing years, school_summaries and total_summary. view=students returns a paginated array of PreRegistrationFalloutStudent.
The report accepts only company_id, school_id and view. The students view additionally accepts year, query, withdrew_only, sort_by, page and per_page. Any other parameter, including a students-only parameter on the report view, returns 400. year defaults to the current year; all includes every supported year. Supported years run from 2024 to the current year. Pagination headers are emitted only for view=students.
curl --request GET \
--url https://{host}/primula/api/v3/pre_registration_fallout \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/primula/api/v3/pre_registration_fallout"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{host}/primula/api/v3/pre_registration_fallout', 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://{host}/primula/api/v3/pre_registration_fallout",
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://{host}/primula/api/v3/pre_registration_fallout"
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://{host}/primula/api/v3/pre_registration_fallout")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/primula/api/v3/pre_registration_fallout")
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{
"years": [
123
],
"school_summaries": [
{
"school_id": "<string>",
"school_name": "<string>",
"school_short_name": "<string>",
"year_summaries": [
{
"year": 123,
"data": {
"year": 123,
"pre_registered": 123,
"withdrew_same_year": 123,
"fallout_rate": 123,
"yoy_delta": 123,
"is_ytd": true
}
}
]
}
],
"total_summary": {
"school_id": "<string>",
"school_name": "<string>",
"school_short_name": "<string>",
"year_summaries": [
{
"year": 123,
"data": {
"year": 123,
"pre_registered": 123,
"withdrew_same_year": 123,
"fallout_rate": 123,
"yoy_delta": 123,
"is_ytd": true
}
}
]
}
}Authorizations
Access token issued by POST /sessions and associated with a valid server-side session.
Query Parameters
Company UUID. Must equal the authenticated session company when that session has a company assigned; the equality check is skipped for sessions without one.
School UUID. Must be assigned to the authenticated session. Omit to use the operation's documented company/session scope.
Omit for the full report; students selects paginated detail.
students Students view only: a year from 2024 through the current year, or all (case-insensitive). Defaults to the current year.
Students view only: student search text.
Students view only: restrict to withdrawals in the same year. Accepts true/1 and false/0, case-insensitive.
Students view only: sort column with _asc/_desc.
student_name_asc, student_name_desc, school_name_asc, school_name_desc, year_asc, year_desc, pre_registration_date_asc, pre_registration_date_desc, withdrawal_date_asc, withdrawal_date_desc, withdrew_same_year_asc, withdrew_same_year_desc, student_status_asc, student_status_desc One-based page number. Applies only to view=students.
x >= 1Items per page; values greater than 500 are clamped to 500. Applies only to view=students.
x >= 1