curl --request GET \
--url https://{host}/primula/api/v3/students \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/primula/api/v3/students"
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/students', 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/students",
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/students"
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/students")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/primula/api/v3/students")
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": "33333333-3333-4333-8333-333333333333",
"first_name": "Example",
"last_name": "Student"
}
]List students
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. Returns paginated students. The normal collection includes only Procare Desktop enrollment statuses configured as visible for the school. status defaults to active plus hold; all includes active, hold, inactive and graduate. Unknown status values also fall back to active plus hold.
ids switches to a batch lookup of at most 200 UUIDs and requires school_id; this branch bypasses the normal status selection. Missing IDs are omitted. fields selects JSON properties, case-insensitively, and duplicate field names are removed.
curl --request GET \
--url https://{host}/primula/api/v3/students \
--header 'Authorization: Bearer <token>'import requests
url = "https://{host}/primula/api/v3/students"
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/students', 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/students",
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/students"
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/students")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{host}/primula/api/v3/students")
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": "33333333-3333-4333-8333-333333333333",
"first_name": "Example",
"last_name": "Student"
}
]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.
Optional batch of at most 200 student UUIDs; requires school_id. Accepts repeated query parameters or comma-separated values; empty entries are dropped and surrounding whitespace is trimmed.
200Normal collection: active, hold, inactive, graduate or all. Omitted/unrecognized values select active plus hold.
Select response properties. Unknown names return 400. Names are normalized to lowercase. Accepts repeated query parameters or comma-separated values; empty entries are dropped and surrounding whitespace is trimmed.
id, monday_item_id, first_name, last_name, school_id, school_name, birth_date, admission_date, procare_student_status, ems_student_status, room_name, room_id, is_procare_desktop_classroom_schedule_room, start_date, start_date_ems_entry, procare_start_date, preferred_start_date, withdrawal_date, withdrawal_date_ems_entry, withdrawal_date_estimated, procare_withdrawal_date, transition_date, transition_room, transition_room_id, transition_room_override, transition_room_override_id, transition_date_2, transition_room_2, transition_room_2_id, days_in_room, room_changed_at, last_valid_room_changed_at, old_room, billing_plan, part_time, siblings, staff_child, ems_start_date, ems_withdrawal_date, lead_source, color_hex, short_name, family_balance, parent_1_name, parent_1_email, parent_1_mobile_phone, parent_2_name, parent_2_email, parent_2_mobile_phone, family_id, last_day_attended, days_since_last_attendance, procare_desktop_status_end_date, procare_desktop_enrollment_status, procare_desktop_status_end_date_next, procare_desktop_enrollment_status_next, is_created_from_procare_desktop, enrollment_id, days_enrolled, months_enrolled, age_at_start_date, age_at_withdrawal_date, enrollment_eligibility, eligible_months_capture, eligible_months_lost, withdrawal_type, transition_alert, transition_alert_1_clear, transition_alert_2_clear, transition_data_updated_by, transition_data_updated_at, tracker_new_class, address, field_labels, alerts One-based page number.
x >= 1Items per page; values greater than 500 are clamped to 500.
x >= 1Response
Successful response.
- Option 1 · object[]
- Option 2 · object[]
Student.
Monday item id.
School id.
Address.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes