NAV
shell ruby python csharp php

Student

The Student object

The Student object looks like this in JSON:

{
    "object": "student",
    "id": 1,
    "visible_student_id": "20020xx000",
    "entrance_term_id": 8,
    "first_time": false,
    "last_academic_term_id": null,
    "exit_date": null,
    "exit_reason_id": null,
    "proctored": false,
    "max_enrolled_credits": null,
    "max_enrolled_hours": null,
    "max_audit_credits": null,
    "max_audit_hours": null,
    "student_type_campus": "enroll_audit",
    "student_type_online": "enroll_audit",
    "housing": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
visible_student_id Yes text (255)
entrance_term_id No int
first_time Yes bool
last_academic_term_id No int
exit_date Yes date
exit_reason_id No int
proctored No bool
max_enrolled_credits No decimal
max_enrolled_hours No decimal
max_audit_credits No decimal
max_audit_hours No decimal
student_type_campus Yes enum (enroll_audit, enroll, audit, none)
student_type_online Yes enum (enroll_audit, enroll, audit, none)
housing No enum (on_campus, with_parent, off_campus, on_campus_with_dependents)
sandbox No bool

balances (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/balances" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/balances',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/balances',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/balances"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/balances');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "person_balances",
    "person_id": 12,
    "balance": "3400.00",
    "overdue": "3400.00",
    "future_due": 0,
    "expected_aid": "0.00",
    "payments_credits_applied": "600.00",
    "uncollectible": "0.00",
    "pay_now": "1915.44",
    "online_payment_url": "https:\/\/deployment.populi.co\/router\/paymentlink\/8a6b1bcbf30c878b38affc48e2c16202"
}

HTTP Request

GET /people/(person)/balances

Parameters

None

Permissions

One of the following roles is required to call this method:

degree_audit

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/degreeaudit" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "degree_id": 1,
    "academic_year_id": 4,
    "specialization_id": 2
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/degreeaudit',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :degree_id => 1,
  :academic_year_id => 4
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/degreeaudit',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'degree_id': 1,
  'academic_year_id': 4
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/degreeaudit"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  degree_id = 1,
  academic_year_id = 4
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/degreeaudit');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'degree_id' => 1,
  'academic_year_id' => 4
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "list",
    "count": 10,
    "results": 10,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": {
        "degree_requirement_id": null,
        "specialization_requirement_id": null,
        "degree": [],
        "specialization": [],
        "unused_courses": [],
        "unused_transfer_courses": [],
        "course_substitutions": [],
        "course_waivers": [],
        "course_exclusions": [],
        "requirement_exceptions": []
    }
}

HTTP Request

GET /people/(person)/degreeaudit

Parameters

Name Required Data Type Description
degree_id Yes int
academic_year_id Yes int
specialization_id No int

Permissions

One of the following roles is required to call this method:

This is a heavy call. For performance reasons, only one heavy call may be made at a time.

deposits (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/deposits" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/deposits',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/deposits',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/deposits"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/deposits');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "person",
            "id": 12,
            "first_name": "Alice",
            "last_name": "Admin",
            "middle_name": null,
            "prefix": "Mrs.",
            "suffix": null,
            "preferred_name": null,
            "display_name": "Alice Admin",
            "salutation": "Mrs. Alice Admin",
            "addressee": "Mrs. Alice Admin",
            "gender": "female",
            "other_gender": null,
            "image_file_id": null,
            "birth_date": null,
            "status": "unpaid",
            "social_security_number": null,
            "alien_registration_number": null,
            "social_insurance_number": null,
            "home_city": null,
            "home_state": null,
            "home_country": null,
            "former_name": null,
            "license_plate": null,
            "bio": null,
            "hispanic_latino": false,
            "resident_alien": false,
            "localization_id": null,
            "notification_email_id": null,
            "deceased_date": null,
            "import_id": null,
            "staff_id": null,
            "faculty_id": null,
            "degree_level_id": null,
            "accountid": 6,
            "account_number": "CACHING",
            "account_name": "Government Chedder",
            "amount": "100.00",
            "invoice_ids": null,
            "latest_invoice_id": null,
            "paid_date": null,
            "has_form_sales_receipts": 0,
            "latest_form_sales_receipt_added_date": null,
            "latest_form_transaction_id": null,
            "transactionid": 15,
            "deposit_paid": 0,
            "latest_deposit_is_from_form": false,
            "visible_student_id": "20220xx002",
            "added_at": null,
            "added_by_id": null,
            "updated_at": null,
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

HTTP Request

GET /people/(person)/deposits

Parameters

None

Permissions

One of the following roles is required to call this method:

enrollments

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/enrollments" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/enrollments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/enrollments',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/enrollments"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/enrollments');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "enrollment",
            "id": 6000003,
            "course_offering_id": 21910,
            "catalog_course_id": 688,
            "student_id": 12,
            "status": "enrolled",
            "status_expires_at": null,
            "pending_reason": null,
            "final_comment": null,
            "final_grade": 91.5,
            "final_attendance": 0,
            "released_final_grade": null,
            "commented_by_id": null,
            "enrolled_by_id": null,
            "enrolled_by_type": "registrar",
            "status_date": "2022-10-05",
            "enrolled_date": null,
            "credits": 2,
            "hours": 2,
            "attendance_hours": null,
            "clinical_hours": null,
            "pass_fail": false,
            "finalized": false,
            "finalized_at": null,
            "delivery_method_id": null,
            "automatically_removed_at": null,
            "automatically_removed_from": null,
            "added_at": null,
            "added_by_id": null,
            "updated_at": null,
            "display_status": "Enrolled"
        }
    ],
    "sandbox": true
}

HTTP Request

GET /people/(person)/enrollments

Parameters

None

Permissions

One of the following roles is required to call this method:

export_transcript

curl "https://yourschool.populiweb.com/api2/people/(person)/export_transcript" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "program_id": "2",
    "print_layout_id": "5",
    "export_format": "PDF"
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/export_transcript',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :program_id => '2'
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/export_transcript',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'program_id': '2'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/export_transcript"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  program_id = "2"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/export_transcript');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'program_id' => '2'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{}

To generate using the built-in PDF layout, set print_layout_id to PDF. To use a custom layout, provide a print_layout_id for a transcript layout.

HTTP Request

GET /people/(person)/export_transcript

Parameters

Name Required Data Type Description
program_id Yes int
print_layout_id No int
export_format No text

Permissions

One of the following roles is required to call this method:

This is a heavy call. For performance reasons, only one heavy call may be made at a time.

export_grade_report

curl "https://yourschool.populiweb.com/api2/people/(person)/gradereport" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "academic_term_id": "24",
    "program_id": "2"
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/gradereport',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :academic_term_id => '24',
  :program_id => '2'
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/gradereport',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'academic_term_id': '24',
  'program_id': '2'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/gradereport"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  academic_term_id = "24",
  program_id = "2"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/gradereport');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'academic_term_id' => '24',
  'program_id' => '2'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{}

HTTP Request

GET /people/(person)/gradereport

Parameters

Name Required Data Type Description
academic_term_id Yes int
program_id Yes int

Permissions

One of the following roles is required to call this method:

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/onlinepaymentlink" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/onlinepaymentlink',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/onlinepaymentlink',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/onlinepaymentlink"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/onlinepaymentlink');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "link",
    "person_id": 12,
    "url": "https:\/\/deployment.populi.co\/router\/paymentlink\/8a6b1bcbf30c878b38affc48e2c16202"
}

HTTP Request

GET /people/(person)/onlinepaymentlink

Parameters

Name Required Data Type Description
force_regenerate No bool Set to true to generate a new link, which will invalidate any previous links. Default is false

Permissions

One of the following roles is required to call this method:

show_schedule

curl "https://yourschool.populiweb.com/api2/people/(person)/schedule/(academicterm)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/schedule/(academicterm)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/schedule/(academicterm)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/schedule/(academicterm)"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/schedule/(academicterm)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{}

HTTP Request

GET /people/(person)/schedule/(academicterm)

Parameters

None

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/student" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/student',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/student',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/student"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/student');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "student",
    "id": 12,
    "visible_student_id": "20220xx002",
    "entrance_term_id": null,
    "first_time": false,
    "last_academic_term_id": null,
    "exit_date": null,
    "exit_reason_id": null,
    "proctored": false,
    "max_enrolled_credits": null,
    "max_enrolled_hours": null,
    "max_audit_credits": null,
    "max_audit_hours": null,
    "student_type_campus": "enroll_audit",
    "student_type_online": "enroll_audit",
    "housing": null,
    "sandbox": true
}

Retrieves a specific Student object.

HTTP Request

GET /people/(person)/student

Parameters

No additional parameters are needed beyond the ID of the object being requested that appears in the URL.

Permissions

One of the following roles is required to call this method:

update

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/student/update" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/student/update',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/student/update',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/student/update"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/student/update');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "student",
    "id": 12,
    "visible_student_id": "20220xx002",
    "entrance_term_id": null,
    "first_time": false,
    "last_academic_term_id": null,
    "exit_date": null,
    "exit_reason_id": null,
    "proctored": false,
    "max_enrolled_credits": null,
    "max_enrolled_hours": null,
    "max_audit_credits": null,
    "max_audit_hours": null,
    "student_type_campus": "enroll_audit",
    "student_type_online": "enroll_audit",
    "housing": null,
    "sandbox": true
}

Updates an existing Student object.

HTTP Request

PUT /people/(person)/student/update

Parameters

Name Required Data Type Description
student_id No int
is_loa No bool
loa_start_date No date
loa_end_date No date
proctored No bool
max_enrolled_credits No decimal
max_enrolled_hours No decimal
max_audit_credits No decimal
max_audit_hours No decimal
housing No enum (on_campus, with_parent, off_campus, on_campus_with_dependents)

Permissions

One of the following roles is required to call this method:

transcript

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/transcript" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "program_id": "2"
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/transcript',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :program_id => '2'
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/transcript',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'program_id': '2'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/transcript"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  program_id = "2"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/transcript');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'program_id' => '2'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "list",
    "count": 2,
    "results": 2,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": {
        "programs": {
            "2": {
                "programid": "2",
                "level": "Undergraduate",
                "name": "Certificate",
                "units": "CREDITS",
                "hidden_from_students": 0,
                "started_on": "2004-10-20",
                "exit_date": null,
                "exit_reason": null,
                "standings_include_clinical_hours": 0,
                "lock_gpa_data": false,
                "transcript_note": {
                    "errors": null
                },
                "entrance_term_id": null,
                "entrance_term_display_name": null,
                "sort_by": 0,
                "terms": {
                    "5": {
                        "name": "Fall 2008 2008-2009",
                        "start_date": "2008-09-01",
                        "end_date": "2008-12-15",
                        "raw_discipline": [],
                        "discipline": [],
                        "raw_between_term_discipline": [],
                        "between_term_discipline": [],
                        "term_name_only": "Fall 2008",
                        "term_start_year": 2008,
                        "term_end_year": 2009,
                        "term_years": "2008-2009",
                        "term_type": "STANDARD",
                        "lock_gpa_data": false,
                        "course_descriptions": [],
                        "transcript_note": null,
                        "sort_by": "2008_2008-09-01_Fall 2008",
                        "no_resident_courses": true,
                        "custom_field_values": []
                    }
                }
            }
        },
        "transfer_credits": {
            "2": {
                "institutions": {
                    "1": {
                        "contact_org_name": "The Oxford School",
                        "transfer_courses": [
                            {
                                "course_group_id": null,
                                "course_id": 687,
                                "course_num": "SPAN306",
                                "course_name": "Spanish 6",
                                "description": "Spanish 7",
                                "attempted_units": 2.6,
                                "earned_units": 2.6,
                                "earned_standing_units": 2.6,
                                "grade_abbrv": "A",
                                "letter_grade": "A",
                                "quality_points": 10.4,
                                "gpa_units": 2.6,
                                "attempted_contra-units": 0,
                                "earned_contra-units": null,
                                "attempted_attendance_hours": null,
                                "earned_attendance_hours": null,
                                "attempted_clinical_hours": null,
                                "earned_clinical_hours": null,
                                "attendance_hours_that_affect_standing": null,
                                "clinical_hours_that_affect_standing": null,
                                "applied_to_course_abbrv": "LAT100",
                                "applied_to_course_name": "Beginning Latin",
                                "show_on_transcript": 1,
                                "effective_date": null,
                                "applied_date": null
                            }
                        ],
                        "transfer_degrees": []
                    }
                },
                "totals": {
                    "institutions": {
                        "1": {
                            "quality_points": 10.4,
                            "gpa_units": 2.6,
                            "attempted_units": 2.6,
                            "earned_units": 2.6,
                            "earned_standing_units": 2.6,
                            "attempted_contra-units": 0,
                            "earned_contra-units": null,
                            "attempted_attendance_hours": null,
                            "earned_attendance_hours": null,
                            "attempted_clinical_hours": null,
                            "earned_clinical_hours": null,
                            "attendance_hours_that_affect_standing": null,
                            "clinical_hours_that_affect_standing": null,
                            "clinical_course_earned_units": null,
                            "non_clinical_course_earned_units": 2.6,
                            "clinical_course_earned_contra_units": null,
                            "non_clinical_course_earned_contra_units": null
                        }
                    }
                },
                "effective_date_units": []
            }
        }
    }
}

This route will return a lot of student data, the structure of which is too complex to articulate here.

HTTP Request

GET /people/(person)/transcript

Parameters

Name Required Data Type Description
program_id Yes int

Permissions

One of the following roles is required to call this method:

This is a heavy call. For performance reasons, only one heavy call may be made at a time.

transcript_notes

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/transcriptnotes" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/transcriptnotes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/transcriptnotes',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/transcriptnotes"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/transcriptnotes');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "transcript_note",
            "id": 1,
            "student_id": 12,
            "program_id": 2,
            "academic_term_id": null,
            "note": "Special accomodations for tests.",
            "added_at": "2022-10-10T00:00:00+00:00",
            "added_by_id": 16,
            "updated_at": null,
            "updated_by_id": null
        }
    ],
    "sandbox": true
}

HTTP Request

GET /people/(person)/transcriptnotes

Parameters

None

Permissions

One of the following roles is required to call this method:

balances (index)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/personbalances" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "as_of_date": "2026-07-15",
    "filter": {"0":{"logic":"ALL","fields":[{"name":"balance","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/personbalances',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/personbalances',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/personbalances"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/personbalances');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "list",
    "count": 2,
    "results": 2,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "person_id": 12,
            "display_name": "Taylor Forest",
            "first_name": "Taylor",
            "last_name": "Forest",
            "balance": "3400.00"
        }
    ]
}

HTTP Request

GET /personbalances

Parameters

Name Required Data Type Description
as_of_date No date
filter No mixed See available filter conditions
page No int The page of results to return if more than 200 records are found.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
balance decimal
uncollectible_invoices invoiceuncollectible
program object id
has_active_student_role enum (yes, no)
on_active_payment_plan bool
has_active_recurring_payment bool
student_campus object id
tag tag
lock_type locktype
custom_field custom

Permissions

One of the following roles is required to call this method: