NAV
shell ruby python csharp php

Assignment

The Assignment object

The Assignment object looks like this in JSON:

{
    "object": "assignment",
    "id": 29656,
    "course_offering_id": 21908,
    "name": "Midterm Test",
    "points": 100,
    "due_at": null,
    "available_from": null,
    "available_until": null,
    "published": true,
    "description": "This is a test",
    "assignment_group_id": null,
    "lesson_id": null,
    "type": "test",
    "allowed_file_types": null,
    "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)
allowed_file_types No json
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 bool

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": 3,
    "results": 3,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "assignment",
            "id": 29659,
            "course_offering_id": 21908,
            "name": "Book Review Essay",
            "points": 100,
            "due_at": null,
            "available_from": null,
            "available_until": null,
            "published": true,
            "description": "Tell us what you think.",
            "assignment_group_id": null,
            "lesson_id": null,
            "type": "essay",
            "allowed_file_types": null,
            "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": null,
    "lesson_id": null,
    "type": "discussion",
    "allowed_file_types": [
        "all"
    ],
    "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": "2026-07-25T16:24:05+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
release_grades No enum (yes, no, date)
release_grades_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": "Midterm Test",
    "points": 100,
    "due_at": null,
    "available_from": null,
    "available_until": null,
    "published": true,
    "description": "This is a test",
    "assignment_group_id": null,
    "lesson_id": null,
    "type": "test",
    "allowed_file_types": null,
    "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": "Midterm Test",
    "points": 100,
    "due_at": null,
    "available_from": null,
    "available_until": null,
    "published": true,
    "description": "This is a test",
    "assignment_group_id": null,
    "lesson_id": null,
    "type": "test",
    "allowed_file_types": [
        "all"
    ],
    "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": "2026-07-25T16:24:05+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
release_grades No enum (yes, no, date)
release_grades_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:

rubric_scores

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/courseofferings/(courseoffering)/assignments/(assignment)/students/(person)/rubric_scores" \
-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)/rubric_scores',
 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)/rubric_scores',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_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)/rubric_scores"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
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)/rubric_scores');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_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_assignment_rubric_criterion_score",
            "id": 1,
            "course_assignment_id": 29656,
            "scored_model_id": null,
            "student_id": 16,
            "course_assignment_rubric_id": 1,
            "criterion_id": null,
            "credit_coef": 0.0697674418605,
            "comment": "Needs work.",
            "is_peer_score": false,
            "added_at": null,
            "added_by_id": null
        }
    ],
    "sandbox": true
}

HTTP Request

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

Parameters

None

Expandable Properties

Permissions

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