NAV
shell ruby python csharp php

Introduction

Welcome to the documentation site for the Populi API version 2.0.

This is a modern REST API, allowing you to integrate most of the data in your school's Populi instance with other outside services and your own custom software. The data object format shown here is also used by webhooks coming from Populi.

If you are looking for our old API, it is deprecated and will receive no further development (except for security updates), however you can still look up the legacy API reference.

If you need help, first check your API logs in Populi and look at the provided examples. The API channel on our Discord server is also a good place to ask help or see what other developers are doing. For specific questions, please email support@populi.co.

Authentication

Every request must contain an API Key token in the header.

# With shell, you can just pass the correct header with each request
curl "https://yourschool.populiweb.com/api2/object/method" \
  -H "Authorization: Bearer YOUR_POPULI_API_KEY"
require 'httparty'
response = HTTParty.get(
  'https://yourschool.populiweb.com/api2/object/method', 
  headers: {
    'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
  }.to_json
)
puts response.body
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/object/method"), 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/object/method');
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);

Make sure to replace YOUR_POPULI_API_KEY with your API key token.

Populi uses API Keys to control access to the API. Populi Account Administrators can create API Keys and give them to developers to use. API Keys are given roles just like users are, which determines what exactly they have access to. You can also specify which users are Log Viewers of a particular key. You should make your developers log viewers of the keys they use so they can debug their own calls. To manage your API Keys, go to Account & Settings; under the Account heading, click API and go to the Keys view.

API Keys can have up to two active tokens associated with them. Tokens will look something like: sk_j4U265CpkDEIXSAYwAVV1ryf2hiYo

Populi expects for an API Key token to be included in all API requests to the server in a header that looks like the following:

Authorization: Bearer sk_j4U265CpkDEIXSAYwAVV1ryf2hiYo

Request and Response Format

All API calls will be to your school's Populi instance URL + /api2/ + the route.

Example

GET https://yourschool.populiweb.com/api2/people

Some API calls include parameters (integers) in the URL path.

Example

POST https://yourschool.populiweb.com/api2/people/55782/phonenumbers/223950/update

Some calls require additional parameters. These will need to be included as JSON in the body of the request.

Example

POST https://yourschool.populiweb.com/api2/people/55782/phonenumbers/create
{
  "number": "555-893-0032",
  "type": "home"
}

Most parameters correspond to properties of the data object in question and should be at the top level of your JSON request. However, some calls also have "action parameters", that should be nested under a key named actions.

Example

POST https://yourschool.populiweb.com/api2/users/55782
{
  "username": "jimmy57",
  "actions": {
    "send_welcome_email": true
  }
}

All API calls will contain JSON in the body of the HTTP response. This response will always be either:

There are a tiny handful of exceptions to this convention.

Alternate Example, JSON in a URL parameter

POST https://yourschool.populiweb.com/api2/courseofferings?parameters={"academic_term_id":5557}

JSON in the request must be valid. Trailing commas are not permitted. The documentation provides example requests and responses for every call.

All responses include the "sandbox" property. This will be set to true for responses or webhooks originating from a validation or demo instance. It will be false for data or events from your live production instance.

Objects

Most API calls return a data object. A data object will always include its type name (e.g. "object": "person") and its unique numeric id (e.g. "id": "88932" ). The data object will also contain many other fields, some of which may contain additional nested objects.

Expandable Objects

Some calls are expandable. That means, in the request, you can specify that you want additional information included in the response. For example calling /people/123 will give you back basic information about the person with ID 123. However, calling /people/123 with "expand": ["addresses", "phone_numbers", "tags"] in the JSON request body will cause that person's addresses, phone numbers, and tags to be included in the response.

Lists and Paging

Some API calls return a list of many data objects. For example, a call to find everyone with the last name smith may return several hundred results. Most lists contain a maximum of 200 records per response. You can use the page parameter in your request to request additional results.

Errors

Example

{
  "object": "error",
  "code": 400,
  "type": "missing_parameter",
  "message": "Missing required parameter: academic_term_id",
  "sandbox": true
}

Some API calls will return an error object. The error object will contain additional details about what happened to assist with your debugging. Errors can result from many things such as requesting an object that doesn't exist, or supplying an invalid parameter, or trying to call a route your API key does not have permission to use.

Rate Limits

Populi enforces API rate-limits in order to stay responsive for all users. The rate limits are as follows:

If you pass your limit, Populi will return HTTP response code 429 (Too Many Requests).

Handling 429 response codes by exponentially backing off

If your app exceeds its rate limit, you should pause for just over a minute before sending additional requests (that way you'll be guaranteed that the timer has been re-set). However, it's much more efficient to design your app to stay below the limit and avoid 429 responses altogether! You could do this by placing a small delay between calls.

If your app is making API requests from multiple threads, you'll need to make sure all threads are backing off when receiving 429 responses.

Best practices to avoid rate limits

We recommend the following practices to reduce interruptions:

Example Code

Example code for each call is provided below for each route in shell (curl), Ruby, Python, C#.Net, and PHP. Some of the provided examples depend on popular libraries you may need to include in your project. Feel free to use whatever libraries or methods you want.

If you a power user, but lacking in development skills, parts of this API can be accessed via the Zapier service for building third party integrations. If you are a Zapier user, you may email support@populi.co and ask for a feature invite link.

If you are just getting started, we recommend making a few of your first calls using the Postman tool. Postman is a cross-platform API experimentation tool that provides an easy interface to see what is going on. We also have a Postman collection of example calls to get you started! After downloading it, go to the variable settings and replace the school_url with the URL of your own school's Populi instance. Under the Authorization settings you'll need to paste in a working API key of your own.

--- API Routes ---

timezone

Example code to call this method:

Example response:

{
    "object": "timezone",
    "timezone": "America\/Los_Angeles",
    "now": "2025-04-14T16:32:20+00:00"
}

Get the timezone of your school. All dates and times returned by the API will be in this timezone. Includes a representation of the current time.

HTTP Request

GET /timezone

Parameters

None

Permissions

Any role may call this method.

show example webhook payload

Example response:

{}

This method returns an example JSON payload of a Webhook coming from Populi triggered by a specified type of Automation. Replace :trigger_abbrv in the URL with the trigger type abbreviation (e.g. person_created).

HTTP Request

GET /webhooks/examples/:trigger_abbrv

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:

AcademicTerm

The AcademicTerm object

The AcademicTerm object looks like this in JSON:

{
    "object": "academic_term",
    "id": 8,
    "academic_year_id": 4,
    "name": "Spring 2010",
    "display_name": "Spring 2010 2009-2010",
    "start_date": "2010-02-01",
    "end_date": "2010-05-15",
    "grades_date": "2010-05-10",
    "add_drop_time": "2010-02-15T00:00:00+00:00",
    "enrollment_start_time": "2010-01-01T00:00:00+00:00",
    "non_standard": false,
    "type": "standard",
    "max_enrolled_credits": null,
    "max_enrolled_hours": null,
    "max_audit_credits": null,
    "max_audit_hours": null,
    "evaluations_available_from": null,
    "evaluations_available_to": null,
    "evaluations_lock_grades_at": null,
    "online_registration_delay_until": null,
    "online_registration_randomization_seconds": 0,
    "evaluations_lock_grades_until": null,
    "evaluations_available_to_faculty": null,
    "lms_sync": null,
    "external_id": null,
    "start_year": 2009,
    "end_year": 2010,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
academic_year_id Yes int
name Yes text (255)
display_name Yes text (200)
start_date Yes date
end_date Yes date
grades_date Yes date
add_drop_time Yes datetime
enrollment_start_time No datetime
non_standard Yes bool
type Yes enum (standard, non_standard, super)
max_enrolled_credits No decimal
max_enrolled_hours No decimal
max_audit_credits No decimal
max_audit_hours No decimal
evaluations_available_from No datetime
evaluations_available_to No datetime
evaluations_lock_grades_at No datetime
online_registration_delay_until No datetime
online_registration_randomization_seconds Yes int
evaluations_lock_grades_until No datetime
evaluations_available_to_faculty No enum (not_available, available_after_60_percent_completion, available_after_60_percent_completion_and_course_finalized)
lms_sync No enum (none, canvas)
external_id No text (100)
start_year No int
end_year No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicterms" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/academicterms',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms',
 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/academicterms"), 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/academicterms');
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": 8,
    "results": 8,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "academic_term",
            "id": 8,
            "academic_year_id": 4,
            "name": "Spring 2010",
            "display_name": "Spring 2010 2009-2010",
            "start_date": "2010-02-01",
            "end_date": "2010-05-15",
            "grades_date": "2010-05-10",
            "add_drop_time": "2010-02-15T00:00:00+00:00",
            "enrollment_start_time": "2010-01-01T00:00:00+00:00",
            "non_standard": false,
            "type": "standard",
            "max_enrolled_credits": null,
            "max_enrolled_hours": null,
            "max_audit_credits": null,
            "max_audit_hours": null,
            "evaluations_available_from": null,
            "evaluations_available_to": null,
            "evaluations_lock_grades_at": null,
            "online_registration_delay_until": null,
            "online_registration_randomization_seconds": 0,
            "evaluations_lock_grades_until": null,
            "evaluations_available_to_faculty": null,
            "lms_sync": null,
            "external_id": null,
            "start_year": 2009,
            "end_year": 2010,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all AcademicTerm objects.

HTTP Request

GET /academicterms

Parameters

None

Expandable Properties

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/academicterms/(academicterm)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)',
 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/academicterms/(academicterm)"), 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/academicterms/(academicterm)');
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": "academic_term",
    "id": 8,
    "academic_year_id": 4,
    "name": "Spring 2010",
    "display_name": "Spring 2010 2009-2010",
    "start_date": "2010-02-01",
    "end_date": "2010-05-15",
    "grades_date": "2010-05-10",
    "add_drop_time": "2010-02-15T00:00:00+00:00",
    "enrollment_start_time": "2010-01-01T00:00:00+00:00",
    "non_standard": false,
    "type": "standard",
    "max_enrolled_credits": null,
    "max_enrolled_hours": null,
    "max_audit_credits": null,
    "max_audit_hours": null,
    "evaluations_available_from": null,
    "evaluations_available_to": null,
    "evaluations_lock_grades_at": null,
    "online_registration_delay_until": null,
    "online_registration_randomization_seconds": 0,
    "evaluations_lock_grades_until": null,
    "evaluations_available_to_faculty": null,
    "lms_sync": null,
    "external_id": null,
    "start_year": 2009,
    "end_year": 2010,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific AcademicTerm object.

HTTP Request

GET /academicterms/(academicterm)

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:

academicprogress

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicterms/(academicterm)/academicprogress" \
-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/academicterms/(academicterm)/academicprogress',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)/academicprogress',
 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/academicterms/(academicterm)/academicprogress"), 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/academicterms/(academicterm)/academicprogress');
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": 0,
    "results": 0,
    "results_per_page": 200,
    "pages": 0,
    "page": 0,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Returns the equivalent of the Financial Aid Academic Progress Report.

HTTP Request

GET /academicterms/(academicterm)/academicprogress

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
student search
has_aid bool
sap choice
can_appeal bool
under_academic_discipline bool
program program
attendance choice
last_attendance date
term_gpa decimal
term_gpa_including_transfer decimal
cum_gpa decimal
cum_gpa_including_transfer decimal
cum_units_attempted_including_transfer decimal
cum_units_earned_including_transfer decimal
completion_percent integer
campus campus
classification object id
tag tag
custom_field custom

Permissions

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

billing

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicterms/(academicterm)/billing" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"total_charges","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)/billing',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)/billing',
 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/academicterms/(academicterm)/billing"), 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/academicterms/(academicterm)/billing');
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": 0,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "person",
            "id": 16,
            "first_name": "Abby",
            "last_name": "Admin",
            "middle_name": "",
            "prefix": null,
            "suffix": null,
            "preferred_name": null,
            "display_name": "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": null,
            "report_data": {
                "studentid": 16,
                "dummyid": "20220xx001",
                "enrollment_agreements_signed": "0",
                "enrollment_agreements_unsigned": "0",
                "tuition": "0.00",
                "fees": "0.00",
                "room_plan": "0.00",
                "meal_plan": "0.00",
                "bookstore": "0.00",
                "pending_and_invoices_total_charges": "0.00",
                "grants": "3644.90",
                "loans": "0.00",
                "total_aid": "3644.90",
                "schedule_names": null,
                "schedule_ids": null,
                "row_id": 16
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

Returns a variety of collected individual student billing information for a specified term.

HTTP Request

GET /academicterms/(academicterm)/billing

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
tuition_schedule object id
tuition decimal
fees_and_bookstore decimal
room_and_board decimal
total_charges decimal
expected_aid decimal
charges_less_expected_aid decimal
student_campus campus
invoice_posted_date date
term_amount_due decimal
enrollment_agreement_status enrollmentagreementstatus
tag tag
custom_field custom

Permissions

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

courseofferings

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicterms/(academicterm)/courseofferings" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "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/academicterms/(academicterm)/courseofferings',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)/courseofferings',
 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/academicterms/(academicterm)/courseofferings"), 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/academicterms/(academicterm)/courseofferings');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "course_offering",
            "id": 21910,
            "academic_term_id": 8,
            "campus_id": 0,
            "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",
            "course_evaluation_id": null,
            "evaluation_available_from": null,
            "evaluation_available_to": null,
            "evaluation_lock_grades_at": null,
            "evaluation_lock_grades_until": null,
            "evaluation_available_to_faculty": 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,
            "waiting_list_management": "automatic",
            "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
}

HTTP Request

GET /academicterms/(academicterm)/courseofferings

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
finalized bool
campus campus
section alphanumeric
instructor search
department object id
enrolled integer
auditors integer
incomplete integer
withdrawn integer
waiting integer
pass_fail bool
max_enrolled enrollment
max_auditors enrollment
delivery_method object id
published bool
program program
show_self_register bool
self_enroll choice
self_audit bool

Permissions

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

enrollments

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicterms/(academicterm)/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/academicterms/(academicterm)/enrollments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)/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/academicterms/(academicterm)/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/academicterms/(academicterm)/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": 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": "",
            "prefix": null,
            "suffix": null,
            "preferred_name": null,
            "display_name": "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": null,
            "report_data": {
                "student_person_id": 16,
                "student_name": "Abby Admin",
                "academic_term_id": 8,
                "academic_term_name": "Spring 2010 2009-2010",
                "catalog_course_abbrv": "LAT101",
                "course_offering_id": 21910,
                "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": "91.50",
                "enrollment_id": 6000002,
                "course_offering_student_program_id": null,
                "pass_fail": 0,
                "student_middle_name": "",
                "student_preferred_name": "",
                "academic_term_start_date": "2010-02-01",
                "visible_student_id": "20220xx001",
                "course_campus_id": null,
                "academic_term_end_date": "2010-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_21910"
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

HTTP Request

GET /academicterms/(academicterm)/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
student search
program program
academic_term academic_term
transcript_term academic_term
billing_term academic_term
course search
status course_student_status
include_dropped_students bool
include_deleted_students bool
include_waitlisted_students bool
grade decimal
letter text
added_at datetime
updated_at datetime
academic_year academic_year
catalog_course search
course_department object id
course_section alphanumeric
course_delivery_method object id
course_affects_standing bool
course_faculty faculty
course_campus campus
has_active_student_role has_active_student_role
students_campus campus
standing academicstanding
degree_seeking bool
degree_level choice
degree degree
specialization specialization
first_time bool
full_time bool
finalized bool
finalized_at datetime
enrolled_by search
enrollment_date date
status_date date
term_start_date date
term_end_date date
course_start_date date
course_end_date date
credits decimal
hours decimal
pass_fail bool
final_attendance decimal
last_attendance datetime
course_has_been_retaken bool
advisor advisor
automatically_removed_at datetime
automatically_removed_from enum
age integer
gender gender
race_ethnicity base_object id
tag tag
custom_field custom
pay_period_start_date date
pay_period_end_date date

Permissions

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

students

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicterms/(academicterm)/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/academicterms/(academicterm)/students',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)/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/academicterms/(academicterm)/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/academicterms/(academicterm)/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": "",
            "prefix": null,
            "suffix": null,
            "preferred_name": null,
            "display_name": "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": null,
            "report_data": {
                "degree_list": null,
                "specialization_list": null,
                "standing_name": null,
                "term_gpa": null,
                "cum_gpa": null,
                "term_units_attempted": null,
                "program_id": null,
                "program_name": null,
                "full_time": null,
                "cum_units_granted": null,
                "courses_mapped_elsewhere": 0,
                "row_id": "16_0"
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

HTTP Request

GET /academicterms/(academicterm)/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

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
program program
standing academicstanding
degree_seeking bool
degree_level choice
degree degree
specialization specialization
first_time bool
full_time bool
term_units decimal
term_units_granted decimal
term_gpa decimal
cum_units decimal
resident_cum_gpa decimal
total_cum_gpa decimal
total_transfer_credits decimal
region choice
race_ethnicity base_object id
gender gender
campus campus
tag tag
custom_field custom
lock_type locktype

Permissions

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

waitinglist

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicterms/(academicterm)/waitinglist" \
-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/academicterms/(academicterm)/waitinglist',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms/(academicterm)/waitinglist',
 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/academicterms/(academicterm)/waitinglist"), 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/academicterms/(academicterm)/waitinglist');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "person",
            "id": 16,
            "first_name": "Abby",
            "last_name": "Admin",
            "middle_name": "",
            "prefix": null,
            "suffix": null,
            "preferred_name": null,
            "display_name": "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": null,
            "report_data": {
                "waiting_list_added_at": "2022-10-11 17:08:57",
                "waiting_list_position": 2,
                "course_offering_id": 21910,
                "full_course_offering_name": "LAT101-1: Beginning Latin I",
                "max_enrolled": null,
                "num_enrolled_incomplete": 2,
                "openings": null,
                "row_id": "40_16"
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

HTTP Request

GET /academicterms/(academicterm)/waitinglist

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
course search
student search
position integer
added_at datetime
max_enrolled integer
enrolled integer
openings integer
catalog_course search
course_delivery_method object id
course_faculty faculty
finalized bool
credits decimal
hours decimal
pass_fail bool
course_campus campus
has_active_student_role has_active_student_role
students_campus campus
program program
standing academicstanding
degree_seeking bool
degree_level choice
degree degree
first_time bool
full_time bool
age integer
gender gender
race_ethnicity base_object id

Permissions

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

current

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicterms/current" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/academicterms/current',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicterms/current',
 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/academicterms/current"), 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/academicterms/current');
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": "academic_term",
    "id": 8,
    "academic_year_id": 4,
    "name": "Spring 2010",
    "display_name": "Spring 2010 2009-2010",
    "start_date": "2010-02-01",
    "end_date": "2010-05-15",
    "grades_date": "2010-05-10",
    "add_drop_time": "2010-02-15T00:00:00+00:00",
    "enrollment_start_time": "2010-01-01T00:00:00+00:00",
    "non_standard": false,
    "type": "standard",
    "max_enrolled_credits": null,
    "max_enrolled_hours": null,
    "max_audit_credits": null,
    "max_audit_hours": null,
    "evaluations_available_from": null,
    "evaluations_available_to": null,
    "evaluations_lock_grades_at": null,
    "online_registration_delay_until": null,
    "online_registration_randomization_seconds": 0,
    "evaluations_lock_grades_until": null,
    "evaluations_available_to_faculty": null,
    "lms_sync": null,
    "external_id": null,
    "start_year": 2009,
    "end_year": 2010,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Returns the current default term.

HTTP Request

GET /academicterms/current

Parameters

None

Expandable Properties

Permissions

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

AcademicTermPersonSettings

The AcademicTermPersonSettings object

The AcademicTermPersonSettings object looks like this in JSON:

{
    "object": "academic_term_person_settings",
    "id": 6,
    "academic_term_id": 75,
    "person_id": 13,
    "refund_policy_id": 2,
    "payment_plan_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
academic_term_id No int
person_id No int
refund_policy_id No int
payment_plan_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/termsettings" \
-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)/termsettings',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/termsettings',
 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)/termsettings"), 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)/termsettings');
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": "academic_term_person_settings",
            "id": 480,
            "academic_term_id": 4,
            "person_id": 12,
            "refund_policy_id": null,
            "payment_plan_id": null
        }
    ],
    "sandbox": true
}

Retrieves all AcademicTermPersonSettings objects tied to a specific Person.

HTTP Request

GET /people/(person)/termsettings

Parameters

None

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/people/(person)/termsettings/(academicterm)" \
-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)/termsettings/(academicterm)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/termsettings/(academicterm)',
 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)/termsettings/(academicterm)"), 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)/termsettings/(academicterm)');
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": "academic_term_person_settings",
    "id": 481,
    "academic_term_id": 8,
    "person_id": 12,
    "refund_policy_id": null,
    "payment_plan_id": null,
    "sandbox": true
}

Retrieves a specific AcademicTermPersonSettings object.

HTTP Request

GET /people/(person)/termsettings/(academicterm)

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:

AcademicYear

The AcademicYear object

The AcademicYear object looks like this in JSON:

{
    "object": "academic_year",
    "id": 4,
    "start_year": 2009,
    "end_year": 2010,
    "num_academic_terms": 2,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
start_year Yes int
end_year Yes int
num_academic_terms No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicyears" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/academicyears',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicyears',
 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/academicyears"), 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/academicyears');
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": [
        {
            "object": "academic_year",
            "id": 4,
            "start_year": 2009,
            "end_year": 2010,
            "num_academic_terms": 2
        }
    ],
    "sandbox": true
}

Retrieves all AcademicYear objects.

HTTP Request

GET /academicyears

Parameters

None

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/academicyears/(academicyear)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/academicyears/(academicyear)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicyears/(academicyear)',
 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/academicyears/(academicyear)"), 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/academicyears/(academicyear)');
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": "academic_year",
    "id": 4,
    "start_year": 2009,
    "end_year": 2010,
    "sandbox": true
}

Retrieves a specific AcademicYear object.

HTTP Request

GET /academicyears/(academicyear)

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:

current

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/academicyears/current" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/academicyears/current',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/academicyears/current',
 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/academicyears/current"), 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/academicyears/current');
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": "academic_year",
    "id": 4,
    "start_year": 2009,
    "end_year": 2010,
    "sandbox": true
}

HTTP Request

GET /academicyears/current

Parameters

None

Permissions

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

Account

The Account object

The Account object looks like this in JSON:

{
    "object": "account",
    "id": 3,
    "name": "Accounts Receivable",
    "account_number": "12345-8",
    "description": "Money you do not have, but might later.",
    "type": "asset",
    "currency": "USD",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (300)
account_number Yes text (50)
description Yes text (500)
type No enum (income, asset, expense, liability, equity)
currency No text (3)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/accounts" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/accounts',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/accounts',
 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/accounts"), 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/accounts');
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": 5,
    "results": 5,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "account",
            "id": 3,
            "name": "Accounts Receivable",
            "account_number": "12345-8",
            "description": "Money you do not have, but might later.",
            "type": "asset",
            "currency": "USD"
        }
    ],
    "sandbox": true
}

Retrieves all Account objects.

HTTP Request

GET /accounts

Parameters

None

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/accounts/(account)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/accounts/(account)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/accounts/(account)',
 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/accounts/(account)"), 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/accounts/(account)');
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": "account",
    "id": 3,
    "name": "Accounts Receivable",
    "account_number": "12345-8",
    "description": "Money you do not have, but might later.",
    "type": "asset",
    "currency": "USD",
    "sandbox": true
}

Retrieves a specific Account object.

HTTP Request

GET /accounts/(account)

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:

Address

The Address object

The Address object looks like this in JSON:

{
    "object": "address",
    "id": 777,
    "owner_id": 1,
    "owner_type": "person",
    "street": "6600 Park Crest Court",
    "city": "Lincoln",
    "state": "NE",
    "postal": "68506",
    "country": "US",
    "type": "home",
    "primary": true,
    "old": false,
    "public": true,
    "synced_from": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
owner_id Yes int
owner_type Yes enum (person, organization, inquiry, application)
street Yes text (255)
city Yes text (50)
state Yes text (50)
postal Yes text (50)
country Yes text (50)
type Yes enum (home, work, other, main, billing, shipping, school)
primary Yes bool
old Yes bool
public Yes bool
synced_from Yes int
import_id No int
added_at No datetime
added_by_id No int
sandbox No --

index (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/addresses" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses',
 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/organizations/(organization)/addresses"), 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/organizations/(organization)/addresses');
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": "address",
            "id": 800,
            "owner_id": 1,
            "owner_type": "organization",
            "street": "123 Street",
            "city": "Seattle",
            "state": "WA",
            "postal": "89000",
            "country": "US",
            "type": "other",
            "primary": false,
            "old": false,
            "public": true,
            "synced_from": null,
            "import_id": null,
            "added_at": null,
            "added_by_id": 20
        }
    ],
    "sandbox": true
}

Retrieves all Address objects tied to a specific Organization.

HTTP Request

GET /organizations/(organization)/addresses

Parameters

None

Permissions

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

create (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/addresses" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "street": "444 Oak Ave",
    "city": "Cityburg",
    "type": "main"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :street => '444 Oak Ave',
  :city => 'Cityburg',
  :type => 'main'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'street': '444 Oak Ave',
  'city': 'Cityburg',
  'type': 'main'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/addresses"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  street = "444 Oak Ave",
  city = "Cityburg",
  type = "main"
});
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/organizations/(organization)/addresses');
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([
  'street' => '444 Oak Ave',
  'city' => 'Cityburg',
  'type' => 'main'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "address",
    "id": 804,
    "owner_id": 1,
    "owner_type": "organization",
    "street": "444 Oak Ave",
    "city": "Cityburg",
    "state": null,
    "postal": null,
    "country": null,
    "type": "main",
    "primary": false,
    "old": false,
    "public": false,
    "synced_from": null,
    "import_id": null,
    "added_at": "2025-04-14T23:32:15+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new Address object.

HTTP Request

POST /organizations/(organization)/addresses

Parameters

Name Required Data Type Description
street Yes text (255)
city Yes text (50)
state No text (50)
postal No text (50)
country No text (50)
type Yes enum (home, work, other, main, billing, shipping, school)

Permissions

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

show (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)',
 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/organizations/(organization)/addresses/(address)"), 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/organizations/(organization)/addresses/(address)');
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": "address",
    "id": 777,
    "owner_id": 1,
    "owner_type": "person",
    "street": "6600 Park Crest Court",
    "city": "Lincoln",
    "state": "NE",
    "postal": "68506",
    "country": "US",
    "type": "home",
    "primary": true,
    "old": false,
    "public": true,
    "synced_from": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": 1,
    "sandbox": true
}

Retrieves a specific Address object.

HTTP Request

GET /organizations/(organization)/addresses/(address)

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 (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "street": "555 Maple Street",
    "city": "Townville",
    "type": "main"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)',
 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/organizations/(organization)/addresses/(address)"), 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/organizations/(organization)/addresses/(address)');
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": "address",
    "id": 800,
    "owner_id": 1,
    "owner_type": "organization",
    "street": "555 Maple Street",
    "city": "Townville",
    "state": "WA",
    "postal": "89000",
    "country": "US",
    "type": "main",
    "primary": true,
    "old": false,
    "public": true,
    "synced_from": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": 20,
    "sandbox": true
}

Updates an existing Address object.

HTTP Request

PUT /organizations/(organization)/addresses/(address)

Parameters

Name Required Data Type Description
street No text (255)
city No text (50)
state No text (50)
postal No text (50)
country No text (50)
type No enum (home, work, other, main, billing, shipping, school)
is_primary No bool
old No bool
public No bool

Permissions

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

delete (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/addresses/(address)',
 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/organizations/(organization)/addresses/(address)"), 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/organizations/(organization)/addresses/(address)');
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": "address",
    "id": 800,
    "deleted": true
}

Deletes an existing Address object.

HTTP Request

DELETE /organizations/(organization)/addresses/(address)

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:

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/addresses" \
-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)/addresses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/addresses',
 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)/addresses"), 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)/addresses');
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": "address",
            "id": 801,
            "owner_id": 12,
            "owner_type": "person",
            "street": "123 Street",
            "city": "Seattle",
            "state": "WA",
            "postal": "89000",
            "country": "US",
            "type": "other",
            "primary": false,
            "old": false,
            "public": true,
            "synced_from": null,
            "import_id": null,
            "added_at": null,
            "added_by_id": 20
        }
    ],
    "sandbox": true
}

Retrieves all Address objects tied to a specific Person.

HTTP Request

GET /people/(person)/addresses

Parameters

None

Permissions

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

create (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/addresses" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "street": "222 Ash Court",
    "city": "Prairie City",
    "type": "home"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/addresses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :street => '222 Ash Court',
  :city => 'Prairie City',
  :type => 'home'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/addresses',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'street': '222 Ash Court',
  'city': 'Prairie City',
  'type': 'home'
 }
)
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)/addresses"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  street = "222 Ash Court",
  city = "Prairie City",
  type = "home"
});
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)/addresses');
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([
  'street' => '222 Ash Court',
  'city' => 'Prairie City',
  'type' => 'home'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "address",
    "id": 805,
    "owner_id": 12,
    "owner_type": "person",
    "street": "222 Ash Court",
    "city": "Prairie City",
    "state": null,
    "postal": null,
    "country": null,
    "type": "home",
    "primary": false,
    "old": false,
    "public": false,
    "synced_from": null,
    "import_id": null,
    "added_at": "2025-04-14T23:32:17+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new Address object.

HTTP Request

POST /people/(person)/addresses

Parameters

Name Required Data Type Description
street Yes text (255)
city Yes text (50)
state No text (50)
postal No text (50)
country No text (50)
type Yes enum (home, work, other, main, billing, shipping, school)

Permissions

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

show (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/addresses/(address)" \
-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)/addresses/(address)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/addresses/(address)',
 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)/addresses/(address)"), 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)/addresses/(address)');
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": "address",
    "id": 801,
    "owner_id": 12,
    "owner_type": "person",
    "street": "123 Street",
    "city": "Seattle",
    "state": "WA",
    "postal": "89000",
    "country": "US",
    "type": "other",
    "primary": false,
    "old": false,
    "public": true,
    "synced_from": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": 20,
    "sandbox": true
}

Retrieves a specific Address object.

HTTP Request

GET /people/(person)/addresses/(address)

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 (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/addresses/(address)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "street": "333 Fir Street",
    "city": "Placeville",
    "type": "home"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/addresses/(address)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/addresses/(address)',
 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)/addresses/(address)"), 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)/addresses/(address)');
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": "address",
    "id": 801,
    "owner_id": 12,
    "owner_type": "person",
    "street": "333 Fir Street",
    "city": "Placeville",
    "state": "WA",
    "postal": "89000",
    "country": "US",
    "type": "home",
    "primary": true,
    "old": false,
    "public": true,
    "synced_from": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": 20,
    "sandbox": true
}

Updates an existing Address object.

HTTP Request

PUT /people/(person)/addresses/(address)

Parameters

Name Required Data Type Description
street No text (255)
city No text (50)
state No text (50)
postal No text (50)
country No text (50)
type No enum (home, work, other, main, billing, shipping, school)
is_primary No bool
old No bool
public No bool

Permissions

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

delete (person)

Example code to call this method:

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

Deletes an existing Address object.

HTTP Request

DELETE /people/(person)/addresses/(address)

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:

Advisee

The Advisee object

The Advisee object looks like this in JSON:

{
    "object": "student",
    "id": 1,
    "entrance_term_id": 8,
    "exit_date": null,
    "exit_reason": null,
    "grades_withheld": false,
    "meal_plan_id": 0,
    "room_plan_id": 0,
    "receives_1098t": true,
    "proctored": false,
    "first_time": false,
    "max_enrolled_credits": null,
    "max_enrolled_hours": null,
    "max_audit_credits": null,
    "max_audit_hours": null,
    "student_type_campus": "enroll_audit",
    "student_type_online": "enroll_audit",
    "housing": null,
    "advisor_ids": null,
    "visible_student_id": "20020xx000",
    "sandbox": true
}
Attribute Required Data Type
id No int
entrance_term_id Yes int
exit_date Yes date
exit_reason Yes int
grades_withheld Yes bool
meal_plan_id No int
room_plan_id No int
receives_1098t Yes bool
proctored No bool
first_time Yes bool
max_enrolled_credits No decimal
max_enrolled_hours No decimal
max_audit_credits No decimal
max_audit_hours No decimal
student_type_campus Yes enum (enroll_audit, enroll, audit, none)
student_type_online Yes enum (enroll_audit, enroll, audit, none)
housing No enum (on_campus, with_parent, off_campus, on_campus_with_dependents)
advisor_ids No Array of Person IDs
visible_student_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/advisees" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"last_name","value":{"type":"CONTAINS","text":"blah"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/advisees',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/advisees',
 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/advisees"), 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/advisees');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "student",
            "id": 16,
            "entrance_term_id": 8,
            "exit_date": null,
            "exit_reason": null,
            "grades_withheld": false,
            "meal_plan_id": 0,
            "room_plan_id": 0,
            "receives_1098t": true,
            "proctored": false,
            "first_time": false,
            "max_enrolled_credits": null,
            "max_enrolled_hours": null,
            "max_audit_credits": null,
            "max_audit_hours": null,
            "student_type_campus": "enroll_audit",
            "student_type_online": "enroll_audit",
            "housing": null,
            "visible_student_id": "20220xx001",
            "report_data": {
                "advisor_names": "Financial Admin",
                "advisor_types": "NOT_PRIMARY",
                "advisor_ids": "17",
                "raw_advisor_names": "Financial Admin (Advisor)",
                "current_user_is_advisor": null,
                "firstname": "Abby",
                "preferred_name": "",
                "lastname": "Admin",
                "image_id": 0,
                "last_attendance_date": null,
                "registration_locked": 0,
                "registration_locks": null,
                "discipline": null,
                "color": "YELLOW",
                "entrance_term_name": "Spring 2010 2009-2010",
                "row_id": 16
            }
        }
    ],
    "sandbox": true
}

Retrieves all Advisee objects that match given filter conditions.

HTTP Request

GET /advisees

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
first_name text
preferred_name text
last_name text
program program
degree degree
specialization specialization
course_term academic_term
entrance_term object id
flag choice
last_attendance DATE
discipline object id
registration_lock bool
student_campus campus
cum_gpa academic_progress_cache
cum_units academic_progress_cache
custom_field custom

Permissions

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

AidApplication

The AidApplication object

The AidApplication object looks like this in JSON:

{
    "object": "aid_application",
    "id": 6,
    "student_id": 35,
    "aid_year_id": 3,
    "aid_classification_id": 6,
    "auto_expand_award_dates": false,
    "parental_data_missing": false,
    "dependency": "independent",
    "enrollment": "full_time",
    "enrollment_intensity": false,
    "program_months": 9,
    "year_coa": 10000,
    "program_coa": 10000,
    "year_efc": 10000,
    "program_efc": 10000,
    "institutional_sai": 9000,
    "verification": "selected_by_college",
    "verification_status": "in_progress",
    "verification_group": null,
    "verification_exempt_reason": null,
    "status": "in_progress",
    "assigned_to": 2921,
    "student_agi": 0,
    "parents_agi": 0,
    "auto_zero_efc": false,
    "fisap_total_income": null,
    "legal_residence_state": null,
    "housing": null,
    "award_letter_layout_id": null,
    "last_isir_id": null,
    "last_isir_transaction_date": null,
    "cod_student_level_code": null,
    "cod_academic_year_start_date": null,
    "cod_academic_year_end_date": null,
    "cod_degree_id": null,
    "cod_program_length": null,
    "cod_program_length_units": null,
    "cod_program_credential_level": null,
    "cod_special_program": null,
    "cod_weeks_programs_academic_year": null,
    "cod_default_overpay_code": null,
    "cod_student_eligibility_code": null,
    "cod_ability_to_benefit_administrator_code": null,
    "cod_ability_to_benefit_test_code": null,
    "cod_ability_to_benefit_state_code": null,
    "cod_ability_to_benefit_date": null,
    "cod_program_cip_code": null,
    "cod_additional_unsubsidized_eligibility": false,
    "cod_additional_pell_eligibility": false,
    "cod_campus_id": null,
    "updated_on": null,
    "added_at": "2011-05-04T23:15:23+00:00",
    "added_by_id": 2921,
    "updated_at": null,
    "updated_by_id": 2011,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id No int
aid_year_id No int
aid_classification_id No int
auto_expand_award_dates No bool
parental_data_missing No bool
dependency No enum (dependent, independent)
enrollment Yes enum (full_time, three_quarter_time, half_time, less_than_half_time)
enrollment_intensity No bool
program_months No int
year_coa Yes decimal
program_coa Yes decimal
year_efc Yes decimal
program_efc Yes decimal
institutional_sai No decimal
verification No enum (selected_by_college, selected_by_government)
verification_status No enum (in_progress, completed, rejected, exempted)
verification_group No text (200)
verification_exempt_reason No text (1000)
status Yes enum (setup, in_progress, completed, needs_attention, canceled, deleted)
assigned_to No int
student_agi Yes decimal
parents_agi Yes decimal
auto_zero_efc No bool
fisap_total_income No decimal
legal_residence_state No text (3)
housing No enum (on_campus, with_parent, off_campus, on_campus_with_dependents)
award_letter_layout_id No int
last_isir_id No int
last_isir_transaction_date No date
cod_student_level_code No int
cod_academic_year_start_date No date
cod_academic_year_end_date No date
cod_degree_id No int
cod_program_length No decimal
cod_program_length_units No enum (years, months, weeks)
cod_program_credential_level No int
cod_special_program No char
cod_weeks_programs_academic_year No decimal
cod_default_overpay_code No char
cod_student_eligibility_code No char
cod_ability_to_benefit_administrator_code No char
cod_ability_to_benefit_test_code No char
cod_ability_to_benefit_state_code No char
cod_ability_to_benefit_date No date
cod_program_cip_code No text (20)
cod_additional_unsubsidized_eligibility No bool
cod_additional_pell_eligibility No bool
cod_campus_id No int
updated_on No date
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aidapplications" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"assigned_to","value":1,"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidapplications',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidapplications',
 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/aidapplications"), 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/aidapplications');
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": 0,
    "results": 0,
    "results_per_page": 200,
    "pages": 0,
    "page": 0,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Retrieves all AidApplication objects that match given filter conditions.

HTTP Request

GET /aidapplications

Parameters

Name Required Data Type Description
aid_year_id No 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
student search
status enum
verification_status choice
dependency enum
assigned_to aidofficer
updated datetime
classification object id
coa decimal
efc decimal
need decimal
completion integer
campus campus
program program
aid_authorization aidauthorization
has_not_set_aid_authorization aidauthorizationunset
tag tag
custom_field custom
has_active_student_role has_active_student_role
isir_imported_at datetime

Permissions

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

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidapplications" \
-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)/aidapplications',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidapplications',
 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)/aidapplications"), 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)/aidapplications');
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": "aid_application",
            "id": 6,
            "student_id": 35,
            "aid_year_id": 3,
            "aid_classification_id": 6,
            "auto_expand_award_dates": false,
            "parental_data_missing": false,
            "dependency": "independent",
            "enrollment": "full_time",
            "enrollment_intensity": false,
            "program_months": 9,
            "year_coa": 10000,
            "program_coa": 10000,
            "year_efc": 10000,
            "program_efc": 10000,
            "institutional_sai": 9000,
            "verification": "selected_by_college",
            "verification_status": "in_progress",
            "verification_group": null,
            "verification_exempt_reason": null,
            "status": "in_progress",
            "assigned_to": 2921,
            "student_agi": 0,
            "parents_agi": 0,
            "auto_zero_efc": false,
            "fisap_total_income": null,
            "legal_residence_state": null,
            "housing": null,
            "award_letter_layout_id": null,
            "last_isir_id": null,
            "last_isir_transaction_date": null,
            "cod_student_level_code": null,
            "cod_academic_year_start_date": null,
            "cod_academic_year_end_date": null,
            "cod_degree_id": null,
            "cod_program_length": null,
            "cod_program_length_units": null,
            "cod_program_credential_level": null,
            "cod_special_program": null,
            "cod_weeks_programs_academic_year": null,
            "cod_default_overpay_code": null,
            "cod_student_eligibility_code": null,
            "cod_ability_to_benefit_administrator_code": null,
            "cod_ability_to_benefit_test_code": null,
            "cod_ability_to_benefit_state_code": null,
            "cod_ability_to_benefit_date": null,
            "cod_program_cip_code": null,
            "cod_additional_unsubsidized_eligibility": false,
            "cod_additional_pell_eligibility": false,
            "cod_campus_id": null,
            "updated_on": null,
            "added_at": "2011-05-04T23:15:23+00:00",
            "added_by_id": 2921,
            "updated_at": null,
            "updated_by_id": 2011
        }
    ],
    "sandbox": true
}

Retrieves all AidApplication objects tied to a specific Person.

HTTP Request

GET /people/(person)/aidapplications

Parameters

None

Expandable Properties

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

Example response:

{
    "object": "aid_application",
    "id": 7,
    "student_id": 12,
    "aid_year_id": 3,
    "aid_classification_id": null,
    "auto_expand_award_dates": false,
    "parental_data_missing": false,
    "dependency": null,
    "enrollment": "full_time",
    "enrollment_intensity": false,
    "program_months": null,
    "year_coa": 0,
    "program_coa": 0,
    "year_efc": 0,
    "program_efc": 0,
    "institutional_sai": null,
    "verification": null,
    "verification_status": null,
    "verification_group": null,
    "verification_exempt_reason": null,
    "status": "setup",
    "assigned_to": null,
    "student_agi": 0,
    "parents_agi": 0,
    "auto_zero_efc": false,
    "fisap_total_income": 0,
    "legal_residence_state": null,
    "housing": null,
    "award_letter_layout_id": null,
    "last_isir_id": null,
    "last_isir_transaction_date": null,
    "cod_student_level_code": null,
    "cod_academic_year_start_date": null,
    "cod_academic_year_end_date": null,
    "cod_degree_id": 2,
    "cod_program_length": null,
    "cod_program_length_units": null,
    "cod_program_credential_level": null,
    "cod_special_program": null,
    "cod_weeks_programs_academic_year": null,
    "cod_default_overpay_code": null,
    "cod_student_eligibility_code": null,
    "cod_ability_to_benefit_administrator_code": null,
    "cod_ability_to_benefit_test_code": null,
    "cod_ability_to_benefit_state_code": null,
    "cod_ability_to_benefit_date": null,
    "cod_program_cip_code": null,
    "cod_additional_unsubsidized_eligibility": false,
    "cod_additional_pell_eligibility": false,
    "cod_campus_id": null,
    "updated_on": null,
    "added_at": "2025-04-14T23:32:13+00:00",
    "added_by_id": 22,
    "updated_at": "2025-04-14T23:32:13+00:00",
    "updated_by_id": 22,
    "sandbox": true
}

Creates a new AidApplication object.

HTTP Request

POST /people/(person)/aidapplications

Parameters

Name Required Data Type Description
aid_year_id Yes int
status Yes enum (setup, in_progress, completed, needs_attention, canceled, deleted)
enrollment Yes enum (full_time, three_quarter_time, half_time, less_than_half_time)
assigned_to No int
dependency No enum (dependent, independent)
student_aid_class_id No int
program_months No int
year_coa No decimal
program_coa No decimal
year_efc No decimal
program_efc No decimal
student_agi No decimal
parents_agi No decimal
legal_residence_state No text (3)
verification No enum (selected_by_college, selected_by_government)
verification_status No enum (in_progress, completed, rejected, exempted)
verification_group No text (200)
auto_zero_efc No bool
fisap_total_income No decimal
housing No enum (on_campus, with_parent, off_campus, on_campus_with_dependents)
coa_breakout_field No array of amounts indexed to CoaCateogry ids
component_ids No array of AidApplicationComponent ids
award_letter_layout_id No int
cod_ability_to_benefit_date No date
cod_ability_to_benefit_administrator_code No char
cod_ability_to_benefit_test_code No char
cod_ability_to_benefit_state_code No char
cod_student_eligibility_code No char
cod_default_overpay_code No char
cod_special_program No char
cod_program_credential_level No int
cod_weeks_programs_academic_year No decimal
cod_program_length_units No enum (years, months, weeks)
cod_program_length No decimal
cod_academic_year_end_date No date
cod_academic_year_start_date No date
cod_student_level_code No int
cod_program_cip_code No text (20)

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/people/(person)/aidapplications/(aidapplication)" \
-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)/aidapplications/(aidapplication)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidapplications/(aidapplication)',
 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)/aidapplications/(aidapplication)"), 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)/aidapplications/(aidapplication)');
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": "aid_application",
    "id": 6,
    "student_id": 35,
    "aid_year_id": 3,
    "aid_classification_id": 6,
    "auto_expand_award_dates": false,
    "parental_data_missing": false,
    "dependency": "independent",
    "enrollment": "full_time",
    "enrollment_intensity": false,
    "program_months": 9,
    "year_coa": 10000,
    "program_coa": 10000,
    "year_efc": 10000,
    "program_efc": 10000,
    "institutional_sai": 9000,
    "verification": "selected_by_college",
    "verification_status": "in_progress",
    "verification_group": null,
    "verification_exempt_reason": null,
    "status": "in_progress",
    "assigned_to": 2921,
    "student_agi": 0,
    "parents_agi": 0,
    "auto_zero_efc": false,
    "fisap_total_income": null,
    "legal_residence_state": null,
    "housing": null,
    "award_letter_layout_id": null,
    "last_isir_id": null,
    "last_isir_transaction_date": null,
    "cod_student_level_code": null,
    "cod_academic_year_start_date": null,
    "cod_academic_year_end_date": null,
    "cod_degree_id": null,
    "cod_program_length": null,
    "cod_program_length_units": null,
    "cod_program_credential_level": null,
    "cod_special_program": null,
    "cod_weeks_programs_academic_year": null,
    "cod_default_overpay_code": null,
    "cod_student_eligibility_code": null,
    "cod_ability_to_benefit_administrator_code": null,
    "cod_ability_to_benefit_test_code": null,
    "cod_ability_to_benefit_state_code": null,
    "cod_ability_to_benefit_date": null,
    "cod_program_cip_code": null,
    "cod_additional_unsubsidized_eligibility": false,
    "cod_additional_pell_eligibility": false,
    "cod_campus_id": null,
    "updated_on": null,
    "added_at": "2011-05-04T23:15:23+00:00",
    "added_by_id": 2921,
    "updated_at": null,
    "updated_by_id": 2011,
    "sandbox": true
}

Retrieves a specific AidApplication object.

HTTP Request

GET /people/(person)/aidapplications/(aidapplication)

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidapplications/(aidapplication)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "status": "completed",
    "enrollment": "half_time"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/aidapplications/(aidapplication)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :status => 'completed',
  :enrollment => 'half_time'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/aidapplications/(aidapplication)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'status': 'completed',
  'enrollment': 'half_time'
 }
)
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)/aidapplications/(aidapplication)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  status = "completed",
  enrollment = "half_time"
});
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)/aidapplications/(aidapplication)');
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([
  'status' => 'completed',
  'enrollment' => 'half_time'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "aid_application",
    "id": 7,
    "student_id": 12,
    "aid_year_id": 3,
    "aid_classification_id": null,
    "auto_expand_award_dates": false,
    "parental_data_missing": false,
    "dependency": null,
    "enrollment": "half_time",
    "enrollment_intensity": false,
    "program_months": null,
    "year_coa": 0,
    "program_coa": 0,
    "year_efc": 0,
    "program_efc": 0,
    "institutional_sai": null,
    "verification": null,
    "verification_status": null,
    "verification_group": null,
    "verification_exempt_reason": null,
    "status": "completed",
    "assigned_to": null,
    "student_agi": 0,
    "parents_agi": 0,
    "auto_zero_efc": false,
    "fisap_total_income": 0,
    "legal_residence_state": null,
    "housing": null,
    "award_letter_layout_id": null,
    "last_isir_id": null,
    "last_isir_transaction_date": null,
    "cod_student_level_code": null,
    "cod_academic_year_start_date": null,
    "cod_academic_year_end_date": null,
    "cod_degree_id": 2,
    "cod_program_length": null,
    "cod_program_length_units": null,
    "cod_program_credential_level": null,
    "cod_special_program": null,
    "cod_weeks_programs_academic_year": null,
    "cod_default_overpay_code": null,
    "cod_student_eligibility_code": null,
    "cod_ability_to_benefit_administrator_code": null,
    "cod_ability_to_benefit_test_code": null,
    "cod_ability_to_benefit_state_code": null,
    "cod_ability_to_benefit_date": null,
    "cod_program_cip_code": null,
    "cod_additional_unsubsidized_eligibility": false,
    "cod_additional_pell_eligibility": false,
    "cod_campus_id": null,
    "updated_on": null,
    "added_at": "2025-04-14T16:32:13+00:00",
    "added_by_id": 22,
    "updated_at": "2025-04-14T16:32:13+00:00",
    "updated_by_id": 22,
    "sandbox": true
}

Updates an existing AidApplication object.

HTTP Request

PUT /people/(person)/aidapplications/(aidapplication)

Parameters

Name Required Data Type Description
status Yes enum (setup, in_progress, completed, needs_attention, canceled, deleted)
enrollment Yes enum (full_time, three_quarter_time, half_time, less_than_half_time)
assigned_to No int
dependency No enum (dependent, independent)
student_aid_class_id No int
program_months No int
year_coa No decimal
program_coa No decimal
year_efc No decimal
program_efc No decimal
student_agi No decimal
parents_agi No decimal
legal_residence_state No text (3)
verification No enum (selected_by_college, selected_by_government)
verification_status No enum (in_progress, completed, rejected, exempted)
verification_group No text (200)
auto_zero_efc No bool
fisap_total_income No decimal
housing No enum (on_campus, with_parent, off_campus, on_campus_with_dependents)
coa_breakout_field No array of amounts indexed to CoaCateogry ids
component_ids No array of AidApplicationComponent ids
award_letter_layout_id No int
cod_ability_to_benefit_date No date
cod_ability_to_benefit_administrator_code No char
cod_ability_to_benefit_test_code No char
cod_ability_to_benefit_state_code No char
cod_student_eligibility_code No char
cod_default_overpay_code No char
cod_special_program No char
cod_program_credential_level No int
cod_weeks_programs_academic_year No decimal
cod_program_length_units No enum (years, months, weeks)
cod_program_length No decimal
cod_academic_year_start_date No date
cod_academic_year_end_date No date
cod_student_level_code No int
cod_program_cip_code No text (20)

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

Deletes an existing AidApplication object.

HTTP Request

DELETE /people/(person)/aidapplications/(aidapplication)

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:

AidAuthorization

The AidAuthorization object

The AidAuthorization object looks like this in JSON:

{
    "object": "aid_authorization",
    "id": 1,
    "name": "EXCESS_AID",
    "description": "Student gives permission to use federal aid to non-aid-applicable charges.",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
description Yes text (5000)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aidauthorizations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidauthorizations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidauthorizations',
 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/aidauthorizations"), 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/aidauthorizations');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "aid_authorization",
            "id": 1,
            "name": "EXCESS_AID",
            "description": "Student gives permission to use federal aid to non-aid-applicable charges."
        }
    ],
    "sandbox": true
}

Retrieves all AidAuthorization objects.

HTTP Request

GET /aidauthorizations

Parameters

None

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/aidauthorizations/(aidauthorization)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidauthorizations/(aidauthorization)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidauthorizations/(aidauthorization)',
 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/aidauthorizations/(aidauthorization)"), 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/aidauthorizations/(aidauthorization)');
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": "aid_authorization",
    "id": 1,
    "name": "EXCESS_AID",
    "description": "Student gives permission to use federal aid to non-aid-applicable charges.",
    "sandbox": true
}

Retrieves a specific AidAuthorization object.

HTTP Request

GET /aidauthorizations/(aidauthorization)

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:

AidAward

The AidAward object

The AidAward object looks like this in JSON:

{
    "object": "aid_award",
    "id": 6,
    "student_id": 1,
    "aid_year_id": 1,
    "aid_type_id": 1,
    "sequence_number": 1,
    "original_accepted_amount": 1000,
    "award_limit": 1000,
    "max_amount": 1000,
    "net_amount": 1000,
    "multiplier": null,
    "auto_calc_percent_amount": false,
    "fee_percent": null,
    "status": "accepted",
    "loan_booked_on": null,
    "loan_payment_to_servicer_amount": 0,
    "loan_payment_to_servicer_date": null,
    "plus_loan_has_endorser": false,
    "plus_loan_endorser_amount": null,
    "plus_loan_credit_requirements_met": false,
    "loan_booked_cod_response_id": null,
    "year_coa": null,
    "cod_id": null,
    "cod_amount": 0,
    "cod_origination_fee_percent": null,
    "cod_start_date": null,
    "cod_end_date": null,
    "cod_student_level_code": null,
    "cod_academic_year_start_date": null,
    "cod_academic_year_end_date": null,
    "cod_program_length": null,
    "cod_program_length_units": null,
    "cod_program_credential_level": null,
    "cod_special_program": null,
    "cod_weeks_programs_academic_year": null,
    "cod_program_cip_code": null,
    "cod_plus_application_id": null,
    "cod_borrower_id": null,
    "refunds_go_to": "student",
    "cod_most_recent_response_id": null,
    "cod_status": null,
    "cod_sync_logic": "automatic",
    "cod_syncable": true,
    "cod_syncable_errors": null,
    "cod_needs_sync": true,
    "cod_originated": false,
    "external_id": null,
    "esign_by_student_at": null,
    "esign_by_student_ip": null,
    "work_study_hours_per_week": null,
    "added_at": "2015-09-08T07:53:22+00:00",
    "added_by_id": 11,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id No int
aid_year_id Yes int
aid_type_id Yes int
sequence_number Yes int
original_accepted_amount Yes decimal
award_limit Yes decimal
max_amount Yes decimal
net_amount Yes decimal
multiplier No decimal
auto_calc_percent_amount Yes bool
fee_percent No decimal
status Yes enum (setup, offered, accepted, declined, canceled, deleted)
loan_booked_on No date
loan_payment_to_servicer_amount Yes decimal
loan_payment_to_servicer_date No date
plus_loan_has_endorser No bool
plus_loan_endorser_amount No decimal
plus_loan_credit_requirements_met Yes bool
loan_booked_cod_response_id No int
year_coa No decimal
cod_id No text (200)
cod_amount Yes decimal
cod_origination_fee_percent No decimal
cod_start_date No date
cod_end_date No date
cod_student_level_code No int
cod_academic_year_start_date No date
cod_academic_year_end_date No date
cod_program_length No decimal
cod_program_length_units No enum (years, months, weeks)
cod_program_credential_level No int
cod_special_program No char
cod_weeks_programs_academic_year No decimal
cod_program_cip_code No text (20)
cod_plus_application_id No int
cod_borrower_id No int
refunds_go_to Yes enum (student, borrower)
cod_most_recent_response_id No int
cod_status No enum (pending, accepted, rejected, corrected)
cod_sync_logic Yes enum (manual, automatic)
cod_syncable Yes bool
cod_syncable_errors No text
cod_needs_sync Yes bool
cod_originated Yes bool
external_id No text (50)
esign_by_student_at No datetime
esign_by_student_ip No text (60)
work_study_hours_per_week No decimal
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aidawards" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"net_amount","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidawards',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidawards',
 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/aidawards"), 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/aidawards');
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": 5,
    "results": 5,
    "results_per_page": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "aid_award",
            "id": 8,
            "student_id": 16,
            "aid_year_id": 1,
            "aid_type_id": 9,
            "sequence_number": 1,
            "original_accepted_amount": 4000,
            "award_limit": 4000,
            "max_amount": 4000,
            "net_amount": 4000,
            "multiplier": null,
            "auto_calc_percent_amount": false,
            "fee_percent": null,
            "status": "accepted",
            "loan_booked_on": null,
            "loan_payment_to_servicer_amount": 0,
            "loan_payment_to_servicer_date": null,
            "plus_loan_has_endorser": false,
            "plus_loan_endorser_amount": null,
            "plus_loan_credit_requirements_met": false,
            "loan_booked_cod_response_id": null,
            "year_coa": null,
            "cod_id": null,
            "cod_amount": 0,
            "cod_origination_fee_percent": null,
            "cod_start_date": null,
            "cod_end_date": null,
            "cod_student_level_code": null,
            "cod_academic_year_start_date": null,
            "cod_academic_year_end_date": null,
            "cod_program_length": null,
            "cod_program_length_units": null,
            "cod_program_credential_level": null,
            "cod_special_program": null,
            "cod_weeks_programs_academic_year": null,
            "cod_program_cip_code": null,
            "cod_plus_application_id": null,
            "cod_borrower_id": null,
            "refunds_go_to": "student",
            "cod_most_recent_response_id": null,
            "cod_status": null,
            "cod_sync_logic": "automatic",
            "cod_syncable": true,
            "cod_syncable_errors": null,
            "cod_needs_sync": true,
            "cod_originated": false,
            "external_id": null,
            "esign_by_student_at": null,
            "esign_by_student_ip": null,
            "work_study_hours_per_week": null,
            "added_at": "2015-09-09T07:53:22+00:00",
            "added_by_id": 11,
            "report_data": {
                "person_id": 16,
                "aid_name": "Institutional Grant",
                "aid_abbrv": "INST",
                "financial_aid_type": "GRANT",
                "is_scholarship": 0,
                "aid_source": "INSTITUTION",
                "firstname": "Abby",
                "lastname": "Admin",
                "amount_scheduled": "440.70",
                "amount_disbursed": "0.00",
                "row_id": 8
            }
        }
    ],
    "sandbox": true
}

Retrieves all AidAward objects that match given filter conditions.

HTTP Request

GET /aidawards

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
aid_accepted_by_student bool
aid_amount decimal
aid_authorization aidauthorization
aid_year baseobject id
award object id
award_percent percent
campus campus
classification object id
custom_field custom
disbursed decimal
has_active_student_role has_active_student_role
net_amount decimal
setup_scheduled decimal
source choice
status enum
student search
student_decision date
tag tag
type awardtype
unapplied_scheduled_aid bool

Permissions

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

index_by_student

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/" \
-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)/aidawards/',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/',
 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)/aidawards/"), 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)/aidawards/');
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": "aid_award",
            "id": 10,
            "student_id": 12,
            "aid_year_id": 1,
            "aid_type_id": 9,
            "sequence_number": 2,
            "original_accepted_amount": 4000,
            "award_limit": 4000,
            "max_amount": 4000,
            "net_amount": 4000,
            "multiplier": null,
            "auto_calc_percent_amount": false,
            "fee_percent": null,
            "status": "accepted",
            "loan_booked_on": null,
            "loan_payment_to_servicer_amount": 0,
            "loan_payment_to_servicer_date": null,
            "plus_loan_has_endorser": false,
            "plus_loan_endorser_amount": null,
            "plus_loan_credit_requirements_met": false,
            "loan_booked_cod_response_id": null,
            "year_coa": null,
            "cod_id": null,
            "cod_amount": 0,
            "cod_origination_fee_percent": null,
            "cod_start_date": null,
            "cod_end_date": null,
            "cod_student_level_code": null,
            "cod_academic_year_start_date": null,
            "cod_academic_year_end_date": null,
            "cod_program_length": null,
            "cod_program_length_units": null,
            "cod_program_credential_level": null,
            "cod_special_program": null,
            "cod_weeks_programs_academic_year": null,
            "cod_program_cip_code": null,
            "cod_plus_application_id": null,
            "cod_borrower_id": null,
            "refunds_go_to": "student",
            "cod_most_recent_response_id": null,
            "cod_status": null,
            "cod_sync_logic": "automatic",
            "cod_syncable": true,
            "cod_syncable_errors": null,
            "cod_needs_sync": true,
            "cod_originated": false,
            "external_id": null,
            "esign_by_student_at": null,
            "esign_by_student_ip": null,
            "work_study_hours_per_week": null,
            "added_at": "2015-09-09T07:53:22+00:00",
            "added_by_id": 11
        }
    ],
    "sandbox": true
}

HTTP Request

GET /people/(person)/aidawards/

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

Example response:

{
    "object": "aid_award",
    "id": 11,
    "student_id": 12,
    "aid_year_id": 3,
    "aid_type_id": 1,
    "sequence_number": 1,
    "original_accepted_amount": 1950.45,
    "award_limit": 2000,
    "max_amount": 2000,
    "net_amount": 1950.45,
    "multiplier": null,
    "auto_calc_percent_amount": false,
    "fee_percent": null,
    "status": "offered",
    "loan_booked_on": null,
    "loan_payment_to_servicer_amount": 0,
    "loan_payment_to_servicer_date": null,
    "plus_loan_has_endorser": false,
    "plus_loan_endorser_amount": null,
    "plus_loan_credit_requirements_met": false,
    "loan_booked_cod_response_id": null,
    "year_coa": null,
    "cod_id": null,
    "cod_amount": 2000,
    "cod_origination_fee_percent": null,
    "cod_start_date": null,
    "cod_end_date": null,
    "cod_student_level_code": null,
    "cod_academic_year_start_date": null,
    "cod_academic_year_end_date": null,
    "cod_program_length": null,
    "cod_program_length_units": null,
    "cod_program_credential_level": null,
    "cod_special_program": null,
    "cod_weeks_programs_academic_year": null,
    "cod_program_cip_code": null,
    "cod_plus_application_id": null,
    "cod_borrower_id": null,
    "refunds_go_to": "student",
    "cod_most_recent_response_id": null,
    "cod_status": null,
    "cod_sync_logic": "automatic",
    "cod_syncable": false,
    "cod_syncable_errors": "[\"Award must be Accepted or Canceled in order to sync to COD.\",\"Student does not have a valid SSN (9 numeric digits).\",\"Your institution doesn't have an OPE ID entered in financial aid settings.\",\"No ISIR for this student for this aid year.\",\"No birth date for this student.\",\"No COD student eligibility code for this student (High School Diploma, etc).\",\"Dependency status must be set to Dependent or Independent on this student's aid application.\",\"No COD program length set for this student.\",\"No COD program credential level for this student.\",\"No CIP code.\"]",
    "cod_needs_sync": true,
    "cod_originated": false,
    "external_id": null,
    "esign_by_student_at": null,
    "esign_by_student_ip": null,
    "work_study_hours_per_week": null,
    "added_at": "2025-04-14T23:32:17+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new AidAward object.

HTTP Request

POST /people/(person)/aidawards

Parameters

Name Required Data Type Description
aid_year_id Yes int
aid_type_id Yes int
status Yes enum (setup, offered, accepted, declined, canceled, deleted)
amount Yes decimal
net_amount Yes decimal
max_amount No decimal

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/people/(person)/aidawards/(aidaward)" \
-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)/aidawards/(aidaward)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)',
 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)/aidawards/(aidaward)"), 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)/aidawards/(aidaward)');
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": "aid_award",
    "id": 8,
    "student_id": 16,
    "aid_year_id": 1,
    "aid_type_id": 9,
    "sequence_number": 1,
    "original_accepted_amount": 4000,
    "award_limit": 4000,
    "max_amount": 4000,
    "net_amount": 4000,
    "multiplier": null,
    "auto_calc_percent_amount": false,
    "fee_percent": null,
    "status": "accepted",
    "loan_booked_on": null,
    "loan_payment_to_servicer_amount": 0,
    "loan_payment_to_servicer_date": null,
    "plus_loan_has_endorser": false,
    "plus_loan_endorser_amount": null,
    "plus_loan_credit_requirements_met": false,
    "loan_booked_cod_response_id": null,
    "year_coa": null,
    "cod_id": null,
    "cod_amount": 0,
    "cod_origination_fee_percent": null,
    "cod_start_date": null,
    "cod_end_date": null,
    "cod_student_level_code": null,
    "cod_academic_year_start_date": null,
    "cod_academic_year_end_date": null,
    "cod_program_length": null,
    "cod_program_length_units": null,
    "cod_program_credential_level": null,
    "cod_special_program": null,
    "cod_weeks_programs_academic_year": null,
    "cod_program_cip_code": null,
    "cod_plus_application_id": null,
    "cod_borrower_id": null,
    "refunds_go_to": "student",
    "cod_most_recent_response_id": null,
    "cod_status": null,
    "cod_sync_logic": "automatic",
    "cod_syncable": true,
    "cod_syncable_errors": null,
    "cod_needs_sync": true,
    "cod_originated": false,
    "external_id": null,
    "esign_by_student_at": null,
    "esign_by_student_ip": null,
    "work_study_hours_per_week": null,
    "aid_year": {
        "object": "aid_year",
        "id": 1,
        "name": "2010-2011",
        "start_date": "2010-07-01",
        "end_date": "2011-06-30"
    },
    "aid_type": {
        "object": "aid_type",
        "id": 9,
        "startyear": 1,
        "endyear": 0,
        "name": "Institutional Grant",
        "abbrv": "INST",
        "cod_abbrv": "NULL",
        "title_iv": false,
        "type": "grant",
        "is_scholarship": false,
        "source": "institution",
        "multiplier": null,
        "federal_aid_id": null,
        "need_based": true,
        "count_against_need": true,
        "report_on_1098t": true,
        "non_eligible_fee_aid": false,
        "count_as_tuition_discount": false,
        "counts_as_efa": true,
        "only_allow_whole_dollar_amounts": false,
        "allow_partial_acceptance": false,
        "require_enrollment_verification": false,
        "status": "active",
        "veterans_benefits": false,
        "external_id": null
    },
    "aid_disbursements": [
        {
            "object": "aid_disbursement",
            "id": 15,
            "academic_term_id": 8,
            "student_id": 16,
            "aid_id": 9,
            "aid_award_id": 8,
            "type": "disbursement",
            "status": "scheduled",
            "amount": 440.7,
            "gross_amount": 440.7,
            "max_amount": 0,
            "multiplier": null,
            "scheduled_date": "2023-02-16",
            "posted_date": null,
            "status_date": "2023-02-16",
            "payment_id": null,
            "refund_id": null,
            "transaction_id": null,
            "disbursement_number": true,
            "sequence_number": false,
            "enrollment_status": null,
            "enrollment_intensity": false,
            "enrollment_verified": false,
            "enrollment_verified_by_id": null,
            "enrollment_verified_at": null,
            "cod_status": null,
            "cod_amount": 0,
            "cod_originated": false,
            "cod_net_amount": 0,
            "cod_released": false,
            "cod_needs_sync": true,
            "cod_program_cip_code": null,
            "cod_payment_period_start_date": null,
            "external_id": null,
            "email_message_id": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "added_at": "2015-09-09T07:53:22+00:00",
    "added_by_id": 11,
    "sandbox": true
}

Retrieves a specific AidAward object.

HTTP Request

GET /people/(person)/aidawards/(aidaward)

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)/aidawards/(aidaward)" \
-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)/aidawards/(aidaward)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)',
 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)/aidawards/(aidaward)"), 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)/aidawards/(aidaward)');
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": "aid_award",
    "id": 8,
    "student_id": 16,
    "aid_year_id": 1,
    "aid_type_id": 9,
    "sequence_number": 1,
    "original_accepted_amount": 0,
    "award_limit": 4000,
    "max_amount": 4000,
    "net_amount": 4000,
    "multiplier": null,
    "auto_calc_percent_amount": false,
    "fee_percent": null,
    "status": "accepted",
    "loan_booked_on": null,
    "loan_payment_to_servicer_amount": 0,
    "loan_payment_to_servicer_date": null,
    "plus_loan_has_endorser": false,
    "plus_loan_endorser_amount": null,
    "plus_loan_credit_requirements_met": false,
    "loan_booked_cod_response_id": null,
    "year_coa": null,
    "cod_id": null,
    "cod_amount": 0,
    "cod_origination_fee_percent": null,
    "cod_start_date": null,
    "cod_end_date": null,
    "cod_student_level_code": null,
    "cod_academic_year_start_date": null,
    "cod_academic_year_end_date": null,
    "cod_program_length": null,
    "cod_program_length_units": null,
    "cod_program_credential_level": null,
    "cod_special_program": null,
    "cod_weeks_programs_academic_year": null,
    "cod_program_cip_code": null,
    "cod_plus_application_id": null,
    "cod_borrower_id": null,
    "refunds_go_to": "student",
    "cod_most_recent_response_id": null,
    "cod_status": null,
    "cod_sync_logic": "automatic",
    "cod_syncable": false,
    "cod_syncable_errors": "[\"Student does not have a valid SSN (9 numeric digits).\",\"No address found for this student.\",\"Your institution doesn't have an OPE ID entered in financial aid settings.\",\"No aid application for this student for this aid year.\",\"No birth date for this student.\",\"Dependency status must be set to Dependent or Independent on this student's aid application.\",\"No COD program length set for this student.\",\"No COD program credential level for this student.\",\"Feb 16, 2023 disbursement in \\\"Spring 2010 2009-2010\\\" has an invalid sequence number.\",\"No CIP code.\"]",
    "cod_needs_sync": true,
    "cod_originated": false,
    "external_id": null,
    "esign_by_student_at": null,
    "esign_by_student_ip": null,
    "work_study_hours_per_week": null,
    "added_at": "2015-09-09T00:53:22+00:00",
    "added_by_id": 11,
    "sandbox": true
}

Updates an existing AidAward object.

HTTP Request

PUT /people/(person)/aidawards/(aidaward)

Parameters

Name Required Data Type Description
status No enum (setup, offered, accepted, declined, canceled, deleted)
amount No decimal
net_amount No decimal
max_amount No decimal

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

Deletes an existing AidAward object.

HTTP Request

DELETE /people/(person)/aidawards/(aidaward)

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:

AidClassification

The AidClassification object

The AidClassification object looks like this in JSON:

{
    "object": "aid_classification",
    "id": 6,
    "name": "Arc Welding",
    "year_coa_on_campus": 900,
    "year_coa_off_campus": null,
    "year_coa_off_campus_with_parents": 900,
    "program_coa_on_campus": 900,
    "program_coa_off_campus": null,
    "program_coa_off_campus_with_parents": null,
    "enrollment": "full_time",
    "months": 9,
    "auto_expand_award_dates": false,
    "status": "active",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (100)
year_coa_on_campus No decimal
year_coa_off_campus No decimal
year_coa_off_campus_with_parents No decimal
program_coa_on_campus No decimal
program_coa_off_campus No decimal
program_coa_off_campus_with_parents No decimal
enrollment No enum (full_time, three_quarter_time, half_time, less_than_half_time)
months No int
auto_expand_award_dates No bool
status Yes enum (active, retired)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aidclassifications" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidclassifications',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidclassifications',
 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/aidclassifications"), 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/aidclassifications');
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": "aid_classification",
            "id": 6,
            "name": "Arc Welding",
            "year_coa_on_campus": 900,
            "year_coa_off_campus": null,
            "year_coa_off_campus_with_parents": 900,
            "program_coa_on_campus": 900,
            "program_coa_off_campus": null,
            "program_coa_off_campus_with_parents": null,
            "enrollment": "full_time",
            "months": 9,
            "auto_expand_award_dates": false,
            "status": "active"
        }
    ],
    "sandbox": true
}

Retrieves all AidClassification objects.

HTTP Request

GET /aidclassifications

Parameters

None

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/aidclassifications/(aidclassification)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidclassifications/(aidclassification)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidclassifications/(aidclassification)',
 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/aidclassifications/(aidclassification)"), 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/aidclassifications/(aidclassification)');
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": "aid_classification",
    "id": 6,
    "name": "Arc Welding",
    "year_coa_on_campus": 900,
    "year_coa_off_campus": null,
    "year_coa_off_campus_with_parents": 900,
    "program_coa_on_campus": 900,
    "program_coa_off_campus": null,
    "program_coa_off_campus_with_parents": null,
    "enrollment": "full_time",
    "months": 9,
    "auto_expand_award_dates": false,
    "status": "active",
    "sandbox": true
}

Retrieves a specific AidClassification object.

HTTP Request

GET /aidclassifications/(aidclassification)

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:

AidDisbursement

The AidDisbursement object

The AidDisbursement object looks like this in JSON:

{
    "object": "aid_disbursement",
    "id": 6,
    "academic_term_id": 8,
    "student_id": 1,
    "aid_id": 9,
    "aid_award_id": 7,
    "type": "disbursement",
    "status": "scheduled",
    "amount": 430.7,
    "gross_amount": 430.7,
    "max_amount": 0,
    "multiplier": null,
    "scheduled_date": "2023-02-14",
    "posted_date": null,
    "status_date": "2023-02-14",
    "payment_id": null,
    "refund_id": null,
    "transaction_id": null,
    "disbursement_number": true,
    "sequence_number": false,
    "enrollment_status": null,
    "enrollment_intensity": false,
    "enrollment_verified": false,
    "enrollment_verified_by_id": null,
    "enrollment_verified_at": null,
    "cod_status": null,
    "cod_amount": 0,
    "cod_originated": false,
    "cod_net_amount": 0,
    "cod_released": false,
    "cod_needs_sync": true,
    "cod_program_cip_code": null,
    "cod_payment_period_start_date": null,
    "external_id": null,
    "email_message_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
academic_term_id No int
student_id Yes int
aid_id Yes int
aid_award_id No int
type Yes enum (disbursement, refund_to_student, refund_to_source)
status Yes enum (setup, scheduled, posted, deleted, void)
amount Yes decimal
gross_amount Yes decimal
max_amount Yes decimal
multiplier No decimal
scheduled_date No date
posted_date No date
status_date No date
payment_id No int
refund_id No int
transaction_id No int
disbursement_number Yes bool
sequence_number No bool
enrollment_status No enum (full_time, three_quarter_time, half_time, less_than_half_time)
enrollment_intensity No bool
enrollment_verified Yes bool
enrollment_verified_by_id No int
enrollment_verified_at No datetime
cod_status No enum (pending, accepted, rejected, corrected)
cod_amount Yes decimal
cod_originated Yes bool
cod_net_amount Yes decimal
cod_released Yes bool
cod_needs_sync Yes bool
cod_program_cip_code No text (20)
cod_payment_period_start_date No date
external_id No text (50)
email_message_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aiddisbursements" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"date","value":{"type":"RANGE","start":"2021-01-01","end":"2022-03-17"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aiddisbursements',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aiddisbursements',
 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/aiddisbursements"), 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/aiddisbursements');
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": 9,
    "results": 9,
    "results_per_page": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "aid_disbursement",
            "id": 8,
            "academic_term_id": 8,
            "student_id": 16,
            "aid_id": 9,
            "aid_award_id": 7,
            "type": "disbursement",
            "status": "scheduled",
            "amount": 430.7,
            "gross_amount": 430.7,
            "max_amount": 0,
            "multiplier": null,
            "scheduled_date": "2023-02-14",
            "posted_date": null,
            "status_date": "2023-02-14",
            "payment_id": null,
            "refund_id": null,
            "transaction_id": null,
            "disbursement_number": true,
            "sequence_number": false,
            "enrollment_status": null,
            "enrollment_intensity": false,
            "enrollment_verified": false,
            "enrollment_verified_by_id": null,
            "enrollment_verified_at": null,
            "cod_status": null,
            "cod_amount": 0,
            "cod_originated": false,
            "cod_net_amount": 0,
            "cod_released": false,
            "cod_needs_sync": true,
            "cod_program_cip_code": null,
            "cod_payment_period_start_date": null,
            "external_id": null,
            "email_message_id": null,
            "added_at": null,
            "added_by_id": null,
            "report_data": {
                "firstname": "Abby",
                "lastname": "Admin",
                "display_name": "Abby Admin",
                "aid_name": "Institutional Grant",
                "aid_type": "GRANT",
                "is_scholarship": 0,
                "aid_source": "INSTITUTION",
                "aid_abbrv": "INST",
                "require_enrollment_verification": 0,
                "term_name": "Spring 2010 2009-2010",
                "aid_year_id": 1,
                "aid_year_name": "2010-2011",
                "row_id": 8
            }
        }
    ],
    "sandbox": true
}

Retrieves all AidDisbursement objects that match given filter conditions.

HTTP Request

GET /aiddisbursements

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
date date
student search
type awardtype
disbursement_type enum
award object id
percent_award bool
status enum
aid_year baseobject id
academic_term academic_term
amount decimal
source choice
campus campus
classification object id
enrollment_verified bool
cod_status enum
tag tag
disbursement_batch_number integer
student_has_courses bool
unapplied_scheduled_aid bool
custom_field custom
added_at datetime

Permissions

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

index_by_award

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements" \
-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)/aidawards/(aidaward)/disbursements',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements',
 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)/aidawards/(aidaward)/disbursements"), 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)/aidawards/(aidaward)/disbursements');
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": "aid_disbursement",
            "id": 15,
            "academic_term_id": 8,
            "student_id": 16,
            "aid_id": 9,
            "aid_award_id": 8,
            "type": "disbursement",
            "status": "scheduled",
            "amount": 440.7,
            "gross_amount": 440.7,
            "max_amount": 0,
            "multiplier": null,
            "scheduled_date": "2023-02-16",
            "posted_date": null,
            "status_date": "2023-02-16",
            "payment_id": null,
            "refund_id": null,
            "transaction_id": null,
            "disbursement_number": true,
            "sequence_number": false,
            "enrollment_status": null,
            "enrollment_intensity": false,
            "enrollment_verified": false,
            "enrollment_verified_by_id": null,
            "enrollment_verified_at": null,
            "cod_status": null,
            "cod_amount": 0,
            "cod_originated": false,
            "cod_net_amount": 0,
            "cod_released": false,
            "cod_needs_sync": true,
            "cod_program_cip_code": null,
            "cod_payment_period_start_date": null,
            "external_id": null,
            "email_message_id": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

HTTP Request

GET /people/(person)/aidawards/(aidaward)/disbursements

Parameters

None

Permissions

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

create (disbursement)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "scheduled_date": "2022-10-20",
    "academic_term_id": 8,
    "amount": 650
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :scheduled_date => '2022-10-20',
  :academic_term_id => 8,
  :amount => 650
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'scheduled_date': '2022-10-20',
  'academic_term_id': 8,
  'amount': 650
 }
)
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)/aidawards/(aidaward)/disbursements"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  scheduled_date = "2022-10-20",
  academic_term_id = 8,
  amount = 650
});
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)/aidawards/(aidaward)/disbursements');
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([
  'scheduled_date' => '2022-10-20',
  'academic_term_id' => 8,
  'amount' => 650
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "aid_disbursement",
    "id": 16,
    "academic_term_id": 8,
    "student_id": 16,
    "aid_id": 9,
    "aid_award_id": 8,
    "type": "disbursement",
    "status": "scheduled",
    "amount": 650,
    "gross_amount": 650,
    "max_amount": 0,
    "multiplier": null,
    "scheduled_date": "2022-10-20",
    "posted_date": null,
    "status_date": "2022-10-20",
    "payment_id": null,
    "refund_id": null,
    "transaction_id": null,
    "disbursement_number": true,
    "sequence_number": true,
    "enrollment_status": null,
    "enrollment_intensity": false,
    "enrollment_verified": false,
    "enrollment_verified_by_id": null,
    "enrollment_verified_at": null,
    "cod_status": null,
    "cod_amount": 650,
    "cod_originated": false,
    "cod_net_amount": 650,
    "cod_released": false,
    "cod_needs_sync": true,
    "cod_program_cip_code": null,
    "cod_payment_period_start_date": null,
    "external_id": null,
    "email_message_id": null,
    "added_at": "2025-04-14T23:32:17+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new AidDisbursement object.

HTTP Request

POST /people/(person)/aidawards/(aidaward)/disbursements

Parameters

Name Required Data Type Description
scheduled_date Yes date
academic_term_id Yes int
amount Yes decimal
gross_amount No decimal

Permissions

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

show (disbursement)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)" \
-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)/aidawards/(aidaward)/disbursements/(aiddisbursement)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)',
 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)/aidawards/(aidaward)/disbursements/(aiddisbursement)"), 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)/aidawards/(aidaward)/disbursements/(aiddisbursement)');
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": "aid_disbursement",
    "id": 8,
    "academic_term_id": 8,
    "student_id": 16,
    "aid_id": 9,
    "aid_award_id": 7,
    "type": "disbursement",
    "status": "scheduled",
    "amount": 430.7,
    "gross_amount": 430.7,
    "max_amount": 0,
    "multiplier": null,
    "scheduled_date": "2023-02-14",
    "posted_date": null,
    "status_date": "2023-02-14",
    "payment_id": null,
    "refund_id": null,
    "transaction_id": null,
    "disbursement_number": true,
    "sequence_number": false,
    "enrollment_status": null,
    "enrollment_intensity": false,
    "enrollment_verified": false,
    "enrollment_verified_by_id": null,
    "enrollment_verified_at": null,
    "cod_status": null,
    "cod_amount": 0,
    "cod_originated": false,
    "cod_net_amount": 0,
    "cod_released": false,
    "cod_needs_sync": true,
    "cod_program_cip_code": null,
    "cod_payment_period_start_date": null,
    "external_id": null,
    "email_message_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific AidDisbursement object.

HTTP Request

GET /people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)

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 (disbursement)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)" \
-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)/aidawards/(aidaward)/disbursements/(aiddisbursement)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)',
 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)/aidawards/(aidaward)/disbursements/(aiddisbursement)"), 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)/aidawards/(aidaward)/disbursements/(aiddisbursement)');
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": "aid_disbursement",
    "id": 8,
    "academic_term_id": 8,
    "student_id": 16,
    "aid_id": 9,
    "aid_award_id": 7,
    "type": "disbursement",
    "status": "scheduled",
    "amount": 430.7,
    "gross_amount": 430.7,
    "max_amount": 0,
    "multiplier": null,
    "scheduled_date": "2023-02-14",
    "posted_date": null,
    "status_date": "2023-02-14",
    "payment_id": null,
    "refund_id": null,
    "transaction_id": null,
    "disbursement_number": true,
    "sequence_number": false,
    "enrollment_status": null,
    "enrollment_intensity": false,
    "enrollment_verified": false,
    "enrollment_verified_by_id": null,
    "enrollment_verified_at": null,
    "cod_status": null,
    "cod_amount": 0,
    "cod_originated": false,
    "cod_net_amount": 0,
    "cod_released": false,
    "cod_needs_sync": true,
    "cod_program_cip_code": null,
    "cod_payment_period_start_date": null,
    "external_id": null,
    "email_message_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates an existing AidDisbursement object.

HTTP Request

PUT /people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)

Parameters

Name Required Data Type Description
scheduled_date No date
amount No decimal
gross_amount No decimal
academic_term_id No int

Permissions

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

delete (disbursement)

Example code to call this method:

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

Deletes an existing AidDisbursement object.

HTTP Request

DELETE /people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)

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:

post

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)/post" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "transaction_description": "Manual 3rd PELL grant disbusement."
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)/post',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)/post',
 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)/aidawards/(aidaward)/disbursements/(aiddisbursement)/post"), 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)/aidawards/(aidaward)/disbursements/(aiddisbursement)/post');
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": "aid_disbursement",
    "id": 8,
    "academic_term_id": 8,
    "student_id": 16,
    "aid_id": 9,
    "aid_award_id": 7,
    "type": "disbursement",
    "status": "posted",
    "amount": 430.7,
    "gross_amount": 430.7,
    "max_amount": 0,
    "multiplier": null,
    "scheduled_date": "2023-02-14",
    "posted_date": "2025-04-14",
    "status_date": "2025-04-14",
    "payment_id": 101,
    "refund_id": null,
    "transaction_id": 103,
    "disbursement_number": true,
    "sequence_number": false,
    "enrollment_status": null,
    "enrollment_intensity": false,
    "enrollment_verified": false,
    "enrollment_verified_by_id": null,
    "enrollment_verified_at": null,
    "cod_status": null,
    "cod_amount": 0,
    "cod_originated": false,
    "cod_net_amount": 0,
    "cod_released": false,
    "cod_needs_sync": true,
    "cod_program_cip_code": null,
    "cod_payment_period_start_date": null,
    "external_id": null,
    "email_message_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

HTTP Request

GET /people/(person)/aidawards/(aidaward)/disbursements/(aiddisbursement)/post

Parameters

Name Required Data Type Description
posted_date No date Default is today
transaction_description No text

Action Parameters

Name Data Type Description
notify_student

Permissions

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

create (refund)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/refunds" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "scheduled_date": "2022-11-02",
    "amount": 720,
    "type": "refund_to_student",
    "refund_asset_account_id": 1
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/refunds',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :scheduled_date => '2022-11-02',
  :amount => 720,
  :type => 'refund_to_student'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/refunds',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'scheduled_date': '2022-11-02',
  'amount': 720,
  'type': 'refund_to_student'
 }
)
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)/aidawards/(aidaward)/refunds"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  scheduled_date = "2022-11-02",
  amount = 720,
  type = "refund_to_student"
});
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)/aidawards/(aidaward)/refunds');
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([
  'scheduled_date' => '2022-11-02',
  'amount' => 720,
  'type' => 'refund_to_student'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "aid_disbursement",
    "id": 17,
    "academic_term_id": null,
    "student_id": 16,
    "aid_id": 9,
    "aid_award_id": 8,
    "type": "refund_to_student",
    "status": "scheduled",
    "amount": -720,
    "gross_amount": -720,
    "max_amount": 0,
    "multiplier": null,
    "scheduled_date": "2022-11-02",
    "posted_date": null,
    "status_date": "2022-11-02",
    "payment_id": null,
    "refund_id": null,
    "transaction_id": null,
    "disbursement_number": true,
    "sequence_number": false,
    "enrollment_status": null,
    "enrollment_intensity": false,
    "enrollment_verified": false,
    "enrollment_verified_by_id": null,
    "enrollment_verified_at": null,
    "cod_status": null,
    "cod_amount": 0,
    "cod_originated": false,
    "cod_net_amount": 0,
    "cod_released": false,
    "cod_needs_sync": true,
    "cod_program_cip_code": null,
    "cod_payment_period_start_date": null,
    "external_id": null,
    "email_message_id": null,
    "added_at": "2025-04-14T23:32:17+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new AidDisbursement object.

HTTP Request

POST /people/(person)/aidawards/(aidaward)/refunds

Parameters

Name Required Data Type Description
scheduled_date Yes date
amount Yes decimal
type Yes enum (disbursement, refund_to_student, refund_to_source)
refund_asset_account_id No int

Permissions

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

show (refund)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/refunds/(aiddisbursement)" \
-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)/aidawards/(aidaward)/refunds/(aiddisbursement)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/refunds/(aiddisbursement)',
 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)/aidawards/(aidaward)/refunds/(aiddisbursement)"), 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)/aidawards/(aidaward)/refunds/(aiddisbursement)');
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": "aid_disbursement",
    "id": 9,
    "academic_term_id": 8,
    "student_id": 16,
    "aid_id": 9,
    "aid_award_id": 7,
    "type": "refund_to_source",
    "status": "scheduled",
    "amount": 430.7,
    "gross_amount": 430.7,
    "max_amount": 0,
    "multiplier": null,
    "scheduled_date": "2023-02-14",
    "posted_date": null,
    "status_date": "2023-02-14",
    "payment_id": null,
    "refund_id": null,
    "transaction_id": null,
    "disbursement_number": true,
    "sequence_number": false,
    "enrollment_status": null,
    "enrollment_intensity": false,
    "enrollment_verified": false,
    "enrollment_verified_by_id": null,
    "enrollment_verified_at": null,
    "cod_status": null,
    "cod_amount": 0,
    "cod_originated": false,
    "cod_net_amount": 0,
    "cod_released": false,
    "cod_needs_sync": true,
    "cod_program_cip_code": null,
    "cod_payment_period_start_date": null,
    "external_id": null,
    "email_message_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific AidDisbursement object.

HTTP Request

GET /people/(person)/aidawards/(aidaward)/refunds/(aiddisbursement)

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 (refund)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/refunds/(aiddisbursement)" \
-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)/aidawards/(aidaward)/refunds/(aiddisbursement)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/aidawards/(aidaward)/refunds/(aiddisbursement)',
 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)/aidawards/(aidaward)/refunds/(aiddisbursement)"), 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)/aidawards/(aidaward)/refunds/(aiddisbursement)');
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": "aid_disbursement",
    "id": 9,
    "academic_term_id": 8,
    "student_id": 16,
    "aid_id": 9,
    "aid_award_id": 7,
    "type": "refund_to_source",
    "status": "scheduled",
    "amount": -430.7,
    "gross_amount": 430.7,
    "max_amount": 0,
    "multiplier": null,
    "scheduled_date": "2023-02-14",
    "posted_date": null,
    "status_date": "2023-02-14",
    "payment_id": null,
    "refund_id": null,
    "transaction_id": null,
    "disbursement_number": true,
    "sequence_number": false,
    "enrollment_status": null,
    "enrollment_intensity": false,
    "enrollment_verified": false,
    "enrollment_verified_by_id": null,
    "enrollment_verified_at": null,
    "cod_status": null,
    "cod_amount": 0,
    "cod_originated": false,
    "cod_net_amount": 0,
    "cod_released": false,
    "cod_needs_sync": true,
    "cod_program_cip_code": null,
    "cod_payment_period_start_date": null,
    "external_id": null,
    "email_message_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates an existing AidDisbursement object.

HTTP Request

PUT /people/(person)/aidawards/(aidaward)/refunds/(aiddisbursement)

Parameters

Name Required Data Type Description
scheduled_date No date
amount No decimal
type No enum (disbursement, refund_to_student, refund_to_source)
refund_asset_account_id No int

Permissions

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

delete (refund)

Example code to call this method:

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

Deletes an existing AidDisbursement object.

HTTP Request

DELETE /people/(person)/aidawards/(aidaward)/refunds/(aiddisbursement)

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:

AidDisbursementBatch

The AidDisbursementBatch object

The AidDisbursementBatch object looks like this in JSON:

{
    "object": "aid_disbursement_batch",
    "id": 1,
    "aid_type_ids": "[7]",
    "campus_id": null,
    "number": 1,
    "type": "disbursement",
    "status": "open",
    "stage_id": 7,
    "import_id": null,
    "transaction_id": null,
    "notify_students": false,
    "added_at": "2023-05-23T21:10:45+00:00",
    "added_by_id": 2923,
    "updated_at": "2023-05-23T21:37:38+00:00",
    "updated_by_id": 2923,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
aid_type_ids No --
campus_id No int
number No int
type No enum (disbursement, refund_to_student, refund_to_source)
status Yes enum (open, closed, canceled)
stage_id No int
import_id No int
transaction_id No int
notify_students No bool
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aiddisbursementbatches" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"award","value":1,"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aiddisbursementbatches',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aiddisbursementbatches',
 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/aiddisbursementbatches"), 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/aiddisbursementbatches');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "aid_disbursement_batch",
            "id": 1,
            "aid_type_ids": "[7]",
            "campus_id": null,
            "number": 1,
            "type": "disbursement",
            "status": "open",
            "stage_id": 7,
            "import_id": null,
            "transaction_id": null,
            "notify_students": false,
            "added_at": "2023-05-23T21:10:45+00:00",
            "added_by_id": 2923,
            "updated_at": "2023-05-23T21:37:38+00:00",
            "updated_by_id": 2923,
            "report_data": {
                "stage_name": "Posted to Student Accounts",
                "num_disbursements": "0",
                "amount": "0.00",
                "financial_aid_ids": null,
                "student_ids": null,
                "campus_name": null
            }
        }
    ],
    "sandbox": true
}

Retrieves all AidDisbursementBatch objects that match given filter conditions.

HTTP Request

GET /aiddisbursementbatches

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
batch_number integer
type enum
campus campus
status enum
stage object id
added datetime
updated datetime
disbursements integer
amount decimal
award object id
student search

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/aiddisbursementbatches" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "type": "disbursement",
    "aid_disbursement_ids": "[13,14]"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/aiddisbursementbatches',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :type => 'disbursement',
  :aid_disbursement_ids => [13,14]
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/aiddisbursementbatches',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'type': 'disbursement',
  'aid_disbursement_ids': [13,14]
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/aiddisbursementbatches"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  type = "disbursement",
  aid_disbursement_ids = [13,14]
});
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/aiddisbursementbatches');
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([
  'type' => 'disbursement',
  'aid_disbursement_ids' => [13,14]
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "aid_disbursement_batch",
    "id": 2,
    "aid_type_ids": "[9]",
    "campus_id": null,
    "number": 2,
    "type": "disbursement",
    "status": "open",
    "stage_id": 1,
    "import_id": null,
    "transaction_id": null,
    "notify_students": false,
    "added_at": "2025-04-14T23:32:14+00:00",
    "added_by_id": 22,
    "updated_at": null,
    "updated_by_id": null,
    "sandbox": true
}

Creates a new AidDisbursementBatch object.

HTTP Request

POST /aiddisbursementbatches

Parameters

Name Required Data Type Description
type Yes enum (disbursement, refund_to_student, refund_to_source)
aid_disbursement_ids Yes array of AidDisbursement ids

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/aiddisbursementbatches/(aiddisbursementbatch)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aiddisbursementbatches/(aiddisbursementbatch)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aiddisbursementbatches/(aiddisbursementbatch)',
 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/aiddisbursementbatches/(aiddisbursementbatch)"), 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/aiddisbursementbatches/(aiddisbursementbatch)');
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": "aid_disbursement_batch",
    "id": 1,
    "aid_type_ids": "[7]",
    "campus_id": null,
    "number": 1,
    "type": "disbursement",
    "status": "open",
    "stage_id": 7,
    "import_id": null,
    "transaction_id": null,
    "notify_students": false,
    "added_at": "2023-05-23T21:10:45+00:00",
    "added_by_id": 2923,
    "updated_at": "2023-05-23T21:37:38+00:00",
    "updated_by_id": 2923,
    "sandbox": true
}

Retrieves a specific AidDisbursementBatch object.

HTTP Request

GET /aiddisbursementbatches/(aiddisbursementbatch)

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:

AidStudentAuthorization

The AidStudentAuthorization object

The AidStudentAuthorization object looks like this in JSON:

{
    "object": "aid_student_authorization",
    "id": 12,
    "student_id": 18499,
    "borrower_id": null,
    "aid_authorization_id": 2,
    "aid_year_id": 50,
    "added_at": "2021-12-23T17:33:30+00:00",
    "added_by_id": 24469716,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id No int
borrower_id No int
aid_authorization_id Yes int
aid_year_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/aidauthorizations/" \
-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)/aidauthorizations/',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/aidauthorizations/',
 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)/aidauthorizations/"), 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)/aidauthorizations/');
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": "aid_student_authorization",
            "id": 13,
            "student_id": 12,
            "borrower_id": null,
            "aid_authorization_id": 2,
            "aid_year_id": 5,
            "added_at": "2021-12-23T17:33:30+00:00",
            "added_by_id": 16
        }
    ],
    "sandbox": true
}

Retrieves all AidStudentAuthorization objects tied to a specific Person.

HTTP Request

GET /people/(person)/aidauthorizations/

Parameters

None

Permissions

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

AidType

The AidType object

The AidType object looks like this in JSON:

{
    "object": "aid_type",
    "id": 1,
    "startyear": 1,
    "endyear": 0,
    "name": "Pell Grant",
    "abbrv": "PELL",
    "cod_abbrv": "PELL",
    "title_iv": true,
    "type": "grant",
    "is_scholarship": false,
    "source": "federal",
    "multiplier": null,
    "federal_aid_id": null,
    "need_based": true,
    "count_against_need": true,
    "report_on_1098t": true,
    "non_eligible_fee_aid": false,
    "count_as_tuition_discount": false,
    "counts_as_efa": true,
    "only_allow_whole_dollar_amounts": false,
    "allow_partial_acceptance": false,
    "require_enrollment_verification": false,
    "status": "active",
    "veterans_benefits": false,
    "external_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
startyear Yes int
endyear Yes int
name Yes text (100)
abbrv Yes text (25)
cod_abbrv No text (100)
title_iv No bool
type Yes enum (grant, loan, work_study)
is_scholarship Yes bool
source Yes enum (federal, state, institution, private, employer, other)
multiplier No decimal
federal_aid_id No int
need_based Yes bool
count_against_need Yes bool
report_on_1098t Yes bool
non_eligible_fee_aid Yes bool
count_as_tuition_discount Yes bool
counts_as_efa Yes bool
only_allow_whole_dollar_amounts Yes bool
allow_partial_acceptance No bool
require_enrollment_verification Yes bool
status Yes enum (active, retired)
veterans_benefits Yes bool
external_id No text (100)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aidtypes" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidtypes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidtypes',
 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/aidtypes"), 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/aidtypes');
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": 12,
    "results": 12,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "aid_type",
            "id": 1,
            "startyear": 1,
            "endyear": 0,
            "name": "Pell Grant",
            "abbrv": "PELL",
            "cod_abbrv": "PELL",
            "title_iv": true,
            "type": "grant",
            "is_scholarship": false,
            "source": "federal",
            "multiplier": null,
            "federal_aid_id": null,
            "need_based": true,
            "count_against_need": true,
            "report_on_1098t": true,
            "non_eligible_fee_aid": false,
            "count_as_tuition_discount": false,
            "counts_as_efa": true,
            "only_allow_whole_dollar_amounts": false,
            "allow_partial_acceptance": false,
            "require_enrollment_verification": false,
            "status": "active",
            "veterans_benefits": false,
            "external_id": null
        }
    ],
    "sandbox": true
}

Retrieves all AidType objects.

HTTP Request

GET /aidtypes

Parameters

None

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/aidtypes/(aidtype)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidtypes/(aidtype)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidtypes/(aidtype)',
 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/aidtypes/(aidtype)"), 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/aidtypes/(aidtype)');
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": "aid_type",
    "id": 1,
    "startyear": 1,
    "endyear": 0,
    "name": "Pell Grant",
    "abbrv": "PELL",
    "cod_abbrv": "PELL",
    "title_iv": true,
    "type": "grant",
    "is_scholarship": false,
    "source": "federal",
    "multiplier": null,
    "federal_aid_id": null,
    "need_based": true,
    "count_against_need": true,
    "report_on_1098t": true,
    "non_eligible_fee_aid": false,
    "count_as_tuition_discount": false,
    "counts_as_efa": true,
    "only_allow_whole_dollar_amounts": false,
    "allow_partial_acceptance": false,
    "require_enrollment_verification": false,
    "status": "active",
    "veterans_benefits": false,
    "external_id": null,
    "sandbox": true
}

Retrieves a specific AidType object.

HTTP Request

GET /aidtypes/(aidtype)

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:

AidYear

The AidYear object

The AidYear object looks like this in JSON:

{
    "object": "aid_year",
    "id": 60,
    "name": "2025-2026",
    "start_date": "2025-07-01",
    "end_date": "2026-06-30",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name No text (50)
start_date No date
end_date No date
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aidyears" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidyears',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidyears',
 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/aidyears"), 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/aidyears');
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": 19,
    "results": 19,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "aid_year",
            "id": 60,
            "name": "2025-2026",
            "start_date": "2025-07-01",
            "end_date": "2026-06-30"
        }
    ],
    "sandbox": true
}

Retrieves all AidYear objects.

HTTP Request

GET /aidyears

Parameters

None

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/aidyears/(aidyear)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidyears/(aidyear)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidyears/(aidyear)',
 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/aidyears/(aidyear)"), 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/aidyears/(aidyear)');
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": "aid_year",
    "id": 60,
    "name": "2025-2026",
    "start_date": "2025-07-01",
    "end_date": "2026-06-30",
    "sandbox": true
}

Retrieves a specific AidYear object.

HTTP Request

GET /aidyears/(aidyear)

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:

AidYearSchedule

The AidYearSchedule object

The AidYearSchedule object looks like this in JSON:

{
    "object": "aid_year_schedule",
    "id": 9,
    "name": "Undergraduate Standard Schedule",
    "aid_year_id": 3,
    "equal_disbursement_amounts": true,
    "status": "active",
    "aid_year_name": "2012-2013",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (100)
aid_year_id No int
equal_disbursement_amounts Yes bool
status Yes enum (active, retired)
aid_year_name No --
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/aidyears/(aidyear)/schedules" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidyears/(aidyear)/schedules',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidyears/(aidyear)/schedules',
 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/aidyears/(aidyear)/schedules"), 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/aidyears/(aidyear)/schedules');
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": 0,
    "results": 0,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Retrieves all AidYearSchedule objects tied to a specific Aidyear.

HTTP Request

GET /aidyears/(aidyear)/schedules

Parameters

None

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/aidyears/(aidyear)/schedules/(aidyearschedule)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/aidyears/(aidyear)/schedules/(aidyearschedule)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/aidyears/(aidyear)/schedules/(aidyearschedule)',
 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/aidyears/(aidyear)/schedules/(aidyearschedule)"), 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/aidyears/(aidyear)/schedules/(aidyearschedule)');
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": "aid_year_schedule",
    "id": 8,
    "name": "Undergraduate Standard Schedule",
    "aid_year_id": 2,
    "equal_disbursement_amounts": true,
    "status": "active",
    "aid_year_name": "2011-2012",
    "sandbox": true
}

Retrieves a specific AidYearSchedule object.

HTTP Request

GET /aidyears/(aidyear)/schedules/(aidyearschedule)

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:

Appeal

The Appeal object

The Appeal object looks like this in JSON:

{
    "object": "appeal",
    "id": 6,
    "campaign_id": 3,
    "name": "Email blast #21",
    "appeal_medium_id": 6,
    "made_on": "2018-04-07",
    "cost": 10.1,
    "status": "active",
    "added_at": "2018-04-07T22:21:45+00:00",
    "added_by_id": 1257,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
campaign_id Yes int
name Yes text (200)
appeal_medium_id No int
made_on Yes date
cost No decimal
status Yes enum (active, inactive, deleted)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/appeals" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/appeals',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/appeals',
 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/appeals"), 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/appeals');
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": "appeal",
            "id": 6,
            "campaign_id": 3,
            "name": "Email blast #21",
            "appeal_medium_id": 6,
            "made_on": "2018-04-07",
            "cost": 10.1,
            "status": "active",
            "added_at": "2018-04-07T22:21:45+00:00",
            "added_by_id": 1257
        }
    ],
    "sandbox": true
}

Retrieves all Appeal objects.

HTTP Request

GET /appeals

Parameters

None

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/appeals/(appeal)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/appeals/(appeal)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/appeals/(appeal)',
 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/appeals/(appeal)"), 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/appeals/(appeal)');
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": "appeal",
    "id": 6,
    "campaign_id": 3,
    "name": "Email blast #21",
    "appeal_medium_id": 6,
    "made_on": "2018-04-07",
    "cost": 10.1,
    "status": "active",
    "added_at": "2018-04-07T22:21:45+00:00",
    "added_by_id": 1257,
    "sandbox": true
}

Retrieves a specific Appeal object.

HTTP Request

GET /appeals/(appeal)

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:

AppealMedium

The AppealMedium object

The AppealMedium object looks like this in JSON:

{
    "object": "appeal_medium",
    "id": 6,
    "name": "Postcard",
    "status": "active",
    "added_at": "2014-04-07T19:18:30+00:00",
    "added_by_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name No text (500)
status Yes enum (active, inactive, deleted)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/appealmedia" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/appealmedia',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/appealmedia',
 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/appealmedia"), 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/appealmedia');
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": "appeal_medium",
            "id": 6,
            "name": "Postcard",
            "status": "active",
            "added_at": "2014-04-07T19:18:30+00:00",
            "added_by_id": 1
        }
    ],
    "sandbox": true
}

Retrieves all AppealMedium objects.

HTTP Request

GET /appealmedia

Parameters

None

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/appealmedia/(appealmedium)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/appealmedia/(appealmedium)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/appealmedia/(appealmedium)',
 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/appealmedia/(appealmedium)"), 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/appealmedia/(appealmedium)');
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": "appeal_medium",
    "id": 6,
    "name": "Postcard",
    "status": "active",
    "added_at": "2014-04-07T19:18:30+00:00",
    "added_by_id": 1,
    "sandbox": true
}

Retrieves a specific AppealMedium object.

HTTP Request

GET /appealmedia/(appealmedium)

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:

Application

The Application object

The Application object looks like this in JSON:

{
    "object": "application",
    "id": 1,
    "cloned_from_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Homestar",
    "middle_name": null,
    "last_name": "Runner",
    "email": "homestar@populi.co",
    "phone": null,
    "address_id": null,
    "application_template_id": 3,
    "form_version_id": 2,
    "counselor_id": null,
    "program_id": 1,
    "degree_seeking": true,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": 1,
    "campus_id": null,
    "lead_source_id": null,
    "started_on": "2013-03-19",
    "submitted_at": null,
    "pending_decision_on": null,
    "decision_on": null,
    "confirmed_on": null,
    "withdrawn_on": null,
    "expected_enrollment": "full_time",
    "status": "in_progress",
    "provisional": false,
    "provisional_note": null,
    "hs_grad_date": null,
    "fee_status": "unpaid",
    "fee_id": null,
    "fee_amount": null,
    "fee_discount": null,
    "fee_payment": "before_start",
    "sales_receipt_id": null,
    "prospect_activity_at": null,
    "staff_activity_at": null,
    "percent_complete": 0,
    "active_questions": null,
    "localization_id": null,
    "added_at": "2013-03-19T21:20:18+00:00",
    "added_by_id": null,
    "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
cloned_from_id No int
person_id No int
lead_id No int
first_name No text (50)
middle_name No text (50)
last_name No text (50)
email No text (100)
phone No text (45)
address_id No int
application_template_id No int
form_version_id No int
counselor_id No int
program_id No int
degree_seeking Yes bool
degree_id No int
specialization_id No int
academic_term_id No int
campus_id No int
lead_source_id No int
started_on No date
submitted_at No datetime
pending_decision_on No date
decision_on No date
confirmed_on No date
withdrawn_on No date
expected_enrollment Yes enum (full_time, half_time, less_than_half_time)
status Yes enum (in_progress, submitted, pending_decision, accepted, declined, withdrawn, deferred, waitlisted, deleted)
provisional Yes bool
provisional_note No text
hs_grad_date No date
fee_status Yes enum (unpaid, paid, waived)
fee_id No int
fee_amount No decimal
fee_discount No decimal
fee_payment Yes enum (before_start, before_submit)
sales_receipt_id No int
prospect_activity_at No datetime
staff_activity_at No datetime
percent_complete Yes int
active_questions No int
localization_id No int
added_at No datetime
added_by_id No int
applicant_url No text
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/applications" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"program","value":"NONE","positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/applications',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/applications',
 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/applications"), 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/applications');
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": 5,
    "results": 5,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "application",
            "id": 1,
            "cloned_from_id": null,
            "person_id": null,
            "lead_id": null,
            "first_name": "Homestar",
            "middle_name": null,
            "last_name": "Runner",
            "email": "homestar@populi.co",
            "phone": null,
            "address_id": null,
            "application_template_id": 3,
            "form_version_id": 2,
            "counselor_id": null,
            "program_id": 1,
            "degree_seeking": true,
            "degree_id": null,
            "specialization_id": null,
            "academic_term_id": 1,
            "campus_id": null,
            "lead_source_id": null,
            "started_on": "2013-03-19",
            "submitted_at": null,
            "pending_decision_on": null,
            "decision_on": null,
            "confirmed_on": null,
            "withdrawn_on": null,
            "expected_enrollment": "full_time",
            "status": "in_progress",
            "provisional": false,
            "provisional_note": null,
            "hs_grad_date": null,
            "fee_status": "unpaid",
            "fee_id": null,
            "fee_amount": null,
            "fee_discount": null,
            "fee_payment": "before_start",
            "sales_receipt_id": null,
            "prospect_activity_at": null,
            "staff_activity_at": null,
            "percent_complete": 0,
            "active_questions": null,
            "localization_id": null,
            "person_first_name": "Homestar",
            "person_preferred_name": null,
            "person_last_name": "Runner",
            "application_template_name": "Test v3",
            "program_name": "Undergraduate",
            "academic_term_display_name": "2006-2007: Fall 2006",
            "lead_source_full_name": null,
            "counselor_name": null,
            "counselor_first_name": null,
            "counselor_last_name": null,
            "owner_type": "application",
            "has_aid_application": 0,
            "campus_name": null,
            "added_at": "2013-03-19T21:20:18+00:00",
            "added_by_id": null,
            "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9"
        }
    ],
    "sandbox": true
}

Retrieves all Application objects that match given filter conditions.

HTTP Request

GET /applications

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
first_name text
last_name text
gender gender
application_form object id
discount_code object id
source leadsource
lead_source leadsource
program program
degree degree
specialization specialization
academic_term academic_term
campus campus
counselor admissions_counselor
status enum
provisional bool
active_questions integer
applicant_activity date_time
percent_completed integer
linked_to_person bool
has_aid_application bool
expected_enrollment choice
fee_status enum
started_on date
submitted_at date_time
staff_activity date_time
pending_decision_on date
decision_date date
withdrawn_date date
tag tag
custom_field custom
has_active_student_role has_active_student_role

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/applications" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "application_template_id": 2,
    "first_name": "Darrin",
    "last_name": "Walker",
    "email": "dwalker88@somewhere.net",
    "phone": "208-555-4321",
    "started_on": "2022-08-25",
    "address": "{\"street\":\"555 Maple Street\",\"city\":\"Dallas\",\"state\":\"TX\",\"postal\":\"55123\",\"country\":\"US\"}"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/applications',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :application_template_id => 2,
  :started_on => '2022-08-25'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/applications',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'application_template_id': 2,
  'started_on': '2022-08-25'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/applications"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  application_template_id = 2,
  started_on = "2022-08-25"
});
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/applications');
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([
  'application_template_id' => 2,
  'started_on' => '2022-08-25'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "application",
    "id": 6,
    "cloned_from_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Darrin",
    "middle_name": null,
    "last_name": "Walker",
    "email": "dwalker88@somewhere.net",
    "phone": "(208) 555-4321",
    "address_id": 803,
    "application_template_id": 2,
    "form_version_id": 4,
    "counselor_id": null,
    "program_id": 1,
    "degree_seeking": true,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": 1,
    "campus_id": null,
    "lead_source_id": null,
    "started_on": "2022-08-25",
    "submitted_at": null,
    "pending_decision_on": null,
    "decision_on": null,
    "confirmed_on": null,
    "withdrawn_on": null,
    "expected_enrollment": "full_time",
    "status": "in_progress",
    "provisional": false,
    "provisional_note": null,
    "hs_grad_date": null,
    "fee_status": "unpaid",
    "fee_id": null,
    "fee_amount": 75,
    "fee_discount": null,
    "fee_payment": "before_start",
    "sales_receipt_id": null,
    "prospect_activity_at": null,
    "staff_activity_at": null,
    "percent_complete": 0,
    "active_questions": null,
    "localization_id": null,
    "address": {
        "object": "address",
        "id": 803,
        "owner_id": 6,
        "owner_type": "application",
        "street": "555 Maple Street",
        "city": "Dallas",
        "state": "TX",
        "postal": "55123",
        "country": "US",
        "type": "home",
        "primary": true,
        "old": false,
        "public": false,
        "synced_from": null,
        "import_id": null,
        "added_at": "2025-04-14T23:32:15+00:00",
        "added_by_id": 22
    },
    "added_at": "2025-04-14T23:32:15+00:00",
    "added_by_id": 22,
    "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9",
    "sandbox": true
}

Creates a new Application object.

HTTP Request

POST /applications

Parameters

Name Required Data Type Description
application_template_id Yes int
first_name No text (50)
middle_name No text (50)
last_name No text (50)
email No text (100)
phone No text (45)
started_on Yes date
person_id No int
lead_id No int
representative_id No int
degree_seeking No bool
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
expected_enrollment No enum (full_time, half_time, less_than_half_time)
fee_status No enum (unpaid, paid, waived)
address No address

Action Parameters

Name Data Type Description
email_applicant bool Send the applicant an email link to the newly created application.
update_lead_status bool If the application is tied to a Lead, update it's status and program information.

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/applications/(application)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/applications/(application)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/applications/(application)',
 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/applications/(application)"), 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/applications/(application)');
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": "application",
    "id": 1,
    "cloned_from_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Homestar",
    "middle_name": null,
    "last_name": "Runner",
    "email": "homestar@populi.co",
    "phone": null,
    "address_id": null,
    "application_template_id": 3,
    "form_version_id": 2,
    "counselor_id": null,
    "program_id": 1,
    "degree_seeking": true,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": 1,
    "campus_id": null,
    "lead_source_id": null,
    "started_on": "2013-03-19",
    "submitted_at": null,
    "pending_decision_on": null,
    "decision_on": null,
    "confirmed_on": null,
    "withdrawn_on": null,
    "expected_enrollment": "full_time",
    "status": "in_progress",
    "provisional": false,
    "provisional_note": null,
    "hs_grad_date": null,
    "fee_status": "unpaid",
    "fee_id": null,
    "fee_amount": null,
    "fee_discount": null,
    "fee_payment": "before_start",
    "sales_receipt_id": null,
    "prospect_activity_at": null,
    "staff_activity_at": null,
    "percent_complete": 0,
    "active_questions": null,
    "localization_id": null,
    "added_at": "2013-03-19T21:20:18+00:00",
    "added_by_id": null,
    "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9",
    "sandbox": true
}

Retrieves a specific Application object. To include field definitions, use the expandable property form_version. To include the values of submitted answers to fields, use the expandable property answers.

HTTP Request

GET /applications/(application)

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

Example code to call this method:

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

Example response:

{
    "object": "application",
    "id": 1,
    "cloned_from_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Homestar",
    "middle_name": null,
    "last_name": "Runner",
    "email": "homestar@populi.co",
    "phone": null,
    "address_id": null,
    "application_template_id": 3,
    "form_version_id": 2,
    "counselor_id": null,
    "program_id": 1,
    "degree_seeking": true,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": 1,
    "campus_id": null,
    "lead_source_id": null,
    "started_on": "2013-03-19",
    "submitted_at": null,
    "pending_decision_on": null,
    "decision_on": null,
    "confirmed_on": null,
    "withdrawn_on": null,
    "expected_enrollment": "full_time",
    "status": "in_progress",
    "provisional": false,
    "provisional_note": null,
    "hs_grad_date": null,
    "fee_status": "unpaid",
    "fee_id": null,
    "fee_amount": null,
    "fee_discount": null,
    "fee_payment": "before_start",
    "sales_receipt_id": null,
    "prospect_activity_at": null,
    "staff_activity_at": "2025-04-14T23:32:15+00:00",
    "percent_complete": 0,
    "active_questions": null,
    "localization_id": null,
    "address": null,
    "added_at": "2013-03-19T21:20:18+00:00",
    "added_by_id": null,
    "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9",
    "sandbox": true
}

Updates an existing Application object.

HTTP Request

PUT /applications/(application)

Parameters

Name Required Data Type Description
status Yes enum (in_progress, submitted, pending_decision, accepted, declined, withdrawn, deferred, waitlisted, deleted)
fee_status No enum (unpaid, paid, waived)
provisional No bool
provisional_note No text

Action Parameters

Name Data Type Description
import_course_of_study
add_student_role

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/applications/(application)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/applications/(application)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/applications/(application)',
 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/applications/(application)"), 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/applications/(application)');
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": "application",
    "id": 1,
    "deleted": true
}

Deletes an existing Application object.

HTTP Request

DELETE /applications/(application)

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:

fields

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/applications/(application)/fields" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/applications/(application)/fields',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/applications/(application)/fields',
 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/applications/(application)/fields"), 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/applications/(application)/fields');
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": 47,
    "results": 47,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": {
        "object": "application",
        "id": 1,
        "cloned_from_id": null,
        "person_id": 2,
        "lead_id": 7,
        "first_name": "Charles",
        "middle_name": "",
        "last_name": "Fulton",
        "email": "charlesf@populi.co",
        "phone": null,
        "address_id": null,
        "application_template_id": 3,
        "form_version_id": 2,
        "counselor_id": null,
        "program_id": 1,
        "degree_seeking": true,
        "degree_id": null,
        "specialization_id": null,
        "academic_term_id": 1,
        "campus_id": null,
        "lead_source_id": null,
        "started_on": "2013-03-19",
        "submitted_at": "2025-04-14T23:32:15+00:00",
        "pending_decision_on": null,
        "decision_on": null,
        "confirmed_on": null,
        "withdrawn_on": null,
        "expected_enrollment": "full_time",
        "status": "submitted",
        "provisional": false,
        "provisional_note": null,
        "hs_grad_date": null,
        "fee_status": "unpaid",
        "fee_id": null,
        "fee_amount": null,
        "fee_discount": null,
        "fee_payment": "before_start",
        "sales_receipt_id": null,
        "prospect_activity_at": null,
        "staff_activity_at": "2025-04-14T23:32:15+00:00",
        "percent_complete": 0,
        "active_questions": null,
        "localization_id": null,
        "added_at": "2013-03-19T21:20:18+00:00",
        "added_by_id": null,
        "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9",
        "pages": [
            {
                "object": "form_version_page",
                "id": 1,
                "form_version_id": 2,
                "derived_from_id": null,
                "name": null,
                "order_id": 1,
                "added_at": null,
                "added_by_id": null,
                "fields": [
                    {
                        "object": "form_field",
                        "id": 1,
                        "reporting_id": 1,
                        "name": "Short Answer",
                        "description": null,
                        "input_type": "short_answer",
                        "model_type": null,
                        "model_id": null,
                        "min": null,
                        "max": null,
                        "added_at": null,
                        "added_by_id": null
                    },
                    {
                        "object": "form_field",
                        "id": 2,
                        "reporting_id": 2,
                        "name": "Long Answer",
                        "description": null,
                        "input_type": "long_answer",
                        "model_type": null,
                        "model_id": null,
                        "min": null,
                        "max": null,
                        "added_at": null,
                        "added_by_id": null
                    },
                    {
                        "object": "form_field",
                        "id": 3,
                        "reporting_id": 3,
                        "name": "Boolean",
                        "description": null,
                        "input_type": "boolean",
                        "model_type": null,
                        "model_id": null,
                        "min": null,
                        "max": null,
                        "added_at": null,
                        "added_by_id": null
                    },
                    {
                        "object": "form_field",
                        "id": 7,
                        "reporting_id": 7,
                        "name": "Ref",
                        "description": null,
                        "input_type": "model",
                        "model_type": "online_reference_template",
                        "model_id": 4,
                        "min": null,
                        "max": null,
                        "added_at": null,
                        "added_by_id": null
                    }
                ]
            }
        ]
    }
}

HTTP Request

GET /applications/(application)/fields

Parameters

None

Permissions

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

Example code to call this method:

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

Example response:

{
    "object": "application",
    "id": 1,
    "cloned_from_id": null,
    "person_id": 2,
    "lead_id": 7,
    "first_name": "Charles",
    "middle_name": "",
    "last_name": "Fulton",
    "email": "charlesf@populi.co",
    "phone": null,
    "address_id": null,
    "application_template_id": 3,
    "form_version_id": 2,
    "counselor_id": null,
    "program_id": 1,
    "degree_seeking": true,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": 1,
    "campus_id": null,
    "lead_source_id": null,
    "started_on": "2013-03-19",
    "submitted_at": "2025-04-14T23:32:15+00:00",
    "pending_decision_on": null,
    "decision_on": null,
    "confirmed_on": null,
    "withdrawn_on": null,
    "expected_enrollment": "full_time",
    "status": "submitted",
    "provisional": false,
    "provisional_note": null,
    "hs_grad_date": null,
    "fee_status": "unpaid",
    "fee_id": null,
    "fee_amount": null,
    "fee_discount": null,
    "fee_payment": "before_start",
    "sales_receipt_id": null,
    "prospect_activity_at": null,
    "staff_activity_at": "2025-04-14T23:32:15+00:00",
    "percent_complete": 0,
    "active_questions": null,
    "localization_id": null,
    "added_at": "2013-03-19T21:20:18+00:00",
    "added_by_id": null,
    "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9",
    "sandbox": true
}

HTTP Request

GET /applications/(application)/link_to_person

Parameters

Name Required Data Type Description
person_id Yes int

Permissions

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

submit

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/applications/(application)/submit" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/applications/(application)/submit',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/applications/(application)/submit',
 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/applications/(application)/submit"), 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/applications/(application)/submit');
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": "application",
    "id": 1,
    "cloned_from_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Homestar",
    "middle_name": null,
    "last_name": "Runner",
    "email": "homestar@populi.co",
    "phone": null,
    "address_id": null,
    "application_template_id": 3,
    "form_version_id": 2,
    "counselor_id": null,
    "program_id": 1,
    "degree_seeking": true,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": 1,
    "campus_id": null,
    "lead_source_id": null,
    "started_on": "2013-03-19",
    "submitted_at": "2025-04-14T23:32:15+00:00",
    "pending_decision_on": null,
    "decision_on": null,
    "confirmed_on": null,
    "withdrawn_on": null,
    "expected_enrollment": "full_time",
    "status": "submitted",
    "provisional": false,
    "provisional_note": null,
    "hs_grad_date": null,
    "fee_status": "unpaid",
    "fee_id": null,
    "fee_amount": null,
    "fee_discount": null,
    "fee_payment": "before_start",
    "sales_receipt_id": null,
    "prospect_activity_at": null,
    "staff_activity_at": "2025-04-14T23:32:15+00:00",
    "percent_complete": 0,
    "active_questions": null,
    "localization_id": null,
    "added_at": "2013-03-19T21:20:18+00:00",
    "added_by_id": null,
    "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9",
    "sandbox": true
}

HTTP Request

GET /applications/(application)/submit

Parameters

None

Permissions

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/applications/(application)/unlink_person" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/applications/(application)/unlink_person',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/applications/(application)/unlink_person',
 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/applications/(application)/unlink_person"), 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/applications/(application)/unlink_person');
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": "application",
    "id": 1,
    "cloned_from_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Homestar",
    "middle_name": null,
    "last_name": "Runner",
    "email": "homestar@populi.co",
    "phone": null,
    "address_id": null,
    "application_template_id": 3,
    "form_version_id": 2,
    "counselor_id": null,
    "program_id": 1,
    "degree_seeking": true,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": 1,
    "campus_id": null,
    "lead_source_id": null,
    "started_on": "2013-03-19",
    "submitted_at": "2025-04-14T23:32:15+00:00",
    "pending_decision_on": null,
    "decision_on": null,
    "confirmed_on": null,
    "withdrawn_on": null,
    "expected_enrollment": "full_time",
    "status": "submitted",
    "provisional": false,
    "provisional_note": null,
    "hs_grad_date": null,
    "fee_status": "unpaid",
    "fee_id": null,
    "fee_amount": null,
    "fee_discount": null,
    "fee_payment": "before_start",
    "sales_receipt_id": null,
    "prospect_activity_at": null,
    "staff_activity_at": "2025-04-14T23:32:15+00:00",
    "percent_complete": 0,
    "active_questions": null,
    "localization_id": null,
    "added_at": "2013-03-19T21:20:18+00:00",
    "added_by_id": null,
    "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9",
    "sandbox": true
}

HTTP Request

GET /applications/(application)/unlink_person

Parameters

None

Permissions

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

show_online_reference

Example code to call this method:

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

Example response:

{
    "object": "online_reference",
    "id": 5,
    "first_name": "Homestar",
    "middle_name": null,
    "last_name": "Runner",
    "email": "homestar@populi.co",
    "phone": "(555) 555-8585",
    "online_reference_form_id": 1,
    "form_version_id": 5,
    "submitted_at": "2013-04-19T00:00:00+00:00",
    "status": "submitted",
    "form_version": {
        "object": "form_version",
        "id": 5,
        "owner_type": "online_reference_template",
        "owner_id": 4,
        "added_at": null,
        "added_by_id": null,
        "sections": [
            {
                "object": "form_field",
                "id": 16,
                "reporting_id": 16,
                "name": "Your name",
                "description": null,
                "input_type": "name",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "is_required": true,
                "page_order_id": 1,
                "order_id": 1,
                "hidden": false
            },
            {
                "object": "form_field",
                "id": 17,
                "reporting_id": 17,
                "name": "Your phone number",
                "description": null,
                "input_type": "phone",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "is_required": true,
                "page_order_id": 1,
                "order_id": 2,
                "hidden": false
            },
            {
                "object": "form_field",
                "id": 18,
                "reporting_id": 18,
                "name": "Reference",
                "description": null,
                "input_type": "long_answer",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "is_required": true,
                "page_order_id": 1,
                "order_id": 3,
                "hidden": false
            }
        ]
    },
    "answers": [
        {
            "object": "form_field_answer",
            "id": 5,
            "owner_type": "online_reference",
            "owner_id": 5,
            "form_field_id": 16,
            "subfield": "first_name",
            "text_value": "Homestar",
            "integer_value": null,
            "decimal_value": null,
            "date_value": null,
            "datetime_value": null,
            "email_value": null,
            "ip": null,
            "added_at": null
        },
        {
            "object": "form_field_answer",
            "id": 6,
            "owner_type": "online_reference",
            "owner_id": 5,
            "form_field_id": 16,
            "subfield": "last_name",
            "text_value": "Runner",
            "integer_value": null,
            "decimal_value": null,
            "date_value": null,
            "datetime_value": null,
            "email_value": null,
            "ip": null,
            "added_at": null
        },
        {
            "object": "form_field_answer",
            "id": 7,
            "owner_type": "online_reference",
            "owner_id": 5,
            "form_field_id": 17,
            "subfield": "phone",
            "text_value": "(555) 555-8585",
            "integer_value": null,
            "decimal_value": null,
            "date_value": null,
            "datetime_value": null,
            "email_value": null,
            "ip": null,
            "added_at": null
        },
        {
            "object": "form_field_answer",
            "id": 8,
            "owner_type": "online_reference",
            "owner_id": 5,
            "form_field_id": 18,
            "subfield": null,
            "text_value": "Answer text...",
            "integer_value": null,
            "decimal_value": null,
            "date_value": null,
            "datetime_value": null,
            "email_value": null,
            "ip": null,
            "added_at": null
        }
    ],
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

HTTP Request

GET /onlinereferences/(onlinereference)

Parameters

None

Expandable Properties

Permissions

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

index by person

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/applications" \
-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)/applications',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/applications',
 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)/applications"), 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)/applications');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "application",
            "id": 4,
            "cloned_from_id": null,
            "person_id": 12,
            "lead_id": null,
            "first_name": "Taylor",
            "middle_name": "",
            "last_name": "Forest",
            "email": "icecream@nowhere.co",
            "phone": "333-555-6666",
            "address_id": "801",
            "application_template_id": 1,
            "form_version_id": null,
            "counselor_id": null,
            "program_id": 1,
            "degree_seeking": true,
            "degree_id": 1,
            "specialization_id": 1,
            "academic_term_id": 1,
            "campus_id": null,
            "lead_source_id": null,
            "started_on": "2013-03-19",
            "submitted_at": "2013-04-19T00:00:00+00:00",
            "pending_decision_on": null,
            "decision_on": null,
            "confirmed_on": null,
            "withdrawn_on": null,
            "expected_enrollment": "full_time",
            "status": "submitted",
            "provisional": false,
            "provisional_note": null,
            "hs_grad_date": null,
            "fee_status": "unpaid",
            "fee_id": null,
            "fee_amount": null,
            "fee_discount": null,
            "fee_payment": "before_start",
            "sales_receipt_id": null,
            "prospect_activity_at": "2013-05-19T21:22:19+00:00",
            "staff_activity_at": null,
            "percent_complete": 100,
            "active_questions": 1,
            "localization_id": null,
            "added_at": null,
            "added_by_id": null,
            "applicant_url": "https:\/\/yourschool.populiweb.com\/router\/admissions\/onlineapplications\/show\/g64c8ee3f6da7a2293a0f77a7a697b178cc281eaf34e1c8ac6c5b784920d90c6944c03ac9ff54c31fc4b06ac3952ebc36969975080cc106f69f060ccb76abb9"
        }
    ],
    "sandbox": true
}

Retrieves all Application objects tied to a specific Person.

HTTP Request

GET /people/(person)/applications

Parameters

None

Permissions

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

ApplicationTemplate

The ApplicationTemplate object

The ApplicationTemplate object looks like this in JSON:

{
    "object": "application_template",
    "id": 3,
    "current_version_id": 2,
    "name": "Test v3",
    "type": "application",
    "published": true,
    "custom_css": null,
    "show_online": true,
    "require_address": false,
    "fee_id": null,
    "fee_amount": 75,
    "fee_payment": "before_start",
    "allow_undecided": true,
    "enable_sms_verification": true,
    "redirect_url": null,
    "thank_you_message": null,
    "initial_email_template_id": null,
    "enable_initial_email": true,
    "retired_by_id": null,
    "retired_at": null,
    "default_localization_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
current_version_id No int
name Yes text (300)
type Yes enum (application, online_reference)
published Yes bool
custom_css No text
show_online Yes bool
require_address Yes bool
fee_id No int
fee_amount No decimal
fee_payment Yes enum (before_start, before_submit)
allow_undecided Yes bool
enable_sms_verification Yes bool
redirect_url No text (2000)
thank_you_message No text
initial_email_template_id No int
enable_initial_email Yes bool
retired_by_id No int
retired_at No datetime
default_localization_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/applicationtemplates" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/applicationtemplates',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/applicationtemplates',
 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/applicationtemplates"), 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/applicationtemplates');
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": "application_template",
            "id": 3,
            "current_version_id": 2,
            "name": "Test v3",
            "type": "application",
            "published": true,
            "custom_css": null,
            "show_online": true,
            "require_address": false,
            "fee_id": null,
            "fee_amount": 75,
            "fee_payment": "before_start",
            "allow_undecided": true,
            "enable_sms_verification": true,
            "redirect_url": null,
            "thank_you_message": null,
            "initial_email_template_id": null,
            "enable_initial_email": true,
            "retired_by_id": null,
            "retired_at": null,
            "default_localization_id": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all ApplicationTemplate objects.

HTTP Request

GET /applicationtemplates

Parameters

None

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/applicationtemplates/(applicationtemplate)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/applicationtemplates/(applicationtemplate)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/applicationtemplates/(applicationtemplate)',
 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/applicationtemplates/(applicationtemplate)"), 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/applicationtemplates/(applicationtemplate)');
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": "application_template",
    "id": 3,
    "current_version_id": 2,
    "name": "Test v3",
    "type": "application",
    "published": true,
    "custom_css": null,
    "show_online": true,
    "require_address": false,
    "fee_id": null,
    "fee_amount": 75,
    "fee_payment": "before_start",
    "allow_undecided": true,
    "enable_sms_verification": true,
    "redirect_url": null,
    "thank_you_message": null,
    "initial_email_template_id": null,
    "enable_initial_email": true,
    "retired_by_id": null,
    "retired_at": null,
    "default_localization_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific ApplicationTemplate object.

HTTP Request

GET /applicationtemplates/(applicationtemplate)

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:

Assignment

The Assignment object

The Assignment object looks like this in JSON:

{
    "object": "assignment",
    "id": 29656,
    "course_offering_id": 21908,
    "name": "Testy",
    "points": 100,
    "due_at": null,
    "available_from": null,
    "available_until": null,
    "published": true,
    "description": "This is a test",
    "assignment_group_id": 0,
    "lesson_id": 0,
    "type": "test",
    "visible_to_students_before_available": true,
    "extra_credit": false,
    "pass_fail": false,
    "mandatory_pass": false,
    "peer_review": false,
    "anonymous_reviews": true,
    "submission_visibility": "always",
    "randomize_submissions": false,
    "review_visibility": "never",
    "allow_review_comments": false,
    "peer_grade": false,
    "grade_submissions": null,
    "grade_reviews": null,
    "reviews_due_at": null,
    "reviews_closed_at": null,
    "auto_check_submissions_for_plagiarism": false,
    "plagiarism_checks_visible_to_students": false,
    "plagiarism_check_provider": null,
    "release_grades": "yes",
    "release_grades_at": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
course_offering_id Yes int
name Yes text (255)
points Yes int
due_at No datetime
available_from No datetime
available_until No datetime
published Yes bool
description Yes text
assignment_group_id No int
lesson_id Yes int
type Yes enum (test, file_upload, neither, attendance, discussion, essay, lti_tool)
visible_to_students_before_available Yes bool
extra_credit Yes bool
pass_fail Yes bool
mandatory_pass Yes bool
peer_review Yes bool
anonymous_reviews Yes bool
submission_visibility Yes enum (after_submission, always)
randomize_submissions Yes bool
review_visibility Yes enum (never, after_review, always)
allow_review_comments Yes bool
peer_grade Yes bool
grade_submissions No int
grade_reviews No int
reviews_due_at No datetime
reviews_closed_at No datetime
auto_check_submissions_for_plagiarism Yes bool
plagiarism_checks_visible_to_students No bool
plagiarism_check_provider No enum (unicheck, turnitin, plagiarism_check)
release_grades Yes enum (yes, no, date)
release_grades_at No datetime
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments" \
-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)/assignments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments',
 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)/assignments"), 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)/assignments');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "assignment",
            "id": 30070,
            "course_offering_id": 21908,
            "name": "Homework #1",
            "points": 100,
            "due_at": null,
            "available_from": null,
            "available_until": null,
            "published": true,
            "description": null,
            "assignment_group_id": 9,
            "lesson_id": 0,
            "type": "neither",
            "visible_to_students_before_available": true,
            "extra_credit": false,
            "pass_fail": false,
            "mandatory_pass": false,
            "peer_review": false,
            "anonymous_reviews": true,
            "submission_visibility": "always",
            "randomize_submissions": false,
            "review_visibility": "never",
            "allow_review_comments": false,
            "peer_grade": false,
            "grade_submissions": null,
            "grade_reviews": null,
            "reviews_due_at": null,
            "reviews_closed_at": null,
            "auto_check_submissions_for_plagiarism": false,
            "plagiarism_checks_visible_to_students": false,
            "plagiarism_check_provider": null,
            "release_grades": "yes",
            "release_grades_at": null
        }
    ],
    "sandbox": true
}

Retrieves all Assignment objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/assignments

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/courseofferings/(courseoffering)/assignments" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "name": "Reading Homework #1",
    "type": "discussion"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :name => 'Reading Homework #1',
  :type => 'discussion'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'name': 'Reading Homework #1',
  'type': 'discussion'
 }
)
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)/assignments"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  name = "Reading Homework #1",
  type = "discussion"
});
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)/assignments');
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([
  'name' => 'Reading Homework #1',
  'type' => 'discussion'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "assignment",
    "id": 40001,
    "course_offering_id": 21908,
    "name": "Reading Homework #1",
    "points": 0,
    "due_at": null,
    "available_from": null,
    "available_until": null,
    "published": false,
    "description": null,
    "assignment_group_id": 0,
    "lesson_id": 0,
    "type": "discussion",
    "visible_to_students_before_available": false,
    "extra_credit": false,
    "pass_fail": false,
    "mandatory_pass": false,
    "peer_review": false,
    "anonymous_reviews": false,
    "submission_visibility": "after_submission",
    "randomize_submissions": false,
    "review_visibility": "never",
    "allow_review_comments": false,
    "peer_grade": false,
    "grade_submissions": null,
    "grade_reviews": null,
    "reviews_due_at": null,
    "reviews_closed_at": null,
    "auto_check_submissions_for_plagiarism": false,
    "plagiarism_checks_visible_to_students": false,
    "plagiarism_check_provider": null,
    "release_grades": "yes",
    "release_grades_at": "2025-04-14T23:32:13+00:00",
    "sandbox": true
}

Creates a new Assignment object.

HTTP Request

POST /courseofferings/(courseoffering)/assignments

Parameters

Name Required Data Type Description
name Yes text (255)
type Yes enum (test, file_upload, neither, attendance, discussion, essay, lti_tool)
description No text
assignment_group_id No int
discussion_id No bool Default is 0
catalog_course_ids No array of CatalogCourse ids
points No int
extra_credit No bool
published No bool Default is false
time_due No datetime
visible_to_students_before_available No bool
availability No enum (from, after, before, always)
start_window No datetime
end_window No datetime
time_limit No int
retake_policy No enum (keep_highest, keep_last, average)
retakes No int
proctored No bool
test_submit_feedback No enum (score, feedback, answers)
test_end_feedback No enum (score, feedback, answers)
course_end_feedback No enum (score, feedback, answers)
peer_grade No bool
grade_submission_points No int
grade_review_points No int
anonymous_reviews No bool
review_visibility No enum (never, after_review, always)
allow_review_comments No bool
reviews_time_due No datetime
reviews_closed_date_time No datetime

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)/assignments/(assignment)" \
-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)/assignments/(assignment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)',
 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)/assignments/(assignment)"), 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)/assignments/(assignment)');
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": "assignment",
    "id": 29656,
    "course_offering_id": 21908,
    "name": "Testy",
    "points": 100,
    "due_at": null,
    "available_from": null,
    "available_until": null,
    "published": true,
    "description": "This is a test",
    "assignment_group_id": 0,
    "lesson_id": 0,
    "type": "test",
    "visible_to_students_before_available": true,
    "extra_credit": false,
    "pass_fail": false,
    "mandatory_pass": false,
    "peer_review": false,
    "anonymous_reviews": true,
    "submission_visibility": "always",
    "randomize_submissions": false,
    "review_visibility": "never",
    "allow_review_comments": false,
    "peer_grade": false,
    "grade_submissions": null,
    "grade_reviews": null,
    "reviews_due_at": null,
    "reviews_closed_at": null,
    "auto_check_submissions_for_plagiarism": false,
    "plagiarism_checks_visible_to_students": false,
    "plagiarism_check_provider": null,
    "release_grades": "yes",
    "release_grades_at": null,
    "sandbox": true
}

Retrieves a specific Assignment object.

HTTP Request

GET /courseofferings/(courseoffering)/assignments/(assignment)

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)',
 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)/assignments/(assignment)"), 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/courseofferings/(courseoffering)/assignments/(assignment)');
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": "assignment",
    "id": 29656,
    "course_offering_id": 21908,
    "name": "Testy",
    "points": 100,
    "due_at": null,
    "available_from": null,
    "available_until": null,
    "published": true,
    "description": "This is a test",
    "assignment_group_id": 0,
    "lesson_id": 0,
    "type": "test",
    "visible_to_students_before_available": false,
    "extra_credit": false,
    "pass_fail": false,
    "mandatory_pass": false,
    "peer_review": false,
    "anonymous_reviews": false,
    "submission_visibility": "after_submission",
    "randomize_submissions": false,
    "review_visibility": "never",
    "allow_review_comments": false,
    "peer_grade": false,
    "grade_submissions": null,
    "grade_reviews": null,
    "reviews_due_at": null,
    "reviews_closed_at": null,
    "auto_check_submissions_for_plagiarism": false,
    "plagiarism_checks_visible_to_students": false,
    "plagiarism_check_provider": null,
    "release_grades": "yes",
    "release_grades_at": "2025-04-14T16:32:13+00:00",
    "sandbox": true
}

Updates an existing Assignment object.

HTTP Request

PUT /courseofferings/(courseoffering)/assignments/(assignment)

Parameters

Name Required Data Type Description
name No text (255)
description No text
assignment_group_id No int
discussion_id No bool Default is 0
catalog_course_ids No array of CatalogCourse ids
points No int
extra_credit No bool
published No bool Default is false
time_due No datetime
visible_to_students_before_available No bool
availability No enum (from, after, before, always)
start_window No datetime
end_window No datetime
time_limit No int
retake_policy No enum (keep_highest, keep_last, average)
retakes No int
proctored No bool
test_submit_feedback No enum (score, feedback, answers)
test_end_feedback No enum (score, feedback, answers)
course_end_feedback No enum (score, feedback, answers)
peer_grade No bool
grade_submission_points No int
grade_review_points No int
anonymous_reviews No bool
review_visibility No enum (never, after_review, always)
allow_review_comments No bool
reviews_time_due No datetime
reviews_closed_date_time No datetime

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/courseofferings/(courseoffering)/assignments/(assignment)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)',
 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)/assignments/(assignment)"), 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/courseofferings/(courseoffering)/assignments/(assignment)');
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": "assignment",
    "id": 40000,
    "deleted": true
}

Deletes an existing Assignment object.

HTTP Request

DELETE /courseofferings/(courseoffering)/assignments/(assignment)

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:

AssignmentGrade

The AssignmentGrade object

The AssignmentGrade object looks like this in JSON:

{
    "object": "assignment_grade",
    "id": 216741,
    "course_offering_id": 22776,
    "assignment_id": 21998,
    "student_id": 1,
    "grade": 93,
    "excused": false,
    "added_at": null,
    "added_by_id": null,
    "updated_at": null,
    "updated_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
course_offering_id Yes int
assignment_id Yes int
student_id Yes int
grade No decimal
excused Yes bool
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/grade" \
-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)/assignments/(assignment)/students/(person)/grade',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/grade',
 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)/assignments/(assignment)/students/(person)/grade"), 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)/assignments/(assignment)/students/(person)/grade');
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": "assignment_grade",
    "id": 280000,
    "course_offering_id": 21908,
    "assignment_id": 29656,
    "student_id": 16,
    "grade": 10,
    "excused": false,
    "added_at": null,
    "added_by_id": null,
    "updated_at": null,
    "updated_by_id": null,
    "sandbox": true
}

Retrieves a specific AssignmentGrade object.

HTTP Request

GET /courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/grade

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/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/grade/update" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "grade": 85
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/grade/update',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :grade => 85
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/grade/update',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'grade': 85
 }
)
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)/assignments/(assignment)/students/(person)/grade/update"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  grade = 85
});
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)/assignments/(assignment)/students/(person)/grade/update');
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([
  'grade' => 85
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "assignment_grade",
    "id": 280000,
    "course_offering_id": 21908,
    "assignment_id": 29656,
    "student_id": 16,
    "grade": 85,
    "excused": false,
    "added_at": null,
    "added_by_id": null,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "sandbox": true
}

Updates an existing AssignmentGrade object.

HTTP Request

PUT /courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/grade/update

Parameters

Name Required Data Type Description
grade Yes decimal

Action Parameters

Name Data Type Description
recalculate_final_grade bool

Permissions

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

AssignmentGroup

The AssignmentGroup object

The AssignmentGroup object looks like this in JSON:

{
    "object": "assignment_group",
    "id": 1,
    "course_offering_id": 23370,
    "name": "Tests",
    "weight": 40,
    "extra_credit": false,
    "drop_lowest": 0,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
course_offering_id Yes int
name Yes text (255)
weight Yes int
extra_credit Yes bool
drop_lowest Yes int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignmentgroups" \
-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)/assignmentgroups',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignmentgroups',
 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)/assignmentgroups"), 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)/assignmentgroups');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "assignment_group",
            "id": 11,
            "course_offering_id": 21908,
            "name": "Homework",
            "weight": 25,
            "extra_credit": false,
            "drop_lowest": 0,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all AssignmentGroup objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/assignmentgroups

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

Example response:

{
    "object": "assignment_group",
    "id": 12,
    "course_offering_id": 21908,
    "name": "Weekly Quizes",
    "weight": 0,
    "extra_credit": false,
    "drop_lowest": 0,
    "added_at": "2025-04-14T23:32:13+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new AssignmentGroup object.

HTTP Request

POST /courseofferings/(courseoffering)/assignmentgroups

Parameters

Name Required Data Type Description
name Yes text (255)
weight No int Default is 0
extra_credit No bool Default is false
drop_lowest No int Default is 0

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)/assignmentgroups/(assignmentgroup)" \
-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)/assignmentgroups/(assignmentgroup)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)',
 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)/assignmentgroups/(assignmentgroup)"), 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)/assignmentgroups/(assignmentgroup)');
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": "assignment_group",
    "id": 1,
    "course_offering_id": 23370,
    "name": "Tests",
    "weight": 40,
    "extra_credit": false,
    "drop_lowest": 0,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific AssignmentGroup object.

HTTP Request

GET /courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)

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/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)',
 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)/assignmentgroups/(assignmentgroup)"), 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/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)');
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": "assignment_group",
    "id": 11,
    "course_offering_id": 21908,
    "name": "Homework",
    "weight": 25,
    "extra_credit": false,
    "drop_lowest": 0,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates an existing AssignmentGroup object.

HTTP Request

PUT /courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)

Parameters

Name Required Data Type Description
name No text (255)
weight No int
extra_credit No bool
drop_lowest 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/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)',
 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)/assignmentgroups/(assignmentgroup)"), 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/courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)');
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": "assignment_group",
    "id": 11,
    "deleted": true
}

Deletes an existing AssignmentGroup object.

HTTP Request

DELETE /courseofferings/(courseoffering)/assignmentgroups/(assignmentgroup)

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:

AssignmentSubmission

The AssignmentSubmission object

The AssignmentSubmission object looks like this in JSON:

{
    "object": "assignment_submission",
    "id": 6,
    "assignment_id": 24668,
    "student_id": 2921,
    "comment": "comment #5",
    "content": "blah blah",
    "file_id": null,
    "student_visibility": "visible",
    "draft": false,
    "student_submission": false,
    "assignment_time_due": null,
    "plagiarism_checks_visible_to_student": false,
    "added_at": "2011-07-21T21:45:16+00:00",
    "added_by_id": 2921,
    "updated_at": null,
    "updated_by_id": null,
    "deleted_at": null,
    "deleted_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
assignment_id Yes int
student_id Yes int
comment No text
content No text
file_id No int
student_visibility Yes enum (visible, visible_after_grade_release, not_visible)
draft Yes bool
student_submission Yes bool
assignment_time_due Yes datetime
plagiarism_checks_visible_to_student Yes bool
added_at Yes datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
deleted_at No datetime
deleted_by_id No int
sandbox No --

comments

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/comments" \
-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)/assignments/(assignment)/students/(person)/comments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/comments',
 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)/assignments/(assignment)/students/(person)/comments"), 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)/assignments/(assignment)/students/(person)/comments');
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": "assignment_submission",
            "id": 8,
            "assignment_id": 29656,
            "student_id": 12,
            "comment": "comment #55",
            "content": "blah blah",
            "file_id": null,
            "student_visibility": "visible",
            "draft": false,
            "student_submission": false,
            "assignment_time_due": null,
            "plagiarism_checks_visible_to_student": false,
            "added_at": "2011-07-21T21:45:16+00:00",
            "added_by_id": 16,
            "updated_at": null,
            "updated_by_id": null,
            "deleted_at": null,
            "deleted_by_id": null
        }
    ],
    "sandbox": true
}

HTTP Request

GET /courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/comments

Parameters

None

Permissions

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

create_comment

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/comments/create" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "comment": "I thought the introductory paragraph was too long."
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/comments/create',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :comment => 'I thought the introductory paragraph was too long.'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/comments/create',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'comment': 'I thought the introductory paragraph was too long.'
 }
)
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)/assignments/(assignment)/students/(person)/comments/create"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  comment = "I thought the introductory paragraph was too long."
});
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)/assignments/(assignment)/students/(person)/comments/create');
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([
  'comment' => 'I thought the introductory paragraph was too long.'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

"Example response not available."

HTTP Request

POST /courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/comments/create

Parameters

Name Required Data Type Description
comment Yes text
internal No

You can optionally include a file upload with this route. Use a form post parameter called "file". Read about request and response format to see how parameters need to be specified differently when there is a file upload.

Permissions

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

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)" \
-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)/assignments/(assignment)/submissions/(person)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)',
 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)/assignments/(assignment)/submissions/(person)"), 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)/assignments/(assignment)/submissions/(person)');
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": "assignment_submission",
            "id": 8,
            "assignment_id": 29656,
            "student_id": 12,
            "comment": "comment #55",
            "content": "blah blah",
            "file_id": null,
            "student_visibility": "visible",
            "draft": false,
            "student_submission": false,
            "assignment_time_due": null,
            "plagiarism_checks_visible_to_student": false,
            "added_at": "2011-07-21T21:45:16+00:00",
            "added_by_id": 16,
            "updated_at": null,
            "updated_by_id": null,
            "deleted_at": null,
            "deleted_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all AssignmentSubmission objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)

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/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "comment": "The third paragraph needs a footnote."
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)',
 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)/assignments/(assignment)/submissions/(person)"), 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)/assignments/(assignment)/submissions/(person)');
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:

"Example response not available."

Creates a new AssignmentSubmission object.

HTTP Request

POST /courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)

Parameters

Name Required Data Type Description
content No text
draft No bool
comment No text

You can optionally include a file upload with this route. Use a form post parameter called "file". Read about request and response format to see how parameters need to be specified differently when there is a file upload.

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)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)" \
-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)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)',
 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)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)"), 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)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)');
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": "assignment_submission",
    "id": 9,
    "assignment_id": 29656,
    "student_id": 16,
    "comment": "comment #57",
    "content": "blah blah",
    "file_id": null,
    "student_visibility": "visible",
    "draft": false,
    "student_submission": false,
    "assignment_time_due": null,
    "plagiarism_checks_visible_to_student": false,
    "added_at": "2011-07-21T21:45:16+00:00",
    "added_by_id": 16,
    "updated_at": null,
    "updated_by_id": null,
    "deleted_at": null,
    "deleted_by_id": null,
    "sandbox": true
}

Retrieves a specific AssignmentSubmission object.

HTTP Request

GET /courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)

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:

delete

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)',
 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)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)"), 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/courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)');
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": "assignment_submission",
    "id": 9,
    "deleted": true
}

Deletes an existing AssignmentSubmission object.

HTTP Request

DELETE /courseofferings/(courseoffering)/assignments/(assignment)/submissions/(person)/(assignmentsubmission)

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:

Automation

The Automation object

The Automation object looks like this in JSON:

{
    "object": "automation",
    "id": 1,
    "abbrv": "PERSON_CREATED",
    "name": "Person Added",
    "description": "Whenever a new person is added.",
    "module": "people",
    "status": "active",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
abbrv No text (200)
name No text (300)
description No text (1000)
module No enum (admissions, academics, donations, billing, library, bookstore, financial, campus_life, groups, people, users, students, contact_organizations, course_offerings, accounting, financial_aid, forms)
status No enum (active, deleted)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/automations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/automations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/automations',
 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/automations"), 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/automations');
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": 76,
    "results": 76,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "automation",
            "id": 224,
            "abbrv": "ADVISOR_ASSIGNED_TO_STUDENT",
            "name": "Advisor Assigned to Student",
            "description": "Whenever an advisor is assigned to a student.",
            "module": "students",
            "status": "active"
        }
    ],
    "sandbox": true
}

Retrieves all Automation objects.

HTTP Request

GET /automations

Parameters

None

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/automations/(automation)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/automations/(automation)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/automations/(automation)',
 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/automations/(automation)"), 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/automations/(automation)');
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": "automation",
    "id": 1,
    "abbrv": "PERSON_CREATED",
    "name": "Person Added",
    "description": "Whenever a new person is added.",
    "module": "people",
    "status": "active",
    "sandbox": true
}

Retrieves a specific Automation object.

HTTP Request

GET /automations/(automation)

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:

AutomationHandler

The AutomationHandler object

The AutomationHandler object looks like this in JSON:

{
    "object": "automation_handler",
    "id": 1,
    "automation_id": 61,
    "owner_type": null,
    "owner_id": null,
    "name": "Notify me when my grades change",
    "description": "Whenever a grade in a course changes for a student, notify them.",
    "abbrv": "notify_me_when_my_grades_change",
    "user_managed_subscriptions": true,
    "status": "active",
    "overrides_handler_id": null,
    "cloned_from_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
automation_id No int
owner_type No text (100)
owner_id No int
name No text (100)
description No text (1000)
abbrv No text (100)
user_managed_subscriptions Yes bool
status Yes enum (active, paused, deleted)
overrides_handler_id No int
cloned_from_id No int
added_at No datetime
added_by_id No int
sandbox No --

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/automationhandler/(automationhandler)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/automationhandler/(automationhandler)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/automationhandler/(automationhandler)',
 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/automationhandler/(automationhandler)"), 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/automationhandler/(automationhandler)');
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": "automation_handler",
    "id": 1,
    "automation_id": 61,
    "owner_type": null,
    "owner_id": null,
    "name": "Notify me when my grades change",
    "description": "Whenever a grade in a course changes for a student, notify them.",
    "abbrv": "notify_me_when_my_grades_change",
    "user_managed_subscriptions": true,
    "status": "active",
    "overrides_handler_id": null,
    "cloned_from_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific AutomationHandler object.

HTTP Request

GET /automationhandler/(automationhandler)

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:

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/automationhandlers" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/automationhandlers',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/automationhandlers',
 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/automationhandlers"), 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/automationhandlers');
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": [
        {
            "object": "automation_handler",
            "id": 2,
            "automation_id": 49,
            "owner_type": null,
            "owner_id": null,
            "name": "Notify me of instructor bulletin board posts",
            "description": "Whenever an instructor posts to a bulletin board in one of my courses, let me know.",
            "abbrv": "notify_me_of_instructor_bulletin_board_posts",
            "user_managed_subscriptions": true,
            "status": "active",
            "overrides_handler_id": null,
            "cloned_from_id": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all AutomationHandler objects.

HTTP Request

GET /automationhandlers

Parameters

None

Permissions

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

Backup

The Backup object

The Backup object looks like this in JSON:

{
    "object": "backup",
    "id": 6,
    "status": "in_progress",
    "started_at": "2020-11-16T20:00:01+00:00",
    "completed_at": null,
    "on_complete_email": "0",
    "on_complete_url": null,
    "added_at": "2020-11-10T19:59:25+00:00",
    "added_by_id": 1,
    "deleted_at": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
status Yes enum (waiting, in_progress, completed, deleted, error)
started_at No datetime
completed_at No datetime
on_complete_email No text (300)
on_complete_url No text (1000)
added_at No datetime
added_by_id No int
deleted_at No datetime
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/backups" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/backups',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/backups',
 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/backups"), 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/backups');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "backup",
            "id": 6,
            "status": "in_progress",
            "started_at": "2020-11-16T20:00:01+00:00",
            "completed_at": null,
            "on_complete_email": "0",
            "on_complete_url": null,
            "added_at": "2020-11-10T19:59:25+00:00",
            "added_by_id": 1,
            "deleted_at": null
        }
    ],
    "sandbox": true
}

Retrieves all Backup objects.

HTTP Request

GET /backups

Parameters

None

Permissions

Only keys that have been granted Populi Account Administrator permissions may call this method.

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/backups/(backup)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/backups/(backup)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/backups/(backup)',
 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/backups/(backup)"), 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/backups/(backup)');
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": "backup",
    "id": 6,
    "status": "in_progress",
    "started_at": "2020-11-16T20:00:01+00:00",
    "completed_at": null,
    "on_complete_email": "0",
    "on_complete_url": null,
    "added_at": "2020-11-10T19:59:25+00:00",
    "added_by_id": 1,
    "deleted_at": null,
    "sandbox": true
}

Retrieves a specific Backup object.

HTTP Request

GET /backups/(backup)

Parameters

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

Permissions

Only keys that have been granted Populi Account Administrator permissions may call this method.

download

curl "https://yourschool.populiweb.com/api2/backups/(backup)/download" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/backups/(backup)/download',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/backups/(backup)/download',
 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/backups/(backup)/download"), 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/backups/(backup)/download');
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:

{}

HTTP Request

GET /backups/(backup)/download

Parameters

None

Permissions

Only keys that have been granted Populi Account Administrator permissions may call this method.

most_recent_completed

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/backups/most_recent_completed" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/backups/most_recent_completed',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/backups/most_recent_completed',
 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/backups/most_recent_completed"), 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/backups/most_recent_completed');
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": "backup",
    "id": 7,
    "status": "completed",
    "started_at": "2020-11-16T20:00:01+00:00",
    "completed_at": null,
    "on_complete_email": "0",
    "on_complete_url": null,
    "added_at": "2020-11-10T19:59:25+00:00",
    "added_by_id": 1,
    "deleted_at": null,
    "sandbox": true
}

HTTP Request

GET /backups/most_recent_completed

Parameters

None

Permissions

Only keys that have been granted Populi Account Administrator permissions may call this method.

request

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/backups/request" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/backups/request',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/backups/request',
 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/backups/request"), 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/backups/request');
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": "backup",
    "id": 8,
    "status": "waiting",
    "started_at": null,
    "completed_at": null,
    "on_complete_email": null,
    "on_complete_url": null,
    "added_at": "2025-04-14T23:32:16+00:00",
    "added_by_id": 22,
    "deleted_at": null,
    "sandbox": true
}

HTTP Request

POST /backups/request

Parameters

Name Required Data Type Description
on_complete_email No text (300)
on_complete_url No text (1000)

Permissions

Only keys that have been granted Populi Account Administrator permissions may call this method.

BookstoreBookstoreItemCategory

The BookstoreBookstoreItemCategory object

The BookstoreBookstoreItemCategory object looks like this in JSON:

{
    "object": "bookstore_item_category",
    "id": 9,
    "parent_id": 0,
    "name": "Science Fiction",
    "status": "active",
    "order_id": 3,
    "sandbox": true
}
Attribute Required Data Type
id No int
parent_id Yes int
name Yes text (30)
status Yes enum (active, deleted)
order_id Yes int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/itemcategories" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/itemcategories',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/itemcategories',
 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/itemcategories"), 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/itemcategories');
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": "bookstore_item_category",
            "id": 9,
            "parent_id": 0,
            "name": "Science Fiction",
            "status": "active",
            "order_id": 3
        }
    ],
    "sandbox": true
}

Retrieves all BookstoreBookstoreItemCategory objects.

HTTP Request

GET /itemcategories

Parameters

None

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/itemcategories/(bookstoreitemcategory)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/itemcategories/(bookstoreitemcategory)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/itemcategories/(bookstoreitemcategory)',
 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/itemcategories/(bookstoreitemcategory)"), 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/itemcategories/(bookstoreitemcategory)');
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": 7,
    "results": 7,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": {
        "object": "bookstore_item_category",
        "id": 9,
        "parent_id": 0,
        "name": "Science Fiction",
        "status": "active",
        "order_id": 3,
        "items": []
    }
}

Retrieves a specific BookstoreBookstoreItemCategory object. Includes all Items in the specified ItemCategory.

HTTP Request

GET /itemcategories/(bookstoreitemcategory)

Parameters

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

Permissions

Any role may call this method.

BookstoreDiscountCode

The BookstoreDiscountCode object

The BookstoreDiscountCode object looks like this in JSON:

{
    "object": "discount_code",
    "id": 1,
    "code": "SUPERSALE!",
    "type": "bookstore",
    "amount": 0,
    "percent": 30,
    "applies_to": "all",
    "available_to": "all",
    "min_total": null,
    "max_uses": null,
    "can_combine": false,
    "pos_only": false,
    "starts": null,
    "expires": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
code No text (100)
type No enum (bookstore, application, form)
amount No decimal
percent No int
applies_to No enum (all, selected, shipping)
available_to No enum (all, roles)
min_total No decimal
max_uses No int
can_combine Yes bool
pos_only Yes bool
starts No datetime
expires No datetime
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/discountcodes" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"active","value":"YES","positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/discountcodes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/discountcodes',
 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/discountcodes"), 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/discountcodes');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "discount_code",
            "id": 1,
            "code": "SUPERSALE!",
            "type": "bookstore",
            "amount": 0,
            "percent": 30,
            "applies_to": "all",
            "available_to": "all",
            "min_total": null,
            "max_uses": null,
            "can_combine": false,
            "pos_only": false,
            "starts": null,
            "expires": null,
            "added_at": null,
            "added_by_id": null,
            "report_data": {
                "num_uses": 0
            }
        }
    ],
    "sandbox": true
}

Retrieves all BookstoreDiscountCode objects that match given filter conditions.

HTTP Request

GET /discountcodes

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
active bool
amount_off decimal
applies_to choice
available_to choice
can_combine bool
expires datetime
max_uses integer
minimum_order decimal
percent_off integer
uses integer
valid_starting datetime

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/discountcodes/(bookstorediscountcode)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/discountcodes/(bookstorediscountcode)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/discountcodes/(bookstorediscountcode)',
 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/discountcodes/(bookstorediscountcode)"), 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/discountcodes/(bookstorediscountcode)');
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": "discount_code",
    "id": 1,
    "code": "SUPERSALE!",
    "type": "bookstore",
    "amount": 0,
    "percent": 30,
    "applies_to": "all",
    "available_to": "all",
    "min_total": null,
    "max_uses": null,
    "can_combine": false,
    "pos_only": false,
    "starts": null,
    "expires": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific BookstoreDiscountCode object.

HTTP Request

GET /discountcodes/(bookstorediscountcode)

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:

BookstoreItem

The BookstoreItem object

The BookstoreItem object looks like this in JSON:

{
    "object": "bookstore_item",
    "id": 40,
    "type": "item",
    "category_id": 7,
    "name": "Infinity in Most Directions",
    "description": "Revised with extensive footnotes.",
    "status": "available",
    "tax_free": false,
    "isbn": "9781411179988",
    "image_file_id": null,
    "income_account_id": 0,
    "can_charge_to_account": false,
    "vendor_id": 10,
    "report_on_1098t": true,
    "course_offering_id": null,
    "discount_type": "none",
    "discount_amount": null,
    "discount_can_combine": false,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
type Yes enum (item, course, bundle)
category_id No int
name Yes text (200)
description Yes text
status Yes enum (available, not_available)
tax_free Yes bool
isbn No text (20)
image_file_id No int
income_account_id No int
can_charge_to_account Yes bool
vendor_id No int
report_on_1098t Yes bool
course_offering_id No int
discount_type Yes enum (none, percent, fixed_price)
discount_amount No decimal
discount_can_combine Yes bool
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/items" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"status","value":"BLAH","positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/items',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/items',
 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/items"), 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/items');
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": "bookstore_item",
            "id": 40,
            "type": "item",
            "category_id": 7,
            "name": "Infinity in Most Directions",
            "description": "Revised with extensive footnotes.",
            "status": "available",
            "tax_free": false,
            "isbn": "9781411179988",
            "image_file_id": null,
            "income_account_id": 0,
            "can_charge_to_account": false,
            "vendor_id": 10,
            "report_on_1098t": true,
            "course_offering_id": null,
            "discount_type": "none",
            "discount_amount": null,
            "discount_can_combine": false,
            "report_data": {
                "price": "12.00",
                "max_price": "12.00",
                "min_list_price": "12.00",
                "max_list_price": "12.00",
                "has_variations_on_sale": 0,
                "num_variations": 1,
                "total_sold": "31",
                "quantity_available": "50",
                "category_name": null,
                "item_status": "available",
                "vendor_name": null
            }
        }
    ],
    "sandbox": true
}

Retrieves all BookstoreItem objects that match given filter conditions.

HTTP Request

GET /items

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
search text
category itemcategory
status choice
tax_free bool
inventory integer
isbn text
total_sold integer
min_price decimal
max_price decimal

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/items/(bookstoreitem)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/items/(bookstoreitem)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/items/(bookstoreitem)',
 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/items/(bookstoreitem)"), 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/items/(bookstoreitem)');
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": "bookstore_item",
    "id": 40,
    "type": "item",
    "category_id": 7,
    "name": "Infinity in Most Directions",
    "description": "Revised with extensive footnotes.",
    "status": "available",
    "tax_free": false,
    "isbn": "9781411179988",
    "image_file_id": null,
    "income_account_id": 0,
    "can_charge_to_account": false,
    "vendor_id": 10,
    "report_on_1098t": true,
    "course_offering_id": null,
    "discount_type": "none",
    "discount_amount": null,
    "discount_can_combine": false,
    "sandbox": true
}

Retrieves a specific BookstoreItem object.

HTTP Request

GET /items/(bookstoreitem)

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.

BookstoreOrder

The BookstoreOrder object

The BookstoreOrder object looks like this in JSON:

{
    "object": "bookstore_order",
    "id": 10,
    "type": "",
    "user_id": 0,
    "first_name": "James",
    "last_name": "Hill",
    "email": "jjames@yahoo.com",
    "phone": "555-995-4444 x 4401",
    "transaction_id": 0,
    "shipping_method_id": null,
    "carrier_id": 0,
    "tracking_number": null,
    "secret": "a4afg174197c5a",
    "source": "internet",
    "ship_to_name": null,
    "ship_to_street": "111 Bobski Ln",
    "ship_to_city": "Bobtecka",
    "ship_to_state": "IA",
    "ship_to_postal": "8888",
    "ship_to_country": null,
    "is_picking_up": true,
    "item_total": 109.5,
    "item_discount": 0,
    "return_item_total": 0,
    "shipping": 0,
    "shipping_discount": 0,
    "tax_exempt": false,
    "tax": 7.11,
    "return_tax": 0,
    "total": 116.61,
    "status": "fulfilled",
    "payment_gateway_id": null,
    "placed_at": "2019-11-05T20:58:06+00:00",
    "fulfilled_at": null,
    "voided_at": null,
    "academic_term_id": 0,
    "online_amount": 0,
    "cash_amount": 0,
    "check_amount": 0,
    "on_account_amount": 0,
    "refund_on_account_amount": 0,
    "refund_tax_on_account_amount": 0,
    "check_reference_number": null,
    "special_instructions": null,
    "tax_on_account": false,
    "shipping_on_account": false,
    "suspended_by_id": null,
    "suspended_at": null,
    "added_at": "2009-11-11T19:57:53+00:00",
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id No int
type Yes enum (bookstore, course)
user_id Yes int
first_name Yes text (50)
last_name Yes text (50)
email Yes text (50)
phone Yes text (50)
transaction_id Yes int
shipping_method_id Yes int
carrier_id Yes int
tracking_number No text (100)
secret Yes text (60)
source Yes enum (internet, point_of_sale)
ship_to_name Yes text (75)
ship_to_street Yes text (150)
ship_to_city Yes text (100)
ship_to_state Yes text (50)
ship_to_postal Yes text (50)
ship_to_country Yes text (50)
is_picking_up Yes bool
item_total Yes decimal
item_discount Yes decimal
return_item_total Yes decimal
shipping Yes decimal
shipping_discount Yes decimal
tax_exempt Yes bool
tax Yes decimal
return_tax Yes decimal
total Yes decimal
status Yes enum (construction, processing, void, pending, fulfilled)
payment_gateway_id No int
placed_at No datetime
fulfilled_at No datetime
voided_at No datetime
academic_term_id No int
online_amount Yes decimal
cash_amount Yes decimal
check_amount Yes decimal
on_account_amount Yes decimal
refund_on_account_amount Yes decimal
refund_tax_on_account_amount Yes decimal
check_reference_number Yes text (100)
special_instructions No text (1000)
tax_on_account Yes bool
shipping_on_account Yes bool
suspended_by_id No int
suspended_at No datetime
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/orders" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"last_name","value":{"type":"CONTAINS","text":"blah"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/orders',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/orders',
 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/orders"), 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/orders');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "bookstore_order",
            "id": 10,
            "type": "",
            "user_id": 0,
            "first_name": "James",
            "last_name": "Hill",
            "email": "jjames@yahoo.com",
            "phone": "555-995-4444 x 4401",
            "transaction_id": 0,
            "shipping_method_id": null,
            "carrier_id": 0,
            "tracking_number": null,
            "secret": "a4afg174197c5a",
            "source": "internet",
            "ship_to_name": null,
            "ship_to_street": "111 Bobski Ln",
            "ship_to_city": "Bobtecka",
            "ship_to_state": "IA",
            "ship_to_postal": "8888",
            "ship_to_country": null,
            "is_picking_up": true,
            "item_total": 109.5,
            "item_discount": 0,
            "return_item_total": 0,
            "shipping": 0,
            "shipping_discount": 0,
            "tax_exempt": false,
            "tax": 7.11,
            "return_tax": 0,
            "total": 116.61,
            "status": "fulfilled",
            "payment_gateway_id": null,
            "placed_at": "2019-11-05T20:58:06+00:00",
            "fulfilled_at": null,
            "voided_at": null,
            "academic_term_id": 0,
            "online_amount": 0,
            "cash_amount": 0,
            "check_amount": 0,
            "on_account_amount": 0,
            "refund_on_account_amount": 0,
            "refund_tax_on_account_amount": 0,
            "check_reference_number": null,
            "special_instructions": null,
            "tax_on_account": false,
            "shipping_on_account": false,
            "suspended_by_id": null,
            "suspended_at": null,
            "added_at": "2009-11-11T19:57:53+00:00",
            "added_by_id": null,
            "report_data": {
                "shipping_method_name": null
            }
        }
    ],
    "sandbox": true
}

Retrieves all BookstoreOrder objects that match given filter conditions.

HTTP Request

GET /orders

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
placed datetime
first_name text
last_name text
shipping_method object id
source choice
status choice
total decimal

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/orders/(bookstoreorder)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/orders/(bookstoreorder)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/orders/(bookstoreorder)',
 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/orders/(bookstoreorder)"), 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/orders/(bookstoreorder)');
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": "bookstore_order",
    "id": 10,
    "type": "",
    "user_id": 0,
    "first_name": "James",
    "last_name": "Hill",
    "email": "jjames@yahoo.com",
    "phone": "555-995-4444 x 4401",
    "transaction_id": 0,
    "shipping_method_id": null,
    "carrier_id": 0,
    "tracking_number": null,
    "secret": "a4afg174197c5a",
    "source": "internet",
    "ship_to_name": null,
    "ship_to_street": "111 Bobski Ln",
    "ship_to_city": "Bobtecka",
    "ship_to_state": "IA",
    "ship_to_postal": "8888",
    "ship_to_country": null,
    "is_picking_up": true,
    "item_total": 109.5,
    "item_discount": 0,
    "return_item_total": 0,
    "shipping": 0,
    "shipping_discount": 0,
    "tax_exempt": false,
    "tax": 7.11,
    "return_tax": 0,
    "total": 116.61,
    "status": "fulfilled",
    "payment_gateway_id": null,
    "placed_at": "2019-11-05T20:58:06+00:00",
    "fulfilled_at": null,
    "voided_at": null,
    "academic_term_id": 0,
    "online_amount": 0,
    "cash_amount": 0,
    "check_amount": 0,
    "on_account_amount": 0,
    "refund_on_account_amount": 0,
    "refund_tax_on_account_amount": 0,
    "check_reference_number": null,
    "special_instructions": null,
    "tax_on_account": false,
    "shipping_on_account": false,
    "suspended_by_id": null,
    "suspended_at": null,
    "added_at": "2009-11-11T19:57:53+00:00",
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific BookstoreOrder object.

HTTP Request

GET /orders/(bookstoreorder)

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:

Building

The Building object

The Building object looks like this in JSON:

{
    "object": "building",
    "id": 1,
    "campus_id": 8,
    "name": "Anselm House Annex",
    "street": "20500 East Fifth Street",
    "city": "Moscow",
    "state": "ID",
    "postal": "83843",
    "country": "US",
    "floors": 2,
    "basement_floors": 1,
    "retired_at": null,
    "retired_by_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
campus_id Yes int
name Yes text (255)
street Yes text (255)
city Yes text (255)
state Yes text (50)
postal No --
country Yes text (50)
floors Yes int
basement_floors No int
retired_at No datetime
retired_by_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/buildings" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/buildings',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/buildings',
 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/buildings"), 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/buildings');
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": "building",
            "id": 1,
            "campus_id": 8,
            "name": "Anselm House Annex",
            "street": "20500 East Fifth Street",
            "city": "Moscow",
            "state": "ID",
            "postal": "83843",
            "country": "US",
            "floors": 2,
            "basement_floors": 1,
            "retired_at": null,
            "retired_by_id": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all Building objects.

HTTP Request

GET /buildings

Parameters

None

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/buildings/(building)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/buildings/(building)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/buildings/(building)',
 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/buildings/(building)"), 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/buildings/(building)');
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": "building",
    "id": 1,
    "campus_id": 8,
    "name": "Anselm House Annex",
    "street": "20500 East Fifth Street",
    "city": "Moscow",
    "state": "ID",
    "postal": "83843",
    "country": "US",
    "floors": 2,
    "basement_floors": 1,
    "retired_at": null,
    "retired_by_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific Building object.

HTTP Request

GET /buildings/(building)

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:

COACategory

The COACategory object

The COACategory object looks like this in JSON:

{
    "object": "coa_category",
    "id": 1,
    "name": "Books",
    "type": "books_and_supplies",
    "added_at": "2010-01-01T00:00:00+00:00",
    "added_by_id": 4457,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (30)
type Yes enum (books_and_supplies, transportation, other_costs, tuition, fee, housing, meals)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/coacategories" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/coacategories',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/coacategories',
 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/coacategories"), 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/coacategories');
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": "coa_category",
            "id": 1,
            "name": "Books",
            "type": "books_and_supplies",
            "added_at": "2010-01-01T00:00:00+00:00",
            "added_by_id": 4457
        }
    ],
    "sandbox": true
}

Retrieves all COACategory objects.

HTTP Request

GET /coacategories

Parameters

None

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/coacategories/(coacategory)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/coacategories/(coacategory)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/coacategories/(coacategory)',
 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/coacategories/(coacategory)"), 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/coacategories/(coacategory)');
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": "coa_category",
    "id": 1,
    "name": "Books",
    "type": "books_and_supplies",
    "added_at": "2010-01-01T00:00:00+00:00",
    "added_by_id": 4457,
    "sandbox": true
}

Retrieves a specific COACategory object.

HTTP Request

GET /coacategories/(coacategory)

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:

CalendarEvent

The CalendarEvent object

The CalendarEvent object looks like this in JSON:

{
    "object": "calendar_event",
    "id": 1,
    "owner_id": 21908,
    "owner_type": "instance",
    "summary": "BR101: Main Class",
    "description": null,
    "start_date": "2022-08-01T13:00:00+00:00",
    "end_date": "2022-08-01T14:00:00+00:00",
    "all_day": false,
    "rfrequency": "weekly",
    "rinterval": 1,
    "rcount": null,
    "runtil": "2022-12-31",
    "rbyday": "MO,WE,FR",
    "rskips": null,
    "closure": false,
    "closure_academic_year_id": null,
    "status": "active",
    "busy": true,
    "sequence": null,
    "room_id": 0,
    "location": null,
    "room_status": "NONE",
    "url": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
owner_id Yes int
owner_type Yes enum (person, instance, org, room, resource, group, campus, library, library_hours)
summary No text (255)
description No text
start_date Yes datetime
end_date Yes datetime
all_day Yes bool
rfrequency Yes enum (none, daily, weekly, monthly, yearly)
rinterval Yes int
rcount Yes int
runtil Yes date
rbyday No set
rskips Yes text
closure No --
closure_academic_year_id No int
status Yes enum (active, deleted)
busy Yes bool
sequence Yes int
room_id Yes int
location Yes text (100)
room_status No --
url No text (2100)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

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

Example response:

{
    "object": "list",
    "count": 66,
    "results": 66,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "eventid": "2",
            "eventownertype": "org",
            "eventownerid": "1",
            "start": "2022-08-01T06:00:00+00:00",
            "end": "2022-08-01T07:00:00+00:00",
            "allday": "0",
            "summary": "Convocation",
            "description": "",
            "rfrequency": "weekly",
            "rinterval": "1",
            "rcount": "0",
            "rskips": "",
            "runtil": "12\/31\/2022",
            "rbyday": "MO,WE,FR",
            "busy": "1",
            "roomid": "0",
            "location": "",
            "roomstatus": "none",
            "is_closure": "0",
            "url": null,
            "calendar_name": "School Calendar",
            "ownertype": "org",
            "ownerid": 1,
            "recurrence": "2022-08-01",
            "color": 2,
            "access": "write",
            "start_timestamp": 1659358800
        }
    ]
}

Retrieves all CalendarEvent objects.

HTTP Request

GET /events

Parameters

Name Required Data Type Description
start_date Yes datetime
end_date Yes datetime

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/events/(calendarevent)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/events/(calendarevent)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/events/(calendarevent)',
 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/events/(calendarevent)"), 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/events/(calendarevent)');
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": "calendar_event",
    "id": 1,
    "owner_id": 21908,
    "owner_type": "instance",
    "summary": "BR101: Main Class",
    "description": null,
    "start_date": "2022-08-01T13:00:00+00:00",
    "end_date": "2022-08-01T14:00:00+00:00",
    "all_day": false,
    "rfrequency": "weekly",
    "rinterval": 1,
    "rcount": null,
    "runtil": "2022-12-31",
    "rbyday": "MO,WE,FR",
    "rskips": null,
    "closure": false,
    "closure_academic_year_id": null,
    "status": "active",
    "busy": true,
    "sequence": null,
    "room_id": 0,
    "location": null,
    "room_status": "NONE",
    "url": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific CalendarEvent object.

HTTP Request

GET /events/(calendarevent)

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:

Campaign

The Campaign object

The Campaign object looks like this in JSON:

{
    "object": "campaign",
    "id": 4,
    "name": "Capital Campaign",
    "goal": null,
    "deadline": null,
    "status": "inactive",
    "added_at": "2017-04-04T17:26:52+00:00",
    "added_by_id": 1257,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name No text (500)
goal No decimal
deadline No datetime
status Yes enum (active, inactive, deleted)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/campaigns" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/campaigns',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/campaigns',
 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/campaigns"), 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/campaigns');
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": "campaign",
            "id": 4,
            "name": "Capital Campaign",
            "goal": null,
            "deadline": null,
            "status": "inactive",
            "added_at": "2017-04-04T17:26:52+00:00",
            "added_by_id": 1257
        }
    ],
    "sandbox": true
}

Retrieves all Campaign objects.

HTTP Request

GET /campaigns

Parameters

None

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/campaigns/(campaign)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/campaigns/(campaign)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/campaigns/(campaign)',
 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/campaigns/(campaign)"), 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/campaigns/(campaign)');
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": "campaign",
    "id": 4,
    "name": "Capital Campaign",
    "goal": null,
    "deadline": null,
    "status": "inactive",
    "added_at": "2017-04-04T17:26:52+00:00",
    "added_by_id": 1257,
    "sandbox": true
}

Retrieves a specific Campaign object.

HTTP Request

GET /campaigns/(campaign)

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:

Campus

The Campus object

The Campus object looks like this in JSON:

{
    "object": "campus",
    "id": 8,
    "name": "Main Campus",
    "city": "Moscow",
    "state": "ID",
    "postal": "83843",
    "country": "US",
    "status": "active",
    "primary": true,
    "timezone": "America\/Los_Angeles",
    "cod_routing_id": null,
    "ope_id": null,
    "export_prefix": null,
    "ipeds_unit_id": null,
    "country_full": "United States",
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
city Yes text (255)
state Yes text (50)
postal No --
country Yes text (50)
status Yes enum (active, retired, deleted)
primary No --
timezone No text (50)
cod_routing_id No text (50)
ope_id No text (50)
export_prefix No text (50)
ipeds_unit_id No int
country_full No text
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/campuses" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/campuses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/campuses',
 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/campuses"), 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/campuses');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "campus",
            "id": 8,
            "name": "Main Campus",
            "city": "Moscow",
            "state": "ID",
            "postal": "83843",
            "country": "US",
            "status": "active",
            "primary": true,
            "timezone": "America\/Los_Angeles",
            "cod_routing_id": null,
            "ope_id": null,
            "export_prefix": null,
            "ipeds_unit_id": null,
            "country_full": "United States",
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all Campus objects.

HTTP Request

GET /campuses

Parameters

None

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/campuses/(campus)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/campuses/(campus)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/campuses/(campus)',
 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/campuses/(campus)"), 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/campuses/(campus)');
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": "campus",
    "id": 8,
    "name": "Main Campus",
    "city": "Moscow",
    "state": "ID",
    "postal": "83843",
    "country": "US",
    "status": "active",
    "primary": true,
    "timezone": "America\/Los_Angeles",
    "cod_routing_id": null,
    "ope_id": null,
    "export_prefix": null,
    "ipeds_unit_id": null,
    "country_full": "United States",
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific Campus object.

HTTP Request

GET /campuses/(campus)

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:

CanadianDonationReceipt

The CanadianDonationReceipt object

The CanadianDonationReceipt object looks like this in JSON:

{
    "object": "canadian_donation_receipt",
    "id": 1,
    "tax_year": 2021,
    "donor_id": 1,
    "number": 1,
    "num_donations": 5,
    "donor_name": "Freddy Smith",
    "donor_street": "45 Maple Street",
    "donor_city": "Vancouver",
    "donor_province": "BC",
    "donor_postal": "99999",
    "donor_country": "CA",
    "donation_received_date": null,
    "receipt_date": null,
    "total_amount": 0,
    "advantage_amount": 0,
    "tax_deductible_amount": 0,
    "original_currency": null,
    "advantage_description": null,
    "location_issued": null,
    "charity_name": null,
    "charity_street": null,
    "charity_city": null,
    "charity_province": null,
    "charity_postal": null,
    "charity_registration_number": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
tax_year No int
donor_id No int
number No int
num_donations No int
donor_name No text (500)
donor_street No text (500)
donor_city No text (200)
donor_province No text (100)
donor_postal No text (100)
donor_country No text (100)
donation_received_date No date
receipt_date No date
total_amount Yes decimal
advantage_amount Yes decimal
tax_deductible_amount Yes decimal
original_currency No text (3)
advantage_description No text (1000)
location_issued No text (500)
charity_name No text (500)
charity_street No text (200)
charity_city No text (100)
charity_province No text (100)
charity_postal No text (50)
charity_registration_number No text (50)
added_at No datetime
added_by_id No int
sandbox No --

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/canadiandonationreceipts/(canadiandonationreceipt)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/canadiandonationreceipts/(canadiandonationreceipt)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/canadiandonationreceipts/(canadiandonationreceipt)',
 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/canadiandonationreceipts/(canadiandonationreceipt)"), 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/canadiandonationreceipts/(canadiandonationreceipt)');
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": "canadian_donation_receipt",
    "id": 1,
    "tax_year": 2021,
    "donor_id": 1,
    "number": 1,
    "num_donations": 5,
    "donor_name": "Freddy Smith",
    "donor_street": "45 Maple Street",
    "donor_city": "Vancouver",
    "donor_province": "BC",
    "donor_postal": "99999",
    "donor_country": "CA",
    "donation_received_date": null,
    "receipt_date": null,
    "total_amount": 0,
    "advantage_amount": 0,
    "tax_deductible_amount": 0,
    "original_currency": null,
    "advantage_description": null,
    "location_issued": null,
    "charity_name": null,
    "charity_street": null,
    "charity_city": null,
    "charity_province": null,
    "charity_postal": null,
    "charity_registration_number": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific CanadianDonationReceipt object.

HTTP Request

GET /canadiandonationreceipts/(canadiandonationreceipt)

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:

CatalogCourse

The CatalogCourse object

The CatalogCourse object looks like this in JSON:

{
    "object": "catalog_course",
    "id": 576,
    "name": "Pentateuch",
    "description": "Biblical Studies: Pentateuch.\n\nThis course explores the five books of Moses, with particular attention to the Mosaic tabernacle, its institutions of worship and sacrifice, the laws of clean and unclean. The course also explores cultural-anthropological perspectives on the Pentateuch. Unless they can produce a better overview, students will be required to be able to reproduce Dorsey???s outline of each book of the Pentateuch, as well as rational for the outline.\nIn addition to readings, instructor-led discussions of selected passages of the Pentateuch, and lectures, students will be required to exegete at least one assigned passage of the Pentateuch and lead a class discussion on that passage.",
    "abbrv": "BS502",
    "department_id": 2,
    "credits": 2,
    "hours": 2,
    "attendance_hours": 0,
    "clinical_hours": 0,
    "finaid_credits": 0,
    "finaid_hours": 0,
    "fulfills_program_requirements": true,
    "affects_standing": true,
    "affects_full_time_status": true,
    "count_retakes": 0,
    "status": "active",
    "max_enrolled": 100,
    "max_auditors": 100,
    "pass_fail": false,
    "pass_affects_gpa": true,
    "fail_affects_gpa": true,
    "pass_fail_pass_affects_gpa": true,
    "pass_fail_fail_affects_gpa": true,
    "cip_code": null,
    "self_enroll": "yes",
    "self_audit": true,
    "enable_clinical_hours": false,
    "roster_visibility": true,
    "faculty_can_manage_roster": false,
    "faculty_can_override_enrollment": false,
    "minimum_attendance": null,
    "allowed_tuition_schedules": "all",
    "allow_auditor_assignments": false,
    "allow_auditor_attendance": false,
    "waiting_list_management": "automatic",
    "remedial": false,
    "import_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
description Yes text
abbrv Yes text (20)
department_id Yes int
credits Yes decimal
hours Yes decimal
attendance_hours Yes decimal
clinical_hours Yes decimal
finaid_credits No decimal
finaid_hours No decimal
fulfills_program_requirements Yes bool
affects_standing Yes bool
affects_full_time_status Yes bool
count_retakes Yes bool
status Yes enum (active, retired)
max_enrolled No int
max_auditors No int
pass_fail Yes bool
pass_affects_gpa Yes bool
fail_affects_gpa Yes bool
pass_fail_pass_affects_gpa Yes bool
pass_fail_fail_affects_gpa Yes bool
cip_code Yes text (15)
self_enroll Yes enum (yes, no_repeats, no)
self_audit Yes bool
enable_clinical_hours Yes bool
roster_visibility Yes bool
faculty_can_manage_roster Yes bool
faculty_can_override_enrollment Yes bool
minimum_attendance No decimal
allowed_tuition_schedules Yes enum (all, none, choose)
allow_auditor_assignments Yes bool
allow_auditor_attendance Yes bool
waiting_list_management Yes enum (automatic, manual, none)
remedial Yes bool
import_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/catalogcourses" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"credits","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/catalogcourses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/catalogcourses',
 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/catalogcourses"), 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/catalogcourses');
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": 36,
    "results": 36,
    "results_per_page": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "catalog_course",
            "id": 576,
            "name": "Pentateuch",
            "description": "Biblical Studies: Pentateuch.\n\nThis course explores the five books of Moses, with particular attention to the Mosaic tabernacle, its institutions of worship and sacrifice, the laws of clean and unclean. The course also explores cultural-anthropological perspectives on the Pentateuch. Unless they can produce a better overview, students will be required to be able to reproduce Dorsey???s outline of each book of the Pentateuch, as well as rational for the outline.\nIn addition to readings, instructor-led discussions of selected passages of the Pentateuch, and lectures, students will be required to exegete at least one assigned passage of the Pentateuch and lead a class discussion on that passage.",
            "abbrv": "BS502",
            "department_id": 2,
            "credits": 2,
            "hours": 2,
            "attendance_hours": 0,
            "clinical_hours": 0,
            "finaid_credits": 0,
            "finaid_hours": 0,
            "fulfills_program_requirements": true,
            "affects_standing": true,
            "affects_full_time_status": true,
            "count_retakes": 0,
            "status": "active",
            "max_enrolled": 100,
            "max_auditors": 100,
            "pass_fail": false,
            "pass_affects_gpa": true,
            "fail_affects_gpa": true,
            "pass_fail_pass_affects_gpa": true,
            "pass_fail_fail_affects_gpa": true,
            "cip_code": null,
            "self_enroll": "yes",
            "self_audit": true,
            "enable_clinical_hours": false,
            "roster_visibility": true,
            "faculty_can_manage_roster": false,
            "faculty_can_override_enrollment": false,
            "minimum_attendance": null,
            "allowed_tuition_schedules": "all",
            "allow_auditor_assignments": false,
            "allow_auditor_attendance": false,
            "waiting_list_management": "automatic",
            "remedial": false,
            "import_id": null,
            "report_data": {
                "department_name": "Other",
                "could_delete": 0,
                "program_name_ids": null
            }
        }
    ],
    "sandbox": true
}

Retrieves all CatalogCourse objects that match given filter conditions.

HTTP Request

GET /catalogcourses

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
abbrv text
name text
credits decimal
hours decimal
status enum
program program
department object id
pass_fail bool
delivery_method object id
max_enrolled enrollment
max_auditors enrollment

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/catalogcourses/(catalogcourse)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/catalogcourses/(catalogcourse)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/catalogcourses/(catalogcourse)',
 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/catalogcourses/(catalogcourse)"), 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/catalogcourses/(catalogcourse)');
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": "catalog_course",
    "id": 576,
    "name": "Pentateuch",
    "description": "Biblical Studies: Pentateuch.\n\nThis course explores the five books of Moses, with particular attention to the Mosaic tabernacle, its institutions of worship and sacrifice, the laws of clean and unclean. The course also explores cultural-anthropological perspectives on the Pentateuch. Unless they can produce a better overview, students will be required to be able to reproduce Dorsey???s outline of each book of the Pentateuch, as well as rational for the outline.\nIn addition to readings, instructor-led discussions of selected passages of the Pentateuch, and lectures, students will be required to exegete at least one assigned passage of the Pentateuch and lead a class discussion on that passage.",
    "abbrv": "BS502",
    "department_id": 2,
    "credits": 2,
    "hours": 2,
    "attendance_hours": 0,
    "clinical_hours": 0,
    "finaid_credits": 0,
    "finaid_hours": 0,
    "fulfills_program_requirements": true,
    "affects_standing": true,
    "affects_full_time_status": true,
    "count_retakes": 0,
    "status": "active",
    "max_enrolled": 100,
    "max_auditors": 100,
    "pass_fail": false,
    "pass_affects_gpa": true,
    "fail_affects_gpa": true,
    "pass_fail_pass_affects_gpa": true,
    "pass_fail_fail_affects_gpa": true,
    "cip_code": null,
    "self_enroll": "yes",
    "self_audit": true,
    "enable_clinical_hours": false,
    "roster_visibility": true,
    "faculty_can_manage_roster": false,
    "faculty_can_override_enrollment": false,
    "minimum_attendance": null,
    "allowed_tuition_schedules": "all",
    "allow_auditor_assignments": false,
    "allow_auditor_attendance": false,
    "waiting_list_management": "automatic",
    "remedial": false,
    "import_id": null,
    "sandbox": true
}

Retrieves a specific CatalogCourse object.

HTTP Request

GET /catalogcourses/(catalogcourse)

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:

ChangeLog

The ChangeLog object

The ChangeLog object looks like this in JSON:

{
    "object": "change_log",
    "id": 946156314,
    "owner_type_id": 8,
    "owner_id": 1862,
    "changed_by_id": 13154473,
    "changed_by_ip": "10.0.0.13",
    "changed_time": "2024-07-08T19:49:36+00:00",
    "type_id": 127,
    "action": "changed",
    "changed_from": "External LMS",
    "changed_to": "Internal LMS",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
owner_type_id Yes int
owner_id Yes int
changed_by_id No int
changed_by_ip Yes text (50)
changed_time Yes datetime
type_id Yes int
action No enum (added, changed, deleted, printed, restored, cloned, requested)
changed_from No text
changed_to No text
sandbox No --

changelog

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/changelog" \
-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/changelog',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/changelog',
 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/changelog"), 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/changelog');
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": 103,
    "results": 103,
    "results_per_page": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "change_log",
            "id": 946156417,
            "owner_type_id": 1,
            "owner_id": 16,
            "changed_by_id": 22,
            "changed_by_ip": "10.0.0.1",
            "changed_time": "2025-04-14T23:32:19+00:00",
            "type_id": 151,
            "action": "added",
            "changed_from": "Cool Kids Plan",
            "changed_to": null,
            "report_data": {
                "changed_time_local": "2025-04-14 16:32:19",
                "owner_type": "PERSON",
                "change_type": "DEFAULT_TUITION_SCHEDULE",
                "changed_by_id": 22,
                "changed_by_name": "API Dude"
            }
        }
    ],
    "sandbox": true
}

Results are limited to changes in the past 30 days.

HTTP Request

GET /changelog

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
changed_by search
affected changelog_affected
affected_type choice
type choice
action enum

Permissions

Only keys that have been granted Populi Account Administrator permissions may call this method.

This is a heavy call. For performance reasons, only one heavy call may be made at a time.

Check

The Check object

The Check object looks like this in JSON:

{
    "object": "check",
    "id": 1,
    "owner_type": "person",
    "owner_id": 12,
    "amount": 400.5,
    "transaction_id": 12,
    "batch_number": 1,
    "number": 1001,
    "added_at": "2022-01-02T12:30:34+00:00",
    "added_by_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
owner_type Yes enum (person, donor)
owner_id Yes int
amount Yes decimal
transaction_id Yes int
batch_number No int
number No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/checks" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"posted_date","value":{"type":"RANGE","start":"2021-01-01","end":"2022-03-17"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/checks',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/checks',
 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/checks"), 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/checks');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "check",
            "id": 1,
            "owner_type": "person",
            "owner_id": 12,
            "amount": 400.5,
            "transaction_id": 12,
            "batch_number": 1,
            "number": 1001,
            "added_at": "2015-03-10T19:33:11+00:00",
            "added_by_id": 1,
            "report_data": {
                "payee_name": "Alice Admin",
                "person_name": "Alice Admin",
                "person_firstname": "Alice",
                "person_lastname": "Admin",
                "posted_date": "2015-03-10",
                "transaction_number": 1237,
                "refund_source": null,
                "account_number": "12345-7",
                "account_name": "Cooler Account",
                "added_by_name": "Elizabeth Fox",
                "student_dummy_id": "20220xx002",
                "row_id": 1
            }
        }
    ],
    "sandbox": true
}

Retrieves all Check objects that match given filter conditions.

HTTP Request

GET /checks

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
payee text
posted_date date
account text
transaction_number integer
check_number integer
batch_number integer
amount decimal
student text
tag tag
custom_field custom

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/checks/(check)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/checks/(check)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/checks/(check)',
 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/checks/(check)"), 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/checks/(check)');
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": "check",
    "id": 1,
    "owner_type": "person",
    "owner_id": 12,
    "amount": 400.5,
    "transaction_id": 12,
    "batch_number": 1,
    "number": 1001,
    "added_at": "2022-01-02T12:30:34+00:00",
    "added_by_id": 1,
    "sandbox": true
}

Retrieves a specific Check object.

HTTP Request

GET /checks/(check)

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:

Citizenship

The Citizenship object

The Citizenship object looks like this in JSON:

{
    "object": "citizenship",
    "id": 6,
    "person_id": 1,
    "country": "US",
    "country_abbrv": "US",
    "country_name": "United States of America",
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
person_id Yes int
country Yes char
country_abbrv No text
country_name No text
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/citizenships" \
-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)/citizenships',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/citizenships',
 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)/citizenships"), 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)/citizenships');
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": "citizenship",
            "id": 7,
            "person_id": 12,
            "country": "US",
            "country_abbrv": "US",
            "country_name": "United States of America",
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all Citizenship objects tied to a specific Person.

HTTP Request

GET /people/(person)/citizenships

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)/citizenships" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "country": "US",
    "resident_alien": "1"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/citizenships',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :country => 'US'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/citizenships',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'country': 'US'
 }
)
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)/citizenships"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  country = "US"
});
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)/citizenships');
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([
  'country' => 'US'
]));
$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": "citizenship",
            "id": 7,
            "person_id": 12,
            "country": "US",
            "country_abbrv": "US",
            "country_name": "United States of America",
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Creates a new Citizenship object.

HTTP Request

POST /people/(person)/citizenships

Parameters

Name Required Data Type Description
country Yes char
resident_alien No bool

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)/citizenships" \
-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)/citizenships',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/citizenships',
 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)/citizenships"), 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)/citizenships');
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": "person",
    "id": 12,
    "first_name": "Taylor",
    "last_name": "Forest",
    "middle_name": "",
    "prefix": "Mrs.",
    "suffix": null,
    "preferred_name": null,
    "display_name": "Taylor Forest",
    "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": "2025-04-14T16:32:21+00:00",
    "private_profile": false,
    "is_user": true,
    "sandbox": true
}

Removes all citizenship data about a person.

HTTP Request

DELETE /people/(person)/citizenships

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:

CommunicationPlan

The CommunicationPlan object

The CommunicationPlan object looks like this in JSON:

{
    "object": "communication_plan",
    "id": 9,
    "name": "Prospect Plan 2",
    "type": "admissions",
    "added_at": "2016-05-18T18:46:47+00:00",
    "added_by_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id No int
name Yes text (300)
type No text
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/communicationplans" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/communicationplans',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/communicationplans',
 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/communicationplans"), 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/communicationplans');
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": "communication_plan",
            "id": 9,
            "name": "Prospect Plan 2",
            "type": "admissions",
            "added_at": "2016-05-18T18:46:47+00:00",
            "added_by_id": 1
        }
    ],
    "sandbox": true
}

Retrieves all CommunicationPlan objects.

HTTP Request

GET /communicationplans

Parameters

None

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/communicationplans/(communicationplan)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/communicationplans/(communicationplan)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/communicationplans/(communicationplan)',
 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/communicationplans/(communicationplan)"), 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/communicationplans/(communicationplan)');
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": "communication_plan",
    "id": 9,
    "name": "Prospect Plan 2",
    "type": "admissions",
    "added_at": "2016-05-18T18:46:47+00:00",
    "added_by_id": 1,
    "sandbox": true
}

Retrieves a specific CommunicationPlan object.

HTTP Request

GET /communicationplans/(communicationplan)

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:

CommunicationPlanInstance

The CommunicationPlanInstance object

The CommunicationPlanInstance object looks like this in JSON:

{
    "object": "communication_plan_instance",
    "id": 1,
    "person_id": 1,
    "communication_plan_id": 1,
    "sender_id": 2,
    "start_date": "2022-07-11",
    "added_at": "2022-07-11T18:18:37+00:00",
    "added_by_id": 6,
    "active": false,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
person_id Yes int
communication_plan_id Yes int
sender_id No int
start_date Yes date
added_at No datetime
added_by_id No int
active No --
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/communicationplans" \
-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)/communicationplans',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/communicationplans',
 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)/communicationplans"), 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)/communicationplans');
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": "communication_plan_instance",
            "id": 2,
            "person_id": 12,
            "communication_plan_id": 9,
            "sender_id": 2,
            "start_date": "2022-07-11",
            "added_at": "2022-07-11T18:18:37+00:00",
            "added_by_id": 6,
            "active": false
        }
    ],
    "sandbox": true
}

Retrieves all CommunicationPlanInstance objects tied to a specific Person.

HTTP Request

GET /people/(person)/communicationplans

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

Example response:

{
    "object": "communication_plan_instance",
    "id": 3,
    "person_id": 12,
    "communication_plan_id": 9,
    "sender_id": 17,
    "start_date": "2025-04-14",
    "added_at": "2025-04-14T23:32:17+00:00",
    "added_by_id": 22,
    "active": false,
    "sandbox": true
}

Creates a new CommunicationPlanInstance object.

HTTP Request

POST /people/(person)/communicationplans

Parameters

Name Required Data Type Description
communication_plan_id Yes int
sender_id Yes int
start_date No date

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/people/(person)/communicationplans/(communicationplaninstance)" \
-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)/communicationplans/(communicationplaninstance)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/communicationplans/(communicationplaninstance)',
 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)/communicationplans/(communicationplaninstance)"), 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)/communicationplans/(communicationplaninstance)');
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": "communication_plan_instance",
    "id": 2,
    "person_id": 12,
    "communication_plan_id": 9,
    "sender_id": 2,
    "start_date": "2022-07-11",
    "added_at": "2022-07-11T18:18:37+00:00",
    "added_by_id": 6,
    "active": false,
    "sandbox": true
}

Retrieves a specific CommunicationPlanInstance object.

HTTP Request

GET /people/(person)/communicationplans/(communicationplaninstance)

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/communicationplans/(communicationplaninstance)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "sender_id": 17
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/communicationplans/(communicationplaninstance)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :sender_id => 17
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/communicationplans/(communicationplaninstance)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'sender_id': 17
 }
)
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)/communicationplans/(communicationplaninstance)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  sender_id = 17
});
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)/communicationplans/(communicationplaninstance)');
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([
  'sender_id' => 17
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "communication_plan_instance",
    "id": 2,
    "person_id": 12,
    "communication_plan_id": 9,
    "sender_id": 17,
    "start_date": "2022-07-11",
    "added_at": "2022-07-11T18:18:37+00:00",
    "added_by_id": 6,
    "active": false,
    "sandbox": true
}

Updates an existing CommunicationPlanInstance object.

HTTP Request

PUT /people/(person)/communicationplans/(communicationplaninstance)

Parameters

Name Required Data Type Description
sender_id Yes 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)/communicationplans/(communicationplaninstance)" \
-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)/communicationplans/(communicationplaninstance)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/communicationplans/(communicationplaninstance)',
 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)/communicationplans/(communicationplaninstance)"), 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)/communicationplans/(communicationplaninstance)');
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": "communication_plan_instance",
    "id": 2,
    "deleted": true
}

Deletes an existing CommunicationPlanInstance object.

HTTP Request

DELETE /people/(person)/communicationplans/(communicationplaninstance)

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:

Consequence

The Consequence object

The Consequence object looks like this in JSON:

{
    "object": "consequence",
    "id": 2,
    "name": "Written warning",
    "description": null,
    "fee_id": null,
    "email_notification": false,
    "apply_immediately": false,
    "added_at": "2016-02-25T00:10:52+00:00",
    "added_by_id": 1257,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (200)
description No text
fee_id No int
email_notification Yes bool
apply_immediately Yes bool
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/consequences" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/consequences',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/consequences',
 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/consequences"), 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/consequences');
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": "consequence",
            "id": 2,
            "name": "Written warning",
            "description": null,
            "fee_id": null,
            "email_notification": false,
            "apply_immediately": false,
            "added_at": "2016-02-25T00:10:52+00:00",
            "added_by_id": 1257
        }
    ],
    "sandbox": true
}

Retrieves all Consequence objects.

HTTP Request

GET /consequences

Parameters

None

Expandable Properties

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/consequences/(consequence)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/consequences/(consequence)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/consequences/(consequence)',
 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/consequences/(consequence)"), 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/consequences/(consequence)');
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": "consequence",
    "id": 2,
    "name": "Written warning",
    "description": null,
    "fee_id": null,
    "email_notification": false,
    "apply_immediately": false,
    "added_at": "2016-02-25T00:10:52+00:00",
    "added_by_id": 1257,
    "sandbox": true
}

Retrieves a specific Consequence object.

HTTP Request

GET /consequences/(consequence)

Parameters

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

Expandable Properties

Country

The Country object

The Country object looks like this in JSON:

{
    "object": "country",
    "id": "AF",
    "name": "Afghanistan",
    "alpha3": "AFG",
    "code": 4,
    "calling_code": "93",
    "status": "active",
    "sandbox": true
}
Attribute Required Data Type
id No int
name Yes text (100)
alpha3 No text (3)
code Yes int
calling_code No text (10)
status Yes enum (active, retired)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/countries" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/countries',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/countries',
 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/countries"), 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/countries');
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": 242,
    "results": 242,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "country",
            "id": "AF",
            "name": "Afghanistan",
            "alpha3": "AFG",
            "code": 4,
            "calling_code": "93",
            "status": "active"
        }
    ],
    "sandbox": true
}

Retrieves all Country objects.

HTTP Request

GET /countries

Parameters

None

Permissions

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

CourseAttendance

The CourseAttendance object

The CourseAttendance object looks like this in JSON:

{
    "object": "course_attendance",
    "id": 5,
    "student_id": 12,
    "course_meeting_id": 2,
    "status": "present",
    "present_coef": 1,
    "note": null,
    "kiosk_id": null,
    "beacon_id": null,
    "device_id": null,
    "beacon_found_at": null,
    "attendance_hours": null,
    "clinical_hours": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id Yes int
course_meeting_id Yes int
status Yes enum (present, tardy, absent, excused)
present_coef Yes decimal
note No text
kiosk_id No int
beacon_id No int
device_id No int
beacon_found_at No datetime
attendance_hours No decimal
clinical_hours No decimal
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/attendance/detail" \
-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/attendance/detail',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/attendance/detail',
 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/attendance/detail"), 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/attendance/detail');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "person",
            "id": 12,
            "first_name": "Alice",
            "last_name": "Admin",
            "middle_name": "",
            "prefix": "Mrs.",
            "suffix": null,
            "preferred_name": null,
            "display_name": "Alice 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": null,
            "report_data": {
                "dummy_id": "20220xx002",
                "academic_term_id": 8,
                "term_name": "Spring 2010 2009-2010",
                "course_offering_id": 21910,
                "course_name": "LAT101-1: Beginning Latin I",
                "meeting_summary": "Main class",
                "meeting_start_time": "2022-10-01 01:00:00",
                "meeting_end_time": "2022-10-01 02:30:00",
                "attendance_status": "PRESENT",
                "attendance_method": "",
                "attendance_note": null,
                "attendance_added_at": null,
                "attendance_added_by": null,
                "row_id": "12_3"
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

Retrieves all CourseAttendance objects that match given filter conditions.

HTTP Request

GET /attendance/detail

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
student search
student_course_status course_student_status
has_active_student_role has_active_student_role
student_program program
student_campus campus
academic_term academic_term
academic_year academic_year
course search
catalog_course search
primary_faculty faculty
event_start_time datetime
method choice
status choice
tag tag

Permissions

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

CourseDeliveryMethod

The CourseDeliveryMethod object

The CourseDeliveryMethod object looks like this in JSON:

{
    "object": "course_delivery_method",
    "id": 5,
    "name": "Hybrid Online",
    "distance_education": false,
    "status": "active",
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
distance_education Yes bool
status Yes enum (active, deleted, retired)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/coursedeliverymethods" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/coursedeliverymethods',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/coursedeliverymethods',
 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/coursedeliverymethods"), 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/coursedeliverymethods');
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_delivery_method",
            "id": 5,
            "name": "Hybrid Online",
            "distance_education": false,
            "status": "active",
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all CourseDeliveryMethod objects.

HTTP Request

GET /coursedeliverymethods

Parameters

None

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/coursedeliverymethods/(coursedeliverymethod)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/coursedeliverymethods/(coursedeliverymethod)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/coursedeliverymethods/(coursedeliverymethod)',
 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/coursedeliverymethods/(coursedeliverymethod)"), 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/coursedeliverymethods/(coursedeliverymethod)');
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_delivery_method",
    "id": 5,
    "name": "Hybrid Online",
    "distance_education": false,
    "status": "active",
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific CourseDeliveryMethod object.

HTTP Request

GET /coursedeliverymethods/(coursedeliverymethod)

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:

CourseEvaluation

The CourseEvaluation object

The CourseEvaluation object looks like this in JSON:

{
    "object": "course_evaluation",
    "id": 3,
    "name": "Course Evaluation 1",
    "status": "active",
    "added_at": "2012-10-05T19:36:30+00:00",
    "added_by_id": 213204,
    "updated_at": "2012-10-05T19:36:30+00:00",
    "updated_by_id": 213204,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (100)
status Yes enum (active, deleted)
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseevaluations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courseevaluations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseevaluations',
 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/courseevaluations"), 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/courseevaluations');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "course_evaluation",
            "id": 3,
            "name": "Course Evaluation 1",
            "status": "active",
            "added_at": "2012-10-05T19:36:30+00:00",
            "added_by_id": 213204,
            "updated_at": "2012-10-05T19:36:30+00:00",
            "updated_by_id": 213204
        }
    ],
    "sandbox": true
}

Retrieves all CourseEvaluation objects.

HTTP Request

GET /courseevaluations

Parameters

None

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/courseevaluations/(courseevaluation)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courseevaluations/(courseevaluation)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseevaluations/(courseevaluation)',
 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/courseevaluations/(courseevaluation)"), 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/courseevaluations/(courseevaluation)');
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_evaluation",
    "id": 3,
    "name": "Course Evaluation 1",
    "status": "active",
    "added_at": "2012-10-05T19:36:30+00:00",
    "added_by_id": 213204,
    "updated_at": "2012-10-05T19:36:30+00:00",
    "updated_by_id": 213204,
    "sandbox": true
}

Retrieves a specific CourseEvaluation object.

HTTP Request

GET /courseevaluations/(courseevaluation)

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:

answers

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseevaluations/(courseevaluation)/answers" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "academic_term_id": 8
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courseevaluations/(courseevaluation)/answers',
 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/courseevaluations/(courseevaluation)/answers',
 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/courseevaluations/(courseevaluation)/answers"), 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/courseevaluations/(courseevaluation)/answers');
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": 0,
    "results": 0,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

HTTP Request

GET /courseevaluations/(courseevaluation)/answers

Parameters

Name Required Data Type Description
academic_term_id Yes

Permissions

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

CourseGroup

The CourseGroup object

The CourseGroup object looks like this in JSON:

{
    "object": "course_group",
    "id": 1,
    "name": "Undergrad Art",
    "retired": false,
    "added_at": null,
    "added_by_id": 2010,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (150)
retired Yes bool
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/coursegroups" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/coursegroups',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/coursegroups',
 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/coursegroups"), 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/coursegroups');
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_group",
            "id": 1,
            "name": "Undergrad Art",
            "retired": false,
            "added_at": null,
            "added_by_id": 2010
        }
    ],
    "sandbox": true
}

Retrieves all CourseGroup objects.

HTTP Request

GET /coursegroups

Parameters

None

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/coursegroups/(coursegroup)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/coursegroups/(coursegroup)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/coursegroups/(coursegroup)',
 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/coursegroups/(coursegroup)"), 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/coursegroups/(coursegroup)');
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_group",
    "id": 1,
    "name": "Undergrad Art",
    "retired": false,
    "added_at": null,
    "added_by_id": 2010,
    "sandbox": true
}

Retrieves a specific CourseGroup object.

HTTP Request

GET /coursegroups/(coursegroup)

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:

CourseGroupRequirement

The CourseGroupRequirement object

The CourseGroupRequirement object looks like this in JSON:

{
    "object": "course_group_requirement",
    "id": 1,
    "course_group_id": 1,
    "requirement_id": 1,
    "type": "courses",
    "value": 0,
    "gpa": 2.5,
    "grade_points": 3,
    "allow_equivalencies": true,
    "exclusively_apply_data": false,
    "order_id": 1,
    "course_group_name": "Undergrad Art",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
course_group_id Yes int
requirement_id Yes int
type No enum (units, courses, clinical_hours, attendance_hours)
value Yes decimal
gpa No decimal
grade_points No decimal
allow_equivalencies Yes bool
exclusively_apply_data Yes bool
order_id Yes int
course_group_name No --
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/coursegrouprequirements" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/coursegrouprequirements',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/coursegrouprequirements',
 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/coursegrouprequirements"), 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/coursegrouprequirements');
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_group_requirement",
            "id": 1,
            "course_group_id": 1,
            "requirement_id": 1,
            "type": "courses",
            "value": 0,
            "gpa": 2.5,
            "grade_points": 3,
            "allow_equivalencies": true,
            "exclusively_apply_data": false,
            "order_id": 1,
            "course_group_name": "Undergrad Art"
        }
    ],
    "sandbox": true
}

Retrieves all CourseGroupRequirement objects.

HTTP Request

GET /coursegrouprequirements

Parameters

None

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/coursegrouprequirements/(coursegrouprequirement)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/coursegrouprequirements/(coursegrouprequirement)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/coursegrouprequirements/(coursegrouprequirement)',
 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/coursegrouprequirements/(coursegrouprequirement)"), 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/coursegrouprequirements/(coursegrouprequirement)');
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_group_requirement",
    "id": 1,
    "course_group_id": 1,
    "requirement_id": 1,
    "type": "courses",
    "value": 0,
    "gpa": 2.5,
    "grade_points": 3,
    "allow_equivalencies": true,
    "exclusively_apply_data": false,
    "order_id": 1,
    "course_group_name": "Undergrad Art",
    "sandbox": true
}

Retrieves a specific CourseGroupRequirement object.

HTTP Request

GET /coursegrouprequirements/(coursegrouprequirement)

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:

CourseLesson

The CourseLesson object

The CourseLesson object looks like this in JSON:

{
    "object": "course_lesson",
    "id": 1,
    "course_offering_id": 22746,
    "name": "Lesson #1",
    "content": null,
    "available_at": "2025-04-14T23:32:08+00:00",
    "sequential": false,
    "orderid": 1,
    "close_discussions": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id No int
course_offering_id Yes int
name Yes text (255)
content Yes text
available_at No datetime
sequential Yes bool
orderid Yes int
close_discussions No datetime
import_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/lessons" \
-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)/lessons',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/lessons',
 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)/lessons"), 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)/lessons');
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_lesson",
            "id": 3,
            "course_offering_id": 21908,
            "name": "Lesson #1",
            "content": null,
            "available_at": "2025-04-14T23:32:08+00:00",
            "sequential": false,
            "orderid": 2,
            "close_discussions": null,
            "import_id": null,
            "num_discussions": 0,
            "num_new_posts": 0,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all CourseLesson objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/lessons

Parameters

None

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)/lessons/(courselesson)" \
-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)/lessons/(courselesson)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/lessons/(courselesson)',
 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)/lessons/(courselesson)"), 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)/lessons/(courselesson)');
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_lesson",
    "id": 3,
    "course_offering_id": 21908,
    "name": "Lesson #1",
    "content": null,
    "available_at": "2025-04-14T23:32:08+00:00",
    "sequential": false,
    "orderid": 2,
    "close_discussions": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific CourseLesson object.

HTTP Request

GET /courseofferings/(courseoffering)/lessons/(courselesson)

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:

CourseMeeting

The CourseMeeting object

The CourseMeeting object looks like this in JSON:

{
    "object": "course_meeting",
    "id": 1,
    "course_offering_id": 1,
    "summary": "Main class",
    "start_at": "2022-10-04T08:00:00+00:00",
    "end_at": "2022-10-04T09:30:00+00:00",
    "room_id": 1,
    "counts_toward_attendance_hours": true,
    "counts_toward_clinical_hours": true,
    "status": "active",
    "present_until": null,
    "tardy_until": null,
    "beacon_active": false,
    "is_online": false,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
course_offering_id Yes int
summary Yes text (50)
start_at Yes datetime
end_at Yes datetime
room_id Yes int
counts_toward_attendance_hours Yes bool
counts_toward_clinical_hours Yes bool
status Yes enum (active, deleted)
present_until No datetime
tardy_until No datetime
beacon_active Yes bool
is_online Yes bool
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/coursemeetings" \
-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)/coursemeetings',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/coursemeetings',
 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)/coursemeetings"), 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)/coursemeetings');
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_meeting",
            "id": 2,
            "course_offering_id": 21908,
            "summary": "Main class",
            "start_at": "2022-10-01T08:00:00+00:00",
            "end_at": "2022-10-01T09:30:00+00:00",
            "room_id": 1,
            "counts_toward_attendance_hours": true,
            "counts_toward_clinical_hours": true,
            "status": "active",
            "present_until": null,
            "tardy_until": null,
            "beacon_active": false,
            "is_online": false
        }
    ],
    "sandbox": true
}

Retrieves all CourseMeeting objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/coursemeetings

Parameters

None

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)/coursemeetings/(coursemeeting)" \
-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)/coursemeetings/(coursemeeting)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/coursemeetings/(coursemeeting)',
 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)/coursemeetings/(coursemeeting)"), 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)/coursemeetings/(coursemeeting)');
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_meeting",
    "id": 2,
    "course_offering_id": 21908,
    "summary": "Main class",
    "start_at": "2022-10-01T08:00:00+00:00",
    "end_at": "2022-10-01T09:30:00+00:00",
    "room_id": 1,
    "counts_toward_attendance_hours": true,
    "counts_toward_clinical_hours": true,
    "status": "active",
    "present_until": null,
    "tardy_until": null,
    "beacon_active": false,
    "is_online": false,
    "sandbox": true
}

Retrieves a specific CourseMeeting object.

HTTP Request

GET /courseofferings/(courseoffering)/coursemeetings/(coursemeeting)

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_attendance

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance/update" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "start_time": "2022-10-15 08:00:00",
    "status": "present",
    "note": "Excused for doctor visit",
    "keep_best_status": "true",
    "counts_toward_attendance_hours": "true",
    "counts_toward_clinical_hours": "false"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance/update',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :status => 'present'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/students/(enrollment)/attendance/update',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'status': 'present'
 }
)
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/update"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  status = "present"
});
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/update');
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([
  'status' => 'present'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{}

Updates the attendance attribute of an existing CourseMeeting object.

HTTP Request

PUT /courseofferings/(courseoffering)/students/(enrollment)/attendance/update

Parameters

Name Required Data Type Description
course_meeting_id No int
start_time No datetime
status Yes enum (present, tardy, absent, excused)
note No text
keep_best_status No bool
counts_toward_attendance_hours No bool Default is true
counts_toward_clinical_hours No bool Default is true

Permissions

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

CourseOffering

The CourseOffering object

The CourseOffering object looks like this in JSON:

{
    "object": "course_offering",
    "id": 21908,
    "academic_term_id": 4,
    "campus_id": 0,
    "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,
    "course_evaluation_id": null,
    "evaluation_available_from": null,
    "evaluation_available_to": null,
    "evaluation_lock_grades_at": null,
    "evaluation_lock_grades_until": null,
    "evaluation_available_to_faculty": 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,
    "waiting_list_management": "automatic",
    "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
course_evaluation_id No int
evaluation_available_from No datetime
evaluation_available_to No datetime
evaluation_lock_grades_at No datetime
evaluation_lock_grades_until No datetime
evaluation_available_to_faculty No enum (not_available, available_after_60_percent_completion, available_after_60_percent_completion_and_course_finalized)
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
waiting_list_management Yes enum (automatic, manual, none)
show_progress_to_students No bool
catalog_courses No Array of CatalogCourse objects
sandbox No --

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": 0,
            "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",
            "course_evaluation_id": null,
            "evaluation_available_from": null,
            "evaluation_available_to": null,
            "evaluation_lock_grades_at": null,
            "evaluation_lock_grades_until": null,
            "evaluation_available_to_faculty": 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,
            "waiting_list_management": "automatic",
            "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
finalized bool
campus campus
section alphanumeric
instructor search
department object id
enrolled integer
auditors integer
incomplete integer
withdrawn integer
waiting integer
pass_fail bool
max_enrolled enrollment
max_auditors enrollment
delivery_method object id
published bool
program program
show_self_register bool
self_enroll choice
self_audit 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": 0,
    "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,
    "course_evaluation_id": null,
    "evaluation_available_from": null,
    "evaluation_available_to": null,
    "evaluation_lock_grades_at": null,
    "evaluation_lock_grades_until": null,
    "evaluation_available_to_faculty": 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,
    "waiting_list_management": "automatic",
    "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": 0,
    "finalized": true,
    "finalized_at": "2025-04-14T16:32:22+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,
    "course_evaluation_id": null,
    "evaluation_available_from": null,
    "evaluation_available_to": null,
    "evaluation_lock_grades_at": null,
    "evaluation_lock_grades_until": null,
    "evaluation_available_to_faculty": 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,
    "waiting_list_management": "automatic",
    "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.

Credit

The Credit object

The Credit object looks like this in JSON:

{
    "object": "credit",
    "id": 8,
    "actor_type": "person",
    "actor_id": 1,
    "number": 2,
    "description": null,
    "transaction_id": 10,
    "amount": 1234.56,
    "due_on": "2009-04-07",
    "status": null,
    "posted_on": "2015-03-10",
    "academic_term_id": null,
    "items": [],
    "sandbox": true
}
Attribute Required Data Type
id Yes int
actor_type Yes enum (person, contact_org)
actor_id Yes int
number Yes int
description Yes text
transaction_id Yes int
amount Yes decimal
due_on Yes date
status No enum (unpaid, paid, uncollectible)
posted_on No date
academic_term_id Yes int
items No Array of InvoiceItem objects
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/credits" \
-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/credits',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/credits',
 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/credits"), 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/credits');
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": "credit",
            "id": 9,
            "actor_type": "person",
            "actor_id": 12,
            "number": 3,
            "description": null,
            "transaction_id": 11,
            "amount": 1234.56,
            "due_on": "2009-04-07",
            "status": null,
            "report_data": {
                "term_name": null,
                "term_start_date": null,
                "firstname": "Alice",
                "lastname": "Admin",
                "preferred_name": "",
                "display_name": "Alice Admin",
                "personid": 12,
                "studentid": 12,
                "posted_date": "2015-03-10",
                "dummyid": "20220xx002"
            },
            "posted_on": "2015-03-10",
            "academic_term_id": null,
            "items": []
        }
    ],
    "sandbox": true
}

Retrieves all Credit objects that match given filter conditions.

HTTP Request

GET /credits

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
student search
credit_number integer
academic_term academic_term
posted_date date
total_amount decimal
student_campus campus
tag tag
added_time datetime
custom_field custom

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/credits/(credit)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/credits/(credit)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/credits/(credit)',
 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/credits/(credit)"), 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/credits/(credit)');
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": "credit",
    "id": 8,
    "actor_type": "person",
    "actor_id": 1,
    "number": 2,
    "description": null,
    "transaction_id": 10,
    "amount": 1234.56,
    "due_on": "2009-04-07",
    "status": null,
    "posted_on": "2015-03-10",
    "academic_term_id": null,
    "items": [],
    "sandbox": true
}

Retrieves a specific Credit object.

HTTP Request

GET /credits/(credit)

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:

CustomInfoData

The CustomInfoData object

The CustomInfoData object looks like this in JSON:

{
    "object": "custom_info_data",
    "id": 1,
    "custom_info_field_id": 11,
    "academic_term_id": null,
    "value": "Silver Ford Escape",
    "owner_id": 1,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 11,
        "name": "Car Model",
        "input_type": "text_area",
        "type": "person",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
custom_info_field_id Yes int
academic_term_id No int
value Yes text
owner_id Yes int
import_id No int
custom_info_field No --
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
option_value No text
sandbox No --

index (all types)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/custominfodata" \
-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/custominfodata',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/custominfodata',
 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/custominfodata"), 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/custominfodata');
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": 27,
    "results": 27,
    "results_per_page": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_data",
            "id": 8,
            "custom_info_field_id": 18,
            "academic_term_id": null,
            "value": "159876",
            "owner_id": 1,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 18,
                "name": "Business membership number",
                "input_type": "text_area",
                "type": "organization",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-01-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-01-01T00:05:30+00:00",
            "updated_by_id": 2,
            "report_data": {
                "name": "Business membership number",
                "type": "CONTACT_ORG",
                "input_type": "TEXT AREA",
                "option_value": null
            },
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects of all types. Requires both Financial and Academic admin roles.

HTTP Request

GET /custominfodata

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
custom_info_field_id integer
name text
type text
input_type text
owner_id integer
academic_term_id integer
value text
import_id integer
added_at datetime
added_by integer
updated_at datetime
updated_by integer

Permissions

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

index (donation)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/',
 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/donations/(donation)/custominfodata/"), 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/donations/(donation)/custominfodata/');
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": "custom_info_data",
            "id": 18,
            "custom_info_field_id": 17,
            "academic_term_id": null,
            "value": "Books",
            "owner_id": 6,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 17,
                "name": "Proxy gift description",
                "input_type": "text_area",
                "type": "donation",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-01-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-01-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Donation, tied to a specified Donation object.

HTTP Request

GET /donations/(donation)/custominfodata/

Parameters

None

Permissions

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

show (donation)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)',
 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/donations/(donation)/custominfodata/(custominfodata)"), 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/donations/(donation)/custominfodata/(custominfodata)');
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": "custom_info_data",
    "id": 18,
    "custom_info_field_id": 17,
    "academic_term_id": null,
    "value": "Books",
    "owner_id": 6,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 17,
        "name": "Proxy gift description",
        "input_type": "text_area",
        "type": "donation",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, tied to a specified Donation object.

HTTP Request

GET /donations/(donation)/custominfodata/(custominfodata)

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:

create (donation)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "custom_info_field_id": 17,
    "value": "2002 Ford Focus"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :custom_info_field_id => 17,
  :value => '2002 Ford Focus'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'custom_info_field_id': 17,
  'value': '2002 Ford Focus'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  custom_info_field_id = 17,
  value = "2002 Ford Focus"
});
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/donations/(donation)/custominfodata');
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([
  'custom_info_field_id' => 17,
  'value' => '2002 Ford Focus'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 18,
    "custom_info_field_id": 17,
    "academic_term_id": null,
    "value": "2002 Ford Focus",
    "owner_id": 6,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 17,
        "name": "Proxy gift description",
        "input_type": "text_area",
        "type": "donation",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, tied to a specified Donation object.

HTTP Request

POST /donations/(donation)/custominfodata

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (donation)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "value": "1957 Chevy"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :value => '1957 Chevy'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'value': '1957 Chevy'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  value = "1957 Chevy"
});
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/donations/(donation)/custominfodata/(custominfodata)');
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([
  'value' => '1957 Chevy'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 18,
    "custom_info_field_id": 17,
    "academic_term_id": null,
    "value": "1957 Chevy",
    "owner_id": 6,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 17,
        "name": "Proxy gift description",
        "input_type": "text_area",
        "type": "donation",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T16:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, tied to a specified Donation object.

HTTP Request

PUT /donations/(donation)/custominfodata/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (donation)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/donations/(donation)/custominfodata/(custominfodata)',
 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/donations/(donation)/custominfodata/(custominfodata)"), 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/donations/(donation)/custominfodata/(custominfodata)');
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": "custom_info_data",
    "id": 18,
    "deleted": true
}

Deletes an existing CustomInfoData object, tied to a specified Donation object.

HTTP Request

DELETE /donations/(donation)/custominfodata/(custominfodata)

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:

index (donor)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/',
 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/donors/(donor)/custominfodata/"), 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/donors/(donor)/custominfodata/');
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": "custom_info_data",
            "id": 19,
            "custom_info_field_id": 20,
            "academic_term_id": null,
            "value": "Special",
            "owner_id": 14,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 20,
                "name": "VIP",
                "input_type": "text_area",
                "type": "donor",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-01-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-01-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Donor, tied to a specified Donor object.

HTTP Request

GET /donors/(donor)/custominfodata/

Parameters

None

Permissions

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

show (donor)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/(custominfodata)',
 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/donors/(donor)/custominfodata/(custominfodata)"), 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/donors/(donor)/custominfodata/(custominfodata)');
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": "custom_info_data",
    "id": 19,
    "custom_info_field_id": 20,
    "academic_term_id": null,
    "value": "Special",
    "owner_id": 14,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 20,
        "name": "VIP",
        "input_type": "text_area",
        "type": "donor",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, tied to a specified Donor object.

HTTP Request

GET /donors/(donor)/custominfodata/(custominfodata)

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:

create (donor)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "custom_info_field_id": 20,
    "value": "Exempt"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :custom_info_field_id => 20,
  :value => 'Exempt'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'custom_info_field_id': 20,
  'value': 'Exempt'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  custom_info_field_id = 20,
  value = "Exempt"
});
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/donors/(donor)/custominfodata');
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([
  'custom_info_field_id' => 20,
  'value' => 'Exempt'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 19,
    "custom_info_field_id": 20,
    "academic_term_id": null,
    "value": "Exempt",
    "owner_id": 14,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 20,
        "name": "VIP",
        "input_type": "text_area",
        "type": "donor",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, tied to a specified Donor object.

HTTP Request

POST /donors/(donor)/custominfodata

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (donor)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 19,
    "custom_info_field_id": 20,
    "academic_term_id": null,
    "value": "Special",
    "owner_id": 14,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 20,
        "name": "VIP",
        "input_type": "text_area",
        "type": "donor",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2021-12-31T16:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, tied to a specified Donor object.

HTTP Request

PUT /donors/(donor)/custominfodata/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (donor)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/donors/(donor)/custominfodata/(custominfodata)',
 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/donors/(donor)/custominfodata/(custominfodata)"), 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/donors/(donor)/custominfodata/(custominfodata)');
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": "custom_info_data",
    "id": 19,
    "deleted": true
}

Deletes an existing CustomInfoData object, tied to a specified Donor object.

HTTP Request

DELETE /donors/(donor)/custominfodata/(custominfodata)

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:

index (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata',
 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/organizations/(organization)/custominfodata"), 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/organizations/(organization)/custominfodata');
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": "custom_info_data",
            "id": 8,
            "custom_info_field_id": 18,
            "academic_term_id": null,
            "value": "159876",
            "owner_id": 1,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 18,
                "name": "Business membership number",
                "input_type": "text_area",
                "type": "organization",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-01-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-01-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Organization, tied to a specified Organization object.

HTTP Request

GET /organizations/(organization)/custominfodata

Parameters

None

Permissions

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

show (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata/(custominfodata)',
 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/organizations/(organization)/custominfodata/(custominfodata)"), 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/organizations/(organization)/custominfodata/(custominfodata)');
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": "custom_info_data",
    "id": 8,
    "custom_info_field_id": 18,
    "academic_term_id": null,
    "value": "159876",
    "owner_id": 1,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 18,
        "name": "Business membership number",
        "input_type": "text_area",
        "type": "organization",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, tied to a specified Organization object.

HTTP Request

GET /organizations/(organization)/custominfodata/(custominfodata)

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:

create (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "custom_info_field_id": 18,
    "value": "555400"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :custom_info_field_id => 18,
  :value => '555400'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'custom_info_field_id': 18,
  'value': '555400'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  custom_info_field_id = 18,
  value = "555400"
});
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/organizations/(organization)/custominfodata');
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([
  'custom_info_field_id' => 18,
  'value' => '555400'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 8,
    "custom_info_field_id": 18,
    "academic_term_id": null,
    "value": "555400",
    "owner_id": 1,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 18,
        "name": "Business membership number",
        "input_type": "text_area",
        "type": "organization",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, tied to a specified Organization object.

HTTP Request

POST /organizations/(organization)/custominfodata

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (organization)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 8,
    "custom_info_field_id": 18,
    "academic_term_id": null,
    "value": "555771",
    "owner_id": 1,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 18,
        "name": "Business membership number",
        "input_type": "text_area",
        "type": "organization",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T16:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, tied to a specified Organization object.

HTTP Request

PUT /organizations/(organization)/custominfodata/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/custominfodata/(custominfodata)',
 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/organizations/(organization)/custominfodata/(custominfodata)"), 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/organizations/(organization)/custominfodata/(custominfodata)');
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": "custom_info_data",
    "id": 8,
    "deleted": true
}

Deletes an existing CustomInfoData object, tied to a specified Organization object.

HTTP Request

DELETE /organizations/(organization)/custominfodata/(custominfodata)

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:

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata" \
-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)/custominfodata',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata',
 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)/custominfodata"), 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)/custominfodata');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_data",
            "id": 30,
            "custom_info_field_id": 11,
            "academic_term_id": null,
            "value": "Blue Honda Accord",
            "owner_id": 12,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 11,
                "name": "Car Model",
                "input_type": "text_area",
                "type": "person",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-02-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-03-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Person, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata

Parameters

None

Permissions

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

show (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/(custominfodata)" \
-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)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/(custominfodata)',
 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)/custominfodata/(custominfodata)"), 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)/custominfodata/(custominfodata)');
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": "custom_info_data",
    "id": 11,
    "custom_info_field_id": 1,
    "academic_term_id": null,
    "value": "Robert",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 1,
        "name": "Dad's name",
        "input_type": "text",
        "type": "person",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/(custominfodata)

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:

create (person)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 37,
    "custom_info_field_id": 1,
    "academic_term_id": null,
    "value": "Robert",
    "owner_id": 12,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 1,
        "name": "Dad's name",
        "input_type": "text",
        "type": "person",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2025-04-14T23:32:14+00:00",
    "added_by_id": 22,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, tied to a specified Person object.

HTTP Request

POST /people/(person)/custominfodata

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "value": "Robert"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :value => 'Robert'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/(custominfodata)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'value': 'Robert'
 }
)
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)/custominfodata/(custominfodata)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  value = "Robert"
});
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)/custominfodata/(custominfodata)');
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([
  'value' => 'Robert'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 11,
    "custom_info_field_id": 1,
    "academic_term_id": null,
    "value": "Robert",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 1,
        "name": "Dad's name",
        "input_type": "text",
        "type": "person",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2021-12-31T16:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, tied to a specified Person object.

HTTP Request

PUT /people/(person)/custominfodata/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (person)

Example code to call this method:

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

Deletes an existing CustomInfoData object, tied to a specified Person object.

HTTP Request

DELETE /people/(person)/custominfodata/(custominfodata)

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:

index (admissions)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/admissions" \
-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)/custominfodata/admissions',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/admissions',
 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)/custominfodata/admissions"), 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)/custominfodata/admissions');
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": "custom_info_data",
            "id": 35,
            "custom_info_field_id": 14,
            "academic_term_id": null,
            "value": "Rocky Road",
            "owner_id": 12,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 14,
                "name": "Favorite ice cream flavor",
                "input_type": "text_area",
                "type": "admissions",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-02-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-03-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Person, of the admissions type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/admissions

Parameters

None

Permissions

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

show (admissions)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/admissions/(custominfodata)" \
-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)/custominfodata/admissions/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/admissions/(custominfodata)',
 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)/custominfodata/admissions/(custominfodata)"), 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)/custominfodata/admissions/(custominfodata)');
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": "custom_info_data",
    "id": 15,
    "custom_info_field_id": 14,
    "academic_term_id": null,
    "value": "Vanilla",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 14,
        "name": "Favorite ice cream flavor",
        "input_type": "text_area",
        "type": "admissions",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, of the admissions type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/admissions/(custominfodata)

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:

create (admissions)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 35,
    "custom_info_field_id": 14,
    "academic_term_id": null,
    "value": "Chocolate",
    "owner_id": 12,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 14,
        "name": "Favorite ice cream flavor",
        "input_type": "text_area",
        "type": "admissions",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-02-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, of the admissions type, tied to a specified Person object.

HTTP Request

POST /people/(person)/custominfodata/admissions

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (admissions)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/admissions/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "value": "Rocky Road"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/admissions/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :value => 'Rocky Road'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/admissions/(custominfodata)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'value': 'Rocky Road'
 }
)
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)/custominfodata/admissions/(custominfodata)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  value = "Rocky Road"
});
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)/custominfodata/admissions/(custominfodata)');
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([
  'value' => 'Rocky Road'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 15,
    "custom_info_field_id": 14,
    "academic_term_id": null,
    "value": "Rocky Road",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 14,
        "name": "Favorite ice cream flavor",
        "input_type": "text_area",
        "type": "admissions",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T16:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, of the admissions type, tied to a specified Person object.

HTTP Request

PUT /people/(person)/custominfodata/admissions/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (admissions)

Example code to call this method:

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

Deletes an existing CustomInfoData object, of the admissions type, tied to a specified Person object.

HTTP Request

DELETE /people/(person)/custominfodata/admissions/(custominfodata)

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:

index (campus life)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/campuslife" \
-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)/custominfodata/campuslife',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/campuslife',
 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)/custominfodata/campuslife"), 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)/custominfodata/campuslife');
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": "custom_info_data",
            "id": 36,
            "custom_info_field_id": 19,
            "academic_term_id": null,
            "value": "Seahawks",
            "owner_id": 12,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 19,
                "name": "Preferred sports team",
                "input_type": "text_area",
                "type": "campus_life",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-02-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-03-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Person, of the campus life type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/campuslife

Parameters

None

Permissions

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

show (campus life)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/campuslife/(custominfodata)" \
-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)/custominfodata/campuslife/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/campuslife/(custominfodata)',
 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)/custominfodata/campuslife/(custominfodata)"), 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)/custominfodata/campuslife/(custominfodata)');
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": "custom_info_data",
    "id": 20,
    "custom_info_field_id": 19,
    "academic_term_id": null,
    "value": "Tigers",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 19,
        "name": "Preferred sports team",
        "input_type": "text_area",
        "type": "campus_life",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, of the campus life type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/campuslife/(custominfodata)

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:

create (campus life)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 20,
    "custom_info_field_id": 19,
    "academic_term_id": null,
    "value": "Patriots",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 19,
        "name": "Preferred sports team",
        "input_type": "text_area",
        "type": "campus_life",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, of the campus life type, tied to a specified Person object.

HTTP Request

POST /people/(person)/custominfodata/campuslife

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (campus life)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/campuslife/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "value": "Hawks"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/campuslife/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :value => 'Hawks'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/campuslife/(custominfodata)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'value': 'Hawks'
 }
)
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)/custominfodata/campuslife/(custominfodata)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  value = "Hawks"
});
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)/custominfodata/campuslife/(custominfodata)');
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([
  'value' => 'Hawks'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 20,
    "custom_info_field_id": 19,
    "academic_term_id": null,
    "value": "Hawks",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 19,
        "name": "Preferred sports team",
        "input_type": "text_area",
        "type": "campus_life",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T16:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, of the campus life type, tied to a specified Person object.

HTTP Request

PUT /people/(person)/custominfodata/campuslife/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (campus life)

Example code to call this method:

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

Deletes an existing CustomInfoData object, of the campus life type, tied to a specified Person object.

HTTP Request

DELETE /people/(person)/custominfodata/campuslife/(custominfodata)

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:

index (financial)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financial" \
-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)/custominfodata/financial',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financial',
 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)/custominfodata/financial"), 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)/custominfodata/financial');
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": "custom_info_data",
            "id": 33,
            "custom_info_field_id": 16,
            "academic_term_id": null,
            "value": "Silver dollar",
            "owner_id": 12,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 16,
                "name": "Favorite coin",
                "input_type": "text_area",
                "type": "financial",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-02-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-03-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Person, of the financial type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/financial

Parameters

None

Permissions

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

show (financial)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financial/(custominfodata)" \
-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)/custominfodata/financial/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financial/(custominfodata)',
 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)/custominfodata/financial/(custominfodata)"), 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)/custominfodata/financial/(custominfodata)');
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": "custom_info_data",
    "id": 16,
    "custom_info_field_id": 16,
    "academic_term_id": null,
    "value": "Gold",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 16,
        "name": "Favorite coin",
        "input_type": "text_area",
        "type": "financial",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, of the financial type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/financial/(custominfodata)

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:

create (financial)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 33,
    "custom_info_field_id": 16,
    "academic_term_id": null,
    "value": "Silver",
    "owner_id": 12,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 16,
        "name": "Favorite coin",
        "input_type": "text_area",
        "type": "financial",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-02-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, of the financial type, tied to a specified Person object.

HTTP Request

POST /people/(person)/custominfodata/financial

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (financial)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financial/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "value": "Gold"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financial/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :value => 'Gold'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financial/(custominfodata)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'value': 'Gold'
 }
)
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)/custominfodata/financial/(custominfodata)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  value = "Gold"
});
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)/custominfodata/financial/(custominfodata)');
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([
  'value' => 'Gold'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 16,
    "custom_info_field_id": 16,
    "academic_term_id": null,
    "value": "Gold",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 16,
        "name": "Favorite coin",
        "input_type": "text_area",
        "type": "financial",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2021-12-31T16:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, of the financial type, tied to a specified Person object.

HTTP Request

PUT /people/(person)/custominfodata/financial/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (financial)

Example code to call this method:

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

Deletes an existing CustomInfoData object, of the financial type, tied to a specified Person object.

HTTP Request

DELETE /people/(person)/custominfodata/financial/(custominfodata)

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:

index (financial aid)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financialaid" \
-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)/custominfodata/financialaid',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financialaid',
 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)/custominfodata/financialaid"), 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)/custominfodata/financialaid');
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": "custom_info_data",
            "id": 34,
            "custom_info_field_id": 15,
            "academic_term_id": null,
            "value": "Cosigned",
            "owner_id": 12,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 15,
                "name": "Favorite kind of loan",
                "input_type": "text_area",
                "type": "financial_aid",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-02-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-03-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Person, of the financial aid type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/financialaid

Parameters

None

Permissions

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

show (financial aid)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financialaid/(custominfodata)" \
-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)/custominfodata/financialaid/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financialaid/(custominfodata)',
 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)/custominfodata/financialaid/(custominfodata)"), 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)/custominfodata/financialaid/(custominfodata)');
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": "custom_info_data",
    "id": 14,
    "custom_info_field_id": 15,
    "academic_term_id": null,
    "value": "Forgiven",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 15,
        "name": "Favorite kind of loan",
        "input_type": "text_area",
        "type": "financial_aid",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, of the financial aid type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/financialaid/(custominfodata)

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:

create (financial aid)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 34,
    "custom_info_field_id": 15,
    "academic_term_id": null,
    "value": "Grant",
    "owner_id": 12,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 15,
        "name": "Favorite kind of loan",
        "input_type": "text_area",
        "type": "financial_aid",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-02-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, of the financial aid type, tied to a specified Person object.

HTTP Request

POST /people/(person)/custominfodata/financialaid

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (financial aid)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financialaid/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "value": "Grant"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financialaid/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :value => 'Grant'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/financialaid/(custominfodata)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'value': 'Grant'
 }
)
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)/custominfodata/financialaid/(custominfodata)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  value = "Grant"
});
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)/custominfodata/financialaid/(custominfodata)');
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([
  'value' => 'Grant'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 14,
    "custom_info_field_id": 15,
    "academic_term_id": null,
    "value": "Grant",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 15,
        "name": "Favorite kind of loan",
        "input_type": "text_area",
        "type": "financial_aid",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T16:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, of the financial aid type, tied to a specified Person object.

HTTP Request

PUT /people/(person)/custominfodata/financialaid/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (financial aid)

Example code to call this method:

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

Deletes an existing CustomInfoData object, of the financial aid type, tied to a specified Person object.

HTTP Request

DELETE /people/(person)/custominfodata/financialaid/(custominfodata)

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:

index (student)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/student" \
-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)/custominfodata/student',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/student',
 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)/custominfodata/student"), 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)/custominfodata/student');
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": "custom_info_data",
            "id": 31,
            "custom_info_field_id": 12,
            "academic_term_id": null,
            "value": "English",
            "owner_id": 12,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 12,
                "name": "Favorite school subject",
                "input_type": "text_area",
                "type": "student",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-02-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-03-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Person, of the student type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/student

Parameters

None

Permissions

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

show (student)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/student/(custominfodata)" \
-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)/custominfodata/student/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/student/(custominfodata)',
 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)/custominfodata/student/(custominfodata)"), 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)/custominfodata/student/(custominfodata)');
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": "custom_info_data",
    "id": 12,
    "custom_info_field_id": 12,
    "academic_term_id": null,
    "value": "Mathematics",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 12,
        "name": "Favorite school subject",
        "input_type": "text_area",
        "type": "student",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, of the student type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/student/(custominfodata)

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:

create (student)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 31,
    "custom_info_field_id": 12,
    "academic_term_id": null,
    "value": "Spanish",
    "owner_id": 12,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 12,
        "name": "Favorite school subject",
        "input_type": "text_area",
        "type": "student",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-02-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, of the student type, tied to a specified Person object.

HTTP Request

POST /people/(person)/custominfodata/student

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (student)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/student/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "value": "Mathematics"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/student/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :value => 'Mathematics'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/student/(custominfodata)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'value': 'Mathematics'
 }
)
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)/custominfodata/student/(custominfodata)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  value = "Mathematics"
});
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)/custominfodata/student/(custominfodata)');
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([
  'value' => 'Mathematics'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 12,
    "custom_info_field_id": 12,
    "academic_term_id": null,
    "value": "Mathematics",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 12,
        "name": "Favorite school subject",
        "input_type": "text_area",
        "type": "student",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2021-12-31T16:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, of the student type, tied to a specified Person object.

HTTP Request

PUT /people/(person)/custominfodata/student/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (student)

Example code to call this method:

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

Deletes an existing CustomInfoData object, of the student type, tied to a specified Person object.

HTTP Request

DELETE /people/(person)/custominfodata/student/(custominfodata)

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:

index (term student)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/term/(academicterm)" \
-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)/custominfodata/term/(academicterm)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/term/(academicterm)',
 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)/custominfodata/term/(academicterm)"), 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)/custominfodata/term/(academicterm)');
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": "custom_info_data",
            "id": 32,
            "custom_info_field_id": 13,
            "academic_term_id": 8,
            "value": "Blue",
            "owner_id": 12,
            "import_id": null,
            "custom_info_field": {
                "object": "custom_info_field",
                "id": 13,
                "name": "Favorite color",
                "input_type": "text_area",
                "type": "term_student",
                "description": null,
                "value_permissions": "default"
            },
            "added_at": "2022-02-01T00:05:30+00:00",
            "added_by_id": 2,
            "updated_at": "2022-03-01T00:05:30+00:00",
            "updated_by_id": 2,
            "option_value": null
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoData objects tied to a specific Person, of the term student type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/term/(academicterm)

Parameters

None

Permissions

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

show (term student)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/term/(academicterm)/(custominfodata)" \
-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)/custominfodata/term/(academicterm)/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/term/(academicterm)/(custominfodata)',
 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)/custominfodata/term/(academicterm)/(custominfodata)"), 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)/custominfodata/term/(academicterm)/(custominfodata)');
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": "custom_info_data",
    "id": 17,
    "custom_info_field_id": 13,
    "academic_term_id": 8,
    "value": "Green",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 13,
        "name": "Favorite color",
        "input_type": "text_area",
        "type": "term_student",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-01-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2022-01-01T00:05:30+00:00",
    "updated_by_id": 2,
    "option_value": null,
    "sandbox": true
}

Retrieves a specific CustomInfoData object, of the term student type, tied to a specified Person object.

HTTP Request

GET /people/(person)/custominfodata/term/(academicterm)/(custominfodata)

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:

create (term student)

Example code to call this method:

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

Example response:

{
    "object": "custom_info_data",
    "id": 32,
    "custom_info_field_id": 13,
    "academic_term_id": 8,
    "value": "Yellow",
    "owner_id": 12,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 13,
        "name": "Favorite color",
        "input_type": "text_area",
        "type": "term_student",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2022-02-01T00:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T23:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Creates a new CustomInfoData object, of the term student type, tied to a specified Person object.

HTTP Request

POST /people/(person)/custominfodata/term/(academicterm)

Parameters

Name Required Data Type Description
custom_info_field_id Yes int
value Yes text

Permissions

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

update (term student)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/custominfodata/term/(academicterm)/(custominfodata)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "value": "Blue"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/term/(academicterm)/(custominfodata)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :value => 'Blue'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/custominfodata/term/(academicterm)/(custominfodata)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'value': 'Blue'
 }
)
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)/custominfodata/term/(academicterm)/(custominfodata)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  value = "Blue"
});
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)/custominfodata/term/(academicterm)/(custominfodata)');
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([
  'value' => 'Blue'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "custom_info_data",
    "id": 17,
    "custom_info_field_id": 13,
    "academic_term_id": 8,
    "value": "Blue",
    "owner_id": 16,
    "import_id": null,
    "custom_info_field": {
        "object": "custom_info_field",
        "id": 13,
        "name": "Favorite color",
        "input_type": "text_area",
        "type": "term_student",
        "description": null,
        "value_permissions": "default"
    },
    "added_at": "2021-12-31T16:05:30+00:00",
    "added_by_id": 2,
    "updated_at": "2025-04-14T16:32:14+00:00",
    "updated_by_id": 22,
    "option_value": null,
    "sandbox": true
}

Updates an existing CustomInfoData object, of the term student type, tied to a specified Person object.

HTTP Request

PUT /people/(person)/custominfodata/term/(academicterm)/(custominfodata)

Parameters

Name Required Data Type Description
value Yes text

Permissions

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

delete (term student)

Example code to call this method:

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

Deletes an existing CustomInfoData object, of the term student type, tied to a specified Person object.

HTTP Request

DELETE /people/(person)/custominfodata/term/(academicterm)/(custominfodata)

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:

CustomInfoField

The CustomInfoField object

See example response for details.

index (admissions)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 14,
            "name": "Favorite ice cream flavor",
            "input_type": "text_area",
            "type": "admissions",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the admissions type.

HTTP Request

GET /admissionscustominfofields

Parameters

None

Permissions

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

show (admissions)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 14,
    "name": "Favorite ice cream flavor",
    "input_type": "text_area",
    "type": "admissions",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the admissions type.

HTTP Request

GET /admissionscustominfofields/(admissionscustominfofield)

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:

index (campus life)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 19,
            "name": "Preferred sports team",
            "input_type": "text_area",
            "type": "campus_life",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the campus life type.

HTTP Request

GET /campuslifecustominfofields

Parameters

None

show (campus life)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 19,
    "name": "Preferred sports team",
    "input_type": "text_area",
    "type": "campus_life",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the campus life type.

HTTP Request

GET /campuslifecustominfofields/(campuslifecustominfofield)

Parameters

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

index (donation)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 17,
            "name": "Proxy gift description",
            "input_type": "text_area",
            "type": "donation",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the donation type.

HTTP Request

GET /donationcustominfofields

Parameters

None

Permissions

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

show (donation)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 17,
    "name": "Proxy gift description",
    "input_type": "text_area",
    "type": "donation",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the donation type.

HTTP Request

GET /donationcustominfofields/(donationcustominfofield)

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:

index (donor)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 20,
            "name": "VIP",
            "input_type": "text_area",
            "type": "donor",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the donor type.

HTTP Request

GET /donorcustominfofields

Parameters

None

Permissions

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

show (donor)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 20,
    "name": "VIP",
    "input_type": "text_area",
    "type": "donor",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the donor type.

HTTP Request

GET /donorcustominfofields/(donorcustominfofield)

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:

index (financial aid)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 15,
            "name": "Favorite kind of loan",
            "input_type": "text_area",
            "type": "financial_aid",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the financial aid type.

HTTP Request

GET /financialaidcustominfofields

Parameters

None

Permissions

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

show (financial aid)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 15,
    "name": "Favorite kind of loan",
    "input_type": "text_area",
    "type": "financial_aid",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the financial aid type.

HTTP Request

GET /financialaidcustominfofields/(financialaidcustominfofield)

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:

index (financial)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 16,
            "name": "Favorite coin",
            "input_type": "text_area",
            "type": "financial",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the financial type.

HTTP Request

GET /financialcustominfofields

Parameters

None

Permissions

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

show (financial)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 16,
    "name": "Favorite coin",
    "input_type": "text_area",
    "type": "financial",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the financial type.

HTTP Request

GET /financialcustominfofields/(financialcustominfofield)

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:

index (organization)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 18,
            "name": "Business membership number",
            "input_type": "text_area",
            "type": "organization",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the organization type.

HTTP Request

GET /organizationcustominfofields

Parameters

None

Permissions

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

show (organization)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 18,
    "name": "Business membership number",
    "input_type": "text_area",
    "type": "organization",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the organization type.

HTTP Request

GET /organizationcustominfofields/(organizationcustominfofield)

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:

index (person)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 11,
    "results": 11,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 10,
            "name": "Another decimal?",
            "input_type": "decimal",
            "type": "person",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the person type.

HTTP Request

GET /personcustominfofields

Parameters

None

Permissions

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

show (person)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 10,
    "name": "Another decimal?",
    "input_type": "decimal",
    "type": "person",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the person type.

HTTP Request

GET /personcustominfofields/(personcustominfofield)

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:

index (student)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 12,
            "name": "Favorite school subject",
            "input_type": "text_area",
            "type": "student",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the student type.

HTTP Request

GET /studentcustominfofields

Parameters

None

Permissions

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

show (student)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 12,
    "name": "Favorite school subject",
    "input_type": "text_area",
    "type": "student",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the student type.

HTTP Request

GET /studentcustominfofields/(studentcustominfofield)

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:

index (term student)

Example code to call this method:

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "custom_info_field",
            "id": 13,
            "name": "Favorite color",
            "input_type": "text_area",
            "type": "term_student",
            "description": null,
            "value_permissions": "default"
        }
    ],
    "sandbox": true
}

Retrieves all CustomInfoField objects, of the term student type.

HTTP Request

GET /termstudentcustominfofields

Parameters

None

Permissions

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

show (term student)

Example code to call this method:

Example response:

{
    "object": "custom_info_field",
    "id": 13,
    "name": "Favorite color",
    "input_type": "text_area",
    "type": "term_student",
    "description": null,
    "value_permissions": "default",
    "sandbox": true
}

Retrieves a specific CustomInfoField object, of the term student type.

HTTP Request

GET /termstudentcustominfofields/(termstudentcustominfofield)

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:

DataSlicerReport

The DataSlicerReport object

The DataSlicerReport object looks like this in JSON:

{
    "object": "data_slicer_report",
    "id": 30,
    "name": "SAT Writing Report",
    "added_at": "2019-09-25T22:38:35+00:00",
    "added_by_id": 2921,
    "updated_at": null,
    "updated_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/dataslicerreports" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/dataslicerreports',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/dataslicerreports',
 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/dataslicerreports"), 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/dataslicerreports');
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": "data_slicer_report",
            "id": 30,
            "name": "SAT Writing Report",
            "added_at": "2019-09-25T22:38:35+00:00",
            "added_by_id": 2921,
            "updated_at": null,
            "updated_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all DataSlicerReport objects.

HTTP Request

GET /dataslicerreports

Parameters

None

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/dataslicerreports/(dataslicerreport)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/dataslicerreports/(dataslicerreport)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/dataslicerreports/(dataslicerreport)',
 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/dataslicerreports/(dataslicerreport)"), 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/dataslicerreports/(dataslicerreport)');
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": "data_slicer_report",
    "id": 30,
    "name": "SAT Writing Report",
    "added_at": "2019-09-25T22:38:35+00:00",
    "added_by_id": 2921,
    "updated_at": null,
    "updated_by_id": null,
    "sandbox": true
}

Retrieves a specific DataSlicerReport object.

HTTP Request

GET /dataslicerreports/(dataslicerreport)

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:

results

curl "https://yourschool.populiweb.com/api2/dataslicerreports/(dataslicerreport)/results" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "export_format": "CSV"
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/dataslicerreports/(dataslicerreport)/results',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/dataslicerreports/(dataslicerreport)/results',
 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/dataslicerreports/(dataslicerreport)/results"), 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/dataslicerreports/(dataslicerreport)/results');
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:

{}

Runs the specified Data Slicer report and returns the results as XLS, CSV, or JSON. All results in CSV or XLS format. 10,000 results per page in JSON

HTTP Request

GET /dataslicerreports/(dataslicerreport)/results

Parameters

Name Required Data Type Description
export_format No text Export Format can be JSON, CSV, or XLS
page 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.

DeclinedReason

The DeclinedReason object

The DeclinedReason object looks like this in JSON:

{
    "object": "declined_reason",
    "id": 6,
    "name": "Athletics",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/declinedreasons" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/declinedreasons',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/declinedreasons',
 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/declinedreasons"), 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/declinedreasons');
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": 7,
    "results": 7,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "declined_reason",
            "id": 6,
            "name": "Athletics"
        }
    ],
    "sandbox": true
}

Retrieves all DeclinedReason objects.

HTTP Request

GET /declinedreasons

Parameters

None

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/declinedreasons/(declinedreason)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/declinedreasons/(declinedreason)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/declinedreasons/(declinedreason)',
 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/declinedreasons/(declinedreason)"), 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/declinedreasons/(declinedreason)');
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": "declined_reason",
    "id": 6,
    "name": "Athletics",
    "sandbox": true
}

Retrieves a specific DeclinedReason object.

HTTP Request

GET /declinedreasons/(declinedreason)

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:

Degree

The Degree object

The Degree object looks like this in JSON:

{
    "object": "degree",
    "id": 1,
    "program_id": 1,
    "degree_level_id": 1,
    "department_id": 1,
    "name": "Bachelor of Arts Degree in Liberal Arts and Culture",
    "description": "Bachelor of Arts Degree in Liberal Arts and Culture",
    "abbrv": "B.A.",
    "diploma": 1,
    "status": "active",
    "cip_code": "24.0101",
    "unit": "credits",
    "distance_education": false,
    "length": null,
    "length_unit": "years",
    "external_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
program_id Yes int
degree_level_id No int
department_id Yes int
name Yes text (250)
description No text
abbrv Yes text (100)
diploma No --
status Yes enum (construction, active, retired)
cip_code Yes text (20)
unit Yes enum (credits, hours)
distance_education Yes bool
length No int
length_unit No enum (years, months, weeks)
external_id No text (100)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/degrees" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"level","value":1,"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/degrees',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/degrees',
 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/degrees"), 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/degrees');
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": "degree",
            "id": 1,
            "program_id": 1,
            "degree_level_id": 1,
            "department_id": 1,
            "name": "Bachelor of Arts Degree in Liberal Arts and Culture",
            "description": "Bachelor of Arts Degree in Liberal Arts and Culture",
            "abbrv": "B.A.",
            "diploma": 1,
            "status": "active",
            "cip_code": "24.0101",
            "unit": "credits",
            "distance_education": false,
            "length": null,
            "length_unit": "years",
            "external_id": null,
            "report_data": {
                "department_name": "Undergraduate",
                "program_name": "Undergraduate",
                "formatted_cip_code": null,
                "degree_level_name": "Doctoral Degree - Professional Practice"
            }
        }
    ],
    "sandbox": true
}

Retrieves all Degree objects that match given filter conditions.

HTTP Request

GET /degrees

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
program program
status enum
department object id
diploma bool
level base_object id

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/degrees/(degree)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/degrees/(degree)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/degrees/(degree)',
 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/degrees/(degree)"), 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/degrees/(degree)');
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": "degree",
    "id": 1,
    "program_id": 1,
    "degree_level_id": 1,
    "department_id": 1,
    "name": "Bachelor of Arts Degree in Liberal Arts and Culture",
    "description": "Bachelor of Arts Degree in Liberal Arts and Culture",
    "abbrv": "B.A.",
    "diploma": 1,
    "status": "active",
    "cip_code": "24.0101",
    "unit": "credits",
    "distance_education": false,
    "length": null,
    "length_unit": "years",
    "external_id": null,
    "sandbox": true
}

Retrieves a specific Degree object.

HTTP Request

GET /degrees/(degree)

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:

students

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/degrees/(degree)/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/degrees/(degree)/students',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/degrees/(degree)/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/degrees/(degree)/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/degrees/(degree)/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": "",
            "prefix": null,
            "suffix": null,
            "preferred_name": null,
            "display_name": "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": "2025-04-14T23:32:14+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"
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

HTTP Request

GET /degrees/(degree)/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

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
age integer
degree integer
degree_level integer
last_active date
program integer
specialization integer

Permissions

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

DegreeLevel

The DegreeLevel object

The DegreeLevel object looks like this in JSON:

{
    "object": "degree_level",
    "id": 1,
    "name": "Doctoral Degree - Professional Practice",
    "graduate": 1,
    "abbrv": "DOCTORAL_PROFESSIONAL",
    "sandbox": true
}
Attribute Required Data Type
id No int
name Yes text (100)
graduate No --
abbrv No text (50)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/degreelevels" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/degreelevels',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/degreelevels',
 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/degreelevels"), 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/degreelevels');
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": 11,
    "results": 11,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "degree_level",
            "id": 1,
            "name": "Doctoral Degree - Professional Practice",
            "graduate": 1,
            "abbrv": "DOCTORAL_PROFESSIONAL"
        }
    ],
    "sandbox": true
}

Retrieves all DegreeLevel objects.

HTTP Request

GET /degreelevels

Parameters

None

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/degreelevels/(degreelevel)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/degreelevels/(degreelevel)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/degreelevels/(degreelevel)',
 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/degreelevels/(degreelevel)"), 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/degreelevels/(degreelevel)');
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": "degree_level",
    "id": 1,
    "name": "Doctoral Degree - Professional Practice",
    "graduate": 1,
    "abbrv": "DOCTORAL_PROFESSIONAL",
    "sandbox": true
}

Retrieves a specific DegreeLevel object.

HTTP Request

GET /degreelevels/(degreelevel)

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:

students

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/degreelevels/(degreelevel)/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/degreelevels/(degreelevel)/students',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/degreelevels/(degreelevel)/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/degreelevels/(degreelevel)/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/degreelevels/(degreelevel)/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": 3,
    "results": 3,
    "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": "",
            "prefix": null,
            "suffix": null,
            "preferred_name": null,
            "display_name": "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": "2025-04-14T23:32:18+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"
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

HTTP Request

GET /degreelevels/(degreelevel)/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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
age integer
degree integer
degree_level integer
last_active date
program integer
specialization integer

Permissions

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

Department

The Department object

The Department object looks like this in JSON:

{
    "object": "department",
    "id": 1,
    "name": "Undergraduate",
    "status": "active",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
status Yes enum (active, deleted)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/departments" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/departments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/departments',
 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/departments"), 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/departments');
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": "department",
            "id": 1,
            "name": "Undergraduate",
            "status": "active"
        }
    ],
    "sandbox": true
}

Retrieves all Department objects.

HTTP Request

GET /departments

Parameters

None

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/departments/(department)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/departments/(department)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/departments/(department)',
 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/departments/(department)"), 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/departments/(department)');
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": "department",
    "id": 1,
    "name": "Undergraduate",
    "status": "active",
    "sandbox": true
}

Retrieves a specific Department object.

HTTP Request

GET /departments/(department)

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:

DisciplineType

The DisciplineType object

The DisciplineType object looks like this in JSON:

{
    "object": "discipline_type",
    "id": 5,
    "name": "Warning",
    "report_as": "warning",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (100)
report_as No enum (warning, probation, suspension, expulsion)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/disciplinetypes" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/disciplinetypes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/disciplinetypes',
 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/disciplinetypes"), 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/disciplinetypes');
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": "discipline_type",
            "id": 5,
            "name": "Warning",
            "report_as": "warning"
        }
    ],
    "sandbox": true
}

Retrieves all DisciplineType objects.

HTTP Request

GET /disciplinetypes

Parameters

None

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/disciplinetypes/(disciplinetype)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/disciplinetypes/(disciplinetype)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/disciplinetypes/(disciplinetype)',
 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/disciplinetypes/(disciplinetype)"), 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/disciplinetypes/(disciplinetype)');
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": "discipline_type",
    "id": 5,
    "name": "Warning",
    "report_as": "warning",
    "sandbox": true
}

Retrieves a specific DisciplineType object.

HTTP Request

GET /disciplinetypes/(disciplinetype)

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:

DonatePage

The DonatePage object

The DonatePage object looks like this in JSON:

{
    "object": "donate_page",
    "id": 30,
    "name": "Special Page",
    "title": null,
    "content": null,
    "fund_direction": "any",
    "fund_id": 2,
    "split_fund_id": null,
    "split_fund_amount": null,
    "campaign_id": null,
    "appeal_id": null,
    "amount_type": "variable",
    "min_amount": 0,
    "amount_choices": null,
    "fixed_amount": 0,
    "status": "active",
    "thank_you_type": "default",
    "thank_you_message": null,
    "thank_you_url": null,
    "send_receipt_email": true,
    "enable_comment": true,
    "custom_css": null,
    "allow_recurring": true,
    "allow_cover_processing_fee": true,
    "payment_gateway_id": null,
    "added_at": "2014-02-20T00:47:28+00:00",
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name No text (300)
title No text (300)
content No text
fund_direction Yes enum (any, single, multi)
fund_id No int
split_fund_id No int
split_fund_amount No decimal
campaign_id No int
appeal_id No int
amount_type Yes enum (variable, choices, fixed, choices_variable)
min_amount No decimal
amount_choices No text (1000)
fixed_amount No decimal
status Yes enum (active, deleted)
thank_you_type Yes enum (default, message, redirect)
thank_you_message No text
thank_you_url No text (2000)
send_receipt_email Yes bool
enable_comment Yes bool
custom_css No text
allow_recurring Yes bool
allow_cover_processing_fee No bool
payment_gateway_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donatepages" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donatepages',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donatepages',
 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/donatepages"), 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/donatepages');
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": "donate_page",
            "id": 30,
            "name": "Special Page",
            "title": null,
            "content": null,
            "fund_direction": "any",
            "fund_id": 2,
            "split_fund_id": null,
            "split_fund_amount": null,
            "campaign_id": null,
            "appeal_id": null,
            "amount_type": "variable",
            "min_amount": 0,
            "amount_choices": null,
            "fixed_amount": 0,
            "status": "active",
            "thank_you_type": "default",
            "thank_you_message": null,
            "thank_you_url": null,
            "send_receipt_email": true,
            "enable_comment": true,
            "custom_css": null,
            "allow_recurring": true,
            "allow_cover_processing_fee": true,
            "payment_gateway_id": null,
            "added_at": "2014-02-20T00:47:28+00:00",
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all DonatePage objects.

HTTP Request

GET /donatepages

Parameters

None

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/donatepages/(donatepage)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donatepages/(donatepage)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donatepages/(donatepage)',
 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/donatepages/(donatepage)"), 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/donatepages/(donatepage)');
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": "donate_page",
    "id": 30,
    "name": "Special Page",
    "title": null,
    "content": null,
    "fund_direction": "any",
    "fund_id": 2,
    "split_fund_id": null,
    "split_fund_amount": null,
    "campaign_id": null,
    "appeal_id": null,
    "amount_type": "variable",
    "min_amount": 0,
    "amount_choices": null,
    "fixed_amount": 0,
    "status": "active",
    "thank_you_type": "default",
    "thank_you_message": null,
    "thank_you_url": null,
    "send_receipt_email": true,
    "enable_comment": true,
    "custom_css": null,
    "allow_recurring": true,
    "allow_cover_processing_fee": true,
    "payment_gateway_id": null,
    "added_at": "2014-02-20T00:47:28+00:00",
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific DonatePage object.

HTTP Request

GET /donatepages/(donatepage)

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:

Donation

The Donation object

The Donation object looks like this in JSON:

{
    "object": "donation",
    "id": 6,
    "transaction_id": 200,
    "number": 43,
    "canadian_donation_receipt_id": null,
    "payment_method": "credit_card",
    "payment_reference": null,
    "online": true,
    "online_payment_id": null,
    "recurring": false,
    "donor_id": null,
    "first_name": "Bonny",
    "last_name": "McMurry",
    "initial_organization_name": null,
    "phone_number": "444-7777",
    "email_address": "bonny551@hotmail.co",
    "donor_comment": null,
    "staff_comment": null,
    "gift_in_kind_description": null,
    "acknowledged_at": null,
    "acknowledged_by_id": null,
    "secret": "16b97ef909e2f05dd1f16a3c2b0b8b6a",
    "amount": 100,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "donate_page_id": null,
    "campaign_id": null,
    "appeal_id": null,
    "recurring_money_transfer_id": null,
    "refunded_by_transaction_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
transaction_id Yes int
number No int
canadian_donation_receipt_id No int
payment_method No enum (cash, check, credit_card, ach, money_order, gift_in_kind, other, external)
payment_reference No text (300)
online No --
online_payment_id No int
recurring No --
donor_id No int
first_name No text (100)
last_name No text (100)
initial_organization_name No --
phone_number No text (100)
email_address No text (100)
donor_comment No text
staff_comment No text
gift_in_kind_description No text
acknowledged_at No datetime
acknowledged_by_id No int
secret No text (200)
amount Yes decimal
currency No text (3)
exchange_rate No decimal
home_currency_amount Yes decimal
donate_page_id No int
campaign_id No int
appeal_id No int
recurring_money_transfer_id No int
refunded_by_transaction_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"posted_date","value":{"type":"RANGE","start":"2021-01-01","end":"2022-03-17"},"positive":1},{"name":"amount","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donations',
 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/donations"), 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/donations');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "donation",
            "id": 7,
            "transaction_id": 13,
            "number": 44,
            "canadian_donation_receipt_id": null,
            "payment_method": "credit_card",
            "payment_reference": null,
            "online": true,
            "online_payment_id": null,
            "recurring": false,
            "donor_id": null,
            "first_name": "Bobby",
            "last_name": "Hilton",
            "initial_organization_name": null,
            "phone_number": "444-7777",
            "email_address": "bobby662@yahoo.co",
            "donor_comment": null,
            "staff_comment": null,
            "gift_in_kind_description": null,
            "acknowledged_at": null,
            "acknowledged_by_id": null,
            "secret": "16b97ef909e2f02dd1f16a3c2b0b8b6a",
            "amount": 100,
            "currency": "USD",
            "exchange_rate": null,
            "home_currency_amount": 100,
            "donate_page_id": null,
            "campaign_id": null,
            "appeal_id": null,
            "recurring_money_transfer_id": 2,
            "refunded_by_transaction_id": null,
            "report_data": {
                "posted_date": "2015-03-10",
                "posted_year": 2015,
                "added_at": "2015-03-10 19:33:11",
                "fund_names": "Building Fund",
                "fund_ids": "3",
                "fund_breakdown": "7:3:100.00",
                "acknowledged": null,
                "donor_name": "Bobby Hilton",
                "person_id": null,
                "person_firstname": null,
                "person_lastname": null,
                "person_deceased": 0,
                "contact_organization_id": null,
                "contact_org_name": null,
                "donor_model_type": null,
                "donor_model_id": null,
                "has_donor_model_id": 0,
                "assigned_to_id": null,
                "donor_primary_address_id": null,
                "donor_street": null,
                "donor_city": null,
                "donor_state": null,
                "donor_zip": null,
                "donor_country": null,
                "num_soft_credits": 0,
                "export_helper_donation_id": 7,
                "row_id": 7
            }
        }
    ],
    "sandbox": true
}

Retrieves all Donation objects that match given filter conditions.

HTTP Request

GET /donations

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
posted_date date
tax_year integer
donation_number integer
donor_name text
address_city text
address_state state
address_zip text
address_country country
donor_type choice
acknowledged bool
online_donation bool
online_donation_page object id
recurring_donation bool
campaign object id
appeal object id
fund object id
linked_to_donor bool
num_soft_credits integer
payment_method enum
amount decimal
donor_representative object id
donor_is_deceased bool
refunded bool
tag tag
donor_comment text
staff_comment text
custom_field custom

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/donations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "payment_method": "credit_card",
    "amount": 40,
    "funds": "{\"3\":40}",
    "deposit_into_account_id": "56",
    "posted_date": "2023-12-31",
    "person_id": "344",
    "organization_id": "48"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/donations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :payment_method => 'credit_card',
  :amount => 40,
  :funds => {"3":40},
  :deposit_into_account_id => '56'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/donations',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'payment_method': 'credit_card',
  'amount': 40,
  'funds': {"3":40},
  'deposit_into_account_id': '56'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/donations"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  payment_method = "credit_card",
  amount = 40,
  funds = {"3":40},
  deposit_into_account_id = "56"
});
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/donations');
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([
  'payment_method' => 'credit_card',
  'amount' => 40,
  'funds' => {"3":40},
  'deposit_into_account_id' => '56'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "donation",
    "id": 21,
    "transaction_id": 101,
    "number": 1,
    "canadian_donation_receipt_id": null,
    "payment_method": "credit_card",
    "payment_reference": null,
    "online": false,
    "online_payment_id": null,
    "recurring": false,
    "donor_id": null,
    "first_name": null,
    "last_name": null,
    "initial_organization_name": null,
    "phone_number": null,
    "email_address": null,
    "donor_comment": null,
    "staff_comment": null,
    "gift_in_kind_description": null,
    "acknowledged_at": null,
    "acknowledged_by_id": null,
    "secret": "e4d59d06dab535970f04c0f958eec176",
    "amount": 40,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 40,
    "donate_page_id": null,
    "campaign_id": null,
    "appeal_id": null,
    "recurring_money_transfer_id": null,
    "refunded_by_transaction_id": null,
    "donor": null,
    "funds": [
        {
            "object": "donation_fund",
            "id": 8,
            "donation_id": 21,
            "fund_id": 3,
            "amount": 40,
            "home_currency_amount": 40
        }
    ],
    "sandbox": true
}

Creates a new Donation object.

HTTP Request

POST /donations

Parameters

Name Required Data Type Description
payment_method Yes enum (cash, check, credit_card, ach, money_order, gift_in_kind, other, external)
amount Yes decimal
funds Yes collection of fund_ids and amounts
deposit_into_account_id Yes int
org_name No text (100)
campaign_id No int
appeal_id No int
staff_comment No text
gift_in_kind_description No text
payment_reference No text (300)
posted_date No date
currency No text (3)
exchange_rate No decimal
person_id No int
organization_id No int

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/donations/(donation)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donations/(donation)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donations/(donation)',
 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/donations/(donation)"), 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/donations/(donation)');
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": "donation",
    "id": 6,
    "transaction_id": 200,
    "number": 43,
    "canadian_donation_receipt_id": null,
    "payment_method": "credit_card",
    "payment_reference": null,
    "online": true,
    "online_payment_id": null,
    "recurring": false,
    "donor_id": null,
    "first_name": "Bonny",
    "last_name": "McMurry",
    "initial_organization_name": null,
    "phone_number": "444-7777",
    "email_address": "bonny551@hotmail.co",
    "donor_comment": null,
    "staff_comment": null,
    "gift_in_kind_description": null,
    "acknowledged_at": null,
    "acknowledged_by_id": null,
    "secret": "16b97ef909e2f05dd1f16a3c2b0b8b6a",
    "amount": 100,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "donate_page_id": null,
    "campaign_id": null,
    "appeal_id": null,
    "recurring_money_transfer_id": null,
    "refunded_by_transaction_id": null,
    "sandbox": true
}

Retrieves a specific Donation object.

HTTP Request

GET /donations/(donation)

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations/(donation)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/donations/(donation)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/donations/(donation)',
 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/donations/(donation)"), 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/donations/(donation)');
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": "donation",
    "id": 6,
    "transaction_id": 200,
    "number": 43,
    "canadian_donation_receipt_id": null,
    "payment_method": "credit_card",
    "payment_reference": null,
    "online": true,
    "online_payment_id": null,
    "recurring": false,
    "donor_id": null,
    "first_name": "Bonny",
    "last_name": "McMurry",
    "initial_organization_name": null,
    "phone_number": "444-7777",
    "email_address": "bonny551@hotmail.co",
    "donor_comment": null,
    "staff_comment": null,
    "gift_in_kind_description": null,
    "acknowledged_at": null,
    "acknowledged_by_id": null,
    "secret": "16b97ef909e2f05dd1f16a3c2b0b8b6a",
    "amount": 100,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "donate_page_id": null,
    "campaign_id": null,
    "appeal_id": null,
    "recurring_money_transfer_id": null,
    "refunded_by_transaction_id": null,
    "sandbox": true
}

Updates an existing Donation object.

HTTP Request

PUT /donations/(donation)

Parameters

Name Required Data Type Description
campaign_id No int
appeal_id No int
staff_comment No text
acknowledged_at No datetime
acknowledged_by No int

Permissions

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

Example code to call this method:

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

Example response:

{
    "object": "donation",
    "id": 6,
    "transaction_id": 200,
    "number": 43,
    "canadian_donation_receipt_id": null,
    "payment_method": "credit_card",
    "payment_reference": null,
    "online": true,
    "online_payment_id": null,
    "recurring": false,
    "donor_id": null,
    "first_name": "Bonny",
    "last_name": "McMurry",
    "initial_organization_name": null,
    "phone_number": "444-7777",
    "email_address": "bonny551@hotmail.co",
    "donor_comment": null,
    "staff_comment": null,
    "gift_in_kind_description": null,
    "acknowledged_at": null,
    "acknowledged_by_id": null,
    "secret": "16b97ef909e2f05dd1f16a3c2b0b8b6a",
    "amount": 100,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "donate_page_id": null,
    "campaign_id": null,
    "appeal_id": null,
    "recurring_money_transfer_id": null,
    "refunded_by_transaction_id": null,
    "donor": null,
    "soft_credits": [],
    "sandbox": true
}

HTTP Request

GET /donations/(donation)/link_to_owner

Parameters

Name Required Data Type Description
owner_type Yes enum person OR contact_org
owner_id Yes int
soft_credit No bool

Permissions

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations/(donation)/unlink_donor" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donations/(donation)/unlink_donor',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donations/(donation)/unlink_donor',
 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/donations/(donation)/unlink_donor"), 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/donations/(donation)/unlink_donor');
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": "donation",
    "id": 6,
    "transaction_id": 200,
    "number": 43,
    "canadian_donation_receipt_id": null,
    "payment_method": "credit_card",
    "payment_reference": null,
    "online": true,
    "online_payment_id": null,
    "recurring": false,
    "donor_id": null,
    "first_name": "Bonny",
    "last_name": "McMurry",
    "initial_organization_name": null,
    "phone_number": "444-7777",
    "email_address": "bonny551@hotmail.co",
    "donor_comment": null,
    "staff_comment": null,
    "gift_in_kind_description": null,
    "acknowledged_at": null,
    "acknowledged_by_id": null,
    "secret": "16b97ef909e2f05dd1f16a3c2b0b8b6a",
    "amount": 100,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "donate_page_id": null,
    "campaign_id": null,
    "appeal_id": null,
    "recurring_money_transfer_id": null,
    "refunded_by_transaction_id": null,
    "sandbox": true
}

HTTP Request

GET /donations/(donation)/unlink_donor

Parameters

None

Permissions

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

Example code to call this method:

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

Example response:

{
    "object": "donation",
    "id": 6,
    "transaction_id": 200,
    "number": 43,
    "canadian_donation_receipt_id": null,
    "payment_method": "credit_card",
    "payment_reference": null,
    "online": true,
    "online_payment_id": null,
    "recurring": false,
    "donor_id": null,
    "first_name": "Bonny",
    "last_name": "McMurry",
    "initial_organization_name": null,
    "phone_number": "444-7777",
    "email_address": "bonny551@hotmail.co",
    "donor_comment": null,
    "staff_comment": null,
    "gift_in_kind_description": null,
    "acknowledged_at": null,
    "acknowledged_by_id": null,
    "secret": "16b97ef909e2f05dd1f16a3c2b0b8b6a",
    "amount": 100,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "donate_page_id": null,
    "campaign_id": null,
    "appeal_id": null,
    "recurring_money_transfer_id": null,
    "refunded_by_transaction_id": null,
    "soft_credits": [],
    "sandbox": true
}

HTTP Request

GET /donations/(donation)/unlink_soft_credit

Parameters

Name Required Data Type Description
donor_id Yes int

Permissions

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

recurring

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donations/recurring" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"amount","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donations/recurring',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donations/recurring',
 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/donations/recurring"), 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/donations/recurring');
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": "recurring_money_transfer",
            "id": 2,
            "type": "donation",
            "donor_id": 1,
            "student_id": null,
            "payer_type": null,
            "payer_id": null,
            "payment_plan_student_id": null,
            "treat_as_aid": false,
            "pay_beyond_balance": false,
            "payment_method": "credit_card",
            "gateway_token_provider": "stripe",
            "payment_gateway_id": null,
            "gateway_customer_token": "cus_MLxeHuvTzFyb2N",
            "gateway_source_token": "card_1Ld0FNGz1v34x3yFuC2B0L72",
            "start_date": "2022-08-31",
            "end_date": null,
            "last_charged_on": "2022-09-16",
            "last_attempt_at": null,
            "last_attempt_by_id": null,
            "interval": "1_month",
            "day": true,
            "max_additional_times": null,
            "total_times_charged": 2,
            "amount": 90,
            "currency": "USD",
            "secret": "bfb9d17fa8a24e02f864b12f5a732177",
            "first_name": "Donny",
            "last_name": "McDonor",
            "org_name": null,
            "email_address": "donnyd@yahoo.co",
            "phone_number": "123-123-1234",
            "street": "123 Street",
            "city": "Moscow",
            "state": "ID",
            "postal": "83843",
            "country": "US",
            "last_digits": "4242",
            "card_bin": null,
            "card_is_international": false,
            "bank_name": null,
            "donation_campaign_id": 1,
            "donation_appeal_id": null,
            "donation_donate_page_id": null,
            "donation_fund_id": 3,
            "donation_split_fund_id": null,
            "donation_split_fund_amount": 0,
            "donation_staff_comment": "virtual terminal recurring test",
            "status": "active",
            "status_date": "2022-09-16",
            "problem_message": null,
            "cancel_type": null,
            "times_left": null,
            "fund_names": "Building Fund",
            "donate_page_name": null,
            "fund_ids": "|3|",
            "donor_name": "Donny McDonor",
            "donor_model_type": null,
            "donor_model_id": null,
            "donor_street": null,
            "donor_city": null,
            "donor_state": null,
            "donor_zip": null,
            "donor_country": null,
            "campaign_name_cached": null,
            "appeal_name_cached": null,
            "assigned_to_id": null,
            "donor_representative": null,
            "person_first_name": null,
            "person_last_name": null,
            "contact_org_name": null,
            "added_at": "2022-08-31T23:23:05+00:00",
            "added_by_id": 10,
            "updated_at": "2022-09-16T21:10:53+00:00",
            "updated_by_id": 10
        }
    ],
    "sandbox": true
}

HTTP Request

GET /donations/recurring

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
start_date date
end_date date
scheduled_to_end choice
last_charged_on date
day integer
donor_name text
donor_type choice
online_donation_page object id
campaign object id
appeal object id
fund object id
donor_representative object id
linked_to_donor bool
payment_method enum
times_charged integer
times_left integer
amount decimal
status enum
tag tag
custom_field custom

Permissions

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

Donor

The Donor object

The Donor object looks like this in JSON:

{
    "object": "donor",
    "id": 14,
    "model_type": "person",
    "model_id": 1747,
    "assigned_to_id": null,
    "status": "active",
    "has_donations": true,
    "import_id": null,
    "added_at": "2020-02-11T17:29:44+00:00",
    "added_by_id": 1257,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
model_type No enum (person, contact_org)
model_id No int
assigned_to_id No int
status Yes enum (none, potential, active, inactive)
has_donations Yes bool
import_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/donors" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"num_donations","value":{"type":"RANGE","start":"1","end":"9"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donors',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donors',
 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/donors"), 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/donors');
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": 0,
    "results": 0,
    "results_per_page": 200,
    "pages": 0,
    "page": 0,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Retrieves all Donor objects that match given filter conditions.

HTTP Request

GET /donors

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
donation_posted_date date
tax_year integer
name text
address_city text
address_state state
address_zip text
address_country country
email text
phone text
model_type choice
status enum
is_deceased bool
assigned_representative object id
has_ever_donated bool
largest_donation decimal
num_donations integer
num_soft_credits integer
has_donation_from_campaign object id
has_donation_from_appeal object id
has_donation_to_fund object id
donation_amount decimal
soft_credit_amount decimal
donation_amount_including_soft_credits decimal
donation_posted_date_set_2 date
num_donations_set_2 integer
amount_set_2 decimal
campaign_set_2 object id
appeal_set_2 object id
fund_set_2 object id
set_amount_comparison donors_amounts_comparison
tag tag
custom_field custom

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/donors/(donor)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/donors/(donor)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/donors/(donor)',
 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/donors/(donor)"), 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/donors/(donor)');
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": "donor",
    "id": 14,
    "model_type": "person",
    "model_id": 1747,
    "assigned_to_id": null,
    "status": "active",
    "has_donations": true,
    "import_id": null,
    "added_at": "2020-02-11T17:29:44+00:00",
    "added_by_id": 1257,
    "sandbox": true
}

Retrieves a specific Donor object.

HTTP Request

GET /donors/(donor)

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:

EducationLevel

The EducationLevel object

The EducationLevel object looks like this in JSON:

{
    "object": "education_level",
    "id": 1,
    "name": "Less Than 9th Grade",
    "abbrv": "9TH",
    "order_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (100)
abbrv Yes char
order_id Yes int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/educationlevels" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/educationlevels',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/educationlevels',
 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/educationlevels"), 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/educationlevels');
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": 8,
    "results": 8,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "education_level",
            "id": 1,
            "name": "Less Than 9th Grade",
            "abbrv": "9TH",
            "order_id": 1
        }
    ],
    "sandbox": true
}

Retrieves all EducationLevel objects.

HTTP Request

GET /educationlevels

Parameters

None

Permissions

Any role may call this method.

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/educationlevels/(educationlevel)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/educationlevels/(educationlevel)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/educationlevels/(educationlevel)',
 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/educationlevels/(educationlevel)"), 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/educationlevels/(educationlevel)');
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": "education_level",
    "id": 1,
    "name": "Less Than 9th Grade",
    "abbrv": "9TH",
    "order_id": 1,
    "sandbox": true
}

Retrieves a specific EducationLevel object.

HTTP Request

GET /educationlevels/(educationlevel)

Parameters

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

Permissions

Any role may call this method.

EmailAddress

The EmailAddress object

The EmailAddress object looks like this in JSON:

{
    "object": "email_address",
    "id": 1,
    "email": "testaddress@nowhere.com",
    "owner_type": "person",
    "owner_id": 1,
    "type": "home",
    "primary": false,
    "old": false,
    "system": false,
    "public": true,
    "synced_from": null,
    "delivery_problem": null,
    "delivery_problem_at": null,
    "delivery_problem_info": null,
    "verified_at": null,
    "unsubscribed_at": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
email Yes text (255)
owner_type Yes enum (person, organization, inquiry, application)
owner_id Yes int
type Yes enum (home, work, other, school)
primary Yes bool
old Yes bool
system Yes bool
public Yes bool
synced_from Yes int
delivery_problem No enum (bounce, spam_report)
delivery_problem_at No datetime
delivery_problem_info No text (500)
verified_at No datetime
unsubscribed_at No --
import_id No int
added_at No datetime
added_by_id No int
sandbox No --

resubscribe

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/emailaddresses/resubscribe" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "email": "coreycoors@yahoo.com"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/emailaddresses/resubscribe',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :email => 'coreycoors@yahoo.com'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/emailaddresses/resubscribe',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'email': 'coreycoors@yahoo.com'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/emailaddresses/resubscribe"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  email = "coreycoors@yahoo.com"
});
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/emailaddresses/resubscribe');
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([
  'email' => 'coreycoors@yahoo.com'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "email",
    "email": "coreycoors@yahoo.com",
    "action": "resubscribed"
}

HTTP Request

POST /emailaddresses/resubscribe

Parameters

Name Required Data Type Description
email Yes text (255)

Permissions

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

unsubscribe

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "email": "billyblanton@yahoo.com"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :email => 'billyblanton@yahoo.com'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'email': 'billyblanton@yahoo.com'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  email = "billyblanton@yahoo.com"
});
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/emailaddresses/unsubscribe');
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([
  'email' => 'billyblanton@yahoo.com'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "email",
    "email": "billyblanton@yahoo.com",
    "action": "unsubscribed"
}

HTTP Request

POST /emailaddresses/unsubscribe

Parameters

Name Required Data Type Description
email Yes text (255)

Permissions

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

index (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses',
 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/organizations/(organization)/emailaddresses"), 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/organizations/(organization)/emailaddresses');
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": "email_address",
            "id": 6,
            "email": "supercool@nowhere.co",
            "owner_type": "organization",
            "owner_id": 1,
            "type": "work",
            "primary": true,
            "old": false,
            "system": false,
            "public": true,
            "synced_from": null,
            "delivery_problem": null,
            "delivery_problem_at": null,
            "delivery_problem_info": null,
            "verified_at": null,
            "unsubscribed_at": null,
            "import_id": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all EmailAddress objects tied to a specific Organization.

HTTP Request

GET /organizations/(organization)/emailaddresses

Parameters

None

Permissions

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

create (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "email": "bsmith22@somewhere.net",
    "type": "work"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :email => 'bsmith22@somewhere.net',
  :type => 'work'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'email': 'bsmith22@somewhere.net',
  'type': 'work'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  email = "bsmith22@somewhere.net",
  type = "work"
});
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/organizations/(organization)/emailaddresses');
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([
  'email' => 'bsmith22@somewhere.net',
  'type' => 'work'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "email_address",
    "id": 32,
    "email": "bsmith22@somewhere.net",
    "owner_type": "organization",
    "owner_id": 1,
    "type": "work",
    "primary": false,
    "old": false,
    "system": false,
    "public": false,
    "synced_from": null,
    "delivery_problem": null,
    "delivery_problem_at": null,
    "delivery_problem_info": null,
    "verified_at": null,
    "unsubscribed_at": null,
    "import_id": null,
    "added_at": "2025-04-14T23:32:15+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new EmailAddress object.

HTTP Request

POST /organizations/(organization)/emailaddresses

Parameters

Name Required Data Type Description
email Yes text (255)
type Yes enum (home, work, other, school)

Permissions

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

show (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
 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/organizations/(organization)/emailaddresses/(emailaddress)"), 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/organizations/(organization)/emailaddresses/(emailaddress)');
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": "email_address",
    "id": 6,
    "email": "supercool@nowhere.co",
    "owner_type": "organization",
    "owner_id": 1,
    "type": "work",
    "primary": true,
    "old": false,
    "system": false,
    "public": true,
    "synced_from": null,
    "delivery_problem": null,
    "delivery_problem_at": null,
    "delivery_problem_info": null,
    "verified_at": null,
    "unsubscribed_at": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific EmailAddress object.

HTTP Request

GET /organizations/(organization)/emailaddresses/(emailaddress)

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 (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
 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/organizations/(organization)/emailaddresses/(emailaddress)"), 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/organizations/(organization)/emailaddresses/(emailaddress)');
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": "email_address",
    "id": 6,
    "email": "supercool@nowhere.co",
    "owner_type": "organization",
    "owner_id": 1,
    "type": "work",
    "primary": true,
    "old": false,
    "system": false,
    "public": true,
    "synced_from": null,
    "delivery_problem": null,
    "delivery_problem_at": null,
    "delivery_problem_info": null,
    "verified_at": null,
    "unsubscribed_at": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates an existing EmailAddress object.

HTTP Request

PUT /organizations/(organization)/emailaddresses/(emailaddress)

Parameters

Name Required Data Type Description
email No text (255)
type No enum (home, work, other, school)
is_primary No bool
old No bool
public No bool

Permissions

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

delete (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
 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/organizations/(organization)/emailaddresses/(emailaddress)"), 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/organizations/(organization)/emailaddresses/(emailaddress)');
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": "email_address",
    "id": 6,
    "deleted": true
}

Deletes an existing EmailAddress object.

HTTP Request

DELETE /organizations/(organization)/emailaddresses/(emailaddress)

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:

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses" \
-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)/emailaddresses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses',
 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)/emailaddresses"), 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)/emailaddresses');
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": "email_address",
            "id": 17,
            "email": "icecream@nowhere.co",
            "owner_type": "person",
            "owner_id": 12,
            "type": "home",
            "primary": true,
            "old": false,
            "system": false,
            "public": true,
            "synced_from": null,
            "delivery_problem": null,
            "delivery_problem_at": null,
            "delivery_problem_info": null,
            "verified_at": null,
            "unsubscribed_at": null,
            "import_id": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all EmailAddress objects tied to a specific Person.

HTTP Request

GET /people/(person)/emailaddresses

Parameters

None

Permissions

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

create (person)

Example code to call this method:

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

Example response:

{
    "object": "email_address",
    "id": 33,
    "email": "memelord19@hotmail.com",
    "owner_type": "person",
    "owner_id": 12,
    "type": "home",
    "primary": false,
    "old": false,
    "system": false,
    "public": false,
    "synced_from": null,
    "delivery_problem": null,
    "delivery_problem_at": null,
    "delivery_problem_info": null,
    "verified_at": null,
    "unsubscribed_at": null,
    "import_id": null,
    "added_at": "2025-04-14T23:32:17+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new EmailAddress object.

HTTP Request

POST /people/(person)/emailaddresses

Parameters

Name Required Data Type Description
email Yes text (255)
type Yes enum (home, work, other, school)

Permissions

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

show (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)" \
-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)/emailaddresses/(emailaddress)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)',
 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)/emailaddresses/(emailaddress)"), 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)/emailaddresses/(emailaddress)');
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": "email_address",
    "id": 16,
    "email": "football@nowhere.co",
    "owner_type": "person",
    "owner_id": 16,
    "type": "home",
    "primary": true,
    "old": false,
    "system": false,
    "public": true,
    "synced_from": null,
    "delivery_problem": null,
    "delivery_problem_at": null,
    "delivery_problem_info": null,
    "verified_at": null,
    "unsubscribed_at": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific EmailAddress object.

HTTP Request

GET /people/(person)/emailaddresses/(emailaddress)

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 (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)" \
-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)/emailaddresses/(emailaddress)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)',
 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)/emailaddresses/(emailaddress)"), 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)/emailaddresses/(emailaddress)');
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": "email_address",
    "id": 16,
    "email": "football@nowhere.co",
    "owner_type": "person",
    "owner_id": 16,
    "type": "home",
    "primary": true,
    "old": false,
    "system": false,
    "public": true,
    "synced_from": null,
    "delivery_problem": null,
    "delivery_problem_at": null,
    "delivery_problem_info": null,
    "verified_at": null,
    "unsubscribed_at": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates an existing EmailAddress object.

HTTP Request

PUT /people/(person)/emailaddresses/(emailaddress)

Parameters

Name Required Data Type Description
email No text (255)
type No enum (home, work, other, school)
is_primary No bool
old No bool
public No bool

Permissions

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

delete (person)

Example code to call this method:

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

Deletes an existing EmailAddress object.

HTTP Request

DELETE /people/(person)/emailaddresses/(emailaddress)

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:

EmailTemplate

The EmailTemplate object

The EmailTemplate object looks like this in JSON:

{
    "object": "email_template",
    "id": 7,
    "modified_by_id": 1,
    "name": "Overdue Invoices",
    "body": "Dear {!RECIPIENT_FIRSTNAME!},<br \/><br \/>\nYou have overdue invoices. Please log in to Populi to view your invoiced charges and pay them now.",
    "reply_to": null,
    "cc": null,
    "bcc": null,
    "subject": "Overdue Invoices",
    "added_at": "2009-01-14T23:12:01+00:00",
    "added_by_id": 1,
    "updated_at": "2020-04-21T00:37:40+00:00",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
modified_by_id No int
name No text
body Yes text
reply_to Yes text
cc No text
bcc No text
subject Yes text
added_at Yes datetime
added_by_id No int
updated_at No --
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/emailtemplates" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/emailtemplates',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/emailtemplates',
 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/emailtemplates"), 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/emailtemplates');
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": "email_template",
            "id": 7,
            "modified_by_id": 1,
            "name": "Overdue Invoices",
            "body": "Dear {!RECIPIENT_FIRSTNAME!},<br \/><br \/>\nYou have overdue invoices. Please log in to Populi to view your invoiced charges and pay them now.",
            "reply_to": null,
            "cc": null,
            "bcc": null,
            "subject": "Overdue Invoices",
            "added_at": "2009-01-14T23:12:01+00:00",
            "added_by_id": 1,
            "updated_at": "2020-04-21T00:37:40+00:00"
        }
    ],
    "sandbox": true
}

Retrieves all EmailTemplate objects.

HTTP Request

GET /emailtemplates

Parameters

None

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/emailtemplates/(emailtemplate)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/emailtemplates/(emailtemplate)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/emailtemplates/(emailtemplate)',
 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/emailtemplates/(emailtemplate)"), 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/emailtemplates/(emailtemplate)');
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": "email_template",
    "id": 7,
    "modified_by_id": 1,
    "name": "Overdue Invoices",
    "body": "Dear {!RECIPIENT_FIRSTNAME!},<br \/><br \/>\nYou have overdue invoices. Please log in to Populi to view your invoiced charges and pay them now.",
    "reply_to": null,
    "cc": null,
    "bcc": null,
    "subject": "Overdue Invoices",
    "files": [],
    "added_at": "2009-01-14T23:12:01+00:00",
    "added_by_id": 1,
    "updated_at": "2020-04-21T00:37:40+00:00",
    "sandbox": true
}

Retrieves a specific EmailTemplate object.

HTTP Request

GET /emailtemplates/(emailtemplate)

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:

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 --

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": "2025-04-14T23:32:13+00:00",
            "display_status": "Enrolled"
        }
    ],
    "sandbox": true
}

Retrieves all Enrollment objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/students

Parameters

None

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": "2025-04-14T23:32:13+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": "2025-04-14T16:32:13+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": "2025-04-14T16:32:20+00:00",
    "delivery_method_id": null,
    "automatically_removed_at": null,
    "automatically_removed_from": null,
    "added_at": null,
    "added_by_id": null,
    "updated_at": "2025-04-14T16:32:20+00:00",
    "display_status": "Enrolled",
    "sandbox": true
}

HTTP Request

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

Parameters

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

Permissions

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

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": "",
            "prefix": null,
            "suffix": null,
            "preferred_name": null,
            "display_name": "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": "2025-04-14T23:32:18+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",
                "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
student search
program program
academic_term academic_term
transcript_term academic_term
billing_term academic_term
course search
status course_student_status
include_dropped_students bool
include_deleted_students bool
include_waitlisted_students bool
grade decimal
letter text
added_at datetime
updated_at datetime
academic_year academic_year
catalog_course search
course_department object id
course_section alphanumeric
course_delivery_method object id
course_affects_standing bool
course_faculty faculty
course_campus campus
has_active_student_role has_active_student_role
students_campus campus
standing academicstanding
degree_seeking bool
degree_level choice
degree degree
specialization specialization
first_time bool
full_time bool
finalized bool
finalized_at datetime
enrolled_by search
enrollment_date date
status_date date
term_start_date date
term_end_date date
course_start_date date
course_end_date date
credits decimal
hours decimal
pass_fail bool
final_attendance decimal
last_attendance datetime
course_has_been_retaken bool
advisor advisor
automatically_removed_at datetime
automatically_removed_from enum
age integer
gender gender
race_ethnicity base_object id
tag tag
custom_field custom
pay_period_start_date date
pay_period_end_date date

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": 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": "2025-04-14T23:32:13+00:00",
    "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": 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": "2025-04-14T23:32:13+00:00",
    "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:

EnrollmentAgreement

The EnrollmentAgreement object

The EnrollmentAgreement object looks like this in JSON:

{
    "object": "enrollment_agreement",
    "id": 1,
    "student_id": 1,
    "academic_term_id": 1,
    "print_layout_id": 6,
    "signed": null,
    "file_id": null,
    "source": "uploaded_manually",
    "amount": 1456.5,
    "user_ip": null,
    "status": "signed",
    "status_at": "2020-05-06T23:45:33+00:00",
    "notify_student": true,
    "added_at": "2020-05-06T23:45:33+00:00",
    "added_by_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id Yes int
academic_term_id Yes int
print_layout_id No int
signed Yes int
file_id No int
source Yes enum (uploaded_manually, generated_manually, generated_in_bulk, generated_automatically, signed_during_registration, signed_manually, temporary)
amount No decimal
user_ip No text (75)
status Yes enum (pending, generating, generated, signing, signed, error, deleted)
status_at No datetime
notify_student Yes bool
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/enrollmentagreements" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"academic_term","value":1,"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/enrollmentagreements',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/enrollmentagreements',
 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/enrollmentagreements"), 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/enrollmentagreements');
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": 0,
    "results": 0,
    "results_per_page": 200,
    "pages": 0,
    "page": 0,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Retrieves all EnrollmentAgreement objects that match given filter conditions.

HTTP Request

GET /enrollmentagreements

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
student text
student_role_status choice
academic_term academic_term
added_on datetime
source choice
amount decimal
signed bool
tag tag
custom_field custom

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/enrollmentagreements/(enrollmentagreement)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/enrollmentagreements/(enrollmentagreement)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/enrollmentagreements/(enrollmentagreement)',
 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/enrollmentagreements/(enrollmentagreement)"), 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/enrollmentagreements/(enrollmentagreement)');
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_agreement",
    "id": 1,
    "student_id": 1,
    "academic_term_id": 1,
    "print_layout_id": 6,
    "signed": null,
    "file_id": null,
    "source": "uploaded_manually",
    "amount": 1456.5,
    "user_ip": null,
    "status": "signed",
    "status_at": "2020-05-06T23:45:33+00:00",
    "notify_student": true,
    "added_at": "2020-05-06T23:45:33+00:00",
    "added_by_id": 1,
    "sandbox": true
}

Retrieves a specific EnrollmentAgreement object.

HTTP Request

GET /enrollmentagreements/(enrollmentagreement)

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:

ExitReason

The ExitReason object

The ExitReason object looks like this in JSON:

{
    "object": "exit_reason",
    "id": 7,
    "name": "Medical Leave",
    "retention": false,
    "abbrv": "MEDICAL",
    "report_as": null,
    "retired_by_id": null,
    "retired_at": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (256)
retention Yes bool
abbrv No text (45)
report_as No int
retired_by_id No int
retired_at No datetime
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/exitreasons" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/exitreasons',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/exitreasons',
 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/exitreasons"), 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/exitreasons');
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": "exit_reason",
            "id": 7,
            "name": "Medical Leave",
            "retention": false,
            "abbrv": "MEDICAL",
            "report_as": null,
            "retired_by_id": null,
            "retired_at": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all ExitReason objects.

HTTP Request

GET /exitreasons

Parameters

None

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/exitreasons/(exitreason)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/exitreasons/(exitreason)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/exitreasons/(exitreason)',
 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/exitreasons/(exitreason)"), 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/exitreasons/(exitreason)');
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": "exit_reason",
    "id": 7,
    "name": "Medical Leave",
    "retention": false,
    "abbrv": "MEDICAL",
    "report_as": null,
    "retired_by_id": null,
    "retired_at": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific ExitReason object.

HTTP Request

GET /exitreasons/(exitreason)

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:

Fee

The Fee object

The Fee object looks like this in JSON:

{
    "object": "fee",
    "id": 10,
    "name": "Important Textbook",
    "description": null,
    "type": "flat",
    "amount": 1000,
    "max_amount": 20,
    "allow_zero": false,
    "refundable": false,
    "condition": "and",
    "finaid_applies": true,
    "status": "active",
    "external_accountid": 0,
    "account_id": 1,
    "fee_class": "fee",
    "report_on_1098t": true,
    "report_on_t2202a": true,
    "campus_life_permission": false,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (50)
description Yes text (500)
type Yes enum (flat, per_credit, per_hour, per_course, per_clinical_hour)
amount Yes decimal
max_amount Yes decimal
allow_zero Yes bool
refundable Yes bool
condition Yes enum (and, or)
finaid_applies Yes bool
status Yes enum (construction, active, retired, deleted)
external_accountid Yes int
account_id Yes int
fee_class Yes enum (fee, deposit, payment_plan)
report_on_1098t Yes bool
report_on_t2202a Yes bool
campus_life_permission Yes bool
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/fees" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/fees',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/fees',
 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/fees"), 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/fees');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "fee",
            "id": 10,
            "name": "Important Textbook",
            "description": null,
            "type": "flat",
            "amount": 1000,
            "max_amount": 20,
            "allow_zero": false,
            "refundable": false,
            "condition": "and",
            "finaid_applies": true,
            "status": "active",
            "external_accountid": 0,
            "account_id": 1,
            "fee_class": "fee",
            "report_on_1098t": true,
            "report_on_t2202a": true,
            "campus_life_permission": false,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all Fee objects.

HTTP Request

GET /fees

Parameters

None

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/fees/(fee)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/fees/(fee)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/fees/(fee)',
 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/fees/(fee)"), 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/fees/(fee)');
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": "fee",
    "id": 10,
    "name": "Important Textbook",
    "description": null,
    "type": "flat",
    "amount": 1000,
    "max_amount": 20,
    "allow_zero": false,
    "refundable": false,
    "condition": "and",
    "finaid_applies": true,
    "status": "active",
    "external_accountid": 0,
    "account_id": 1,
    "fee_class": "fee",
    "report_on_1098t": true,
    "report_on_t2202a": true,
    "campus_life_permission": false,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific Fee object.

HTTP Request

GET /fees/(fee)

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:

File

The File object

The File object looks like this in JSON:

{
    "object": "file",
    "id": 1,
    "file_data_id": 2,
    "name": "profile1.jpg",
    "alt": null,
    "contenttype": null,
    "size": 16814,
    "added_to": 1,
    "filename": null,
    "status": "active",
    "trashed_by_id": null,
    "type": "PROFILE_PICTURE",
    "mime_type": "image\/jpeg",
    "media_type": null,
    "encoding_status": null,
    "added_at": "2022-08-01T23:19:44+00:00",
    "added_by_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
file_data_id Yes int
name Yes text (255)
alt No text (1000)
contenttype Yes text (255)
size Yes int
added_to Yes int
filename No text (255)
status Yes enum (uploading, active, deleted)
trashed_by_id No int
type No text
mime_type No text
media_type No text
encoding_status No text
added_at No datetime
added_by_id No int
sandbox No --

index (courseoffering)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/files" \
-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)/files',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/files',
 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)/files"), 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)/files');
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": "file",
            "id": 2,
            "file_data_id": 2,
            "name": "course_handouts.pdf",
            "alt": null,
            "contenttype": null,
            "size": 16814,
            "added_to": 21908,
            "filename": null,
            "status": "active",
            "trashed_by_id": null,
            "type": "COURSE",
            "mime_type": "image\/jpeg",
            "media_type": null,
            "encoding_status": null,
            "added_at": "2022-08-01T23:19:44+00:00",
            "added_by_id": 1
        }
    ],
    "sandbox": true
}

Retrieves all File objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/files

Parameters

None

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)/files/(file)" \
-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)/files/(file)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/files/(file)',
 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)/files/(file)"), 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)/files/(file)');
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": "file",
    "id": 2,
    "file_data_id": 2,
    "name": "course_handouts.pdf",
    "alt": null,
    "contenttype": null,
    "size": 16814,
    "added_to": 21908,
    "filename": null,
    "status": "active",
    "trashed_by_id": null,
    "type": "COURSE",
    "mime_type": "image\/jpeg",
    "media_type": null,
    "encoding_status": null,
    "added_at": "2022-08-01T23:19:44+00:00",
    "added_by_id": 1,
    "sandbox": true
}

Retrieves a specific File object.

HTTP Request

GET /courseofferings/(courseoffering)/files/(file)

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:

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/files/(file)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/files/(file)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/files/(file)',
 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/files/(file)"), 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/files/(file)');
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": "file",
    "id": 1,
    "file_data_id": 2,
    "name": "profile1.jpg",
    "alt": null,
    "contenttype": null,
    "size": 16814,
    "added_to": 1,
    "filename": null,
    "status": "active",
    "trashed_by_id": null,
    "type": "PROFILE_PICTURE",
    "mime_type": "image\/jpeg",
    "media_type": null,
    "encoding_status": null,
    "added_at": "2022-08-01T23:19:44+00:00",
    "added_by_id": 1,
    "sandbox": true
}

Retrieves a specific File object.

HTTP Request

GET /files/(file)

Parameters

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

Expandable Properties

download

curl "https://yourschool.populiweb.com/api2/files/(file)/download" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/files/(file)/download',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/files/(file)/download',
 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/files/(file)/download"), 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/files/(file)/download');
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:

{}

HTTP Request

GET /files/(file)/download

Parameters

None

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/files/(file)/download_link" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/files/(file)/download_link',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/files/(file)/download_link',
 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/files/(file)/download_link"), 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/files/(file)/download_link');
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": "file",
    "id": 1,
    "name": "profile1.jpg",
    "download_link": "https:\/\/s3.amazonaws.com\/dev.populi.co\/d069f5039d2e80a4edda7b6ba44a034f.jpg?AWSAccessKeyId=AKIAJGVEOZ7CAMYX2QDQ&Expires=1744674610&response-content-disposition=inline;%20filename=%22profile1.jpg%22&Signature=XKLVDVHmJFcSnVvu31TAFCS%2Btw4%3D"
}

HTTP Request

GET /files/(file)/download_link

Parameters

None

FinancialTransaction

The FinancialTransaction object

The FinancialTransaction object looks like this in JSON:

{
    "object": "financial_transaction",
    "id": 9,
    "type": "sales_invoice",
    "status": "posted",
    "number": 1234,
    "posted_on": "2015-03-10",
    "actor_type": "person",
    "actor_id": 1,
    "voided_at": null,
    "voided_by_id": null,
    "link_type": null,
    "link_id": 0,
    "amount": 1234.56,
    "reverses": null,
    "reversed_by_id": null,
    "reposts": null,
    "reposted_by_id": null,
    "repostable": true,
    "added_at": "2015-03-10T19:33:11+00:00",
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
type Yes enum (journal, sales_invoice, sales_credit, customer_payment, customer_repayment, aid_payment, aid_repayment, sales_receipt, library_fine, donation, purchase, inventory_adjustment, gateway_processing_fee, reversal, aid_drawdown, gateway_deposit, donation_refund, gateway_withdrawal)
status Yes enum (construction, posted, void)
number Yes int
posted_on Yes date
actor_type Yes enum (none, person, contact_org, loan, asset)
actor_id Yes int
voided_at Yes datetime
voided_by_id No int
link_type No enum (uncollectible_invoice, recollectible_invoice, application, bookstore_order, financial_aid, donation, inventory_batch, transcript_request, transaction, form_response, gateway_deposit, gateway_withdrawal)
link_id Yes int
amount Yes decimal
reverses No int
reversed_by_id No int
reposts No int
reposted_by_id No int
repostable Yes bool
added_at Yes datetime
added_by_id No int
sandbox No --

apply

curl "https://yourschool.populiweb.com/api2/people/(person)/deposits/apply" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "liability_account_id": 6,
    "amount": 200
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/deposits/apply',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :liability_account_id => 6,
  :amount => 200
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/deposits/apply',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'liability_account_id': 6,
  'amount': 200
 }
)
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)/deposits/apply"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  liability_account_id = 6,
  amount = 200
});
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)/deposits/apply');
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([
  'liability_account_id' => 6,
  'amount' => 200
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{}

HTTP Request

GET /people/(person)/deposits/apply

Parameters

Name Required Data Type Description
liability_account_id Yes int
amount Yes decimal
posted_date No date

Permissions

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

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/transactions" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "posted_date_start": "2022-01-05",
    "posted_date_end": "2023-02-06",
    "filter": {"0":{"logic":"ALL","fields":[{"name":"posted_date","value":{"type":"RANGE","start":"2021-01-01","end":"2022-03-17"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/transactions',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :posted_date_start => '2022-01-05',
  :posted_date_end => '2023-02-06'
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/transactions',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'posted_date_start': '2022-01-05',
  'posted_date_end': '2023-02-06'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/transactions"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  posted_date_start = "2022-01-05",
  posted_date_end = "2023-02-06"
});
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/transactions');
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([
  'posted_date_start' => '2022-01-05',
  'posted_date_end' => '2023-02-06'
]));
$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": "financial_transaction",
            "id": 100,
            "type": "customer_payment",
            "status": "posted",
            "number": 1,
            "posted_on": "2022-10-24",
            "actor_type": "person",
            "actor_id": 12,
            "voided_at": null,
            "voided_by_id": null,
            "link_type": null,
            "link_id": 0,
            "amount": 600,
            "reverses": null,
            "reversed_by_id": null,
            "reposts": null,
            "reposted_by_id": null,
            "repostable": true,
            "added_at": "2025-04-14T16:32:14+00:00",
            "added_by_id": 22,
            "report_data": {
                "student_dummyid": "20220xx002",
                "primary_actor": "Alice Admin",
                "term_name": null,
                "invoiceid": null,
                "invoice_number": null,
                "paymentid": 100,
                "reference_number": "",
                "payment_number": 1,
                "payment_source_type": "CHECK",
                "donation_id": null,
                "donation_number": null,
                "added_by_name": "API Dude",
                "voided_by_name": null,
                "linked_transaction_id": null,
                "linked_transaction_number": null,
                "payment_gateway_processing_fee": "0.00",
                "online_charge_method": "",
                "check_number": null,
                "check_batch_number": null,
                "inventory_batch_item_variation_name": null,
                "inventory_batch_item_id": null,
                "inventory_batch_item_variation_id": null,
                "row_id": 100
            }
        }
    ],
    "sandbox": true
}

Retrieves all FinancialTransaction objects that match given filter conditions. This report requires a start and end posted date range.

HTTP Request

GET /transactions

Parameters

Name Required Data Type Description
posted_date_start Yes date
posted_date_end Yes date
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
transaction_number integer
posted_date date
type choice
primary_actor search
status choice
added_at datetime
added_by search
voided_at datetime
voided_by search
amount decimal
academic_term academic_term
student_campus campus

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/transactions/(financialtransaction)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)',
 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/transactions/(financialtransaction)"), 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/transactions/(financialtransaction)');
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": "financial_transaction",
    "id": 100,
    "type": "customer_payment",
    "status": "posted",
    "number": 1,
    "posted_on": "2022-10-24",
    "actor_type": "person",
    "actor_id": 12,
    "voided_at": null,
    "voided_by_id": null,
    "link_type": null,
    "link_id": 0,
    "amount": 600,
    "reverses": null,
    "reversed_by_id": null,
    "reposts": null,
    "reposted_by_id": null,
    "repostable": true,
    "added_at": "2025-04-14T23:32:14+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Retrieves a specific FinancialTransaction object.

HTTP Request

GET /transactions/(financialtransaction)

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:

Form

The Form object

The Form object looks like this in JSON:

{
    "object": "form",
    "id": 1,
    "current_version_id": 1,
    "type": "form",
    "name": "Form",
    "description": null,
    "image_file_id": null,
    "published": true,
    "accept_responses": true,
    "available_from": null,
    "available_until": null,
    "self_service": false,
    "require_user": false,
    "require_request": false,
    "anonymous_responses": false,
    "can_choose_linked_model": false,
    "user_response_limit": null,
    "total_response_limit": null,
    "response_review": "review",
    "enable_sms_verification": false,
    "redirect_url": null,
    "thank_you_message": null,
    "custom_css": null,
    "fee_id": null,
    "fee_amount": null,
    "can_charge_to_account": false,
    "default_localization_id": null,
    "retired_by_id": null,
    "retired_at": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
current_version_id No int
type Yes enum (form, inquiry)
name Yes text (300)
description No text (5000)
image_file_id No int
published Yes bool
accept_responses Yes bool
available_from No datetime
available_until No datetime
self_service Yes bool
require_user Yes bool
require_request Yes bool
anonymous_responses Yes bool
can_choose_linked_model Yes bool
user_response_limit No int
total_response_limit No int
response_review Yes enum (none, review, decision)
enable_sms_verification Yes bool
redirect_url No text (2000)
thank_you_message No text
custom_css No text
fee_id No int
fee_amount No decimal
can_charge_to_account Yes bool
default_localization_id No int
retired_by_id No int
retired_at No datetime
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/forms" \
-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/forms',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/forms',
 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/forms"), 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/forms');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "form",
            "id": 1,
            "current_version_id": 1,
            "type": "form",
            "name": "Form",
            "description": null,
            "image_file_id": null,
            "published": true,
            "accept_responses": true,
            "available_from": null,
            "available_until": null,
            "self_service": false,
            "require_user": false,
            "require_request": false,
            "anonymous_responses": false,
            "can_choose_linked_model": false,
            "user_response_limit": null,
            "total_response_limit": null,
            "response_review": "review",
            "enable_sms_verification": false,
            "redirect_url": null,
            "thank_you_message": null,
            "custom_css": null,
            "fee_id": null,
            "fee_amount": null,
            "can_charge_to_account": false,
            "default_localization_id": null,
            "retired_by_id": null,
            "retired_at": null,
            "added_at": null,
            "added_by_id": null,
            "report_data": {
                "num_responses_to_review": 1,
                "category_names": null
            }
        }
    ],
    "sandbox": true
}

Retrieves all Form objects that match given filter conditions.

HTTP Request

GET /forms

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
accepting_responses bool
category search
custom_css bool
custom_thank_you_message bool
fee bool
login_required bool
name text
notification base_object id
published bool
response_limit integer
response_limit_per_user integer
responses_to_review bool
retired 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/forms/(form)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/forms/(form)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/forms/(form)',
 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/forms/(form)"), 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/forms/(form)');
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": "form",
    "id": 1,
    "current_version_id": 1,
    "type": "form",
    "name": "Form",
    "description": null,
    "image_file_id": null,
    "published": true,
    "accept_responses": true,
    "available_from": null,
    "available_until": null,
    "self_service": false,
    "require_user": false,
    "require_request": false,
    "anonymous_responses": false,
    "can_choose_linked_model": false,
    "user_response_limit": null,
    "total_response_limit": null,
    "response_review": "review",
    "enable_sms_verification": false,
    "redirect_url": null,
    "thank_you_message": null,
    "custom_css": null,
    "fee_id": null,
    "fee_amount": null,
    "can_charge_to_account": false,
    "default_localization_id": null,
    "retired_by_id": null,
    "retired_at": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific Form object.

HTTP Request

GET /forms/(form)

Parameters

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

Expandable Properties

FormResponse

The FormResponse object

The FormResponse object looks like this in JSON:

{
    "object": "form_response",
    "id": 1,
    "form_id": 1,
    "form_version_id": 1,
    "form_response_batch_id": null,
    "person_id": 10,
    "first_name": null,
    "last_name": null,
    "email": null,
    "review": "review",
    "status": "submitted",
    "needs_review": null,
    "needs_resubmit": null,
    "fee_id": null,
    "fee_amount": null,
    "fee_discount": null,
    "can_charge_to_account": false,
    "fee_status": "unpaid",
    "charge_method": null,
    "sales_receipt_id": null,
    "started_at": "2022-07-13T23:07:51+00:00",
    "submitted_at": "2022-07-13T23:08:31+00:00",
    "decision_by_id": null,
    "decision_at": null,
    "localization_id": null,
    "requested_by_id": null,
    "requested_at": null,
    "added_at": "2022-07-13T23:07:51+00:00",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
form_id No int
form_version_id No int
form_response_batch_id No int
person_id No int
first_name No text (50)
last_name No text (50)
email No text (100)
review Yes enum (none, review, decision)
status Yes enum (pending, in_progress, submitted, processing, accepted, rejected, completed)
needs_review No int
needs_resubmit No int
fee_id No int
fee_amount No decimal
fee_discount No decimal
can_charge_to_account Yes bool
fee_status Yes enum (unpaid, paid, waived)
charge_method No enum (account, credit_card, external)
sales_receipt_id No int
started_at No datetime
submitted_at No datetime
decision_by_id No int
decision_at No datetime
localization_id No int
requested_by_id No int
requested_at No datetime
added_at No datetime
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/forms/(form)/responses" \
-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/forms/(form)/responses',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/forms/(form)/responses',
 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/forms/(form)/responses"), 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/forms/(form)/responses');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "form_response",
            "id": 1,
            "form_id": 1,
            "form_version_id": 1,
            "form_response_batch_id": null,
            "person_id": 10,
            "first_name": null,
            "last_name": null,
            "email": null,
            "review": "review",
            "status": "submitted",
            "needs_review": null,
            "needs_resubmit": null,
            "fee_id": null,
            "fee_amount": null,
            "fee_discount": null,
            "can_charge_to_account": false,
            "fee_status": "unpaid",
            "charge_method": null,
            "sales_receipt_id": null,
            "started_at": "2022-07-13T23:07:51+00:00",
            "submitted_at": "2022-07-13T23:08:31+00:00",
            "decision_by_id": null,
            "decision_at": null,
            "localization_id": null,
            "requested_by_id": null,
            "requested_at": null,
            "added_at": "2022-07-13T23:07:51+00:00",
            "report_data": {
                "person_display_name": null,
                "person_last_name": null,
                "person_first_name": null,
                "batch_name": null,
                "respondent_person_id": null,
                "respondent_display_name": null,
                "respondent_last_name": null,
                "respondent_first_name": null,
                "discount_code": null,
                "row_id": 1
            }
        }
    ],
    "sandbox": true
}

Retrieves all FormResponse objects that match given filter conditions.

HTTP Request

GET /forms/(form)/responses

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
linked_person search
respondent search
batch object id
discount_code object id
status enum
started_at datetime
signed_at datetime
submitted_at datetime
decision_at datetime
field FormField
needs_review bool
fields_to_review integer
tag tag

show

Example code to call this method:

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

Example response:

{
    "object": "form_response",
    "id": 1,
    "form_id": 1,
    "form_version_id": 1,
    "form_response_batch_id": null,
    "person_id": 10,
    "first_name": null,
    "last_name": null,
    "email": null,
    "review": "review",
    "status": "submitted",
    "needs_review": null,
    "needs_resubmit": null,
    "fee_id": null,
    "fee_amount": null,
    "fee_discount": null,
    "can_charge_to_account": false,
    "fee_status": "unpaid",
    "charge_method": null,
    "sales_receipt_id": null,
    "started_at": "2022-07-13T23:07:51+00:00",
    "submitted_at": "2022-07-13T23:08:31+00:00",
    "decision_by_id": null,
    "decision_at": null,
    "localization_id": null,
    "requested_by_id": null,
    "requested_at": null,
    "form_version": {
        "object": "form_version",
        "id": 1,
        "owner_type": "form",
        "owner_id": 1,
        "added_at": null,
        "added_by_id": null,
        "sections": [
            {
                "object": "form_heading",
                "id": 8,
                "content": "Heading",
                "added_at": null,
                "added_by_id": null,
                "page_order_id": 1,
                "order_id": 1,
                "hidden": false
            },
            {
                "object": "form_field",
                "id": 9,
                "reporting_id": 9,
                "name": "Short Answer",
                "description": null,
                "input_type": "short_answer",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "is_required": false,
                "page_order_id": 1,
                "order_id": 2,
                "hidden": false
            },
            {
                "object": "form_field",
                "id": 10,
                "reporting_id": 10,
                "name": "Paragraph",
                "description": null,
                "input_type": "long_answer",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "is_required": false,
                "page_order_id": 1,
                "order_id": 3,
                "hidden": false
            },
            {
                "object": "form_field",
                "id": 11,
                "reporting_id": 11,
                "name": "Yes\/No",
                "description": null,
                "input_type": "boolean",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "is_required": false,
                "page_order_id": 1,
                "order_id": 4,
                "hidden": false
            },
            {
                "object": "form_field",
                "id": 12,
                "reporting_id": 12,
                "name": "Number",
                "description": null,
                "input_type": "integer",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "is_required": false,
                "page_order_id": 2,
                "order_id": 1,
                "hidden": false
            },
            {
                "object": "form_field",
                "id": 13,
                "reporting_id": 13,
                "name": "Date",
                "description": null,
                "input_type": "date",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "is_required": false,
                "page_order_id": 2,
                "order_id": 2,
                "hidden": false
            },
            {
                "object": "form_text",
                "id": 14,
                "content": "Text content",
                "added_at": null,
                "added_by_id": null,
                "page_order_id": 2,
                "order_id": 3,
                "hidden": false
            },
            {
                "object": "form_field",
                "id": 15,
                "reporting_id": 15,
                "name": "Select",
                "description": null,
                "input_type": "multiple_choice_select",
                "model_type": null,
                "model_id": null,
                "min": null,
                "max": null,
                "added_at": null,
                "added_by_id": null,
                "options": [
                    {
                        "object": "form_field_option",
                        "id": 5,
                        "display_value": "One",
                        "order_id": 1
                    },
                    {
                        "object": "form_field_option",
                        "id": 6,
                        "display_value": "Two",
                        "order_id": 2
                    },
                    {
                        "object": "form_field_option",
                        "id": 7,
                        "display_value": "Three",
                        "order_id": 3
                    },
                    {
                        "object": "form_field_option",
                        "id": 8,
                        "display_value": "Four",
                        "order_id": 4
                    }
                ],
                "is_required": false,
                "page_order_id": 2,
                "order_id": 3,
                "hidden": false
            }
        ]
    },
    "answers": [
        {
            "object": "form_field_answer",
            "id": 3,
            "owner_type": "form_response",
            "owner_id": 1,
            "form_field_id": 9,
            "subfield": null,
            "text_value": "Short answer text...",
            "integer_value": null,
            "decimal_value": null,
            "date_value": null,
            "datetime_value": null,
            "email_value": null,
            "ip": null,
            "added_at": null
        },
        {
            "object": "form_field_answer",
            "id": 4,
            "owner_type": "form_response",
            "owner_id": 1,
            "form_field_id": 15,
            "subfield": null,
            "text_value": null,
            "integer_value": 8,
            "decimal_value": null,
            "date_value": null,
            "datetime_value": null,
            "email_value": null,
            "ip": null,
            "added_at": null
        }
    ],
    "added_at": "2022-07-13T23:07:51+00:00",
    "sandbox": true
}

Retrieves a specific FormResponse object. To match answers to form fields, you will need to expand form_version and answers.

HTTP Request

GET /forms/(form)/responses/(formresponse)

Parameters

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

Expandable Properties

Fund

The Fund object

The Fund object looks like this in JSON:

{
    "object": "fund",
    "id": 3,
    "name": "Building Fund",
    "asset_account_id": null,
    "income_account_id": 7,
    "is_default": false,
    "is_restricted": false,
    "show_online": true,
    "is_taxable": true,
    "status": "active",
    "added_at": "2015-01-02T19:53:14+00:00",
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
asset_account_id No int
income_account_id No int
is_default Yes bool
is_restricted Yes bool
show_online Yes bool
is_taxable Yes bool
status Yes enum (active, deleted)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/funds" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/funds',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/funds',
 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/funds"), 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/funds');
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": "fund",
            "id": 3,
            "name": "Building Fund",
            "asset_account_id": null,
            "income_account_id": 7,
            "is_default": false,
            "is_restricted": false,
            "show_online": true,
            "is_taxable": true,
            "status": "active",
            "added_at": "2015-01-02T19:53:14+00:00",
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all Fund objects.

HTTP Request

GET /funds

Parameters

None

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/funds/(fund)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/funds/(fund)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/funds/(fund)',
 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/funds/(fund)"), 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/funds/(fund)');
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": "fund",
    "id": 3,
    "name": "Building Fund",
    "asset_account_id": null,
    "income_account_id": 7,
    "is_default": false,
    "is_restricted": false,
    "show_online": true,
    "is_taxable": true,
    "status": "active",
    "added_at": "2015-01-02T19:53:14+00:00",
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific Fund object.

HTTP Request

GET /funds/(fund)

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:

GradeScale

The GradeScale object

The GradeScale object looks like this in JSON:

{
    "object": "grade_scale",
    "id": 1,
    "parent_id": 1,
    "owner_type": "year",
    "owner_id": 1,
    "pass_fail": false,
    "retake_threshold_grade_point_id": null,
    "retake_threshold_inclusive_direction": "higher",
    "retake_threshold_logic": "include_retakes_in_calculation",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
parent_id No int
owner_type Yes enum (year, term)
owner_id Yes int
pass_fail Yes bool
retake_threshold_grade_point_id No int
retake_threshold_inclusive_direction Yes enum (higher, lower)
retake_threshold_logic Yes enum (include_retakes_in_calculation, exclude_retakes_from_calculation)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/gradescales" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/gradescales',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/gradescales',
 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/gradescales"), 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/gradescales');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "grade_scale",
            "id": 1,
            "parent_id": 1,
            "owner_type": "year",
            "owner_id": 1,
            "pass_fail": false,
            "retake_threshold_grade_point_id": null,
            "retake_threshold_inclusive_direction": "higher",
            "retake_threshold_logic": "include_retakes_in_calculation"
        }
    ],
    "sandbox": true
}

Retrieves all GradeScale objects.

HTTP Request

GET /gradescales

Parameters

None

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/gradescales/(gradescale)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/gradescales/(gradescale)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/gradescales/(gradescale)',
 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/gradescales/(gradescale)"), 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/gradescales/(gradescale)');
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": "grade_scale",
    "id": 1,
    "parent_id": 1,
    "owner_type": "year",
    "owner_id": 1,
    "pass_fail": false,
    "retake_threshold_grade_point_id": null,
    "retake_threshold_inclusive_direction": "higher",
    "retake_threshold_logic": "include_retakes_in_calculation",
    "sandbox": true
}

Retrieves a specific GradeScale object.

HTTP Request

GET /gradescales/(gradescale)

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:

Group

The Group object

The Group object looks like this in JSON:

{
    "object": "group",
    "id": 1,
    "parent_id": null,
    "name": "Seagulls, stop it now",
    "description": null,
    "membership": "open",
    "can_invite": "members",
    "can_bulletin_board_posts": "members",
    "can_add_discussions": "members",
    "can_upload_files": "members",
    "enable_chat": true,
    "public": true,
    "official": false,
    "image_file_id": null,
    "status": "active",
    "status_by_id": null,
    "status_at": null,
    "added_at": "2019-01-22T23:50:55+00:00",
    "added_by_id": 11,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
parent_id No int
name Yes text (300)
description No text
membership Yes enum (open, roles, invitation_only)
can_invite Yes enum (members, moderators, admins)
can_bulletin_board_posts Yes enum (members, moderators, admins)
can_add_discussions Yes enum (disabled, members, moderators, admins)
can_upload_files Yes enum (disabled, members, moderators, admins)
enable_chat No bool
public No bool
official No bool
image_file_id No int
status Yes enum (pending, active, denied)
status_by_id No int
status_at No datetime
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/groups" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"status","value":"BLAH","positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/groups',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/groups',
 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/groups"), 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/groups');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "group",
            "id": 1,
            "parent_id": null,
            "name": "Seagulls, stop it now",
            "description": null,
            "membership": "open",
            "can_invite": "members",
            "can_bulletin_board_posts": "members",
            "can_add_discussions": "members",
            "can_upload_files": "members",
            "enable_chat": true,
            "public": true,
            "official": false,
            "image_file_id": null,
            "status": "active",
            "status_by_id": null,
            "status_at": null,
            "added_at": "2019-01-22T23:50:55+00:00",
            "added_by_id": 11,
            "report_data": {
                "user_member_status": null,
                "user_member_type": null,
                "num_members": 0
            }
        }
    ],
    "sandbox": true
}

Retrieves all Group objects that match given filter conditions.

HTTP Request

GET /groups

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
search text
status enum

Permissions

Any role may call this method.

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/groups/(group)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/groups/(group)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/groups/(group)',
 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/groups/(group)"), 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/groups/(group)');
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": "group",
    "id": 1,
    "parent_id": null,
    "name": "Seagulls, stop it now",
    "description": null,
    "membership": "open",
    "can_invite": "members",
    "can_bulletin_board_posts": "members",
    "can_add_discussions": "members",
    "can_upload_files": "members",
    "enable_chat": true,
    "public": true,
    "official": false,
    "image_file_id": null,
    "status": "active",
    "status_by_id": null,
    "status_at": null,
    "added_at": "2019-01-22T23:50:55+00:00",
    "added_by_id": 11,
    "sandbox": true
}

Retrieves a specific Group object.

HTTP Request

GET /groups/(group)

Parameters

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

Expandable Properties

Honor

The Honor object

The Honor object looks like this in JSON:

{
    "object": "honor",
    "id": 1,
    "name": "Presidential List",
    "min_gpa": null,
    "max_gpa": null,
    "gpa_type": "none",
    "min_units": null,
    "units_type": "none",
    "owner_type": "program",
    "type": "manual",
    "tagid": 153698,
    "start_date": null,
    "retired_at": null,
    "retired_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
min_gpa No decimal
max_gpa No decimal
gpa_type Yes enum (none, gpa_including_transfer, institutional_gpa)
min_units No decimal
units_type Yes enum (none, include_transfer_units, institutional_units)
owner_type Yes enum (program, degree, term, student)
type Yes enum (automatic, manual)
tagid Yes int
start_date No date
retired_at No date
retired_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/honors" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/honors',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/honors',
 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/honors"), 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/honors');
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": 5,
    "results": 5,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "honor",
            "id": 4,
            "name": "Academic Probation",
            "min_gpa": 1,
            "max_gpa": 2,
            "gpa_type": "institutional_gpa",
            "min_units": 0,
            "units_type": "include_transfer_units",
            "owner_type": "term",
            "type": "automatic",
            "tagid": 443823,
            "start_date": null,
            "retired_at": null,
            "retired_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all Honor objects.

HTTP Request

GET /honors

Parameters

None

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/honors/(honor)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/honors/(honor)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/honors/(honor)',
 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/honors/(honor)"), 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/honors/(honor)');
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": "honor",
    "id": 1,
    "name": "Presidential List",
    "min_gpa": null,
    "max_gpa": null,
    "gpa_type": "none",
    "min_units": null,
    "units_type": "none",
    "owner_type": "program",
    "type": "manual",
    "tagid": 153698,
    "start_date": null,
    "retired_at": null,
    "retired_by_id": null,
    "sandbox": true
}

Retrieves a specific Honor object.

HTTP Request

GET /honors/(honor)

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:

IDCardTemplate

The IDCardTemplate object

The IDCardTemplate object looks like this in JSON:

{
    "object": "id_card_template",
    "id": 1,
    "type": "ID_CARD",
    "sub_type": "STUDENT",
    "name": "Student",
    "num_rows": 1,
    "num_columns": 1,
    "row_spacing": 0,
    "column_spacing": 0,
    "page_margin_top": 0,
    "page_margin_left": 0,
    "page_width": 3.37,
    "page_height": 2.125,
    "one_cell_per_page": true,
    "cell_width": 3.37,
    "cell_height": 2.125,
    "cell_to_start_printing_on": 1,
    "status": "active",
    "is_default": true,
    "added_at": "2015-08-12T05:41:29+00:00",
    "added_by_id": 3483127,
    "updated_at": "2016-11-30T08:09:44+00:00",
    "updated_by_id": 7011453,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
type Yes text (50)
sub_type No text (50)
name Yes text (255)
num_rows Yes int
num_columns Yes int
row_spacing Yes decimal
column_spacing Yes decimal
page_margin_top Yes decimal
page_margin_left Yes decimal
page_width Yes decimal
page_height Yes decimal
one_cell_per_page Yes bool
cell_width Yes decimal
cell_height Yes decimal
cell_to_start_printing_on Yes int
status Yes enum (active, deleted)
is_default Yes bool
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/idcardtemplates" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/idcardtemplates',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/idcardtemplates',
 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/idcardtemplates"), 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/idcardtemplates');
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": "id_card_template",
            "id": 1,
            "type": "ID_CARD",
            "sub_type": "STUDENT",
            "name": "Student",
            "num_rows": 1,
            "num_columns": 1,
            "row_spacing": 0,
            "column_spacing": 0,
            "page_margin_top": 0,
            "page_margin_left": 0,
            "page_width": 3.37,
            "page_height": 2.125,
            "one_cell_per_page": true,
            "cell_width": 3.37,
            "cell_height": 2.125,
            "cell_to_start_printing_on": 1,
            "status": "active",
            "is_default": true,
            "added_at": "2015-08-12T05:41:29+00:00",
            "added_by_id": 3483127,
            "updated_at": "2016-11-30T08:09:44+00:00",
            "updated_by_id": 7011453
        }
    ],
    "sandbox": true
}

Retrieves all IDCardTemplate objects.

HTTP Request

GET /idcardtemplates

Parameters

None

Expandable Properties

Permissions

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

Export (person)

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

{}

Either id_card_template_id or print_layout_id is required.

HTTP Request

GET /people/(person)/idcard

Parameters

Name Required Data Type Description
id_card_template_id No
print_layout_id No

Permissions

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

index (PrintLayouts)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/idcardtemplates/printlayouts" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/idcardtemplates/printlayouts',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/idcardtemplates/printlayouts',
 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/idcardtemplates/printlayouts"), 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/idcardtemplates/printlayouts');
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": "print_layout",
            "id": 7,
            "name": "Standard Student ID",
            "print_layout_type_id": 24,
            "active_revision": null,
            "default": true,
            "template_type": "html",
            "content": null,
            "subtype": "STUDENT",
            "added_at": "2024-05-06T22:07:20+00:00",
            "added_by_id": 1257
        }
    ],
    "sandbox": true
}

Retrieves all IdCardTemplate objects.

HTTP Request

GET /idcardtemplates/printlayouts

Parameters

None

Permissions

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

Inquiry

The Inquiry object

The Inquiry object looks like this in JSON:

{
    "object": "inquiry",
    "id": 1,
    "form_id": null,
    "form_version_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Homestar",
    "middle_name": null,
    "last_name": "Runner",
    "email": "homestar@populi.co",
    "phone": null,
    "address_id": null,
    "subject": "Email, scrollbuttons",
    "content": "Yeah!",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "counselor_id": null,
    "status": "waiting_on_us",
    "closed_at": null,
    "closed_by_id": null,
    "lead_source_id": null,
    "localization_id": null,
    "added_on": "2013-03-15",
    "added_at": "2013-03-15T21:06:03+00:00",
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
form_id No int
form_version_id No int
person_id No int
lead_id No int
first_name No text (50)
middle_name No text (50)
last_name No text (50)
email No text (100)
phone No text (45)
address_id No int
subject Yes text (255)
content No text
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
counselor_id No int
status Yes enum (waiting_on_us, waiting_on_them, closed)
closed_at No datetime
closed_by_id No int
lead_source_id No int
localization_id No int
added_on No date
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/inquiries" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"source","value":{"parent":"123","child":"456"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/inquiries',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/inquiries',
 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/inquiries"), 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/inquiries');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "inquiry",
            "id": 1,
            "form_id": null,
            "form_version_id": null,
            "person_id": null,
            "lead_id": null,
            "first_name": "Homestar",
            "middle_name": null,
            "last_name": "Runner",
            "email": "homestar@populi.co",
            "phone": null,
            "address_id": null,
            "subject": "Email, scrollbuttons",
            "content": "Yeah!",
            "program_id": null,
            "degree_id": null,
            "specialization_id": null,
            "academic_term_id": null,
            "counselor_id": null,
            "status": "waiting_on_us",
            "closed_at": null,
            "closed_by_id": null,
            "lead_source_id": null,
            "localization_id": null,
            "added_on": "2013-03-15",
            "added_at": "2013-03-15T21:06:03+00:00",
            "added_by_id": null,
            "report_data": {
                "person_first_name": "Homestar",
                "person_preferred_name": null,
                "person_last_name": "Runner",
                "program_name": null,
                "degree_name": null,
                "specialization_name": null,
                "academic_term_display_name": null,
                "counselor_name": null,
                "counselor_first_name": null,
                "counselor_last_name": null,
                "lead_source_name": null,
                "street": null,
                "city": null,
                "state": null,
                "zip": null,
                "country": null,
                "last_response": "2013-03-15 14:04:58",
                "verified_email_address": null,
                "owner_type": "INQUIRY",
                "row_id": 1
            }
        }
    ],
    "sandbox": true
}

Retrieves all Inquiry objects that match given filter conditions.

HTTP Request

GET /inquiries

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
inquiry text
first_name text
last_name text
inquiry_form object id
linked_to_person bool
gender gender
counselor admissions_counselor
status enum
source leadsource
academic_term academic_term
added_on date
last_contacted date_time
verified bool
address_city text
address_state state
address_country country
tag tag
custom_field custom

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/inquiries" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "first_name": "Samantha",
    "last_name": "Curry",
    "email": "samantha.c.2002@somewhere.edu",
    "address": "{\"street\":\"555 Maple Street\",\"city\":\"Dallas\",\"state\":\"TX\",\"postal\":\"55123\",\"country\":\"US\"}"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/inquiries',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :first_name => 'Samantha',
  :last_name => 'Curry',
  :email => 'samantha.c.2002@somewhere.edu'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/inquiries',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'first_name': 'Samantha',
  'last_name': 'Curry',
  'email': 'samantha.c.2002@somewhere.edu'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/inquiries"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  first_name = "Samantha",
  last_name = "Curry",
  email = "samantha.c.2002@somewhere.edu"
});
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/inquiries');
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([
  'first_name' => 'Samantha',
  'last_name' => 'Curry',
  'email' => 'samantha.c.2002@somewhere.edu'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "inquiry",
    "id": 10,
    "form_id": null,
    "form_version_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Samantha",
    "middle_name": null,
    "last_name": "Curry",
    "email": "samantha.c.2002@somewhere.edu",
    "phone": null,
    "address_id": 802,
    "subject": null,
    "content": null,
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "counselor_id": null,
    "status": "waiting_on_us",
    "closed_at": null,
    "closed_by_id": null,
    "lead_source_id": null,
    "localization_id": null,
    "added_on": "2025-04-14",
    "added_at": "2025-04-14T23:32:14+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new Inquiry object.

HTTP Request

POST /inquiries

Parameters

Name Required Data Type Description
first_name Yes text (50)
middle_name No text (50)
last_name Yes text (50)
phone No text (45)
email Yes text (100)
lead_source_id No int
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
content No text
added_on No date
address No address
subject No text (255)
comment No

Action Parameters

Name Data Type Description
create_response

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/inquiries/(inquiry)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/inquiries/(inquiry)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/inquiries/(inquiry)',
 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/inquiries/(inquiry)"), 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/inquiries/(inquiry)');
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": "inquiry",
    "id": 1,
    "form_id": null,
    "form_version_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Homestar",
    "middle_name": null,
    "last_name": "Runner",
    "email": "homestar@populi.co",
    "phone": null,
    "address_id": null,
    "subject": "Email, scrollbuttons",
    "content": "Yeah!",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "counselor_id": null,
    "status": "waiting_on_us",
    "closed_at": null,
    "closed_by_id": null,
    "lead_source_id": null,
    "localization_id": null,
    "added_on": "2013-03-15",
    "added_at": "2013-03-15T21:06:03+00:00",
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific Inquiry object.

HTTP Request

GET /inquiries/(inquiry)

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/inquiries/(inquiry)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "first_name": "Ben",
    "last_name": "Ford",
    "email": "bford@gmail2.edu",
    "address": "{\"street\":\"555 Maple Street\",\"city\":\"Dallas\",\"state\":\"TX\",\"postal\":\"55123\",\"country\":\"US\"}"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/inquiries/(inquiry)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :first_name => 'Ben',
  :last_name => 'Ford',
  :email => 'bford@gmail2.edu'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/inquiries/(inquiry)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'first_name': 'Ben',
  'last_name': 'Ford',
  'email': 'bford@gmail2.edu'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/inquiries/(inquiry)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  first_name = "Ben",
  last_name = "Ford",
  email = "bford@gmail2.edu"
});
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/inquiries/(inquiry)');
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([
  'first_name' => 'Ben',
  'last_name' => 'Ford',
  'email' => 'bford@gmail2.edu'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "inquiry",
    "id": 1,
    "form_id": null,
    "form_version_id": null,
    "person_id": null,
    "lead_id": null,
    "first_name": "Ben",
    "middle_name": null,
    "last_name": "Ford",
    "email": "bford@gmail2.edu",
    "phone": null,
    "address_id": null,
    "subject": "Email, scrollbuttons",
    "content": "Yeah!",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "counselor_id": null,
    "status": "waiting_on_us",
    "closed_at": null,
    "closed_by_id": null,
    "lead_source_id": null,
    "localization_id": null,
    "added_on": "2013-03-15",
    "address": null,
    "added_at": "2013-03-15T21:06:03+00:00",
    "added_by_id": null,
    "sandbox": true
}

Updates an existing Inquiry object. Once an inquiry is linked to a Person, name and contact information fields cannot be updated using this route. Update the related Person instead.

HTTP Request

PUT /inquiries/(inquiry)

Parameters

Name Required Data Type Description
first_name Yes text (50)
middle_name No text (50)
last_name Yes text (50)
phone No text (45)
email Yes text (100)
lead_source_id No int
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
content No text
added_on No date
address No address
subject No text (255)

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/inquiries/(inquiry)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/inquiries/(inquiry)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/inquiries/(inquiry)',
 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/inquiries/(inquiry)"), 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/inquiries/(inquiry)');
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": "inquiry",
    "id": 1,
    "deleted": true
}

Deletes an existing Inquiry object.

HTTP Request

DELETE /inquiries/(inquiry)

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:

Example code to call this method:

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

Example response:

{
    "object": "inquiry",
    "id": 1,
    "form_id": null,
    "form_version_id": null,
    "person_id": 2,
    "lead_id": 7,
    "first_name": "Ben",
    "middle_name": null,
    "last_name": "Ford",
    "email": "bford@gmail2.edu",
    "phone": null,
    "address_id": null,
    "subject": "Email, scrollbuttons",
    "content": "Yeah!",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "counselor_id": null,
    "status": "waiting_on_us",
    "closed_at": null,
    "closed_by_id": null,
    "lead_source_id": null,
    "localization_id": null,
    "added_on": "2013-03-15",
    "added_at": "2013-03-15T21:06:03+00:00",
    "added_by_id": null,
    "sandbox": true
}

HTTP Request

GET /inquiries/(inquiry)/link_to_person

Parameters

Name Required Data Type Description
person_id Yes int

Permissions

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

InventoryBatch

The InventoryBatch object

The InventoryBatch object looks like this in JSON:

{
    "object": "inventory_batch",
    "id": 1,
    "item_variation_id": 7,
    "cost": 90,
    "quantity": 55,
    "added_on": "2022-07-12",
    "added_at": "2022-07-12T18:49:11+00:00",
    "added_by_id": 6,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
item_variation_id No int
cost Yes decimal
quantity No int
added_on No date
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/inventorybatches" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/inventorybatches',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/inventorybatches',
 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/inventorybatches"), 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/inventorybatches');
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": "inventory_batch",
            "id": 1,
            "item_variation_id": 7,
            "cost": 90,
            "quantity": 55,
            "added_on": "2022-07-12",
            "has_adjustments": 0,
            "added_at": "2022-07-12T18:49:11+00:00",
            "added_by_id": 6
        }
    ],
    "sandbox": true
}

Retrieves all InventoryBatch objects.

HTTP Request

GET /inventorybatches

Parameters

None

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/inventorybatches/(inventorybatch)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/inventorybatches/(inventorybatch)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/inventorybatches/(inventorybatch)',
 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/inventorybatches/(inventorybatch)"), 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/inventorybatches/(inventorybatch)');
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": "inventory_batch",
    "id": 1,
    "item_variation_id": 7,
    "cost": 90,
    "quantity": 55,
    "added_on": "2022-07-12",
    "added_at": "2022-07-12T18:49:11+00:00",
    "added_by_id": 6,
    "sandbox": true
}

Retrieves a specific InventoryBatch object.

HTTP Request

GET /inventorybatches/(inventorybatch)

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:

Invoice

The Invoice object

The Invoice object looks like this in JSON:

{
    "object": "invoice",
    "id": 7,
    "actor_type": "person",
    "actor_id": 1,
    "number": 1,
    "description": null,
    "transaction_id": 9,
    "amount": 1234.56,
    "due_on": "2009-04-07",
    "status": "unpaid",
    "marked_uncollectible_on": null,
    "posted_on": "2015-03-10",
    "academic_term_id": null,
    "items": [
        {
            "object": "invoice_item",
            "id": 6,
            "invoice_id": 7,
            "item_type": "fee",
            "item_id": 9,
            "name": null,
            "amount": 20,
            "description": "Parking Ticket"
        }
    ],
    "sandbox": true
}
Attribute Required Data Type
id Yes int
actor_type Yes enum (person, contact_org)
actor_id Yes int
number Yes int
description Yes text
transaction_id Yes int
amount Yes decimal
due_on Yes date
status No enum (unpaid, paid, uncollectible)
marked_uncollectible_on No date
posted_on No date
academic_term_id Yes int
items No Array of InvoiceItem objects
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/invoices" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"balance","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/invoices',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/invoices',
 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/invoices"), 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/invoices');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "invoice",
            "id": 7,
            "actor_type": "person",
            "actor_id": 1,
            "number": 1,
            "description": null,
            "transaction_id": 9,
            "amount": 1234.56,
            "due_on": "2009-04-07",
            "status": "unpaid",
            "marked_uncollectible_on": null,
            "report_data": {
                "amount_paid": "0.00",
                "balance": "1234.56",
                "overdue": 1,
                "term_name": null,
                "term_start_date": null,
                "firstname": "Elizabeth",
                "lastname": "Fox",
                "preferred_name": "",
                "display_name": "Elizabeth Fox",
                "personid": 1,
                "studentid": 1,
                "posted_date": "2015-03-10",
                "dummyid": "20020xx000",
                "person_amount_paid": null,
                "org_amount_paid": null,
                "aid_amount_paid": null,
                "plan_name": null,
                "scheduled_aid_handling": null,
                "recurring_money_transfer_linkable_term_level": null,
                "recurring_money_transfer_linkable_existing": null,
                "on_term_level_payment_plan": 0,
                "invoice_due_date": "2022-08-11",
                "on_payment_plan": 1,
                "on_plan_total": null,
                "plan_due_date": null,
                "row_id": 7
            },
            "posted_on": "2015-03-10",
            "academic_term_id": null,
            "items": [
                {
                    "object": "invoice_item",
                    "id": 6,
                    "invoice_id": 7,
                    "item_type": "fee",
                    "item_id": 9,
                    "name": null,
                    "amount": 20,
                    "description": "Parking Ticket"
                }
            ]
        }
    ],
    "sandbox": true
}

Retrieves all Invoice objects that match given filter conditions.

HTTP Request

GET /invoices

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
student search
invoice_number integer
academic_term academic_term
posted_date date
status enum
invoice_due_date date
payment_plan_due_date date
total_amount decimal
amount_paid decimal
balance decimal
student_campus campus
tag tag
on_payment_plan bool
added_time datetime
lock_type locktype
custom_field custom

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/invoices/(invoice)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/invoices/(invoice)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/invoices/(invoice)',
 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/invoices/(invoice)"), 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/invoices/(invoice)');
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": "invoice",
    "id": 7,
    "actor_type": "person",
    "actor_id": 1,
    "number": 1,
    "description": null,
    "transaction_id": 9,
    "amount": 1234.56,
    "due_on": "2009-04-07",
    "status": "unpaid",
    "marked_uncollectible_on": null,
    "posted_on": "2015-03-10",
    "academic_term_id": null,
    "items": [
        {
            "object": "invoice_item",
            "id": 6,
            "invoice_id": 7,
            "item_type": "fee",
            "item_id": 9,
            "name": null,
            "amount": 20,
            "description": "Parking Ticket"
        }
    ],
    "sandbox": true
}

Retrieves a specific Invoice object.

HTTP Request

GET /invoices/(invoice)

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:

ISIR

The Isir object

The Isir object looks like this in JSON:

{
    "object": "isir",
    "id": 6,
    "batch_id": 1,
    "cps_transaction_number": 1,
    "cps_processed_date": "2011-03-20",
    "status": "pending",
    "content": "2200100405ED01EDIT            QUESTION     BORN BEFORE      ASSUME NO         EDIT 1004       VA2078419880102                                                                                  1         1      VA       2    1                                                                                            2                                                     3 100000{000000000000{00000{000000000000000000                                                                                                          1222222211111     1      391091111FATHERLASTNAME  A19540101000000000                                                                           VA       03      121 00500{0000000300500{00999I000000000000000000                                                                                                                             011           001002                                                                                                   20110101B                                                    I1A20110320                 TG53275                                                                                           200100405                 1A20110320       001   Y20110320                 Y Y 4                                                             2                                                                0000000000     5200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{0008550000000{00000000008550000855}000427N                                                                                                   000000{000000{0008550000000{00000000008550000855}000427N00000000{000000000000000000                                                                 000000{000000{                                                  000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000               000000000000010000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000               000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000                                                1               8         8  F        4                                                            149001146124219220221222115116118053117006000000000000000000               10                   N                                                011 N04      N04      NY       NY       N05                        NM YY N\/A   002405N\/A   N\/A         N\/A   N\/A   N\/A   777777008888999999                  005309            NNNNNNNNNNNNNNYYY  NNNNNN01Y  00280000003732  20090315           ",
    "aid_year_id": 2,
    "aid_application_id": null,
    "imported_by_id": null,
    "imported_at": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
batch_id Yes int
cps_transaction_number Yes int
cps_processed_date No date
status Yes enum (pending, imported, skipped)
content Yes text (10000)
aid_year_id No int
aid_application_id No int
imported_by_id No int
imported_at No datetime
sandbox No --

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/isirs/(isir)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/isirs/(isir)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/isirs/(isir)',
 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/isirs/(isir)"), 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/isirs/(isir)');
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": "isir",
    "id": 6,
    "batch_id": 1,
    "cps_transaction_number": 1,
    "cps_processed_date": "2011-03-20",
    "status": "pending",
    "content": "2200100405ED01EDIT            QUESTION     BORN BEFORE      ASSUME NO         EDIT 1004       VA2078419880102                                                                                  1         1      VA       2    1                                                                                            2                                                     3 100000{000000000000{00000{000000000000000000                                                                                                          1222222211111     1      391091111FATHERLASTNAME  A19540101000000000                                                                           VA       03      121 00500{0000000300500{00999I000000000000000000                                                                                                                             011           001002                                                                                                   20110101B                                                    I1A20110320                 TG53275                                                                                           200100405                 1A20110320       001   Y20110320                 Y Y 4                                                             2                                                                0000000000     5200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000{0008550000000{00000000008550000855}000427N                                                                                                   000000{000000{0008550000000{00000000008550000855}000427N00000000{000000000000000000                                                                 000000{000000{                                                  000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000               000000000000010000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000               000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000                                                1               8         8  F        4                                                            149001146124219220221222115116118053117006000000000000000000               10                   N                                                011 N04      N04      NY       NY       N05                        NM YY N\/A   002405N\/A   N\/A         N\/A   N\/A   N\/A   777777008888999999                  005309            NNNNNNNNNNNNNNYYY  NNNNNN01Y  00280000003732  20090315           ",
    "aid_year_id": 2,
    "aid_application_id": null,
    "imported_by_id": null,
    "imported_at": null,
    "sandbox": true
}

Retrieves a specific Isir object.

HTTP Request

GET /isirs/(isir)

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:

LMS

Run LMS sync

curl "https://yourschool.populiweb.com/api2/lmssync/run" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/lmssync/run',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/lmssync/run',
 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/lmssync/run"), 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/lmssync/run');
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:

{}

Begin a sync operation between Populi and an outside LMS (e.g. Canvas), if you have an integration configured.

HTTP Request

GET /lmssync/run

Parameters

Name Required Data Type Description
direction No enum (from_populi, to_populi, both) Default is both

Permissions

Only keys that have been granted Populi Account Administrator permissions may call this method.

Lead

The Lead object

The Lead object looks like this in JSON:

{
    "object": "lead",
    "id": 1,
    "person_id": 1,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": false,
    "inactive_on": "2013-10-02",
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": 0,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": null,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2013-10-02",
    "import_id": null,
    "added_at": "2013-10-02T20:37:53+00:00",
    "added_by_id": 185755,
    "updated_at": "2013-10-02T14:35:29+00:00",
    "updated_by_id": 1999,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
person_id Yes int
status Yes enum (prospect, inquiry, application_started, application_completed, accepted, confirmed, enrolled)
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
active Yes bool
inactive_on No date
lead_source_id No int
ceeb_code No int
source_comment No text
education_level_id No int
declined_reason_id No int
declined_reason_comment No text
counselor_id No int
highschool_graduation_date No date
most_recent Yes bool
added_on No date
import_id No int
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/leads" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"program","value":"NONE","positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/leads',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/leads',
 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/leads"), 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/leads');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "lead",
            "id": 6,
            "person_id": 12,
            "status": "inquiry",
            "program_id": null,
            "degree_id": null,
            "specialization_id": null,
            "academic_term_id": null,
            "active": true,
            "inactive_on": null,
            "lead_source_id": null,
            "ceeb_code": null,
            "source_comment": null,
            "education_level_id": null,
            "declined_reason_id": null,
            "declined_reason_comment": null,
            "counselor_id": 185037,
            "highschool_graduation_date": null,
            "most_recent": false,
            "added_on": "2013-10-28",
            "import_id": null,
            "added_at": "2013-10-28T17:23:53+00:00",
            "added_by_id": 185037,
            "updated_at": "2013-10-28T17:23:53+00:00",
            "updated_by_id": 185037,
            "report_data": {
                "person_first_name": "Alice",
                "person_preferred_name": "",
                "person_last_name": "Admin",
                "program_name": null,
                "academic_term_display_name": null,
                "counselor_name": null,
                "counselor_first_name": null,
                "counselor_last_name": null,
                "lead_source_name": null,
                "row_id": 6
            }
        }
    ],
    "sandbox": true
}

Retrieves all Lead objects that match given filter conditions.

HTTP Request

GET /leads

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
first_name text
last_name text
birthdate date
birthday month_day
age integer
gender gender
student_housing student_housing
status enum
program program
degree degree
specialization specialization
academic_term academic_term
counselor admissions_counselor
source leadsource
education_level object id
added_on date
updated_at datetime
active bool
inactive_on date
email email
phone phone
has_verified_text_messaging_number bool
address_city text
address_state state
address_zip alphanumeric
address_country country
home_city text
home_state state
home_country country
citizenship countryobject id
declined_reason object id
provisional bool
has_active_student_role has_active_student_role
tag tag
custom_field custom
hsgrad_date date
import object id

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/leads/(lead)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/leads/(lead)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/leads/(lead)',
 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/leads/(lead)"), 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/leads/(lead)');
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": "lead",
    "id": 1,
    "person_id": 1,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": false,
    "inactive_on": "2013-10-02",
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": 0,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": null,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2013-10-02",
    "import_id": null,
    "added_at": "2013-10-02T20:37:53+00:00",
    "added_by_id": 185755,
    "updated_at": "2013-10-02T14:35:29+00:00",
    "updated_by_id": 1999,
    "sandbox": true
}

Retrieves a specific Lead object.

HTTP Request

GET /leads/(lead)

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:

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/leads" \
-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)/leads',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/leads',
 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)/leads"), 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)/leads');
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": "lead",
            "id": 6,
            "person_id": 12,
            "status": "inquiry",
            "program_id": null,
            "degree_id": null,
            "specialization_id": null,
            "academic_term_id": null,
            "active": true,
            "inactive_on": null,
            "lead_source_id": null,
            "ceeb_code": null,
            "source_comment": null,
            "education_level_id": null,
            "declined_reason_id": null,
            "declined_reason_comment": null,
            "counselor_id": 185037,
            "highschool_graduation_date": null,
            "most_recent": false,
            "added_on": "2013-10-28",
            "import_id": null,
            "added_at": "2013-10-28T17:23:53+00:00",
            "added_by_id": 185037,
            "updated_at": "2013-10-28T17:23:53+00:00",
            "updated_by_id": 185037
        }
    ],
    "sandbox": true
}

Retrieves all Lead objects tied to a specific Person.

HTTP Request

GET /people/(person)/leads

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)/leads" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/leads',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/leads',
 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)/leads"), 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/people/(person)/leads');
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": "lead",
    "id": 8,
    "person_id": 12,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": true,
    "inactive_on": null,
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": null,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": null,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2025-04-14",
    "import_id": null,
    "added_at": "2025-04-14T23:32:19+00:00",
    "added_by_id": 22,
    "updated_at": "2025-04-14T23:32:19+00:00",
    "updated_by_id": 22,
    "sandbox": true
}

Creates a new Lead object.

HTTP Request

POST /people/(person)/leads

Parameters

None

Permissions

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

show (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)" \
-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)/leads/(lead)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)',
 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)/leads/(lead)"), 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)/leads/(lead)');
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": "lead",
    "id": 1,
    "person_id": 1,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": false,
    "inactive_on": "2013-10-02",
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": 0,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": null,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2013-10-02",
    "import_id": null,
    "added_at": "2013-10-02T20:37:53+00:00",
    "added_by_id": 185755,
    "updated_at": "2013-10-02T14:35:29+00:00",
    "updated_by_id": 1999,
    "sandbox": true
}

Retrieves a specific Lead object.

HTTP Request

GET /people/(person)/leads/(lead)

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)" \
-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)/leads/(lead)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)',
 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)/leads/(lead)"), 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)/leads/(lead)');
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": "lead",
    "id": 1,
    "person_id": 1,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": false,
    "inactive_on": "2013-10-02",
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": 0,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": null,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2013-10-02",
    "import_id": null,
    "added_at": "2013-10-02T20:37:53+00:00",
    "added_by_id": 185755,
    "updated_at": "2013-10-02T14:35:29+00:00",
    "updated_by_id": 1999,
    "sandbox": true
}

Updates an existing Lead object.

HTTP Request

PUT /people/(person)/leads/(lead)

Parameters

Name Required Data Type Description
status No enum (prospect, inquiry, application_started, application_completed, accepted, confirmed, enrolled)
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
lead_source_id No int
source_comment No text
education_level_id No int
declined_reason_comment No text
declined_reason_id No int
counselor_id No int
hsgrad_date No date
active No bool
ceeb_code 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)/leads/(lead)" \
-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)/leads/(lead)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)',
 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)/leads/(lead)"), 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)/leads/(lead)');
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": "lead",
    "id": 1,
    "deleted": true
}

Deletes an existing Lead object.

HTTP Request

DELETE /people/(person)/leads/(lead)

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:

LeadSource

The LeadSource object

The LeadSource object looks like this in JSON:

{
    "object": "lead_source",
    "id": 1,
    "parent_id": null,
    "name": "Word of Mouth",
    "retired_by_id": null,
    "retired_at": null,
    "added_at": "2020-01-01T00:00:00+00:00",
    "added_by_id": 1,
    "updated_at": null,
    "updated_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
parent_id No int
name Yes text (255)
retired_by_id No int
retired_at No datetime
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/leadsources" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/leadsources',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/leadsources',
 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/leadsources"), 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/leadsources');
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": "lead_source",
            "id": 1,
            "parent_id": null,
            "name": "Word of Mouth",
            "retired_by_id": null,
            "retired_at": null,
            "added_at": "2020-01-01T00:00:00+00:00",
            "added_by_id": 1,
            "updated_at": null,
            "updated_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all LeadSource objects.

HTTP Request

GET /leadsources

Parameters

None

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/leadsources/(leadsource)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/leadsources/(leadsource)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/leadsources/(leadsource)',
 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/leadsources/(leadsource)"), 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/leadsources/(leadsource)');
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": "lead_source",
    "id": 1,
    "parent_id": null,
    "name": "Word of Mouth",
    "retired_by_id": null,
    "retired_at": null,
    "added_at": "2020-01-01T00:00:00+00:00",
    "added_by_id": 1,
    "updated_at": null,
    "updated_by_id": null,
    "sandbox": true
}

Retrieves a specific LeadSource object.

HTTP Request

GET /leadsources/(leadsource)

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:

LedgerEntry

The LedgerEntry object

The LedgerEntry object looks like this in JSON:

{
    "object": "ledger_entry",
    "id": 19,
    "transaction_id": 9,
    "direction": "credit",
    "account_id": 2,
    "actor_type": "person",
    "actor_id": 1,
    "debit": 0,
    "credit": 1234.56,
    "invoice_item_id": null,
    "fund_id": null,
    "is_deposit": false,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
transaction_id Yes int
direction Yes enum (debit, credit)
account_id Yes int
actor_type Yes enum (person, contact_org, asset, liability)
actor_id Yes int
debit Yes decimal
credit Yes decimal
invoice_item_id No int
fund_id No int
is_deposit Yes bool
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/ledgerentries" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"account","value":123,"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/ledgerentries',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/ledgerentries',
 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/ledgerentries"), 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/ledgerentries');
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": 0,
    "results": 0,
    "results_per_page": 200,
    "pages": 0,
    "page": 0,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Retrieves all LedgerEntry objects that match given filter conditions.

HTTP Request

GET /ledgerentries

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
time_period date_period
account financial_accounts
debit decimal
credit decimal
transaction_type enum
disbursement_type enum
term academic_term
degree degree
program program
transaction_number integer

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/ledgerentries/(ledgerentry)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/ledgerentries/(ledgerentry)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/ledgerentries/(ledgerentry)',
 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/ledgerentries/(ledgerentry)"), 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/ledgerentries/(ledgerentry)');
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": "ledger_entry",
    "id": 19,
    "transaction_id": 9,
    "direction": "credit",
    "account_id": 2,
    "actor_type": "person",
    "actor_id": 1,
    "debit": 0,
    "credit": 1234.56,
    "invoice_item_id": null,
    "fund_id": null,
    "is_deposit": false,
    "sandbox": true
}

Retrieves a specific LedgerEntry object.

HTTP Request

GET /ledgerentries/(ledgerentry)

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:

LessonPage

The LessonPage object

The LessonPage object looks like this in JSON:

{
    "object": "lesson_page",
    "id": 1,
    "course_lesson_id": 1,
    "name": "Page 1",
    "order_id": 1,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
course_lesson_id No int
name No text (255)
order_id Yes int
import_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/lessons/(courselesson)/pages" \
-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)/lessons/(courselesson)/pages',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/lessons/(courselesson)/pages',
 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)/lessons/(courselesson)/pages"), 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)/lessons/(courselesson)/pages');
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": "lesson_page",
            "id": 3,
            "course_lesson_id": 3,
            "name": "Page 1",
            "order_id": 1,
            "import_id": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all LessonPage objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/lessons/(courselesson)/pages

Parameters

None

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)/lessons/(courselesson)/pages/(lessonpage)" \
-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)/lessons/(courselesson)/pages/(lessonpage)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/lessons/(courselesson)/pages/(lessonpage)',
 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)/lessons/(courselesson)/pages/(lessonpage)"), 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)/lessons/(courselesson)/pages/(lessonpage)');
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": "lesson_page",
    "id": 3,
    "course_lesson_id": 3,
    "name": "Page 1",
    "order_id": 1,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific LessonPage object.

HTTP Request

GET /courseofferings/(courseoffering)/lessons/(courselesson)/pages/(lessonpage)

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:

Letter

The Letter object

The Letter object looks like this in JSON:

{
    "object": "letter",
    "id": 1,
    "sender_id": 157,
    "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Ut porttitor leo a diam sollicitudin tempor id eu nisl. Congue quisque egestas diam in arcu. Cursus vitae congue mauris rhoncus aenean. Nisi est sit amet facilisis magna. Duis convallis convallis tellus id interdum. Tellus molestie nunc non blandit massa enim nec dui. At quis risus sed vulputate odio ut enim blandit.\r\n\r\nSincerely,\r\n\r\nLorem Ipsum, ESQ",
    "print_on": "2024-02-28",
    "num_recipients": 1,
    "num_copies": 1,
    "layout_id": 1,
    "template_id": 1,
    "mailing_list_id": null,
    "communication_plan_id": 1,
    "printed_at": null,
    "printed_by_id": null,
    "added_at": "2024-02-23T20:17:06+00:00",
    "added_by_id": 157,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
sender_id Yes int
content No text
print_on No date
num_recipients Yes int
num_copies Yes int
layout_id Yes int
template_id No int
mailing_list_id No int
communication_plan_id No int
printed_at No datetime
printed_by_id No int
added_at No datetime
added_by_id No int
sandbox No --

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/letters/(letter)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/letters/(letter)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/letters/(letter)',
 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/letters/(letter)"), 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/letters/(letter)');
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": "letter",
    "id": 1,
    "sender_id": 157,
    "content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Ut porttitor leo a diam sollicitudin tempor id eu nisl. Congue quisque egestas diam in arcu. Cursus vitae congue mauris rhoncus aenean. Nisi est sit amet facilisis magna. Duis convallis convallis tellus id interdum. Tellus molestie nunc non blandit massa enim nec dui. At quis risus sed vulputate odio ut enim blandit.\r\n\r\nSincerely,\r\n\r\nLorem Ipsum, ESQ",
    "print_on": "2024-02-28",
    "num_recipients": 1,
    "num_copies": 1,
    "layout_id": 1,
    "template_id": 1,
    "mailing_list_id": null,
    "communication_plan_id": 1,
    "printed_at": null,
    "printed_by_id": null,
    "added_at": "2024-02-23T20:17:06+00:00",
    "added_by_id": 157,
    "sandbox": true
}

Retrieves a specific Letter object.

HTTP Request

GET /letters/(letter)

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:

LetterTemplate

The LetterTemplate object

The LetterTemplate object looks like this in JSON:

{
    "object": "letter_template",
    "id": 6,
    "name": "Acceptance Letter",
    "letter": "{!DATE!}\nDear {!RECIPIENT_FIRSTNAME!},Congrats!\n\nSincerely,\n\n\n\n{!SENDER_FIRSTNAME!} {!SENDER_LASTNAME!}\n{!SENDER_TITLE!}",
    "print_layout_id": 6,
    "added_at": "2010-05-07T22:54:01+00:00",
    "added_by_id": 1999,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (200)
letter Yes text
print_layout_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/lettertemplates" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/lettertemplates',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/lettertemplates',
 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/lettertemplates"), 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/lettertemplates');
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": "letter_template",
            "id": 6,
            "name": "Acceptance Letter",
            "letter": "{!DATE!}\nDear {!RECIPIENT_FIRSTNAME!},Congrats!\n\nSincerely,\n\n\n\n{!SENDER_FIRSTNAME!} {!SENDER_LASTNAME!}\n{!SENDER_TITLE!}",
            "print_layout_id": 6,
            "added_at": "2010-05-07T22:54:01+00:00",
            "added_by_id": 1999
        }
    ],
    "sandbox": true
}

Retrieves all LetterTemplate objects.

HTTP Request

GET /lettertemplates

Parameters

None

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/lettertemplates/(lettertemplate)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/lettertemplates/(lettertemplate)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/lettertemplates/(lettertemplate)',
 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/lettertemplates/(lettertemplate)"), 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/lettertemplates/(lettertemplate)');
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": "letter_template",
    "id": 6,
    "name": "Acceptance Letter",
    "letter": "{!DATE!}\nDear {!RECIPIENT_FIRSTNAME!},Congrats!\n\nSincerely,\n\n\n\n{!SENDER_FIRSTNAME!} {!SENDER_LASTNAME!}\n{!SENDER_TITLE!}",
    "print_layout_id": 6,
    "added_at": "2010-05-07T22:54:01+00:00",
    "added_by_id": 1999,
    "sandbox": true
}

Retrieves a specific LetterTemplate object.

HTTP Request

GET /lettertemplates/(lettertemplate)

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:

LibraryResource

The LibraryResource object

The LibraryResource object looks like this in JSON:

{
    "object": "library_resource",
    "id": 6,
    "resource_type_id": 11,
    "title": "Purgatorio",
    "authors": "Dante",
    "replacement_price": null,
    "lccn": null,
    "total_loans": null,
    "total_recommendations": null,
    "image_file_id": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "updated_at": "2011-02-01T19:06:08+00:00",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
resource_type_id No int
title No text (500)
authors No text (500)
replacement_price No decimal
lccn No text (50)
total_loans Yes int
total_recommendations Yes int
image_file_id No int
import_id No int
added_at No datetime
added_by_id No int
updated_at No datetime
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/libraryresources" \
-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/libraryresources',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/libraryresources',
 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/libraryresources"), 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/libraryresources');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "library_resource",
            "id": 6,
            "resource_type_id": 11,
            "title": "Purgatorio",
            "authors": "Dante",
            "replacement_price": null,
            "lccn": null,
            "total_loans": null,
            "total_recommendations": null,
            "image_file_id": null,
            "import_id": null,
            "added_at": null,
            "added_by_id": null,
            "updated_at": "2011-02-01T19:06:08+00:00",
            "report_data": {
                "copies": 0,
                "resource_type": null
            }
        }
    ],
    "sandbox": true
}

Retrieves all LibraryResource objects that match given filter conditions.

HTTP Request

GET /libraryresources

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
title text
authors text
added_at datetime
resource_copies integer
resource_type text

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/libraryresources/(libraryresource)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/libraryresources/(libraryresource)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/libraryresources/(libraryresource)',
 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/libraryresources/(libraryresource)"), 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/libraryresources/(libraryresource)');
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": "library_resource",
    "id": 6,
    "resource_type_id": 11,
    "title": "Purgatorio",
    "authors": "Dante",
    "replacement_price": null,
    "lccn": null,
    "total_loans": null,
    "total_recommendations": null,
    "image_file_id": null,
    "import_id": null,
    "added_at": null,
    "added_by_id": null,
    "updated_at": "2011-02-01T19:06:08+00:00",
    "sandbox": true
}

Retrieves a specific LibraryResource object.

HTTP Request

GET /libraryresources/(libraryresource)

Parameters

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

Expandable Properties

Link

The Link object looks like this in JSON:

{
    "object": "link",
    "id": 3,
    "owner_type": "instance",
    "owner_id": 21908,
    "name": "Professor Website",
    "description": null,
    "order_id": 1,
    "url": "https:\/\/www.example.com",
    "lti_tool_id": null,
    "status": "active",
    "import_id": null,
    "lti_resource_id": null,
    "lti_resource_tag": null,
    "cloned_from_offering_ids": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id No int
owner_type Yes enum (instance, lesson, assignment, link_list)
owner_id Yes int
name Yes text (500)
description Yes text
order_id No int
url Yes text (2100)
lti_tool_id No int
status Yes enum (active, deleted)
import_id No int
lti_resource_id No text (500)
lti_resource_tag No text (100)
cloned_from_offering_ids No text (255)
added_at No datetime
added_by_id No int
sandbox No --

index (courselesson)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links',
 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/courselessons/(courselesson)/links"), 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/courselessons/(courselesson)/links');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "link",
            "id": 1,
            "owner_type": "lesson",
            "owner_id": 1,
            "name": "SoftChalk WWII",
            "description": "blah blah",
            "order_id": 1,
            "url": "https:\/\/www.softchalkcloud.com\/scorecenter\/lti\/6geILQsDzBpFVA",
            "lti_tool_id": 1,
            "status": "active",
            "import_id": null,
            "lti_resource_id": null,
            "lti_resource_tag": null,
            "cloned_from_offering_ids": null,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all Links from a course lesson.

HTTP Request

GET /courselessons/(courselesson)/links

Parameters

None

Permissions

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

show (courselesson)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)',
 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/courselessons/(courselesson)/links/(link)"), 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/courselessons/(courselesson)/links/(link)');
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": "link",
    "id": 3,
    "owner_type": "instance",
    "owner_id": 21908,
    "name": "Professor Website",
    "description": null,
    "order_id": 1,
    "url": "https:\/\/www.example.com",
    "lti_tool_id": null,
    "status": "active",
    "import_id": null,
    "lti_resource_id": null,
    "lti_resource_tag": null,
    "cloned_from_offering_ids": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific Link from a course lesson.

HTTP Request

GET /courselessons/(courselesson)/links/(link)

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 (courselesson)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "custom_params": "{\"name1\":\"value1\",\"name2\":\"value2\"}"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)',
 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/courselessons/(courselesson)/links/(link)"), 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/courselessons/(courselesson)/links/(link)');
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": "link",
    "id": 3,
    "owner_type": "instance",
    "owner_id": 21908,
    "name": "Professor Website",
    "description": null,
    "order_id": 1,
    "url": "https:\/\/www.example.com",
    "lti_tool_id": null,
    "status": "active",
    "import_id": null,
    "lti_resource_id": null,
    "lti_resource_tag": null,
    "cloned_from_offering_ids": null,
    "custom_params": [
        {
            "object": "lti_param",
            "id": 2,
            "owner_type": "link",
            "owner_id": 3,
            "param_name": "name1",
            "param_value": "value1",
            "param_type": "resource_link",
            "added_at": "2025-04-14T23:32:13+00:00",
            "added_by_id": 22,
            "updated_at": "2025-04-14T23:32:13+00:00",
            "updated_by_id": 22
        },
        {
            "object": "lti_param",
            "id": 3,
            "owner_type": "link",
            "owner_id": 3,
            "param_name": "name2",
            "param_value": "value2",
            "param_type": "resource_link",
            "added_at": "2025-04-14T23:32:13+00:00",
            "added_by_id": 22,
            "updated_at": "2025-04-14T23:32:13+00:00",
            "updated_by_id": 22
        }
    ],
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates a specific Link in a course lesson.

HTTP Request

PUT /courselessons/(courselesson)/links/(link)

Parameters

Name Required Data Type Description
name No text (500)
url No text (2100)
custom_params No Object with key/value pairs Custom parameters for LTI links. Existing parameters will be updated if a matching parameter name is found. Any existing parameters not included in the object will be deleted.

Permissions

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

delete (courselesson)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/courselessons/(courselesson)/links/(link)',
 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/courselessons/(courselesson)/links/(link)"), 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/courselessons/(courselesson)/links/(link)');
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": "link",
    "id": 2,
    "deleted": true
}

Deletes a specific Link from a course lesson.

HTTP Request

DELETE /courselessons/(courselesson)/links/(link)

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:

index (syllabus and lessons)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links" \
-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/courseofferings/(courseoffering)/links',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links',
 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)/links"), 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)/links');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "link",
            "id": 3,
            "owner_type": "instance",
            "owner_id": 21908,
            "name": "Professor Website",
            "description": null,
            "order_id": 1,
            "url": "https:\/\/www.example.com",
            "lti_tool_id": null,
            "status": "active",
            "import_id": null,
            "lti_resource_id": null,
            "lti_resource_tag": null,
            "cloned_from_offering_ids": null,
            "custom_params": [],
            "added_at": null,
            "added_by_id": null,
            "report_data": []
        }
    ],
    "sandbox": true
}

Retrieves all Links from the course syllabus page and course lessons.

HTTP Request

GET /courseofferings/(courseoffering)/links

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
id integer
name text
url text
lti_tool_id integer
owner_id integer
owner_type text
lti_resource_id text
lti_resource_tag text
import_id integer
status text
added_at datetime
added_by integer
deleted_at datetime
deleted_by integer

Permissions

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

create (syllabus)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "name": "Author Interview",
    "url": "http:\/\/www.youtube.com\/something"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :name => 'Author Interview',
  :url => 'http://www.youtube.com/something'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'name': 'Author Interview',
  'url': 'http://www.youtube.com/something'
 }
)
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)/links"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  name = "Author Interview",
  url = "http://www.youtube.com/something"
});
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)/links');
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([
  'name' => 'Author Interview',
  'url' => 'http://www.youtube.com/something'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "link",
    "id": 4,
    "owner_type": "instance",
    "owner_id": 21908,
    "name": "Author Interview",
    "description": null,
    "order_id": null,
    "url": "http:\/\/www.youtube.com\/something",
    "lti_tool_id": null,
    "status": "active",
    "import_id": null,
    "lti_resource_id": null,
    "lti_resource_tag": null,
    "cloned_from_offering_ids": null,
    "added_at": "2025-04-14T23:32:13+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new Link on the course syllabus page.

HTTP Request

POST /courseofferings/(courseoffering)/links

Parameters

Name Required Data Type Description
name Yes text (500)
url Yes text (2100)

Permissions

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

show (syllabus)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links/(link)" \
-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)/links/(link)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links/(link)',
 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)/links/(link)"), 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)/links/(link)');
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": "link",
    "id": 3,
    "owner_type": "instance",
    "owner_id": 21908,
    "name": "Professor Website",
    "description": null,
    "order_id": 1,
    "url": "https:\/\/www.example.com",
    "lti_tool_id": null,
    "status": "active",
    "import_id": null,
    "lti_resource_id": null,
    "lti_resource_tag": null,
    "cloned_from_offering_ids": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific Link from the course syllabus page.

HTTP Request

GET /courseofferings/(courseoffering)/links/(link)

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 (syllabus)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links/(link)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "custom_params": "{\"name1\":\"value1\",\"name2\":\"value2\"}"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links/(link)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links/(link)',
 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)/links/(link)"), 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/courseofferings/(courseoffering)/links/(link)');
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": "link",
    "id": 3,
    "owner_type": "instance",
    "owner_id": 21908,
    "name": "Professor Website",
    "description": null,
    "order_id": 1,
    "url": "https:\/\/www.example.com",
    "lti_tool_id": null,
    "status": "active",
    "import_id": null,
    "lti_resource_id": null,
    "lti_resource_tag": null,
    "cloned_from_offering_ids": null,
    "custom_params": [
        {
            "object": "lti_param",
            "id": 2,
            "owner_type": "link",
            "owner_id": 3,
            "param_name": "name1",
            "param_value": "value1",
            "param_type": "resource_link",
            "added_at": "2025-04-14T23:32:13+00:00",
            "added_by_id": 22,
            "updated_at": "2025-04-14T23:32:13+00:00",
            "updated_by_id": 22
        },
        {
            "object": "lti_param",
            "id": 3,
            "owner_type": "link",
            "owner_id": 3,
            "param_name": "name2",
            "param_value": "value2",
            "param_type": "resource_link",
            "added_at": "2025-04-14T23:32:13+00:00",
            "added_by_id": 22,
            "updated_at": "2025-04-14T23:32:13+00:00",
            "updated_by_id": 22
        }
    ],
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates a Link on the course syllabus page.

HTTP Request

PUT /courseofferings/(courseoffering)/links/(link)

Parameters

Name Required Data Type Description
name No text (500)
url No text (2100)
custom_params No Object with key/value pairs Custom parameters for LTI links. Existing parameters will be updated if a matching parameter name is found. Any existing parameters not included in the object will be deleted.

Permissions

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

delete (syllabus)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links/(link)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links/(link)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/links/(link)',
 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)/links/(link)"), 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/courseofferings/(courseoffering)/links/(link)');
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": "link",
    "id": 1,
    "deleted": true
}

Deletes a Link from the course syllabus page.

HTTP Request

DELETE /courseofferings/(courseoffering)/links/(link)

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:

Localization

The Localization object

The Localization object looks like this in JSON:

{
    "object": "localization",
    "id": 1,
    "name": "Spanish",
    "country_code": null,
    "language_code": null,
    "default": false,
    "base_localization_id": 1,
    "added_at": "2022-07-13T17:43:08+00:00",
    "added_by_id": 10,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name No text (200)
country_code No char
language_code No text (20)
default No --
base_localization_id No int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/localizations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/localizations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/localizations',
 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/localizations"), 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/localizations');
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": "localization",
            "id": 1,
            "name": "Spanish",
            "country_code": null,
            "language_code": null,
            "default": false,
            "base_localization_id": 1,
            "added_at": "2022-07-13T17:43:08+00:00",
            "added_by_id": 10
        }
    ],
    "sandbox": true
}

Retrieves all Localization objects.

HTTP Request

GET /localizations

Parameters

None

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/localizations/(localization)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/localizations/(localization)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/localizations/(localization)',
 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/localizations/(localization)"), 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/localizations/(localization)');
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": "localization",
    "id": 1,
    "name": "Spanish",
    "country_code": null,
    "language_code": null,
    "default": false,
    "base_localization_id": 1,
    "added_at": "2022-07-13T17:43:08+00:00",
    "added_by_id": 10,
    "sandbox": true
}

Retrieves a specific Localization object.

HTTP Request

GET /localizations/(localization)

Parameters

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

Expandable Properties

LockArea

The LockArea object

The LockArea object looks like this in JSON:

{
    "object": "lock_area",
    "id": 1,
    "lock_type_id": 1,
    "lock_area": "grades",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
lock_type_id Yes int
lock_area Yes enum (charge_to_account, courses, grades, registration, transcript)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/lockareas" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/lockareas',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/lockareas',
 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/lockareas"), 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/lockareas');
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": 7,
    "results": 7,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "lock_area",
            "id": 1,
            "lock_type_id": 1,
            "lock_area": "grades"
        }
    ],
    "sandbox": true
}

Retrieves all LockArea objects.

HTTP Request

GET /lockareas

Parameters

None

Permissions

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

LockStudent

The LockStudent object

The LockStudent object looks like this in JSON:

{
    "object": "lock_student",
    "id": 1,
    "person_id": 2,
    "lock_type_id": 1,
    "reason": "Unpaid invoices.",
    "note": null,
    "added_at": "2022-07-13T17:58:35+00:00",
    "added_by_id": 16,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
person_id Yes int
lock_type_id Yes int
reason No text
note No text
added_at No datetime
added_by_id No int
sandbox No --

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/locks" \
-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)/locks',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/locks',
 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)/locks"), 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)/locks');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "lock_student",
            "id": 2,
            "person_id": 12,
            "lock_type_id": 1,
            "reason": "Unpaid parking tickets.",
            "note": null,
            "added_at": "2022-08-13T17:58:35+00:00",
            "added_by_id": 16
        }
    ],
    "sandbox": true
}

Retrieves all LockStudent objects tied to a specific Person.

HTTP Request

GET /people/(person)/locks

Parameters

None

Permissions

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

create_lock

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/locks/create" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "lock_type_id": "3"
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/locks/create',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :lock_type_id => '3'
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/locks/create',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'lock_type_id': '3'
 }
)
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)/locks/create"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  lock_type_id = "3"
});
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)/locks/create');
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([
  'lock_type_id' => '3'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "lock_student",
    "id": 4,
    "person_id": 12,
    "lock_type_id": 3,
    "reason": null,
    "note": null,
    "added_at": "2025-04-14T23:32:17+00:00",
    "added_by_id": 22,
    "sandbox": true
}

HTTP Request

GET /people/(person)/locks/create

Parameters

Name Required Data Type Description
lock_type_id Yes int
reason No text
note No text

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/people/(person)/locks/(lockstudent)" \
-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)/locks/(lockstudent)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/locks/(lockstudent)',
 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)/locks/(lockstudent)"), 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)/locks/(lockstudent)');
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": "lock_student",
    "id": 2,
    "person_id": 12,
    "lock_type_id": 1,
    "reason": "Unpaid parking tickets.",
    "note": null,
    "added_at": "2022-08-13T17:58:35+00:00",
    "added_by_id": 16,
    "sandbox": true
}

Retrieves a specific LockStudent object.

HTTP Request

GET /people/(person)/locks/(lockstudent)

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_lock

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/locks/(lockstudent)/update" \
-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)/locks/(lockstudent)/update',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/locks/(lockstudent)/update',
 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)/locks/(lockstudent)/update"), 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)/locks/(lockstudent)/update');
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": "lock_student",
    "id": 2,
    "person_id": 12,
    "lock_type_id": 1,
    "reason": null,
    "note": null,
    "added_at": "2022-08-13T17:58:35+00:00",
    "added_by_id": 16,
    "sandbox": true
}

Updates the lock attribute of an existing LockStudent object.

HTTP Request

PUT /people/(person)/locks/(lockstudent)/update

Parameters

Name Required Data Type Description
reason No text
note No text

Permissions

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

delete_lock

Example code to call this method:

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

HTTP Request

GET /people/(person)/locks/(lockstudent)/delete

Parameters

None

Permissions

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

LockType

The LockType object

The LockType object looks like this in JSON:

{
    "object": "lock_type",
    "id": 4,
    "name": "Courses",
    "advisor_permission": "read",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (100)
advisor_permission Yes enum (none, read, write)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/locktypes" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/locktypes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/locktypes',
 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/locktypes"), 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/locktypes');
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": [
        {
            "object": "lock_type",
            "id": 4,
            "name": "Courses",
            "advisor_permission": "read"
        }
    ],
    "sandbox": true
}

Retrieves all LockType objects.

HTTP Request

GET /locktypes

Parameters

None

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/locktypes/(locktype)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/locktypes/(locktype)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/locktypes/(locktype)',
 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/locktypes/(locktype)"), 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/locktypes/(locktype)');
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": "lock_type",
    "id": 4,
    "name": "Courses",
    "advisor_permission": "read",
    "sandbox": true
}

Retrieves a specific LockType object.

HTTP Request

GET /locktypes/(locktype)

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:

Login

The Login object

The Login object looks like this in JSON:

{
    "object": "login",
    "id": 1,
    "user_id": 33,
    "username": null,
    "outcome": "success",
    "is_partial": false,
    "server_ip": "102.18.0.7",
    "user_ip": "102.18.0.13",
    "time": "2024-07-23T21:32:23+00:00",
    "browser": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/126.0.0.0 Safari\/537.36",
    "browser_fingerprint": 3553873836,
    "type": "username_password",
    "device_id": 6,
    "user_device_id": 1,
    "fail_reason": null,
    "partial_login_reason": null,
    "timezone": "America\/Los_Angeles",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
user_id No int
username No text (100)
outcome No enum (success, fail)
is_partial Yes bool
server_ip Yes text (75)
user_ip Yes text (75)
time Yes datetime
browser No text (200)
browser_fingerprint No int
type Yes enum (username_password, sso)
device_id No int
user_device_id No int
fail_reason No enum (blocked, invalid_org, invalid_credentials, wrong_org, wrong_type)
partial_login_reason No enum (enable_two_factor, verify_two_factor, change_password, submit_form)
timezone No text (50)
sandbox No --

logins

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/logins" \
-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/logins',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/logins',
 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/logins"), 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/logins');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "login",
            "id": 1,
            "user_id": 33,
            "username": null,
            "outcome": "success",
            "is_partial": false,
            "server_ip": "102.18.0.7",
            "user_ip": "102.18.0.13",
            "time": "2024-07-23T21:32:23+00:00",
            "browser": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/126.0.0.0 Safari\/537.36",
            "browser_fingerprint": 3553873836,
            "type": "username_password",
            "device_id": 6,
            "user_device_id": 1,
            "fail_reason": null,
            "partial_login_reason": null,
            "timezone": "America\/Los_Angeles",
            "report_data": {
                "time_local": "2024-07-23 14:32:23",
                "person_name": "Bobby Booker",
                "browser_type": "",
                "os_name": "iPhone OS",
                "device_type": "PHONE",
                "user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/126.0.0.0 Safari\/537.36",
                "user_username": "bobbybooker"
            }
        }
    ],
    "sandbox": true
}

Results are limited to logins in the past 12 months. See user_username field for the User's username. The username field will only have a value for unrecognized failed logins.

HTTP Request

GET /logins

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
user search
username text
partial_login bool
outcome enum
fail_reason choice
partial_login_reason choice
type choice
ip_address text

Permissions

Only keys that have been granted Populi Account Administrator permissions may call this method.

MailingList

The MailingList object

The MailingList object looks like this in JSON:

{
    "object": "mailing_list",
    "id": 1,
    "name": "Underclassmen",
    "include_spouses": true,
    "merge_spouses": false,
    "include_org_members": false,
    "include_orgs": false,
    "added_by_name": "Elizabeth Fox",
    "added_at": "2020-01-05T00:20:21+00:00",
    "added_by_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
include_spouses Yes bool
merge_spouses Yes bool
include_org_members Yes bool
include_orgs Yes bool
added_by_name No text
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/mailinglists" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/mailinglists',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/mailinglists',
 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/mailinglists"), 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/mailinglists');
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": "mailing_list",
            "id": 1,
            "name": "Underclassmen",
            "include_spouses": true,
            "merge_spouses": false,
            "include_org_members": false,
            "include_orgs": false,
            "added_by_name": "Elizabeth Fox",
            "added_at": "2020-01-05T00:20:21+00:00",
            "added_by_id": 1
        }
    ],
    "sandbox": true
}

Retrieves all MailingList objects.

HTTP Request

GET /mailinglists

Parameters

None

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/mailinglists/(mailinglist)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/mailinglists/(mailinglist)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/mailinglists/(mailinglist)',
 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/mailinglists/(mailinglist)"), 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/mailinglists/(mailinglist)');
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": "mailing_list",
    "id": 1,
    "name": "Underclassmen",
    "include_spouses": true,
    "merge_spouses": false,
    "include_org_members": false,
    "include_orgs": false,
    "added_by_name": "Elizabeth Fox",
    "added_at": "2020-01-05T00:20:21+00:00",
    "added_by_id": 1,
    "sandbox": true
}

Retrieves a specific MailingList object.

HTTP Request

GET /mailinglists/(mailinglist)

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:

MealPlan

The MealPlan object

The MealPlan object looks like this in JSON:

{
    "object": "meal_plan",
    "id": 1,
    "name": "Gold",
    "amount": 1500,
    "status": "active",
    "external_account_id": 1,
    "account_id": 1,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (100)
amount Yes decimal
status Yes enum (active, retired, deleted)
external_account_id Yes int
account_id Yes int
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/mealplans" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/mealplans',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/mealplans',
 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/mealplans"), 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/mealplans');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "meal_plan",
            "id": 1,
            "name": "Gold",
            "amount": 1500,
            "status": "active",
            "external_account_id": 1,
            "account_id": 1,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all MealPlan objects.

HTTP Request

GET /mealplans

Parameters

None

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/mealplans/(mealplan)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/mealplans/(mealplan)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/mealplans/(mealplan)',
 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/mealplans/(mealplan)"), 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/mealplans/(mealplan)');
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": "meal_plan",
    "id": 1,
    "name": "Gold",
    "amount": 1500,
    "status": "active",
    "external_account_id": 1,
    "account_id": 1,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific MealPlan object.

HTTP Request

GET /mealplans/(mealplan)

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:

MealPlanStudent

The MealPlanStudent object

The MealPlanStudent object looks like this in JSON:

{
    "object": "meal_plan_student",
    "id": 6,
    "term_id": 73,
    "student_id": 61,
    "plan_id": 1,
    "amount": 1500,
    "adjustment": 0,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
term_id Yes int
student_id Yes int
plan_id Yes int
amount Yes decimal
adjustment Yes decimal
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/mealplans" \
-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)/mealplans',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/mealplans',
 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)/mealplans"), 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)/mealplans');
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": "meal_plan_student",
            "id": 8,
            "term_id": 7,
            "student_id": 12,
            "plan_id": 2,
            "amount": 1500,
            "adjustment": 0,
            "meal_plan": {
                "object": "meal_plan",
                "id": 2,
                "name": "Silver",
                "amount": 1255.55,
                "status": "active",
                "external_account_id": 1,
                "account_id": 1,
                "added_at": null,
                "added_by_id": null
            },
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all MealPlanStudent objects tied to a specific Person.

HTTP Request

GET /people/(person)/mealplans

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

Example response:

{
    "object": "meal_plan_student",
    "id": 183,
    "term_id": 8,
    "student_id": 12,
    "plan_id": 1,
    "amount": 0,
    "adjustment": 0,
    "meal_plan": {
        "object": "meal_plan",
        "id": 1,
        "name": "Gold",
        "amount": 1500,
        "status": "active",
        "external_account_id": 1,
        "account_id": 1,
        "added_at": null,
        "added_by_id": null
    },
    "added_at": "2025-04-14T23:32:18+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new MealPlanStudent object.

HTTP Request

POST /people/(person)/mealplans

Parameters

Name Required Data Type Description
academic_term_id Yes int
meal_plan_id Yes int

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/people/(person)/mealplans/(mealplanstudent)" \
-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)/mealplans/(mealplanstudent)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/mealplans/(mealplanstudent)',
 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)/mealplans/(mealplanstudent)"), 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)/mealplans/(mealplanstudent)');
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": "meal_plan_student",
    "id": 7,
    "term_id": 8,
    "student_id": 16,
    "plan_id": 1,
    "amount": 1500,
    "adjustment": 0,
    "meal_plan": {
        "object": "meal_plan",
        "id": 1,
        "name": "Gold",
        "amount": 1500,
        "status": "active",
        "external_account_id": 1,
        "account_id": 1,
        "added_at": null,
        "added_by_id": null
    },
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific MealPlanStudent object.

HTTP Request

GET /people/(person)/mealplans/(mealplanstudent)

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)/mealplans/(mealplanstudent)" \
-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)/mealplans/(mealplanstudent)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/mealplans/(mealplanstudent)',
 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)/mealplans/(mealplanstudent)"), 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)/mealplans/(mealplanstudent)');
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": "meal_plan_student",
    "id": 7,
    "term_id": 8,
    "student_id": 16,
    "plan_id": 1,
    "amount": 0,
    "adjustment": 0,
    "meal_plan": {
        "object": "meal_plan",
        "id": 1,
        "name": "Gold",
        "amount": 1500,
        "status": "active",
        "external_account_id": 1,
        "account_id": 1,
        "added_at": null,
        "added_by_id": null
    },
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates an existing MealPlanStudent object.

HTTP Request

PUT /people/(person)/mealplans/(mealplanstudent)

Parameters

Name Required Data Type Description
meal_plan_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)/mealplans/(mealplanstudent)" \
-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)/mealplans/(mealplanstudent)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/mealplans/(mealplanstudent)',
 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)/mealplans/(mealplanstudent)"), 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)/mealplans/(mealplanstudent)');
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": "meal_plan_student",
    "id": 7,
    "deleted": true
}

Deletes an existing MealPlanStudent object.

HTTP Request

DELETE /people/(person)/mealplans/(mealplanstudent)

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:

News

The News object

The News object looks like this in JSON:

{
    "object": "news",
    "id": 8,
    "title": "New Coffee Shop",
    "content": "Check out the new coffee shop in the lobby of the school admin building!",
    "publish": true,
    "publish_time": "2008-01-29T01:08:56+00:00",
    "pin": false,
    "pin_until": null,
    "allow_comments": true,
    "visibility": "all",
    "added_at": "2008-01-29T01:08:56+00:00",
    "added_by_id": 16,
    "updated_at": "2008-02-13T21:57:06+00:00",
    "updated_by_id": 16,
    "sandbox": true
}
Attribute Required Data Type
id No int
title Yes text (200)
content Yes text
publish No bool
publish_time No datetime
pin No bool
pin_until No date
allow_comments Yes bool
visibility Yes enum (all, select)
added_at Yes datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/news" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"posted_by","value":{"display_text":"Blah","id":"123"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/news',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/news',
 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/news"), 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/news');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "news",
            "id": 8,
            "title": "New Coffee Shop",
            "content": "Check out the new coffee shop in the lobby of the school admin building!",
            "publish": true,
            "publish_time": "2008-01-29T01:08:56+00:00",
            "pin": false,
            "pin_until": null,
            "allow_comments": true,
            "visibility": "all",
            "added_at": "2008-01-29T01:08:56+00:00",
            "added_by_id": 16,
            "updated_at": "2008-02-13T21:57:06+00:00",
            "updated_by_id": 16,
            "report_data": {
                "author_name": "Abby Admin",
                "campus_names": null
            }
        }
    ],
    "sandbox": true
}

Retrieves all News objects that match given filter conditions.

HTTP Request

GET /news

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
title text
publish bool
publish_time datetime
pin bool
pin_until date
allow_comments bool
posted_time datetime
posted_by search

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/news/(news)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/news/(news)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/news/(news)',
 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/news/(news)"), 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/news/(news)');
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": "news",
    "id": 8,
    "title": "New Coffee Shop",
    "content": "Check out the new coffee shop in the lobby of the school admin building!",
    "publish": true,
    "publish_time": "2008-01-29T01:08:56+00:00",
    "pin": false,
    "pin_until": null,
    "allow_comments": true,
    "visibility": "all",
    "added_at": "2008-01-29T01:08:56+00:00",
    "added_by_id": 16,
    "updated_at": "2008-02-13T21:57:06+00:00",
    "updated_by_id": 16,
    "sandbox": true
}

Retrieves a specific News object.

HTTP Request

GET /news/(news)

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:

Note

The Note object

The Note object looks like this in JSON:

{
    "object": "note",
    "id": 14,
    "owner_type": "person",
    "owner_id": 1,
    "content": "They said on the phone they are deferring their enrollment.",
    "hidden": false,
    "added_at": "2018-01-30T00:04:04+00:00",
    "added_by_id": 2,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
owner_type Yes enum (person, course, assignment, student, contact_org, contact, transaction, ledger_entry, todo, roster, bookstore_order, aid_year_award, room, transcript)
owner_id Yes int
content Yes text
hidden No bool
added_at Yes datetime
added_by_id No int
sandbox No --

index (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/notes" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/notes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/notes',
 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/organizations/(organization)/notes"), 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/organizations/(organization)/notes');
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": "note",
            "id": 16,
            "owner_type": "contact_org",
            "owner_id": 1,
            "content": "Has 5 internship slots open for this summer.",
            "hidden": false,
            "added_at": "2020-01-30T00:04:04+00:00",
            "added_by_id": 2
        }
    ],
    "sandbox": true
}

Retrieves all Note objects tied to a specific Organization.

HTTP Request

GET /organizations/(organization)/notes

Parameters

None

Expandable Properties

create (organization)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)/notes" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "note": "blah blah",
    "is_private": "1",
    "visibility_role_ids": "[7, 13, 14]"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/notes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :note => 'blah blah',
  :visibility_role_ids => '[7, 13, 14]'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/organizations/(organization)/notes',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'note': 'blah blah',
  'visibility_role_ids': '[7, 13, 14]'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/notes"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  note = "blah blah",
  visibility_role_ids = "[7, 13, 14]"
});
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/organizations/(organization)/notes');
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([
  'note' => 'blah blah',
  'visibility_role_ids' => '[7, 13, 14]'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

"Example response not available."

Creates a new Note object.

HTTP Request

POST /organizations/(organization)/notes

Parameters

Name Required Data Type Description
note Yes text
is_private No bool
visibility_role_ids Yes array of Role ids
is_flagged No bool

You can optionally include a file upload with this route. Use a form post parameter called "file". Read about request and response format to see how parameters need to be specified differently when there is a file upload.

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/notes" \
-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)/notes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/notes',
 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)/notes"), 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)/notes');
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": "note",
            "id": 15,
            "owner_type": "person",
            "owner_id": 12,
            "content": "Called and set up a school tour.",
            "hidden": false,
            "added_at": "2020-01-30T00:04:04+00:00",
            "added_by_id": 2
        }
    ],
    "sandbox": true
}

Retrieves all Note objects tied to a specific Person.

HTTP Request

GET /people/(person)/notes

Parameters

None

Expandable Properties

create (person)

Example code to call this method:

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

Example response:

{
    "object": "note",
    "id": 17,
    "owner_type": "person",
    "owner_id": 12,
    "content": "blah blah",
    "hidden": false,
    "added_at": "2025-04-14T23:32:13+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new Note object.

HTTP Request

POST /people/(person)/notes

Parameters

Name Required Data Type Description
note Yes text
is_private No bool
visibility_role_ids No array of Role ids Default is [4]
is_flagged No bool

You can optionally include a file upload with this route. Use a form post parameter called "file". Read about request and response format to see how parameters need to be specified differently when there is a file upload.

Occupation

The Occupation object

The Occupation object looks like this in JSON:

{
    "object": "occupation",
    "id": 1,
    "soc_code": "11-1011",
    "name": "Chief Executives",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
soc_code No text (10)
name No text (255)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/occupations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/occupations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/occupations',
 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/occupations"), 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/occupations');
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": "occupation",
            "id": 1,
            "soc_code": "11-1011",
            "name": "Chief Executives"
        }
    ],
    "sandbox": true
}

Retrieves all Occupation objects.

HTTP Request

GET /occupations

Parameters

None

Permissions

Any role may call this method.

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/occupations/(occupation)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/occupations/(occupation)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/occupations/(occupation)',
 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/occupations/(occupation)"), 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/occupations/(occupation)');
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": "occupation",
    "id": 1,
    "soc_code": "11-1011",
    "name": "Chief Executives",
    "sandbox": true
}

Retrieves a specific Occupation object.

HTTP Request

GET /occupations/(occupation)

Parameters

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

Permissions

Any role may call this method.

OnlinePayment

The OnlinePayment object

The OnlinePayment object looks like this in JSON:

{
    "object": "online_payment",
    "id": 6,
    "status": "construction",
    "type": "credit_card",
    "link_type": null,
    "link_id": null,
    "person_id": null,
    "amount": 0,
    "net_amount": null,
    "preset_amount": null,
    "first_name": "Jon",
    "last_name": "Doe",
    "street": "1000 1st Av",
    "city": "Moscow",
    "state": "ID",
    "postal": "10101",
    "country": "US",
    "email": "jon@hotmail.org",
    "phone": "777-888-7777",
    "cc_status": null,
    "cc_last_digits": "1111",
    "cc_bin": null,
    "cc_is_international": false,
    "cc_expiration_month": 2,
    "cc_expiration_year": 2010,
    "cc_transaction_id": "A050B0F28A084EF1B9E445D2792A85B6",
    "cc_approval_code": "17360",
    "cc_processing_fee": null,
    "cc_status_code": "APPROVED",
    "cc_status_msg": "APPROVED",
    "bank_name": null,
    "bank_account_last_four": null,
    "last_settlement_check_at": null,
    "ach_status": null,
    "ach_return_id": null,
    "ach_settled_response": null,
    "ach_return_message": null,
    "ach_transaction_id": null,
    "paypal_order_id": null,
    "paypal_payer_id": null,
    "paypal_authorization_id": null,
    "paypal_status": null,
    "reference_number": null,
    "organization_name": null,
    "payment_gateway_id": null,
    "payment_gateway_processing_fee": null,
    "gateway_customer_token": null,
    "gateway_source_token": null,
    "payment_frequency": null,
    "recurring_interval": null,
    "recurring_day": false,
    "recurring_until": null,
    "recurring_max_times": null,
    "recurring_money_transfer_id": null,
    "comment": null,
    "donate_page_id": null,
    "donation_campaign_id": null,
    "donation_appeal_id": null,
    "draft_date_id": null,
    "back_url": null,
    "payment_secret": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
status Yes enum (construction, checkout, payment, processing, complete, error)
type Yes enum (credit_card, ach, paypal, charge_to_account)
link_type No enum (payment, donation, application, bookstore_order, course_order, transcript_request, form_response, recurring_money_transfer, populi_client)
link_id No int
person_id No int
amount Yes decimal
net_amount No decimal
preset_amount No decimal
first_name No text (75)
last_name No text (75)
street No text (150)
city No text (100)
state No text (50)
postal No text (50)
country No text (50)
email No text (75)
phone No text (50)
cc_status No enum (authorized, captured, error, refunded, initialized, setup_complete)
cc_last_digits No char
cc_bin No char
cc_is_international Yes bool
cc_expiration_month No int
cc_expiration_year No int
cc_transaction_id No text (300)
cc_approval_code No text (50)
cc_processing_fee No decimal
cc_status_code No text (50)
cc_status_msg No text (300)
bank_name No text (200)
bank_account_last_four No char
last_settlement_check_at No datetime
ach_status No enum (pending, settled, error, initialized, setup_complete)
ach_return_id No text (200)
ach_settled_response No text (5000)
ach_return_message No text (500)
ach_transaction_id No text (200)
paypal_order_id No text (128)
paypal_payer_id No text (128)
paypal_authorization_id No text (128)
paypal_status No enum (initialized, authorized, captured, error, refunded)
reference_number No text (100)
organization_name No text
payment_gateway_id No int
payment_gateway_processing_fee No decimal
gateway_customer_token No text (100)
gateway_source_token No text (100)
payment_frequency No enum (single, intverval, plan)
recurring_interval No enum (1_week, 2_week, 4_week, 1_month, 3_month, 12_month)
recurring_day No bool
recurring_until No enum (forever, max_times)
recurring_max_times No int
recurring_money_transfer_id No int
comment No text
donate_page_id No int
donation_campaign_id No int
donation_appeal_id No int
draft_date_id No int
back_url No text (1000)
payment_secret No text (100)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/onlinepayments" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"amount","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/onlinepayments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/onlinepayments',
 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/onlinepayments"), 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/onlinepayments');
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": 0,
    "results": 0,
    "results_per_page": 200,
    "pages": 0,
    "page": 0,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Retrieves all OnlinePayment objects that match given filter conditions.

HTTP Request

GET /onlinepayments

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
created date
link_type choice
type enum
status text
gateway object id
payer_account text
first_name text
last_name text
email text
phone text
processing_fee decimal
convenience_fee decimal
amount decimal

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/onlinepayments/(onlinepayment)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/onlinepayments/(onlinepayment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/onlinepayments/(onlinepayment)',
 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/onlinepayments/(onlinepayment)"), 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/onlinepayments/(onlinepayment)');
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": "online_payment",
    "id": 6,
    "status": "construction",
    "type": "credit_card",
    "link_type": null,
    "link_id": null,
    "person_id": null,
    "amount": 0,
    "net_amount": null,
    "preset_amount": null,
    "first_name": "Jon",
    "last_name": "Doe",
    "street": "1000 1st Av",
    "city": "Moscow",
    "state": "ID",
    "postal": "10101",
    "country": "US",
    "email": "jon@hotmail.org",
    "phone": "777-888-7777",
    "cc_status": null,
    "cc_last_digits": "1111",
    "cc_bin": null,
    "cc_is_international": false,
    "cc_expiration_month": 2,
    "cc_expiration_year": 2010,
    "cc_transaction_id": "A050B0F28A084EF1B9E445D2792A85B6",
    "cc_approval_code": "17360",
    "cc_processing_fee": null,
    "cc_status_code": "APPROVED",
    "cc_status_msg": "APPROVED",
    "bank_name": null,
    "bank_account_last_four": null,
    "last_settlement_check_at": null,
    "ach_status": null,
    "ach_return_id": null,
    "ach_settled_response": null,
    "ach_return_message": null,
    "ach_transaction_id": null,
    "paypal_order_id": null,
    "paypal_payer_id": null,
    "paypal_authorization_id": null,
    "paypal_status": null,
    "reference_number": null,
    "organization_name": null,
    "payment_gateway_id": null,
    "payment_gateway_processing_fee": null,
    "gateway_customer_token": null,
    "gateway_source_token": null,
    "payment_frequency": null,
    "recurring_interval": null,
    "recurring_day": false,
    "recurring_until": null,
    "recurring_max_times": null,
    "recurring_money_transfer_id": null,
    "comment": null,
    "donate_page_id": null,
    "donation_campaign_id": null,
    "donation_appeal_id": null,
    "draft_date_id": null,
    "back_url": null,
    "payment_secret": null,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific OnlinePayment object.

HTTP Request

GET /onlinepayments/(onlinepayment)

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:

Organization

The Organization object

The Organization object looks like this in JSON:

{
    "object": "organization",
    "id": 1,
    "name": "The Oxford School",
    "website": "https:\/\/www.wikipedia.org",
    "image_file_id": null,
    "industry_id": null,
    "ceeb_code": null,
    "info_changed_at": null,
    "added_at": null,
    "added_by_id": null,
    "type": "College",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (255)
website No text (150)
image_file_id No int
industry_id No int
ceeb_code No int
info_changed_at No datetime
added_at No datetime
added_by_id No int
type No text
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"tag","value":{"display_text":"Blah","id":"123"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations',
 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/organizations"), 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/organizations');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "organization",
            "id": 4,
            "name": "Art Academy",
            "website": "https:\/\/www.yahoo.com",
            "image_file_id": null,
            "industry_id": null,
            "ceeb_code": null,
            "info_changed_at": null,
            "added_at": null,
            "added_by_id": null,
            "report_data": {
                "type_name": "College",
                "primary_address_id": null,
                "primary_address_street": null,
                "primary_address_city": null,
                "primary_address_state": null,
                "primary_address_zip": null,
                "primary_address_country": null,
                "primary_address_type": null,
                "primary_address_public": null,
                "contact_primary_email": null,
                "contact_primary_phone": null,
                "member_count": 1
            },
            "type": "College"
        }
    ],
    "sandbox": true
}

Retrieves all Organization objects that match given filter conditions.

HTTP Request

GET /organizations

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
address address
custom_field custom
email email
has_profile_picture bool
name text
phone phone
tag tag
type object id
website website
members integer
added_at datetime

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

Example response:

{
    "object": "organization",
    "id": 5,
    "name": "Forest Academy",
    "website": null,
    "image_file_id": null,
    "industry_id": null,
    "ceeb_code": null,
    "info_changed_at": null,
    "added_at": "2025-04-14T23:32:15+00:00",
    "added_by_id": 22,
    "type": null,
    "sandbox": true
}

Creates a new Organization object.

HTTP Request

POST /organizations

Parameters

Name Required Data Type Description
name Yes text (255)
organization_type_id No int

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/organizations/(organization)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizations/(organization)',
 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/organizations/(organization)"), 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/organizations/(organization)');
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": "organization",
    "id": 1,
    "name": "The Oxford School",
    "website": "https:\/\/www.wikipedia.org",
    "image_file_id": null,
    "industry_id": null,
    "ceeb_code": null,
    "info_changed_at": null,
    "added_at": null,
    "added_by_id": null,
    "type": "College",
    "sandbox": true
}

Retrieves a specific Organization object.

HTTP Request

GET /organizations/(organization)

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

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizations/(organization)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/organizations/(organization)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/organizations/(organization)',
 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/organizations/(organization)"), 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/organizations/(organization)');
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": "organization",
    "id": 1,
    "name": "The Oxford School",
    "website": "https:\/\/www.wikipedia.org",
    "image_file_id": null,
    "industry_id": null,
    "ceeb_code": null,
    "info_changed_at": null,
    "added_at": null,
    "added_by_id": null,
    "type": "College",
    "sandbox": true
}

Updates an existing Organization object.

HTTP Request

PUT /organizations/(organization)

Parameters

Name Required Data Type Description
name No text (255)
organization_type_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/organizations/(organization)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X DELETE
require 'httparty'
response = HTTParty.delete(
 'https://yourschool.populiweb.com/api2/organizations/(organization)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/organizations/(organization)',
 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/organizations/(organization)"), 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/organizations/(organization)');
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": "organization",
    "id": 5,
    "deleted": true
}

Deletes an existing Organization object.

HTTP Request

DELETE /organizations/(organization)

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:

OrganizationDomain

The OrganizationDomain object

The OrganizationDomain object looks like this in JSON:

{
    "object": "organization_domain",
    "id": 1,
    "domain": "nsa.edu",
    "primary": true,
    "for_usernames": true,
    "dmarc_enabled": false,
    "spf_verified": false,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
domain Yes text (100)
primary No --
for_usernames Yes bool
dmarc_enabled Yes bool
spf_verified Yes bool
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizationdomains" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizationdomains',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizationdomains',
 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/organizationdomains"), 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/organizationdomains');
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": "organization_domain",
            "id": 1,
            "domain": "nsa.edu",
            "primary": true,
            "for_usernames": true,
            "dmarc_enabled": false,
            "spf_verified": false,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all OrganizationDomain objects.

HTTP Request

GET /organizationdomains

Parameters

None

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizationdomains/(organizationdomain)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizationdomains/(organizationdomain)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizationdomains/(organizationdomain)',
 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/organizationdomains/(organizationdomain)"), 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/organizationdomains/(organizationdomain)');
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": "organization_domain",
    "id": 1,
    "domain": "nsa.edu",
    "primary": true,
    "for_usernames": true,
    "dmarc_enabled": false,
    "spf_verified": false,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific OrganizationDomain object.

HTTP Request

GET /organizationdomains/(organizationdomain)

Parameters

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

OrganizationMember

The OrganizationMember object

The OrganizationMember object looks like this in JSON:

{
    "object": "organization_member",
    "id": 5,
    "organization_id": 1,
    "person_id": 8,
    "type": "member",
    "title": null,
    "start_date": null,
    "end_date": null,
    "occupation_id": null,
    "full_time": true,
    "hours_worked": null,
    "salary": null,
    "reported_on": null,
    "primary": false,
    "is_private": false,
    "show_on_transcript": false,
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
organization_id No int
person_id Yes int
type Yes enum (job, field_of_study, member)
title No text (255)
start_date No date
end_date No date
occupation_id No int
full_time Yes bool
hours_worked No int
salary No int
reported_on No date
primary No bool
is_private Yes bool
show_on_transcript Yes bool
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/organizations" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "organization_id": 1,
    "type": "JOB"
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/organizations',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/organizations',
 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)/organizations"), 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)/organizations');
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": 0,
    "results": 0,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Retrieves all OrganizationMember objects tied to a specific Person.

HTTP Request

GET /people/(person)/organizations

Parameters

Name Required Data Type Description
organization_id No int
type No enum (job, field_of_study, member)

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

Example response:

{
    "object": "organization_member",
    "id": 9,
    "organization_id": 1,
    "person_id": 12,
    "type": "job",
    "title": null,
    "start_date": null,
    "end_date": null,
    "occupation_id": null,
    "full_time": false,
    "hours_worked": null,
    "salary": null,
    "reported_on": "2025-04-14",
    "primary": true,
    "is_private": false,
    "show_on_transcript": true,
    "contact_organization": {
        "object": "organization",
        "id": 1,
        "name": "The Oxford School",
        "website": "https:\/\/www.wikipedia.org",
        "image_file_id": null,
        "industry_id": null,
        "ceeb_code": null,
        "info_changed_at": "2025-04-14T23:32:16-0700",
        "added_at": null,
        "added_by_id": null,
        "type": "College"
    },
    "added_at": "2025-04-14T23:32:17+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new OrganizationMember object.

HTTP Request

POST /people/(person)/organizations

Parameters

Name Required Data Type Description
organization_id Yes int
type Yes enum (job, field_of_study, member)
primary No bool
full_time No bool
show_on_transcript No bool
is_private No bool
title No text (255)
start_date No date
end_date No date
occupation_id No int
hours_worked No int
salary No int

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/people/(person)/organizations/(organizationmember)" \
-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)/organizations/(organizationmember)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/organizations/(organizationmember)',
 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)/organizations/(organizationmember)"), 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)/organizations/(organizationmember)');
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": "organization_member",
    "id": 6,
    "organization_id": 4,
    "person_id": 12,
    "type": "member",
    "title": null,
    "start_date": null,
    "end_date": null,
    "occupation_id": null,
    "full_time": true,
    "hours_worked": null,
    "salary": null,
    "reported_on": null,
    "primary": false,
    "is_private": false,
    "show_on_transcript": false,
    "contact_organization": {
        "object": "organization",
        "id": 4,
        "name": "Art Academy",
        "website": "https:\/\/www.yahoo.com",
        "image_file_id": null,
        "industry_id": null,
        "ceeb_code": null,
        "info_changed_at": null,
        "added_at": null,
        "added_by_id": null,
        "type": "College"
    },
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific OrganizationMember object.

HTTP Request

GET /people/(person)/organizations/(organizationmember)

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)/organizations/(organizationmember)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "organization_id": 4
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/people/(person)/organizations/(organizationmember)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/organizations/(organizationmember)',
 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)/organizations/(organizationmember)"), 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)/organizations/(organizationmember)');
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": "organization_member",
    "id": 6,
    "organization_id": 4,
    "person_id": 12,
    "type": "member",
    "title": null,
    "start_date": null,
    "end_date": null,
    "occupation_id": null,
    "full_time": true,
    "hours_worked": null,
    "salary": null,
    "reported_on": null,
    "primary": false,
    "is_private": false,
    "show_on_transcript": false,
    "contact_organization": {
        "object": "organization",
        "id": 4,
        "name": "Art Academy",
        "website": "https:\/\/www.yahoo.com",
        "image_file_id": null,
        "industry_id": null,
        "ceeb_code": null,
        "info_changed_at": null,
        "added_at": null,
        "added_by_id": null,
        "type": "College"
    },
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}

Updates an existing OrganizationMember object.

HTTP Request

PUT /people/(person)/organizations/(organizationmember)

Parameters

Name Required Data Type Description
organization_id No int
type No enum (job, field_of_study, member)
primary No bool
full_time No bool
show_on_transcript No bool
is_private No bool
title No text (255)
start_date No date
end_date No date
occupation_id No int
hours_worked No int
salary 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)/organizations/(organizationmember)" \
-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)/organizations/(organizationmember)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/organizations/(organizationmember)',
 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)/organizations/(organizationmember)"), 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)/organizations/(organizationmember)');
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": "organization_member",
    "id": 6,
    "deleted": true
}

Deletes an existing OrganizationMember object.

HTTP Request

DELETE /people/(person)/organizations/(organizationmember)

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:

OrganizationType

The OrganizationType object

The OrganizationType object looks like this in JSON:

{
    "object": "organization_type",
    "id": 3,
    "name": "Business",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (50)
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/organizationtypes" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizationtypes',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizationtypes',
 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/organizationtypes"), 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/organizationtypes');
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": 6,
    "results": 6,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "organization_type",
            "id": 3,
            "name": "Business"
        }
    ],
    "sandbox": true
}

Retrieves all OrganizationType objects.

HTTP Request

GET /organizationtypes

Parameters

None

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/organizationtypes/(organizationtype)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/organizationtypes/(organizationtype)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/organizationtypes/(organizationtype)',
 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/organizationtypes/(organizationtype)"), 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/organizationtypes/(organizationtype)');
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": "organization_type",
    "id": 3,
    "name": "Business",
    "sandbox": true
}

Retrieves a specific OrganizationType object.

HTTP Request

GET /organizationtypes/(organizationtype)

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:

Payment

The Payment object

The Payment object looks like this in JSON:

{
    "object": "payment",
    "id": 5,
    "student_id": 1,
    "transaction_id": 21,
    "number": 1,
    "amount": 100,
    "online_payment_id": null,
    "convenience_fee_amount": 0,
    "paid_by_type": "person",
    "paid_by_id": 2,
    "aid_type_id": null,
    "refund_source": null,
    "reference_number": null,
    "receipt_number": "ce9e16ad2e",
    "amount_available": 100,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "recurring_money_transfer_id": null,
    "aid_disbursement_id": null,
    "treat_as_aid": false,
    "organization_name": null,
    "method": "other",
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id No int
transaction_id Yes int
number No int
amount Yes decimal
online_payment_id No int
convenience_fee_amount Yes decimal
paid_by_type Yes enum (person, org, aid_provider)
paid_by_id Yes int
aid_type_id No int
refund_source No enum (all, payments_credits, all_aid, federal_aid, non_federal_aid, aid_type)
reference_number Yes text (100)
receipt_number No text (50)
amount_available Yes decimal
currency No text (3)
exchange_rate No decimal
home_currency_amount Yes decimal
recurring_money_transfer_id No int
aid_disbursement_id No int
treat_as_aid Yes bool
organization_name No text
method No text
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/payments" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "start_date": "2022-01-05",
    "end_date": "2023-02-06",
    "filter": {"0":{"logic":"ALL","fields":[{"name":"amount","value":{"type":"RANGE","start":"10.5","end":"900.15"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/payments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :start_date => '2022-01-05',
  :end_date => '2023-02-06'
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/payments',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 }
 json={
  'start_date': '2022-01-05',
  'end_date': '2023-02-06'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/payments"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  start_date = "2022-01-05",
  end_date = "2023-02-06"
});
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/payments');
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([
  'start_date' => '2022-01-05',
  'end_date' => '2023-02-06'
]));
$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": "person",
            "id": 12,
            "first_name": "Alice",
            "last_name": "Admin",
            "middle_name": "",
            "prefix": "Mrs.",
            "suffix": null,
            "preferred_name": null,
            "display_name": "Alice 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": 22,
            "updated_at": "2025-04-14T23:32:14+00:00",
            "report_data": {
                "paymentid": 100,
                "payer_type": "PERSON",
                "payment_number": 1,
                "payerid": 12,
                "payment_method": "CHECK",
                "posted_date": "2022-10-24",
                "amount": "600.00",
                "payment_type": "PAYMENT",
                "org_name": null,
                "transactionid": 100,
                "transaction_number": 1,
                "online_payment_name": null,
                "online_payment_street": null,
                "online_payment_city": null,
                "online_payment_state": null,
                "online_payment_postal": null,
                "online_payment_country": null,
                "payment_time": "2025-04-14 16:32:14",
                "online": 0,
                "online_payment_id": null,
                "reference_number": "",
                "receipt_number": "67fd9afe6d5f8",
                "owner_type": "PERSON",
                "ownerid": 12,
                "payer_name": "Alice Admin",
                "treat_as_aid": 0,
                "convenience_fee_amount": "0.00",
                "echeck_status": null,
                "check_id": null,
                "check_number": null
            },
            "private_profile": false,
            "is_user": true
        }
    ],
    "sandbox": true
}

Retrieves all Payment objects that match given filter conditions. This report requires a start and end posted date range.

HTTP Request

GET /payments

Parameters

Name Required Data Type Description
start_date Yes date
end_date Yes date
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
is_aid_payment bool
payment_type choice
payer_type choice
payer_name text
is_third_party_aid bool
method choice
is_online_payment bool
amount decimal
currency currency
student_tag tag
student_campus campus
student_custom_field custom

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/payments/(payment)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/payments/(payment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/payments/(payment)',
 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/payments/(payment)"), 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/payments/(payment)');
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": "payment",
    "id": 5,
    "student_id": 1,
    "transaction_id": 21,
    "number": 1,
    "amount": 100,
    "online_payment_id": null,
    "convenience_fee_amount": 0,
    "paid_by_type": "person",
    "paid_by_id": 2,
    "aid_type_id": null,
    "refund_source": null,
    "reference_number": null,
    "receipt_number": "ce9e16ad2e",
    "amount_available": 100,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "recurring_money_transfer_id": null,
    "aid_disbursement_id": null,
    "treat_as_aid": false,
    "organization_name": null,
    "method": "other",
    "sandbox": true
}

Retrieves a specific Payment object.

HTTP Request

GET /payments/(payment)

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:

recurring

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/payments/recurring" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"payer_name","value":{"type":"CONTAINS","text":"blah"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/payments/recurring',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/payments/recurring',
 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/payments/recurring"), 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/payments/recurring');
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": "recurring_money_transfer",
            "id": 1,
            "type": "payment",
            "donor_id": 1,
            "student_id": null,
            "payer_type": null,
            "payer_id": null,
            "payment_plan_student_id": null,
            "treat_as_aid": false,
            "pay_beyond_balance": false,
            "payment_method": "credit_card",
            "gateway_token_provider": "stripe",
            "payment_gateway_id": null,
            "gateway_customer_token": "cus_MLxeHuvTzFyb2N",
            "gateway_source_token": "card_1Ld0FNGz1v34x3yFuC2B0L72",
            "start_date": "2022-08-31",
            "end_date": null,
            "last_charged_on": "2022-09-16",
            "last_attempt_at": null,
            "last_attempt_by_id": null,
            "interval": "1_month",
            "day": true,
            "max_additional_times": null,
            "total_times_charged": 2,
            "amount": 90,
            "currency": "USD",
            "secret": "bfb9d17fa8a24e02f864b12f5a732199",
            "first_name": "Donny",
            "last_name": "McDonor",
            "org_name": null,
            "email_address": "donnyd@yahoo.co",
            "phone_number": "123-123-1234",
            "street": "123 Street",
            "city": "Moscow",
            "state": "ID",
            "postal": "83843",
            "country": "US",
            "last_digits": "4242",
            "card_bin": null,
            "card_is_international": false,
            "bank_name": null,
            "donation_campaign_id": 1,
            "donation_appeal_id": null,
            "donation_donate_page_id": null,
            "donation_fund_id": 2,
            "donation_split_fund_id": 1,
            "donation_split_fund_amount": 40,
            "donation_staff_comment": "virtual terminal recurring test",
            "status": "active",
            "status_date": "2022-09-16",
            "problem_message": null,
            "cancel_type": null,
            "last_charged_on_date": "2022-09-16",
            "times_left": null,
            "payment_amount": "90.00",
            "payer_name": "McDonor, Donny",
            "student_name": null,
            "payer_street": null,
            "payer_city": null,
            "payer_state": null,
            "payer_zip": null,
            "payer_country": null,
            "academic_term_id": null,
            "invoice_id": null,
            "payment_plan_id": null,
            "schedule_type": null,
            "recurring_amount": null,
            "payment_plan_name": null,
            "max_payment_plan_due_date": null,
            "future_payment_plan_due_dates": null,
            "payment_deadline_amounts": null,
            "real_end_date": null,
            "added_at": "2022-08-31T23:23:05+00:00",
            "added_by_id": 10,
            "updated_at": "2022-09-16T21:10:53+00:00",
            "updated_by_id": 10
        }
    ],
    "sandbox": true
}

HTTP Request

GET /payments/recurring

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.

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
start_date date
end_date date
type choice
schedule choice
last_charged_on date
day integer
payer_name text
payer_type choice
linked_to_payer bool
payment_method enum
times_charged integer
times_left integer
amount decimal
status enum
student_tag tag
payer_tag tag
student_custom_field custom
payer_custom_field custom

Permissions

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

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/payments" \
-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)/payments',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/payments',
 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)/payments"), 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)/payments');
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": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "payment",
            "id": 7,
            "student_id": 12,
            "transaction_id": 12,
            "number": 501,
            "amount": 150,
            "online_payment_id": null,
            "convenience_fee_amount": 0,
            "paid_by_type": "person",
            "paid_by_id": 12,
            "aid_type_id": null,
            "refund_source": null,
            "reference_number": null,
            "receipt_number": "ce9sfe5d2e",
            "amount_available": 150,
            "currency": "USD",
            "exchange_rate": null,
            "home_currency_amount": 100,
            "recurring_money_transfer_id": 1,
            "aid_disbursement_id": null,
            "treat_as_aid": false,
            "organization_name": null,
            "method": "cash"
        }
    ],
    "sandbox": true
}

Retrieves all Payment objects tied to a specific Person.

HTTP Request

GET /people/(person)/payments

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

Example response:

{
    "object": "payment",
    "id": 100,
    "student_id": 12,
    "transaction_id": 100,
    "number": 1,
    "amount": 600,
    "online_payment_id": null,
    "convenience_fee_amount": 0,
    "paid_by_type": "person",
    "paid_by_id": 12,
    "aid_type_id": null,
    "refund_source": null,
    "reference_number": null,
    "receipt_number": "67fd9afe6d5f8",
    "amount_available": 600,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 600,
    "recurring_money_transfer_id": null,
    "aid_disbursement_id": null,
    "treat_as_aid": false,
    "organization_name": null,
    "method": "check",
    "sandbox": true
}

Creates a new Payment object.

HTTP Request

POST /people/(person)/payments

Parameters

Name Required Data Type Description
amount Yes decimal
asset_account_id Yes int
posted_date No date
paid_by_type No enum (person, org)
paid_by_id No int
source_type No enum (cash, check, credit_card, ach, other, money_order) Default is check
reference_number No text (100)
currency No text (3)
exchange_rate No decimal

Action Parameters

Name Data Type Description
automatically_apply_to_invoices bool
pay_invoices array of Invoice IDs

Permissions

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

show (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/payments/(payment)" \
-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)/payments/(payment)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/payments/(payment)',
 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)/payments/(payment)"), 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)/payments/(payment)');
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": "payment",
    "id": 7,
    "student_id": 12,
    "transaction_id": 12,
    "number": 501,
    "amount": 150,
    "online_payment_id": null,
    "convenience_fee_amount": 0,
    "paid_by_type": "person",
    "paid_by_id": 12,
    "aid_type_id": null,
    "refund_source": null,
    "reference_number": null,
    "receipt_number": "ce9sfe5d2e",
    "amount_available": 150,
    "currency": "USD",
    "exchange_rate": null,
    "home_currency_amount": 100,
    "recurring_money_transfer_id": 1,
    "aid_disbursement_id": null,
    "treat_as_aid": false,
    "organization_name": null,
    "method": "cash",
    "sandbox": true
}

Retrieves a specific Payment object.

HTTP Request

GET /people/(person)/payments/(payment)

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:

PaymentDeadline

The PaymentDeadline object

The PaymentDeadline object looks like this in JSON:

{
    "object": "payment_deadline",
    "id": 1,
    "owner_type": "invoice",
    "owner_id": 7,
    "actor_type": "person",
    "actor_id": 8,
    "due_date": "2022-08-11",
    "balance_due": false,
    "amount": 0,
    "tuition_amount": 0,
    "fee_amount": 0,
    "room_plan_amount": 0,
    "meal_plan_amount": 0,
    "bookstore_amount": 0,
    "amount_percent": 0,
    "tuition_amount_percent": 0,
    "fee_amount_percent": 0,
    "room_plan_amount_percent": 0,
    "meal_plan_amount_percent": 0,
    "bookstore_amount_percent": 0,
    "generated_amount_due": 580,
    "generated_due_to_date": 0,
    "amount_due": 430,
    "due_status": "due_now",
    "check_late_fee_on": null,
    "late_fee_added": null,
    "late_fee_charge_id": null,
    "manual_edit": false,
    "force_automatic_charge": false,
    "updated_at": "2022-07-12T18:28:09+00:00",
    "updated_by_id": 6,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
owner_type Yes enum (invoice, payment_plan_student)
owner_id No int
actor_type Yes enum (person, contact_org)
actor_id No int
due_date Yes date
balance_due Yes bool
amount Yes decimal
tuition_amount Yes decimal
fee_amount Yes decimal
room_plan_amount Yes decimal
meal_plan_amount Yes decimal
bookstore_amount Yes decimal
amount_percent Yes decimal
tuition_amount_percent Yes decimal
fee_amount_percent Yes decimal
room_plan_amount_percent Yes decimal
meal_plan_amount_percent Yes decimal
bookstore_amount_percent Yes decimal
generated_amount_due Yes decimal
generated_due_to_date Yes decimal
amount_due Yes decimal
due_status Yes enum (due_later, due_now, paid_on_time, overdue, paid_late)
check_late_fee_on No datetime
late_fee_added No date
late_fee_charge_id No int
manual_edit Yes bool
force_automatic_charge Yes bool
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/paymentdeadlines" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"due_date","value":{"type":"RANGE","start":"2021-01-01","end":"2022-03-17"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/paymentdeadlines',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/paymentdeadlines',
 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/paymentdeadlines"), 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/paymentdeadlines');
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": 0,
    "results": 0,
    "results_per_page": 200,
    "pages": 0,
    "page": 0,
    "offset": 0,
    "has_more": false,
    "data": [],
    "sandbox": true
}

Retrieves all PaymentDeadline objects that match given filter conditions.

HTTP Request

GET /paymentdeadlines

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
due_date date
student search
academic_term academic_term
type choice
status paymentdeadlinestatus
originally_due decimal
currently_due decimal
tag tag
custom_field custom

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/paymentdeadlines/(paymentdeadline)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/paymentdeadlines/(paymentdeadline)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/paymentdeadlines/(paymentdeadline)',
 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/paymentdeadlines/(paymentdeadline)"), 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/paymentdeadlines/(paymentdeadline)');
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": "payment_deadline",
    "id": 1,
    "owner_type": "invoice",
    "owner_id": 7,
    "actor_type": "person",
    "actor_id": 8,
    "due_date": "2022-08-11",
    "balance_due": false,
    "amount": 0,
    "tuition_amount": 0,
    "fee_amount": 0,
    "room_plan_amount": 0,
    "meal_plan_amount": 0,
    "bookstore_amount": 0,
    "amount_percent": 0,
    "tuition_amount_percent": 0,
    "fee_amount_percent": 0,
    "room_plan_amount_percent": 0,
    "meal_plan_amount_percent": 0,
    "bookstore_amount_percent": 0,
    "generated_amount_due": 580,
    "generated_due_to_date": 0,
    "amount_due": 430,
    "due_status": "due_now",
    "check_late_fee_on": null,
    "late_fee_added": null,
    "late_fee_charge_id": null,
    "manual_edit": false,
    "force_automatic_charge": false,
    "updated_at": "2022-07-12T18:28:09+00:00",
    "updated_by_id": 6,
    "sandbox": true
}

Retrieves a specific PaymentDeadline object.

HTTP Request

GET /paymentdeadlines/(paymentdeadline)

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:

PaymentPeriod

The PaymentPeriod object

The PaymentPeriod object looks like this in JSON:

{
    "object": "payment_period",
    "id": 1,
    "student_id": 12,
    "start_date": "2022-10-01",
    "end_date": "2022-10-31",
    "sap": "not_calculated",
    "sap_policy_id": 1,
    "external_id": null,
    "added_at": "2022-07-13T21:35:04+00:00",
    "added_by_id": 10,
    "updated_at": "2022-07-13T21:35:28+00:00",
    "updated_by_id": 10,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id Yes int
start_date Yes date
end_date Yes date
sap Yes enum (satisfactory, warning, probation, suspension, not_calculated)
sap_policy_id No int
external_id No int
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/paymentperiods" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"end_date","value":{"type":"RANGE","start":"2021-01-01","end":"2022-03-17"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/paymentperiods',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/paymentperiods',
 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/paymentperiods"), 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/paymentperiods');
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": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "payment_period",
            "id": 1,
            "student_id": 12,
            "start_date": "2022-10-01",
            "end_date": "2022-10-31",
            "sap": "not_calculated",
            "sap_policy_id": 1,
            "external_id": null,
            "added_at": "2022-07-13T21:35:04+00:00",
            "added_by_id": 10,
            "updated_at": "2022-07-13T21:35:28+00:00",
            "updated_by_id": 10,
            "report_data": {
                "student_name": "Taylor Forest",
                "units_mapped": 0,
                "credits_mapped": "0.00",
                "hours_mapped": "0.00",
                "overriding_sap": null,
                "row_id": 1
            }
        }
    ],
    "sandbox": true
}

Retrieves all PaymentPeriod objects that match given filter conditions.

HTTP Request

GET /paymentperiods

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
student text
start_date date
end_date date
sap enum
units_mapped integer

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/paymentperiods/(paymentperiod)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/paymentperiods/(paymentperiod)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/paymentperiods/(paymentperiod)',
 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/paymentperiods/(paymentperiod)"), 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/paymentperiods/(paymentperiod)');
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": "payment_period",
    "id": 1,
    "student_id": 12,
    "start_date": "2022-10-01",
    "end_date": "2022-10-31",
    "sap": "not_calculated",
    "sap_policy_id": 1,
    "external_id": null,
    "added_at": "2022-07-13T21:35:04+00:00",
    "added_by_id": 10,
    "updated_at": "2022-07-13T21:35:28+00:00",
    "updated_by_id": 10,
    "sandbox": true
}

Retrieves a specific PaymentPeriod object.

HTTP Request

GET /paymentperiods/(paymentperiod)

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:

PaymentPlan

The PaymentPlan object

The PaymentPlan object looks like this in JSON:

{
    "object": "payment_plan",
    "id": 1,
    "name": "Calendar Plan",
    "status": "active",
    "amount": 55,
    "amount_type": "flat",
    "late_fee": 0,
    "late_fee_type": "percent",
    "grace_period_days": null,
    "max_late_fee": 0,
    "schedule_type": "date",
    "charge_types_broken_out": false,
    "prefer_whole_dollar_amounts": false,
    "recurring_money_transfer_linkable_student_level": false,
    "recurring_money_transfer_linkable_term_level": false,
    "recurring_money_transfer_linkable_existing": false,
    "recurring_first_payment": "day_of_month",
    "recurring_day_of_month": 1,
    "recurring_days_after_start": 30,
    "recurring_period_months": 1,
    "recurring_amount": 0,
    "balance_year": null,
    "balance_month": 3,
    "balance_day": 3,
    "balance_num_days": null,
    "fee_id": 2,
    "late_fee_id": null,
    "min_invoice_amount": 0,
    "exclude_aid": false,
    "scheduled_aid_handling": "consider_allocation_time",
    "tuition_eligible": "all",
    "fees_eligible": "selected",
    "room_plans_eligible": "none",
    "meal_plans_eligible": "all",
    "bookstore_eligible": "all",
    "auto_remove_on_payoff": false,
    "auto_remove_date": null,
    "added_at": "2022-07-13T20:47:23+00:00",
    "added_by_id": 10,
    "updated_at": "2022-07-13T20:54:57+00:00",
    "updated_by_id": 10,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
name Yes text (200)
status Yes enum (active, deleted)
amount Yes decimal
amount_type Yes enum (flat, percent)
late_fee Yes decimal
late_fee_type Yes enum (flat, percent)
grace_period_days Yes int
max_late_fee Yes decimal
schedule_type Yes enum (date, days_into_term, days_from_applied, recurring)
charge_types_broken_out Yes bool
prefer_whole_dollar_amounts Yes bool
recurring_money_transfer_linkable_student_level Yes bool
recurring_money_transfer_linkable_term_level Yes bool
recurring_money_transfer_linkable_existing Yes bool
recurring_first_payment No enum (day_of_month, days_after_start)
recurring_day_of_month No int
recurring_days_after_start No int
recurring_period_months No int
recurring_amount Yes decimal
balance_year Yes int
balance_month Yes int
balance_day Yes int
balance_num_days Yes int
fee_id Yes int
late_fee_id Yes int
min_invoice_amount Yes decimal
exclude_aid Yes bool
scheduled_aid_handling Yes enum (ignore, consider_allocation_time, always_exclude)
tuition_eligible Yes enum (all, none, selected, excluded)
fees_eligible Yes enum (all, none, selected, excluded)
room_plans_eligible Yes enum (all, none, selected, excluded)
meal_plans_eligible Yes enum (all, none, selected, excluded)
bookstore_eligible Yes enum (all, none, selected, excluded)
auto_remove_on_payoff Yes bool
auto_remove_date No date
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No --

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/paymentplans" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/paymentplans',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/paymentplans',
 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/paymentplans"), 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/paymentplans');
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": "payment_plan",
            "id": 1,
            "name": "Calendar Plan",
            "status": "active",
            "amount": 55,
            "amount_type": "flat",
            "late_fee": 0,
            "late_fee_type": "percent",
            "grace_period_days": null,
            "max_late_fee": 0,
            "schedule_type": "date",
            "charge_types_broken_out": false,
            "prefer_whole_dollar_amounts": false,
            "recurring_money_transfer_linkable_student_level": false,
            "recurring_money_transfer_linkable_term_level": false,
            "recurring_money_transfer_linkable_existing": false,
            "recurring_first_payment": "day_of_month",
            "recurring_day_of_month": 1,
            "recurring_days_after_start": 30,
            "recurring_period_months": 1,
            "recurring_amount": 0,
            "balance_year": null,
            "balance_month": 3,
            "balance_day": 3,
            "balance_num_days": null,
            "fee_id": 2,
            "late_fee_id": null,
            "min_invoice_amount": 0,
            "exclude_aid": false,
            "scheduled_aid_handling": "consider_allocation_time",
            "tuition_eligible": "all",
            "fees_eligible": "selected",
            "room_plans_eligible": "none",
            "meal_plans_eligible": "all",
            "bookstore_eligible": "all",
            "auto_remove_on_payoff": false,
            "auto_remove_date": null,
            "added_at": "2022-07-13T20:47:23+00:00",
            "added_by_id": 10,
            "updated_at": "2022-07-13T20:54:57+00:00",
            "updated_by_id": 10
        }
    ],
    "sandbox": true
}

Retrieves all PaymentPlan objects.

HTTP Request

GET /paymentplans

Parameters

None

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/paymentplans/(paymentplan)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/paymentplans/(paymentplan)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/paymentplans/(paymentplan)',
 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/paymentplans/(paymentplan)"), 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/paymentplans/(paymentplan)');
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": "payment_plan",
    "id": 1,
    "name": "Calendar Plan",
    "status": "active",
    "amount": 55,
    "amount_type": "flat",
    "late_fee": 0,
    "late_fee_type": "percent",
    "grace_period_days": null,
    "max_late_fee": 0,
    "schedule_type": "date",
    "charge_types_broken_out": false,
    "prefer_whole_dollar_amounts": false,
    "recurring_money_transfer_linkable_student_level": false,
    "recurring_money_transfer_linkable_term_level": false,
    "recurring_money_transfer_linkable_existing": false,
    "recurring_first_payment": "day_of_month",
    "recurring_day_of_month": 1,
    "recurring_days_after_start": 30,
    "recurring_period_months": 1,
    "recurring_amount": 0,
    "balance_year": null,
    "balance_month": 3,
    "balance_day": 3,
    "balance_num_days": null,
    "fee_id": 2,
    "late_fee_id": null,
    "min_invoice_amount": 0,
    "exclude_aid": false,
    "scheduled_aid_handling": "consider_allocation_time",
    "tuition_eligible": "all",
    "fees_eligible": "selected",
    "room_plans_eligible": "none",
    "meal_plans_eligible": "all",
    "bookstore_eligible": "all",
    "auto_remove_on_payoff": false,
    "auto_remove_date": null,
    "added_at": "2022-07-13T20:47:23+00:00",
    "added_by_id": 10,
    "updated_at": "2022-07-13T20:54:57+00:00",
    "updated_by_id": 10,
    "sandbox": true
}

Retrieves a specific PaymentPlan object.

HTTP Request

GET /paymentplans/(paymentplan)

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:

PaymentPlanStudent

The PaymentPlanStudent object

The PaymentPlanStudent object looks like this in JSON:

{
    "object": "payment_plan_student",
    "id": 7,
    "student_id": 12,
    "academic_term_id": 6,
    "invoice_id": 9,
    "payment_plan_id": null,
    "start_date": "2020-09-07",
    "as_of_time": null,
    "charge_types_broken_out": false,
    "total_eligible_charges": 0,
    "recurring_amount": 0,
    "exclude_aid": false,
    "scheduled_aid_handling": "consider_allocation_time",
    "schedule_type": "days_from_applied",
    "added_at": null,
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
student_id Yes int
academic_term_id Yes int
invoice_id No int
payment_plan_id Yes int
start_date No date
as_of_time No datetime
charge_types_broken_out Yes bool
total_eligible_charges Yes decimal
recurring_amount Yes decimal
exclude_aid Yes bool
scheduled_aid_handling Yes enum (ignore, consider_allocation_time, always_exclude)
schedule_type Yes enum (days_from_applied, date, days_into_term, recurring)
added_at No datetime
added_by_id No int
sandbox No --

index

Example code to call this method:

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