Program
The Program object
The Program object looks like this in JSON:
{
"object": "program",
"id": 2,
"name": "Certificate",
"units": "credits",
"graduate_level": false,
"default": 1,
"default_tuition_schedule_id": null,
"default_enrollment_agreement_page_layout_id": null,
"grants_academic_credit": true,
"standings_include_clinical_hours": false,
"continuous_enrollment": false,
"payment_period_behavior": "none",
"payment_period_default_length": null,
"payment_period_max_length": null,
"payment_period_max_units": null,
"hidden_from_students": false,
"external_id": "C1",
"status": "active",
"sandbox": true
}
| Attribute | Required | Data Type |
|---|---|---|
| id | Yes | int |
| name | Yes | text (255) |
| units | Yes | enum (credits, hours) |
| graduate_level | Yes | bool |
| default | Yes | int |
| default_tuition_schedule_id | No | int |
| default_enrollment_agreement_page_layout_id | No | int |
| grants_academic_credit | Yes | bool |
| standings_include_clinical_hours | Yes | bool |
| continuous_enrollment | Yes | bool |
| payment_period_behavior | No | enum (none, new, extend, manual) |
| payment_period_default_length | No | int |
| payment_period_max_length | No | int |
| payment_period_max_units | No | int |
| hidden_from_students | Yes | bool |
| external_id | No | text (100) |
| status | Yes | enum (active, retired, deleted) |
| sandbox | No | bool |
index
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/programs" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/programs',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/programs',
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/programs"), 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/programs');
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": 3,
"results": 3,
"results_per_page": null,
"pages": 1,
"page": 1,
"offset": 0,
"has_more": false,
"data": [
{
"object": "program",
"id": 2,
"name": "Certificate",
"units": "credits",
"graduate_level": false,
"default": 1,
"default_tuition_schedule_id": null,
"default_enrollment_agreement_page_layout_id": null,
"grants_academic_credit": true,
"standings_include_clinical_hours": false,
"continuous_enrollment": false,
"payment_period_behavior": "none",
"payment_period_default_length": null,
"payment_period_max_length": null,
"payment_period_max_units": null,
"hidden_from_students": false,
"external_id": "C1",
"status": "active"
}
],
"sandbox": true
}
Retrieves all Program objects.
HTTP Request
GET /programs
Parameters
None
Permissions
One of the following roles is required to call this method:
- Academic Auditor
- Academic Admin
show
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/programs/(program)" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/programs/(program)',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/programs/(program)',
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/programs/(program)"), 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/programs/(program)');
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": "program",
"id": 2,
"name": "Certificate",
"units": "credits",
"graduate_level": false,
"default": 1,
"default_tuition_schedule_id": null,
"default_enrollment_agreement_page_layout_id": null,
"grants_academic_credit": true,
"standings_include_clinical_hours": false,
"continuous_enrollment": false,
"payment_period_behavior": "none",
"payment_period_default_length": null,
"payment_period_max_length": null,
"payment_period_max_units": null,
"hidden_from_students": false,
"external_id": "C1",
"status": "active",
"sandbox": true
}
Retrieves a specific Program object.
HTTP Request
GET /programs/(program)
Parameters
No additional parameters are needed beyond the ID of the object being requested that appears in the URL.
Expandable Properties
- academic_standings
- full_time_thresholds
- tardies_thresholds
- min_attendance_thresholds
- grade_scales
- courses
Permissions
One of the following roles is required to call this method:
- Academic Auditor
- Academic Admin
students
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/programs/(program)/students" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
-d '{
"filter": []
}' \
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/programs/(program)/students',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/programs/(program)/students',
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/programs/(program)/students"), 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/programs/(program)/students');
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": 200,
"pages": 1,
"page": 1,
"offset": 0,
"has_more": false,
"data": [
{
"object": "person",
"id": 16,
"first_name": "Abby",
"last_name": "Admin",
"middle_name": null,
"prefix": null,
"suffix": null,
"preferred_name": null,
"display_name": "Abby Admin",
"salutation": "Abby Admin",
"addressee": "Abby Admin",
"gender": "female",
"other_gender": null,
"image_file_id": null,
"birth_date": null,
"status": "active",
"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,
"added_at": null,
"added_by_id": null,
"updated_at": "2026-07-25T16:24:07+00:00",
"report_data": {
"person_id": 16,
"active_roles": "4,5,7,14",
"username": "academic.admin",
"primary_address_street": null,
"primary_address_city": null,
"primary_address_state": null,
"primary_address_country": null,
"is_alum": 0,
"primary_org_title": null,
"primary_org_name": null,
"contact_primary_email": "football@nowhere.co",
"contact_primary_phone": "333.555.6666 x 091",
"visible_student_id": "20220xx001",
"row_id": 16
},
"private_profile": false,
"is_user": true
}
],
"sandbox": true
}
HTTP Request
GET /programs/(program)/students
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| filter | No | mixed | See available filter conditions |
| page | No | int | The page of results to return if more than 200 records are found. |
Expandable Properties
- enrollments
- addresses
- phone_numbers
- email_addresses
- websites
- student
- races
- user
- roles
- tags
- locks
- relationships
- communicationplans
- aid_authorizations
- profile_picture_file
- notes
- student_programs
- student_degrees
- student_specializations
- degree_level
- leaves_of_absence
- contact_organization_members
Filter Condition Parameters
These conditions can be used to narrow the results returned.
| Name | Type |
|---|---|
| age | integer |
| degree | integer |
| degree_level | integer |
| home_country | country |
| last_active | date |
| program | integer |
| specialization | integer |
Permissions
One of the following roles is required to call this method:
- Academic Admin
transfer_credit_grade_options
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/programs/(program)/transfercreditsgradeoptions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/programs/(program)/transfercreditsgradeoptions',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/programs/(program)/transfercreditsgradeoptions',
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/programs/(program)/transfercreditsgradeoptions"), 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/programs/(program)/transfercreditsgradeoptions');
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": 4,
"results": 4,
"results_per_page": null,
"pages": 1,
"page": 1,
"offset": 0,
"has_more": false,
"data": {
"grade_scale": {
"label": "Letter Grade",
"options": [
{
"value": 95,
"label": "A",
"min_points": 94,
"max_points": 999.99
},
{
"value": 92,
"label": "A-",
"min_points": 90,
"max_points": 93.99
},
{
"value": 88,
"label": "B+",
"min_points": 87,
"max_points": 89.99
},
{
"value": 85,
"label": "B",
"min_points": 84,
"max_points": 86.99
},
{
"value": 82,
"label": "B-",
"min_points": 80,
"max_points": 83.99
},
{
"value": 78,
"label": "C+",
"min_points": 77,
"max_points": 79.99
},
{
"value": 75,
"label": "C",
"min_points": 74,
"max_points": 76.99
},
{
"value": 72,
"label": "C-",
"min_points": 70,
"max_points": 73.99
},
{
"value": 65,
"label": "F",
"min_points": 0,
"max_points": 69.99
}
]
},
"pass_fail_grade_scale": {
"label": "Pass\/Fail",
"options": [
{
"value": 100,
"label": "P",
"min_points": 70,
"max_points": 999.99
},
{
"value": 0,
"label": "F",
"min_points": 0,
"max_points": 69.99
}
]
},
"other": {
"label": "Other",
"options": [
{
"value": "W",
"label": "W",
"full_label": "Withdrawn"
},
{
"value": "I",
"label": "I",
"full_label": "Incomplete"
}
]
},
"custom": {
"label": "Other",
"options": [
{
"value": "CUSTOM_STUDENT_STATUS_3",
"label": "INCFULL",
"allow_retakes": 0
},
{
"value": "CUSTOM_STUDENT_STATUS_2",
"label": "WF",
"allow_retakes": 0
},
{
"value": "CUSTOM_STUDENT_STATUS_1",
"label": "WP",
"allow_retakes": 0
}
]
}
}
}
HTTP Request
GET /programs/(program)/transfercreditsgradeoptions
Parameters
None
Permissions
One of the following roles is required to call this method:
- Academic Admin