NAV
shell ruby python csharp php

Enrollment

The Enrollment object

The Enrollment object looks like this in JSON:

{
    "object": "enrollment",
    "id": 6000000,
    "course_offering_id": 21908,
    "catalog_course_id": 688,
    "student_id": 16,
    "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
}
Attribute Required Data Type
id Yes int
course_offering_id Yes int
catalog_course_id No int
student_id Yes int
status Yes enum (pending, enrolled, pending_auditor, auditor, withdrawn, incomplete, deleted, waiting)
status_expires_at No datetime
pending_reason No enum (enrollment_agreement)
final_comment Yes text
final_grade Yes decimal
final_attendance Yes decimal
released_final_grade No decimal
commented_by_id No int
enrolled_by_id No int
enrolled_by_type Yes enum (registrar, student, advisor, waiting_list, system)
status_date Yes date
enrolled_date Yes date
credits Yes decimal
hours Yes decimal
attendance_hours No decimal
clinical_hours No decimal
pass_fail Yes bool
finalized Yes bool
finalized_at No datetime
delivery_method_id No int
automatically_removed_at No datetime
automatically_removed_from No enum (roster, waiting_list)
added_at No datetime
added_by_id No int
updated_at No datetime
display_status No text
sandbox No bool

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/enrollments" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"finalized","value":"YES","positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/enrollments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/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/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/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": 53,
    "results": 53,
    "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:11+00:00",
            "report_data": {
                "student_person_id": 16,
                "student_name": "Abby Admin",
                "academic_term_id": 4,
                "academic_term_name": "Spring 2008 2007-2008",
                "catalog_course_abbrv": "LAT101",
                "course_offering_id": 21908,
                "full_course_offering_name": "LAT101-1: Beginning Latin I",
                "course_student_status": "ENROLLED",
                "status_mapid": null,
                "status_map_abbrv": null,
                "programid": 0,
                "program_name": null,
                "grade_abbrv": null,
                "grade": "90.00",
                "delivery_method": null,
                "enrollment_id": 6000000,
                "course_offering_student_program_id": null,
                "pass_fail": 0,
                "student_middle_name": "",
                "student_preferred_name": "",
                "academic_term_start_date": "2008-02-01",
                "visible_student_id": "20220xx001",
                "course_campus_id": null,
                "academic_term_end_date": "2008-05-15",
                "student_first_name": "Abby",
                "student_last_name": "Admin",
                "course_offering_section": "1",
                "course_offering_name": "Beginning Latin I",
                "credits": "2.00",
                "hours": "2.00",
                "retake": null,
                "course_campus_name": null,
                "finalized": 0,
                "program_units": "CREDITS",
                "catalog_course_id": 688,
                "row_id": "16_0_21908"
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

Retrieves all Enrollment objects that match given filter conditions.

HTTP Request

GET /enrollments

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

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
academic_year object id
added_at datetime
advisor advisor
age integer
automatically_removed_at datetime
automatically_removed_from enum
billing_term object_id
catalog_course object_id
course object_id
course_affects_standing bool
course_campus object id
course_delivery_method object id
course_department object id
course_end_date date
course_faculty object id
course_has_been_retaken bool
course_section alphanumeric
course_start_date date
academic_term object_id
credits decimal
custom_field custom
degree object id
degree_level choice
degree_seeking bool
enrolled_by object_id
enrollment_date date
final_attendance decimal
finalized bool
finalized_at datetime
first_time bool
full_time bool
gender enum (male, female, unknown, other)
grade decimal
has_active_student_role enum (yes, no)
hours decimal
include_deleted_students bool
include_dropped_students bool
include_waitlisted_students bool
last_attendance datetime
letter text
pass_fail bool
pay_period_end_date date
pay_period_start_date date
program object id
race_ethnicity object id
specialization specialization
standing academicstanding
status enum
status_date date
student object_id
students_campus object id
tag tag
term_end_date date
term_start_date date
transcript_term object_id
updated_at datetime

Permissions

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

index (courseoffering)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/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/courseofferings/(courseoffering)/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/courseofferings/(courseoffering)/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": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "enrollment",
            "id": 6000000,
            "course_offering_id": 21908,
            "catalog_course_id": 688,
            "student_id": 16,
            "status": "enrolled",
            "status_expires_at": null,
            "pending_reason": null,
            "final_comment": null,
            "final_grade": 10,
            "final_attendance": 0,
            "released_final_grade": 10,
            "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": "2026-07-25T16:24:06+00:00",
            "display_status": "Enrolled"
        }
    ],
    "sandbox": true
}

Retrieves all Enrollment objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/students

Parameters

None

Expandable Properties

Permissions

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

show (courseoffering)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)',
 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/courseofferings/(courseoffering)/students/(enrollment)"), 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/courseofferings/(courseoffering)/students/(enrollment)');
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": "enrollment",
    "id": 6000000,
    "course_offering_id": 21908,
    "catalog_course_id": 688,
    "student_id": 16,
    "status": "enrolled",
    "status_expires_at": null,
    "pending_reason": null,
    "final_comment": null,
    "final_grade": 10,
    "final_attendance": 0,
    "released_final_grade": 10,
    "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": "2026-07-25T16:24:06+00:00",
    "display_status": "Enrolled",
    "sandbox": true
}

Retrieves a specific Enrollment object.

HTTP Request

GET /courseofferings/(courseoffering)/students/(enrollment)

Parameters

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

Expandable Properties

Permissions

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

update_final_grade

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/update_final_grade" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "final_grade": 90
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/update_final_grade',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :final_grade => 90
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/update_final_grade',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'final_grade': 90
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/update_final_grade"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  final_grade = 90
});
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/courseofferings/(courseoffering)/students/(enrollment)/update_final_grade');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'final_grade' => 90
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "enrollment",
    "id": 6000000,
    "course_offering_id": 21908,
    "catalog_course_id": 688,
    "student_id": 16,
    "status": "enrolled",
    "status_expires_at": null,
    "pending_reason": null,
    "final_comment": null,
    "final_grade": 90,
    "final_attendance": 0,
    "released_final_grade": 10,
    "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": "2026-07-25T16:24:06+00:00",
    "display_status": "Enrolled",
    "sandbox": true
}

Updates the final_grade attribute of an existing Enrollment object.

HTTP Request

PUT /courseofferings/(courseoffering)/students/(enrollment)/update_final_grade

Parameters

Name Required Data Type Description
final_grade Yes decimal
final_comment No text
final_attendance No decimal

Permissions

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

attendance

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance',
 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/courseofferings/(courseoffering)/students/(enrollment)/attendance"), 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/courseofferings/(courseoffering)/students/(enrollment)/attendance');
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": "course_attendance",
            "id": "6",
            "student_name": "Alice Admin",
            "status": "present",
            "note": null,
            "start_time": "2022-10-01 01:00:00",
            "end_time": "2022-10-01 02:30:00",
            "course_meeting_id": "3",
            "summary": "Main class",
            "counts_toward_attendance_hours": "1",
            "counts_toward_clinical_hours": "1",
            "attendance_hours": null,
            "clinical_hours": null,
            "beacon_id": null,
            "kiosk_id": null
        }
    ]
}

HTTP Request

GET /courseofferings/(courseoffering)/students/(enrollment)/attendance

Parameters

None

Permissions

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

finalize

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/finalize" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "finalize": 1
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/finalize',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :finalize => 1
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/finalize',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'finalize': 1
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/finalize"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  finalize = 1
});
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/courseofferings/(courseoffering)/students/(enrollment)/finalize');
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([
  'finalize' => 1
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "enrollment",
    "id": 6000000,
    "course_offering_id": 21908,
    "catalog_course_id": 688,
    "student_id": 16,
    "status": "enrolled",
    "status_expires_at": null,
    "pending_reason": null,
    "final_comment": null,
    "final_grade": 85,
    "final_attendance": 0,
    "released_final_grade": 85,
    "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": true,
    "finalized_at": "2026-07-25T16:24:13+00:00",
    "delivery_method_id": null,
    "automatically_removed_at": null,
    "automatically_removed_from": null,
    "added_at": null,
    "added_by_id": null,
    "updated_at": "2026-07-25T16:24:13+00:00",
    "display_status": "Enrolled",
    "sandbox": true
}

HTTP Request

GET /courseofferings/(courseoffering)/students/(enrollment)/finalize

Parameters

Name Required Data Type Description
finalize Yes bool To unfinalize an enrollment, set this parameter to false.

Permissions

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

create

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 POST
-d '{
    "course_offering_id": 21908
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/enrollments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :course_offering_id => 21908
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/enrollments',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'course_offering_id': 21908
 }
)
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.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  course_offering_id = 21908
});
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, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'course_offering_id' => 21908
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "enrollment",
    "course_offering_id": 21908,
    "person_id": 12,
    "action": "Enrollment is being created."
}

Creates a new Enrollment object. Enrollments are created asyncronously, so you will not immediately get a CourseStudent object back.

HTTP Request

POST /people/(person)/enrollments

Parameters

Name Required Data Type Description
course_offering_id Yes int
status No enum (enrolled, auditor, waiting) Default is enrolled
status_date No date Default is today
catalog_course_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.

show (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/enrollments/(enrollment)" \
-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/(enrollment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/enrollments/(enrollment)',
 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/(enrollment)"), 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/(enrollment)');
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": "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
}

Retrieves a specific Enrollment object.

HTTP Request

GET /people/(person)/enrollments/(enrollment)

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)/enrollments/(enrollment)" \
-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)/enrollments/(enrollment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/enrollments/(enrollment)',
 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/(enrollment)"), 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)/enrollments/(enrollment)');
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": "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
}

Updates an existing Enrollment object.

HTTP Request

PUT /people/(person)/enrollments/(enrollment)

Parameters

Name Required Data Type Description
status No enum (pending, enrolled, pending_auditor, auditor, withdrawn, incomplete, deleted, waiting)
status_date No date

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.

delete

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/enrollments/(enrollment)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/enrollments/(enrollment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/enrollments/(enrollment)',
 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/(enrollment)"), Method.Delete);
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/(enrollment)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "enrollment",
    "id": 6000001,
    "course_offering_id": 21909,
    "person_id": 16,
    "action": "Enrollment is being updated."
}

Deletes an existing Enrollment object.

HTTP Request

DELETE /people/(person)/enrollments/(enrollment)

Parameters

No additional parameters are needed beyond the ID of the object to delete that appears in the URL.

Permissions

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