NAV
shell ruby python csharp php

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

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:

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

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:

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.