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:
- Staff
- Faculty
- Advisor
- Academic Auditor
- Academic Admin
- Registrar
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:
- Academic Admin
- Registrar
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
- requirements
- catalog_courses
- student_exceptions
- rubrics
- test
- discussion
- lti_link
Permissions
One of the following roles is required to call this method:
- Academic Auditor
- Academic Admin
- Registrar
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:
- Academic Admin
- Registrar
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:
- Academic Admin
- Registrar
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
- criterion
Permissions
One of the following roles is required to call this method:
- Academic Auditor
- Academic Admin
- Registrar