NAV
shell ruby python csharp php

Post

The Post object

The Post object looks like this in JSON:

{
    "object": "post",
    "id": 6,
    "content": "Career fair this Saturday!",
    "owner_type": "person",
    "owner_id": null,
    "added_by_instructor": false,
    "edited_at": null,
    "edited_post_id": null,
    "file_id": null,
    "added_at": "2020-04-15T18:36:01+00:00",
    "added_by_id": 1,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
content Yes text
owner_type Yes enum (person, course, group)
owner_id Yes int
added_by_instructor Yes bool
edited_at No datetime
edited_post_id Yes int
file_id No int
added_at Yes datetime
added_by_id No int
sandbox No bool

index (courseoffering)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts" \
-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)/posts',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_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)/posts"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
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)/posts');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_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": 100,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "post",
            "id": 7,
            "content": "What are you thoughts on the latest reading?",
            "owner_type": "course",
            "owner_id": 21908,
            "added_by_instructor": true,
            "edited_at": null,
            "edited_post_id": null,
            "file_id": null,
            "author_name": "API Dude",
            "author_initials": "AD",
            "author_image_file_id": null,
            "num_likes": 0,
            "num_comments": 1,
            "added_at": "2022-04-15T18:36:01+00:00",
            "added_by_id": 22
        }
    ],
    "sandbox": true
}

Retrieves all Post objects tied to a specific Courseoffering.

HTTP Request

GET /courseofferings/(courseoffering)/posts

Parameters

None

index (group)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/groups/(group)/posts" \
-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)/posts',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/groups/(group)/posts',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_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)/posts"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
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)/posts');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_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": 100,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "post",
            "id": 8,
            "content": "Anyone have ideas for movie night?",
            "owner_type": "group",
            "owner_id": 1,
            "added_by_instructor": false,
            "edited_at": null,
            "edited_post_id": null,
            "file_id": null,
            "author_name": "API Dude",
            "author_initials": "AD",
            "author_image_file_id": null,
            "num_likes": 0,
            "num_comments": 0,
            "added_at": "2022-04-15T18:36:01+00:00",
            "added_by_id": 22
        }
    ],
    "sandbox": true
}

Retrieves all Post objects tied to a specific Group.

HTTP Request

GET /groups/(group)/posts

Parameters

None

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/posts" \
-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)/posts',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/posts',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_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)/posts"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
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)/posts');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_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": 100,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "post",
            "id": 10,
            "content": "Second recruiting call. Sounded positive.",
            "owner_type": "person",
            "owner_id": 12,
            "added_by_instructor": false,
            "edited_at": null,
            "edited_post_id": null,
            "file_id": null,
            "author_name": "Abby Admin",
            "author_initials": "AA",
            "author_image_file_id": null,
            "num_likes": 0,
            "num_comments": 0,
            "added_at": "2022-05-15T18:36:01+00:00",
            "added_by_id": 16
        }
    ],
    "sandbox": true
}

Retrieves all Post objects tied to a specific Person.

HTTP Request

GET /people/(person)/posts

Parameters

None

create (courseoffering)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "content": "What is your favorite flavor of soda?"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :content => 'What is your favorite flavor of soda?'
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'content': 'What is your favorite flavor of soda?'
 }
)
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)/posts"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  content = "What is your favorite flavor of soda?"
});
var response = client.Execute(request);
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)/posts');
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([
  'content' => 'What is your favorite flavor of soda?'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "post",
    "id": 151,
    "content": "What is your favorite flavor of soda?",
    "owner_type": "course",
    "owner_id": 21908,
    "added_by_instructor": false,
    "edited_at": null,
    "edited_post_id": null,
    "file_id": null,
    "added_at": "2026-07-25T16:24:13+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new Post object.

HTTP Request

POST /courseofferings/(courseoffering)/posts

Parameters

Name Required Data Type Description
content Yes text

show (courseoffering)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts/(post)" \
-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)/posts/(post)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts/(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/courseofferings/(courseoffering)/posts/(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/courseofferings/(courseoffering)/posts/(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": "post",
    "id": 7,
    "content": "What are you thoughts on the latest reading?",
    "owner_type": "course",
    "owner_id": 21908,
    "added_by_instructor": true,
    "edited_at": null,
    "edited_post_id": null,
    "file_id": null,
    "added_at": "2022-04-15T18:36:01+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Retrieves a specific Post object.

HTTP Request

GET /courseofferings/(courseoffering)/posts/(post)

Parameters

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

Expandable Properties

update (courseoffering)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts/(post)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X PUT
-d '{
    "content": "Hello everyone. Be sure to sign up for a field trip slot next week!"
}' \ 
require 'httparty'
response = HTTParty.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts/(post)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :content => 'Hello everyone. Be sure to sign up for a field trip slot next week!'
 }.to_json
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/posts/(post)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'content': 'Hello everyone. Be sure to sign up for a field trip slot next week!'
 }
)
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)/posts/(post)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  content = "Hello everyone. Be sure to sign up for a field trip slot next week!"
});
var response = client.Execute(request);
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)/posts/(post)');
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([
  'content' => 'Hello everyone. Be sure to sign up for a field trip slot next week!'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "post",
    "id": 7,
    "content": "Hello everyone. Be sure to sign up for a field trip slot next week!",
    "owner_type": "course",
    "owner_id": 21908,
    "added_by_instructor": true,
    "edited_at": "2026-07-25T16:24:14+00:00",
    "edited_post_id": null,
    "file_id": null,
    "added_at": "2022-04-15T18:36:01+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Updates an existing Post object.

HTTP Request

PUT /courseofferings/(courseoffering)/posts/(post)

Parameters

Name Required Data Type Description
content Yes text

delete (courseoffering)

Example code to call this method:

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

Deletes an existing Post object.

HTTP Request

DELETE /courseofferings/(courseoffering)/posts/(post)

Parameters

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

show (group)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/groups/(group)/posts/(post)" \
-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)/posts/(post)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/groups/(group)/posts/(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/groups/(group)/posts/(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/groups/(group)/posts/(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": "post",
    "id": 8,
    "content": "Anyone have ideas for movie night?",
    "owner_type": "group",
    "owner_id": 1,
    "added_by_instructor": false,
    "edited_at": null,
    "edited_post_id": null,
    "file_id": null,
    "added_at": "2022-04-15T18:36:01+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Retrieves a specific Post object.

HTTP Request

GET /groups/(group)/posts/(post)

Parameters

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

Expandable Properties

show (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/posts/(post)" \
-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)/posts/(post)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/posts/(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)/posts/(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)/posts/(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": "post",
    "id": 9,
    "content": "Remember to turn in your keys.",
    "owner_type": "person",
    "owner_id": 16,
    "added_by_instructor": false,
    "edited_at": null,
    "edited_post_id": null,
    "file_id": null,
    "added_at": "2022-04-15T18:36:01+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Retrieves a specific Post object.

HTTP Request

GET /people/(person)/posts/(post)

Parameters

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

Expandable Properties