NAV
shell ruby python csharp php

StudentProgram

The StudentProgram object

The StudentProgram object looks like this in JSON:

{
    "object": "student_program",
    "id": 5,
    "student_id": 12,
    "program_id": 2,
    "started_on": "2004-10-20",
    "entrance_term_id": null,
    "exit_date": null,
    "exit_reason_id": null,
    "education_level_id": null,
    "enrollment_status": "automatic",
    "first_time": false,
    "most_recent": true,
    "transfer_student": false,
    "name": "Certificate",
    "units": "credits",
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id Yes int
program_id Yes int
started_on No date
entrance_term_id No int
exit_date No date
exit_reason_id No int
education_level_id No int
enrollment_status Yes enum (automatic, full_time, three_quarter_time, half_time, less_than_half_time)
first_time Yes bool
most_recent Yes bool
transfer_student Yes bool
name No text
units No text
added_at No datetime
added_by_id No int
sandbox No bool

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/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/people/(person)/programs',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/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/people/(person)/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/people/(person)/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": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "student_program",
            "id": 5,
            "student_id": 12,
            "program_id": 2,
            "started_on": "2004-10-20",
            "entrance_term_id": null,
            "exit_date": null,
            "exit_reason_id": null,
            "education_level_id": null,
            "enrollment_status": "automatic",
            "first_time": false,
            "most_recent": true,
            "transfer_student": true,
            "name": "Certificate",
            "units": "credits",
            "program": {
                "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"
            },
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all StudentProgram objects tied to a specific Person.

HTTP Request

GET /people/(person)/programs

Parameters

None

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)/programs" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "program_id": 1,
    "started_on": "2021-09-30"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/programs',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :program_id => 1,
  :started_on => '2021-09-30'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/programs',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'program_id': 1,
  'started_on': '2021-09-30'
 }
)
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)/programs"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  program_id = 1,
  started_on = "2021-09-30"
});
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)/programs');
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([
  'program_id' => 1,
  'started_on' => '2021-09-30'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "student_program",
    "id": 6,
    "student_id": 12,
    "program_id": 1,
    "started_on": "2021-09-30",
    "entrance_term_id": null,
    "exit_date": null,
    "exit_reason_id": null,
    "education_level_id": null,
    "enrollment_status": "automatic",
    "first_time": false,
    "most_recent": false,
    "transfer_student": false,
    "added_at": "2026-07-25T16:24:11+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new StudentProgram object.

HTTP Request

POST /people/(person)/programs

Parameters

Name Required Data Type Description
program_id Yes int
started_on Yes date
entrance_term_id No int
education_level_id No int
enrollment_status No enum (automatic, full_time, three_quarter_time, half_time, less_than_half_time)
is_transfer_student No bool

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)/programs/(studentprogram)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "status": "active"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/programs/(studentprogram)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/programs/(studentprogram)',
 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)/programs/(studentprogram)"), 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)/programs/(studentprogram)');
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_program",
    "id": 3,
    "student_id": 16,
    "program_id": 1,
    "started_on": "2003-10-20",
    "entrance_term_id": null,
    "exit_date": null,
    "exit_reason_id": null,
    "education_level_id": null,
    "enrollment_status": "automatic",
    "first_time": false,
    "most_recent": true,
    "transfer_student": false,
    "name": "Undergraduate",
    "units": "credits",
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates an existing StudentProgram object.

HTTP Request

PUT /people/(person)/programs/(studentprogram)

Parameters

Name Required Data Type Description
status No enum
started_on No date
entrance_term_id No int
education_level_id No int
enrollment_status No enum (automatic, full_time, three_quarter_time, half_time, less_than_half_time)
is_transfer_student No bool
exit_date No date
exit_reason_id No int

Permissions

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

delete

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/programs/(studentprogram)" \
-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)/programs/(studentprogram)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/programs/(studentprogram)',
 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)/programs/(studentprogram)"), 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)/programs/(studentprogram)');
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": "student_program",
    "id": 4,
    "deleted": true
}

Deletes an existing StudentProgram object.

HTTP Request

DELETE /people/(person)/programs/(studentprogram)

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: