CourseOffering
The CourseOffering object
The CourseOffering object looks like this in JSON:
{
"object": "course_offering",
"id": 21908,
"academic_term_id": 4,
"campus_id": null,
"finalized": false,
"finalized_at": null,
"max_enrolled": null,
"max_auditors": null,
"roster_visibility": true,
"start_date": "2022-05-20",
"end_date": "2022-10-08",
"add_drop_time": null,
"published": true,
"open_to_students_date": null,
"closed_to_students_date": null,
"faculty_can_manage_roster": false,
"faculty_can_override_enrollment": false,
"students_can_add_discussions": true,
"disable_student_bulletin_board_posts": false,
"allow_auditor_assignments": false,
"allow_auditor_attendance": false,
"allow_auditor_evaluations": false,
"waiting_list_management": "automatic",
"image_file_id": null,
"show_progress_to_students": false,
"catalog_courses": [
{
"object": "catalog_course",
"id": 1,
"course_offering_id": 21908,
"catalog_course_id": 688,
"primary": true,
"abbrv": "LAT101",
"name": "Beginning Latin I",
"description": null,
"section": "1",
"credits": 2,
"hours": 2,
"attendance_hours": 0,
"clinical_hours": 0,
"affects_standing": true,
"affects_full_time_status": true,
"pass_fail": false,
"pass_affects_gpa": true,
"fail_affects_gpa": true,
"pass_fail_pass_affects_gpa": true,
"pass_fail_fail_affects_gpa": true,
"fulfills_program_requirements": true,
"minimum_attendance": null,
"hide_self_register": false,
"self_enroll": "yes",
"self_audit": true,
"delivery_methods": [
{
"object": "course_delivery_method",
"id": 5,
"name": "Hybrid Online",
"distance_education": false,
"status": "active",
"primary": 1,
"added_at": null,
"added_by_id": null
}
],
"added_at": null,
"added_by_id": null
}
],
"sandbox": true
}
| Attribute | Required | Data Type |
|---|---|---|
| id | Yes | int |
| academic_term_id | Yes | int |
| campus_id | Yes | int |
| finalized | Yes | bool |
| finalized_at | No | datetime |
| max_enrolled | No | int |
| max_auditors | No | int |
| roster_visibility | Yes | bool |
| start_date | No | date |
| end_date | No | date |
| add_drop_time | No | datetime |
| published | Yes | bool |
| open_to_students_date | No | date |
| closed_to_students_date | No | date |
| faculty_can_manage_roster | Yes | bool |
| faculty_can_override_enrollment | Yes | bool |
| students_can_add_discussions | Yes | bool |
| disable_student_bulletin_board_posts | Yes | bool |
| allow_auditor_assignments | Yes | bool |
| allow_auditor_attendance | Yes | bool |
| allow_auditor_evaluations | Yes | bool |
| waiting_list_management | Yes | enum (automatic, manual, none) |
| image_file_id | No | int |
| show_progress_to_students | No | bool |
| catalog_courses | No | Array of CatalogCourse objects |
| sandbox | No | bool |
index
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/courseofferings" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
-d '{
"academic_term_id": 8,
"filter": {"0":{"logic":"ALL","fields":[{"name":"enrolled","value":{"type":"RANGE","start":"1","end":"9"},"positive":1}]}}
}' \
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/courseofferings',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
body: {
:academic_term_id => 8
}.to_json
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/courseofferings',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
json={
'academic_term_id': 8
}
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/courseofferings"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
academic_term_id = 8
});
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');
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' => 8
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "list",
"count": 1,
"results": 1,
"results_per_page": 200,
"pages": 1,
"page": 1,
"offset": 0,
"has_more": false,
"data": [
{
"object": "course_offering",
"id": 21910,
"academic_term_id": 8,
"campus_id": null,
"finalized": false,
"finalized_at": null,
"max_enrolled": null,
"max_auditors": null,
"roster_visibility": true,
"start_date": "2022-05-20",
"end_date": "2022-10-08",
"add_drop_time": null,
"published": true,
"open_to_students_date": "2022-05-20",
"closed_to_students_date": "2022-10-08",
"faculty_can_manage_roster": false,
"faculty_can_override_enrollment": false,
"students_can_add_discussions": true,
"disable_student_bulletin_board_posts": false,
"allow_auditor_assignments": false,
"allow_auditor_attendance": false,
"allow_auditor_evaluations": false,
"waiting_list_management": "automatic",
"image_file_id": null,
"report_data": {
"course_offering_catalog_course_id": 40,
"name": "Beginning Latin I",
"description": "",
"catalog_course_id": 688,
"section": "1",
"credits": "2.00",
"hours": "2.00",
"pass_fail": 0,
"attendance_hours": "0.00",
"enable_clinical_hours": 0,
"clinical_hours": "0.00",
"fulfills_program_requirements": 1,
"affects_standing": 1,
"affects_full_time_status": 1,
"pass_affects_gpa": 1,
"fail_affects_gpa": 1,
"pass_fail_pass_affects_gpa": 1,
"pass_fail_fail_affects_gpa": 1,
"course_abbrv": "LAT101",
"department_name": "Undergraduate",
"campus_name": null,
"num_finalized_students": "0",
"num_students": "2",
"num_auditors": "0",
"num_incomplete": "0",
"num_withdrawn": "0",
"num_waiting": 1,
"primary_faculty_id": null,
"primary_faculty_display_name": null,
"primary_faculty_first_name": null,
"primary_faculty_last_name": null,
"other_faculty_ids": null,
"other_faculty": null,
"teaching_assistants": null,
"primary_faculty_email_address": null,
"other_faculty_email_addresses": null,
"teaching_assistant_email_addresses": null,
"add_drop_time_local": "2010-02-14 16:00:00",
"department_id": 1,
"program_name_ids": null,
"hide_self_register": 0,
"self_enroll": "YES",
"self_audit": 1,
"course_books": null,
"course_links": null,
"delivery_method_ids": null,
"delivery_method_names": null,
"primary_delivery_method_id": null,
"primary_delivery_method_name": null,
"has_course_evaluation": 0,
"num_course_evaluation_completions": "0",
"row_id": 40
},
"show_progress_to_students": false,
"catalog_courses": [
{
"object": "catalog_course",
"id": 40,
"course_offering_id": 21910,
"catalog_course_id": 688,
"primary": true,
"abbrv": "LAT101",
"name": "Beginning Latin I",
"description": null,
"section": "1",
"credits": 2,
"hours": 2,
"attendance_hours": 0,
"clinical_hours": 0,
"affects_standing": true,
"affects_full_time_status": true,
"pass_fail": false,
"pass_affects_gpa": true,
"fail_affects_gpa": true,
"pass_fail_pass_affects_gpa": true,
"pass_fail_fail_affects_gpa": true,
"fulfills_program_requirements": true,
"minimum_attendance": null,
"hide_self_register": false,
"self_enroll": "yes",
"self_audit": true,
"delivery_methods": [],
"added_at": null,
"added_by_id": null
}
]
}
],
"sandbox": true
}
Retrieves all CourseOffering objects that match given filter conditions.
HTTP Request
GET /courseofferings
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| academic_term_id | Yes | int | |
| 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
- academic_term
- campus
- faculty
- schedule
- alternate_names
- supplies
- books
- teachers
- waiting_list
- grades
- meetings
- catalog_courses
Filter Condition Parameters
These conditions can be used to narrow the results returned.
| Name | Type |
|---|---|
| auditors | integer |
| enrolled | integer |
| incomplete | integer |
| waiting | integer |
| withdrawn | integer |
| campus | object id |
| course_group | course_group |
| delivery_method | object id |
| department | object id |
| finalized | bool |
| instructor | object_id |
| max_auditors | enrollment |
| max_enrolled | enrollment |
| pass_fail | bool |
| program | object id |
| published | bool |
| section | alphanumeric |
| self_audit | bool |
| self_enroll | choice |
| show_self_register | bool |
Permissions
One of the following roles is required to call this method:
- Academic Auditor
- Academic Admin
- Registrar
show
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)" \
-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)',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)',
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)"), 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)');
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": "course_offering",
"id": 21908,
"academic_term_id": 4,
"campus_id": null,
"finalized": false,
"finalized_at": null,
"max_enrolled": null,
"max_auditors": null,
"roster_visibility": true,
"start_date": "2022-05-20",
"end_date": "2022-10-08",
"add_drop_time": null,
"published": true,
"open_to_students_date": null,
"closed_to_students_date": null,
"faculty_can_manage_roster": false,
"faculty_can_override_enrollment": false,
"students_can_add_discussions": true,
"disable_student_bulletin_board_posts": false,
"allow_auditor_assignments": false,
"allow_auditor_attendance": false,
"allow_auditor_evaluations": false,
"waiting_list_management": "automatic",
"image_file_id": null,
"show_progress_to_students": false,
"catalog_courses": [
{
"object": "catalog_course",
"id": 1,
"course_offering_id": 21908,
"catalog_course_id": 688,
"primary": true,
"abbrv": "LAT101",
"name": "Beginning Latin I",
"description": null,
"section": "1",
"credits": 2,
"hours": 2,
"attendance_hours": 0,
"clinical_hours": 0,
"affects_standing": true,
"affects_full_time_status": true,
"pass_fail": false,
"pass_affects_gpa": true,
"fail_affects_gpa": true,
"pass_fail_pass_affects_gpa": true,
"pass_fail_fail_affects_gpa": true,
"fulfills_program_requirements": true,
"minimum_attendance": null,
"hide_self_register": false,
"self_enroll": "yes",
"self_audit": true,
"delivery_methods": [
{
"object": "course_delivery_method",
"id": 5,
"name": "Hybrid Online",
"distance_education": false,
"status": "active",
"primary": 1,
"added_at": null,
"added_by_id": null
}
],
"added_at": null,
"added_by_id": null
}
],
"sandbox": true
}
Retrieves a specific CourseOffering object.
HTTP Request
GET /courseofferings/(courseoffering)
Parameters
No additional parameters are needed beyond the ID of the object being requested that appears in the URL.
Expandable Properties
- academic_term
- campus
- faculty
- schedule
- alternate_names
- supplies
- books
- teachers
- waiting_list
- grades
- meetings
- catalog_courses
Permissions
Any role may call this method.
calendar
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/calendar" \
-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)/calendar',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/calendar',
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)/calendar"), 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)/calendar');
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": 30,
"results": 30,
"results_per_page": null,
"pages": 1,
"page": 1,
"offset": 0,
"has_more": false,
"data": [
{
"object": "course_event",
"event_id": "1",
"start": "2022-08-01 06:00:00",
"end": "2022-08-01 07:00:00",
"all_day": "0",
"name": "BR101: Main Class",
"summary": "BR101: Main Class",
"description": "",
"rfrequency": "WEEKLY",
"rinterval": "1",
"rcount": "0",
"rskips": "",
"runtil": "12\/31\/2022",
"rbyday": "MO,WE,FR",
"recurrence": "2022-08-01",
"busy": "1",
"room_id": "0",
"location": "",
"room_status": "NONE",
"is_closure": "0",
"url": null,
"calendar_name": "",
"owner_type": "INSTANCE",
"owner_id": 21908
}
]
}
HTTP Request
GET /courseofferings/(courseoffering)/calendar
Parameters
None
Permissions
Any role may call this method.
finalize
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/finalize" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X POST
require 'httparty'
response = HTTParty.post(
'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/finalize',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.post(
'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/finalize',
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)/finalize"), Method.Post);
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)/finalize');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "course_offering",
"id": 21908,
"academic_term_id": 4,
"campus_id": null,
"finalized": true,
"finalized_at": "2026-07-25T16:24:15+00:00",
"max_enrolled": null,
"max_auditors": null,
"roster_visibility": true,
"start_date": "2022-05-20",
"end_date": "2022-10-08",
"add_drop_time": null,
"published": true,
"open_to_students_date": null,
"closed_to_students_date": null,
"faculty_can_manage_roster": false,
"faculty_can_override_enrollment": false,
"students_can_add_discussions": true,
"disable_student_bulletin_board_posts": false,
"allow_auditor_assignments": false,
"allow_auditor_attendance": false,
"allow_auditor_evaluations": false,
"waiting_list_management": "automatic",
"image_file_id": null,
"show_progress_to_students": false,
"catalog_courses": [
{
"object": "catalog_course",
"id": 1,
"course_offering_id": 21908,
"catalog_course_id": 688,
"primary": true,
"abbrv": "LAT101",
"name": "Beginning Latin I",
"description": null,
"section": "1",
"credits": 2,
"hours": 2,
"attendance_hours": 0,
"clinical_hours": 0,
"affects_standing": true,
"affects_full_time_status": true,
"pass_fail": false,
"pass_affects_gpa": true,
"fail_affects_gpa": true,
"pass_fail_pass_affects_gpa": true,
"pass_fail_fail_affects_gpa": true,
"fulfills_program_requirements": true,
"minimum_attendance": null,
"hide_self_register": false,
"self_enroll": "yes",
"self_audit": true,
"delivery_methods": [
{
"object": "course_delivery_method",
"id": 5,
"name": "Hybrid Online",
"distance_education": false,
"status": "active",
"primary": 1,
"added_at": null,
"added_by_id": null
}
],
"added_at": null,
"added_by_id": null
}
],
"sandbox": true
}
HTTP Request
POST /courseofferings/(courseoffering)/finalize
Parameters
None
Permissions
One of the following roles is required to call this method:
- Academic Admin
- Registrar
syllabus
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/syllabus" \
-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)/syllabus',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/syllabus',
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)/syllabus"), 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)/syllabus');
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": "syllabus",
"id": 1,
"course_offering_catalog_course_id": 1,
"content": null,
"file_id": 1,
"draft": false,
"added_at": "2022-07-19T17:00:55+00:00",
"added_by_id": 10,
"updated_at": "2022-07-19T17:00:55+00:00",
"updated_by_id": 10,
"sandbox": true
}
HTTP Request
GET /courseofferings/(courseoffering)/syllabus
Parameters
None
Permissions
Any role may call this method.