[33m7[39m
PATH /learn/api/public/v1/oauth2/authorizationcode
DESCRIPTION
VERSIONS 3200.7.0
PATH /learn/api/public/v1/oauth2/token
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/oauth2/tokeninfo
DESCRIPTION
VERSIONS 3700.6.0
PATH /learn/api/public/v1/announcements
DESCRIPTION
VERSIONS 3100.7.0
PATH /learn/api/public/v1/announcements
DESCRIPTION
VERSIONS 3100.7.0
PATH /learn/api/public/v1/announcements/{announcementId}
DESCRIPTION
VERSIONS 3100.7.0
PATH /learn/api/public/v1/announcements/{announcementId}
DESCRIPTION
VERSIONS 3100.7.0
PATH /learn/api/public/v1/announcements/{announcementId}
DESCRIPTION
VERSIONS 3100.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/downloadUrl
DESCRIPTION
VERSIONS
PATH /learn/api/public/v1/courses/{courseId}/meetings/users/{userId}
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/users/{userId}
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/users/{userId}/all
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users/bulk
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users/{userId}
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users/{userId}
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users/{userId}
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/calendars
DESCRIPTION
VERSIONS 3400.9.0
PATH /learn/api/public/v1/calendars/items
DESCRIPTION
VERSIONS 2018-01-01,00:00:00,2018-02-01,00:00:00,2018-01-01,00:00:00,2018-02-01,00:00:00,123_1,2018-01-01,00:00:00,2018-02-01,00:00:00,123_1,2018-01-01,00:00:00,2018-02-01,00:00:00,123_1,2018-01-01,00:00:00,2018-02-01,00:00:00,2018-01-01,00:00:00,2018-02-01,00:00:00,3400.9.0
PATH /learn/api/public/v1/calendars/items
DESCRIPTION
VERSIONS 3400.9.0
PATH /learn/api/public/v1/calendars/items/{calendarItemType}/{calendarItemId}
DESCRIPTION
VERSIONS 3400.9.0
PATH /learn/api/public/v1/calendars/items/{calendarItemType}/{calendarItemId}
DESCRIPTION
VERSIONS 3400.9.0
PATH /learn/api/public/v1/calendars/items/{calendarItemType}/{calendarItemId}
DESCRIPTION
VERSIONS 3400.9.0
PATH /learn/api/public/v1/courses/{courseId}/contents
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/courses/{courseId}/contents
DESCRIPTION
VERSIONS 3000.7.0
PATH /learn/api/public/v1/courses/{courseId}/contents/createAssignment
DESCRIPTION
VERSIONS 3300.9.0,3400.9.0,3300.9.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/children
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/children
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments
DESCRIPTION
VERSIONS 3400.9.0,3200.8.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments
DESCRIPTION
VERSIONS 3400.9.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments/{attachmentId}
DESCRIPTION
VERSIONS 3400.9.0,3200.8.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments/{attachmentId}
DESCRIPTION
VERSIONS 3400.9.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments/{attachmentId}/download
DESCRIPTION
VERSIONS 3400.9.0,3200.8.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/groups
DESCRIPTION
VERSIONS 3100.5.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/groups/{groupId}
DESCRIPTION
VERSIONS 3100.5.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/groups/{groupId}
DESCRIPTION
VERSIONS 3100.5.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/groups/{groupId}
DESCRIPTION
VERSIONS 3100.5.0
PATH /learn/api/public/v1/courses/{courseId}/resources
DESCRIPTION
VERSIONS 3700.12.0
PATH /learn/api/public/v1/courses/{courseId}/resources/{resourceId}
DESCRIPTION
VERSIONS 3700.13.0
PATH /learn/api/public/v1/courses/{courseId}/resources/{resourceId}/children
DESCRIPTION
VERSIONS 3700.13.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/users/{userId}/reviewStatus
DESCRIPTION
VERSIONS 3700.16.0
PATH /learn/api/public/v1/courses/{courseId}/contents/{contentId}/users/{userId}/reviewStatus
DESCRIPTION
VERSIONS 3700.16.0
PATH /learn/api/public/v1/courses/{courseId}/announcements
DESCRIPTION
VERSIONS 3500.3.0
PATH /learn/api/public/v1/courses/{courseId}/announcements
DESCRIPTION
VERSIONS 3500.3.0
PATH /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
DESCRIPTION
VERSIONS 3500.3.0
PATH /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
DESCRIPTION
VERSIONS 3500.3.0
PATH /learn/api/public/v1/courses/{courseId}/announcements/{announcementId}
DESCRIPTION
VERSIONS 3500.3.0
PATH /learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions/{questionId}
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions/{questionId}
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions/{questionId}
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}/courses/{courseId}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/catalog/categories/{categoryType}/{parentId}/children
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/courses/{courseId}/categories
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files
DESCRIPTION
VERSIONS 3400.6.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files
DESCRIPTION
VERSIONS 3500.7.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files/{attemptFileId}
DESCRIPTION
VERSIONS 3400.6.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files/{attemptFileId}
DESCRIPTION
VERSIONS 3500.2.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files/{attemptFileId}/download
DESCRIPTION
VERSIONS 3400.6.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations
DESCRIPTION
VERSIONS 3200.13.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations
DESCRIPTION
VERSIONS 3200.13.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations/{gradeNotationId}
DESCRIPTION
VERSIONS 3200.13.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations/{gradeNotationId}
DESCRIPTION
VERSIONS 3200.13.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations/{gradeNotationId}
DESCRIPTION
VERSIONS 3200.14.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/categories
DESCRIPTION
VERSIONS 3400.2.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/categories/{categoryId}
DESCRIPTION
VERSIONS 3400.2.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/schemas
DESCRIPTION
VERSIONS 3300.2.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/schemas
DESCRIPTION
VERSIONS 3300.2.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/schemas/{schemaId}
DESCRIPTION
VERSIONS 3300.2.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/schemas/{schemaId}
DESCRIPTION
VERSIONS 3300.2.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/schemas/{schemaId}
DESCRIPTION
VERSIONS 3300.2.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns
DESCRIPTION
VERSIONS 3200.10.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns
DESCRIPTION
VERSIONS 3200.10.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}
DESCRIPTION
VERSIONS 3200.10.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}
DESCRIPTION
VERSIONS 3200.10.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}
DESCRIPTION
VERSIONS 3200.10.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/attempts
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/attempts
DESCRIPTION
VERSIONS 3300.12.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/attempts/{attemptId}
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/attempts/{attemptId}
DESCRIPTION
VERSIONS 3500.2.0,3300.12.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/users
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/users/lastChanged
DESCRIPTION
VERSIONS 3300.4.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/users/{userId}
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/users/{userId}
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v2/courses/{courseId}/gradebook/users/{userId}
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/periods
DESCRIPTION
VERSIONS 3300.3.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/periods
DESCRIPTION
VERSIONS 3300.3.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/periods/{periodId}
DESCRIPTION
VERSIONS 3300.3.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/periods/{periodId}
DESCRIPTION
VERSIONS 3300.3.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/periods/{periodId}
DESCRIPTION
VERSIONS 3300.3.0
PATH /learn/api/public/v2/courses/{courseId}/groups/{groupId}/users
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v2/courses/{courseId}/groups/{groupId}/users/{userId}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v2/courses/{courseId}/groups/{groupId}/users/{userId}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v2/courses/{courseId}/groups/{groupId}/users/{userId}
DESCRIPTION
VERSIONS 3600.0.0
PATH /learn/api/public/v2/courses/{courseId}/groups
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/sets
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/sets
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}/groups
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}/groups
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/{groupId}
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/{groupId}
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v2/courses/{courseId}/groups/{groupId}
DESCRIPTION
VERSIONS 3800.6.0
PATH /learn/api/public/v1/courses/{courseId}/users
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/courses/{courseId}/users/{userId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/courses/{courseId}/users/{userId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/courses/{courseId}/users/{userId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/courses/{courseId}/users/{userId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/users/{userId}/courses
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/courses/{courseId}/messages
DESCRIPTION
VERSIONS 3900.2.0
PATH /learn/api/public/v1/courses/{courseId}/messages
DESCRIPTION
VERSIONS 3900.2.0
PATH /learn/api/public/v1/courses/{courseId}/messages/folders
DESCRIPTION
VERSIONS 3900.2.0
PATH /learn/api/public/v1/courses/{courseId}/messages/{messageId}
DESCRIPTION
VERSIONS 3900.2.0
PATH /learn/api/public/v1/courses/{courseId}/messages/{messageId}
DESCRIPTION
VERSIONS 3900.2.0
PATH /learn/api/public/v1/courses/{courseId}/messages/{messageId}/participants
DESCRIPTION
VERSIONS 3900.2.0
PATH /learn/api/public/v1/courses/{courseId}/children
DESCRIPTION
VERSIONS 3000.11.0
PATH /learn/api/public/v1/courses/{courseId}/children/{childCourseId}
DESCRIPTION
VERSIONS 3000.11.0
PATH /learn/api/public/v1/courses/{courseId}/children/{childCourseId}
DESCRIPTION
VERSIONS 3400.1.0
PATH /learn/api/public/v1/courses/{courseId}/children/{childCourseId}
DESCRIPTION
VERSIONS 3900.4.0
PATH /learn/api/public/v1/courses/{courseId}/crossListSet
DESCRIPTION
VERSIONS 3400.1.0
PATH /learn/api/public/v1/courses/{courseId}/tasks/{taskId}
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v2/courses/{courseId}/copy
DESCRIPTION
VERSIONS 3800.2.0
PATH /learn/api/public/v3/courses
DESCRIPTION
VERSIONS 3800.1.0
PATH /learn/api/public/v3/courses
DESCRIPTION
VERSIONS 3800.1.0
PATH /learn/api/public/v3/courses/{courseId}
DESCRIPTION
VERSIONS 3800.1.0
PATH /learn/api/public/v3/courses/{courseId}
DESCRIPTION
VERSIONS 3800.1.0
PATH /learn/api/public/v3/courses/{courseId}
DESCRIPTION
VERSIONS 3800.1.0
PATH /learn/api/public/v1/dataSources
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/dataSources
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/dataSources/{dataSourceId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/dataSources/{dataSourceId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/dataSources/{dataSourceId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/courses/{courseId}/nodes
DESCRIPTION
VERSIONS 3800.10.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes
DESCRIPTION
VERSIONS 3800.10.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes
DESCRIPTION
VERSIONS 3800.15.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}
DESCRIPTION
VERSIONS 3800.10.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}
DESCRIPTION
VERSIONS 3800.15.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}
DESCRIPTION
VERSIONS 3800.15.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/children
DESCRIPTION
VERSIONS 3800.10.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/children
DESCRIPTION
VERSIONS 3800.15.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/courses
DESCRIPTION
VERSIONS 3800.10.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/courses/{courseId}
DESCRIPTION
VERSIONS 3800.17.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/courses/{courseId}
DESCRIPTION
VERSIONS 3800.17.0
PATH /learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/courses/{courseId}
DESCRIPTION
VERSIONS 3800.17.0
PATH /learn/api/public/v1/lti/placements
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v1/lti/placements
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v1/lti/placements/{placementId}
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v1/lti/placements/{placementId}
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/api/public/v1/lti/placements/{placementId}
DESCRIPTION
VERSIONS 3300.0.0
PATH /learn/apipublic/v1/lti/domains
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/apipublic/v1/lti/domains
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/apipublic/v1/lti/domains/{domainId}
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/apipublic/v1/lti/domains/{domainId}
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/apipublic/v1/lti/domains/{domainId}
DESCRIPTION
VERSIONS 3300.9.0
PATH /learn/api/public/v1/courses/{courseId}/performance/contentReviewStatus
DESCRIPTION
VERSIONS 3700.15.0
PATH /learn/api/public/v1/proctoring/services
DESCRIPTION
VERSIONS 3500.6.0
PATH /learn/api/public/v1/proctoring/services/{proctoringServiceId}
DESCRIPTION
VERSIONS 3500.6.0
PATH /learn/api/public/v1/courseRoles
DESCRIPTION
VERSIONS 3300.5.0
PATH /learn/api/public/v1/courseRoles/{roleId}
DESCRIPTION
VERSIONS 3300.5.0
PATH /learn/api/public/v1/institutionRoles
DESCRIPTION
VERSIONS 3300.4.0
PATH /learn/api/public/v1/institutionRoles/{roleId}
DESCRIPTION
VERSIONS 3300.4.0
PATH /learn/api/public/v1/systemRoles
DESCRIPTION
VERSIONS 3300.5.0
PATH /learn/api/public/v1/systemRoles/{roleId}
DESCRIPTION
VERSIONS 3300.5.0
PATH /learn/api/public/v1/sessions
DESCRIPTION
VERSIONS 3800.4.0
PATH /learn/api/public/v1/logs/sis/dataSets/{id}
DESCRIPTION
VERSIONS 3200.0.1
PATH /learn/api/public/v1/system/policies/privacy
DESCRIPTION
VERSIONS 3400.5.0
PATH /learn/api/public/v1/system/tasks/{taskId}
DESCRIPTION
VERSIONS 3800.1.0
PATH /learn/api/public/v1/system/version
DESCRIPTION
VERSIONS 3000.3.0
PATH /learn/api/public/v1/terms
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/terms
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/terms/{termId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/terms/{termId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/terms/{termId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/uploads
DESCRIPTION
VERSIONS 3100.12.0
PATH /learn/api/public/v1/users
DESCRIPTION
VERSIONS 3000.1.0
PATH /learn/api/public/v1/users
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/users/{userId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/users/{userId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/users/{userId}
DESCRIPTION
VERSIONS 2015.11.0
PATH /learn/api/public/v1/users/{userId}/avatar
DESCRIPTION
VERSIONS 3800.10.0
PATH /learn/api/public/v1/users/{userId}/observees
DESCRIPTION
VERSIONS 3500.5.0
PATH /learn/api/public/v1/users/{userId}/observers
DESCRIPTION
VERSIONS 3500.5.0
PATH /learn/api/public/v1/users/{userId}/observers/{observerId}
DESCRIPTION
VERSIONS 3500.5.0
PATH /learn/api/public/v1/users/{userId}/observers/{observerId}
DESCRIPTION
VERSIONS 3500.5.0
PATH /learn/api/public/v1/users/{userId}/sessions
DESCRIPTION
VERSIONS 3800.4.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns
DESCRIPTION
VERSIONS 3000.3.0,3200.10.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns
DESCRIPTION
VERSIONS 3000.7.0,3200.10.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}
DESCRIPTION
VERSIONS 3000.3.0,3200.10.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}
DESCRIPTION
VERSIONS 3000.7.0,3200.10.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}
DESCRIPTION
VERSIONS 3000.7.0,3200.10.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/attempts
DESCRIPTION
VERSIONS 3100.4.0,3300.0.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/attempts/{attemptId}
DESCRIPTION
VERSIONS 3100.4.0,3300.0.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/users
DESCRIPTION
VERSIONS 3000.3.0,3300.0.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/users/{userId}
DESCRIPTION
VERSIONS 3000.3.0,3300.0.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/users/{userId}
DESCRIPTION
VERSIONS 3000.5.0,3300.0.0
PATH /learn/api/public/v1/courses/{courseId}/gradebook/users/{userId}
DESCRIPTION
VERSIONS 3000.3.0,3300.0.0
PATH /learn/api/public/v1/courses/{courseId}/groups/{groupId}/users
DESCRIPTION
VERSIONS 3100.6.0,3600.0.0
PATH /learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}
DESCRIPTION
VERSIONS 3100.6.0,3600.0.0
PATH /learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}
DESCRIPTION
VERSIONS 3100.6.0,3600.0.0
PATH /learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}
DESCRIPTION
VERSIONS 3100.6.0,3600.0.0
PATH /learn/api/public/v1/courses/{courseId}/groups
DESCRIPTION
VERSIONS 3100.5.0,3800.6.0
PATH /learn/api/public/v1/courses/{courseId}/groups
DESCRIPTION
VERSIONS 3100.5.0,3800.6.0
PATH /learn/api/public/v1/courses/{courseId}/groups/{groupId}
DESCRIPTION
VERSIONS 3100.5.0,3800.6.0
PATH /learn/api/public/v1/courses/{courseId}/groups/{groupId}
DESCRIPTION
VERSIONS 3100.5.0,3800.6.0
PATH /learn/api/public/v1/courses/{courseId}/groups/{groupId}
DESCRIPTION
VERSIONS 3100.5.0,3800.6.0
PATH /learn/api/public/v1/courses
DESCRIPTION
VERSIONS 3000.1.0,3400.8.0
PATH /learn/api/public/v1/courses
DESCRIPTION
VERSIONS 2015.11.0,3400.8.0
PATH /learn/api/public/v1/courses/{courseId}
DESCRIPTION
VERSIONS 2015.11.0,3400.8.0
PATH /learn/api/public/v1/courses/{courseId}
DESCRIPTION
VERSIONS 2015.11.0,3400.8.0
PATH /learn/api/public/v1/courses/{courseId}
DESCRIPTION
VERSIONS 2015.11.0,3400.8.0
PATH /learn/api/public/v1/courses/{courseId}/copy
DESCRIPTION
VERSIONS 3300.0.0,3800.0.0
PATH /learn/api/public/v2/courses
DESCRIPTION
VERSIONS 3400.8.0,3800.1.0
PATH /learn/api/public/v2/courses
DESCRIPTION
VERSIONS 3400.8.0,3800.1.0
PATH /learn/api/public/v2/courses/{courseId}
DESCRIPTION
VERSIONS 3400.8.0,3800.1.0
PATH /learn/api/public/v2/courses/{courseId}
DESCRIPTION
VERSIONS 3400.8.0,3800.1.0
PATH /learn/api/public/v2/courses/{courseId}
DESCRIPTION
VERSIONS 3400.8.0,3800.1.0
KEY AuthorizationCode FUNC {"summary":"AuthorizationCode","description":"Requests an OAuth 2 authorization code. Use of PKCE standard is optional, but highly recommended.\n\n**Since**: 3200.7.0","parameters":[{"$ref":"#/parameters/OAuth2AuthorizationCodeRequestParam.redirect_uri"},{"$ref":"#/parameters/OAuth2AuthorizationCodeRequestParam.response_type"},{"$ref":"#/parameters/OAuth2AuthorizationCodeRequestParam.client_id"},{"$ref":"#/parameters/OAuth2AuthorizationCodeRequestParam.scope"},{"$ref":"#/parameters/OAuth2AuthorizationCodeRequestParam.state"},{"name":"code_challenge","in":"query","description":"A code challenge to verify credentials along with the granted authorization code. It is used with the PKCE standard.\n\n**Since**: 3700.4.0","required":false,"type":"string"},{"name":"code_challenge_method","in":"query","description":"This is the method used to verify the code challenge using the PKCE standard. Blackboard only supports s256 as the code challenge method.\n\n**Since**: 3700.4.0","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/oauth2/authorizationcode","version":[["3200.7.0"]],"permissions":[]}
KEY RequestToken FUNC {"summary":"RequestToken","description":"Requests an OAuth 2 access token.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/OAuth2AccessTokenRequestParam.grant_type"},{"$ref":"#/parameters/OAuth2AccessTokenRequestParam.code"},{"name":"redirect_uri","in":"query","description":"The redirectUri to send the end user to once an access token response is made in Oauth2 Authorization Code Workflow\n\n**Since**: 3200.7.0","required":false,"type":"string"},{"name":"refresh_token","in":"query","description":"The refresh token granted for use by an application in Oauth2 Refresh Token Workflow\n\n**Since**: 3200.7.0","required":false,"type":"string"},{"name":"code_verifier","in":"query","description":"The code_verifier to be passed along with authorization code if PKCE standard was used to grant the authorization code.\n\n**Since**: 3700.4.0","required":false,"type":"string"}],"method":"post","path":"/learn/api/public/v1/oauth2/token","version":[["2015.11.0"]],"permissions":[]}
KEY GetToken Info FUNC {"summary":"GetToken Info","description":"Requests an OAuth 2 access token info.\n\n**Since**: 3700.6.0","parameters":[{"name":"access_token","in":"query","description":"The application key and secret, encoded using RFC 2617 Basic authentication.","required":true,"type":"string"}],"method":"get","path":"/learn/api/public/v1/oauth2/tokeninfo","version":[["3700.6.0"]],"permissions":[]}
KEY GetAnnouncements FUNC {"summary":"GetAnnouncements","description":"Return a list of Course Announcements. Users with the 'course.announcements.VIEW' entitlement can view 'available' Course Announcements. Users with the 'course.announcements.VIEW' & 'course.announcements.MODIFY' entitlement can view 'available' & 'unavailable' Course Announcements.\n\n**Since**: 3500.3.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"created","in":"query","description":"Search for announcements with a created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3500.3.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Defaults to greaterOrEqual if not specified. 'lessThan' also an accepted value.\n\n**Since**: 3500.3.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"modified","in":"query","description":"Search for announcements with a modified date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3500.3.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter. Defaults to greaterOrEqual if not specified. 'lessThan' also an accepted value.\n\n**Since**: 3500.3.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"title","in":"query","description":"Search for announcements with a title like the provided value.\n\n**Since**: 3500.3.0","required":false,"type":"string"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"title(desc),created\" Supported fields are:\n\n- title\n- modified\n\n**Since**: 3500.3.0","required":false,"type":"string"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/announcements","version":[["3500.3.0"]],"permissions":[["course.announcements.VIEW"],["course.announcements.VIEW"],["course.announcements.MODIFY"]]}
KEY CreateAnnouncement FUNC {"summary":"CreateAnnouncement","description":"Create a Course Announcement. Users with the 'course.announcements.CREATE' and 'course.announcements.VIEW' entitlements can create Course Announcements.\n\n**Since**: 3500.3.0","parameters":[{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string","description":"The title of this Announcement."},"body":{"type":"string","format":"BbML","example":"
Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The message body of the Announcement. This field supports BbML; see here for more information."},"draft":{"type":"boolean","description":"An indication of whether or not the Announcement is in draft status."},"availability":{"type":"object","description":"Settings controlling availability of the course to students.","title":"Availability","properties":{"duration":{"type":"object","description":"Duration indicates when the System Announcement is Available based on whether it is Permanent or if the date/time of the request falls within its Start & End dates.","title":"Duration","properties":{"start":{"type":"string","format":"date-time","description":"The date this Announcement starts being Available."},"end":{"type":"string","format":"date-time","description":"The date this Announcement stops being Available."}}}}}}}},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/announcements","version":[["3500.3.0"]],"permissions":[["course.announcements.CREATE"],["course.announcements.VIEW"]]}
KEY GetAnnouncement FUNC {"summary":"GetAnnouncement","description":"Get a Course Announcement. Users with the 'course.announcements.VIEW' entitlement can view 'available' Course Announcements. Users with the 'course.announcements.VIEW' & 'course.announcements.MODIFY' entitlement can view 'available' & 'unavailable' Course Announcements.\n\n**Since**: 3500.3.0","parameters":[{"name":"announcementId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/announcements/{announcementId}","version":[["3500.3.0"]],"permissions":[["course.announcements.VIEW"],["course.announcements.VIEW"],["course.announcements.MODIFY"]]}
KEY DeleteAnnouncement FUNC {"summary":"DeleteAnnouncement","description":"Delete a Course Announcement. Users with the 'course.announcements.DELETE' and 'course.announcements.VIEW' entitlements can delete Course Announcements.\n\n**Since**: 3500.3.0","parameters":[{"name":"announcementId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/fields"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/announcements/{announcementId}","version":[["3500.3.0"]],"permissions":[["course.announcements.DELETE"],["course.announcements.VIEW"]]}
KEY UpdateAnnouncement FUNC {"summary":"UpdateAnnouncement","description":"Update a Course Announcement. Users with the 'course.announcements.MODIFY' and 'course.announcements.VIEW' entitlements can update Course Announcements.\n\n**Since**: 3500.3.0","parameters":[{"name":"announcementId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"title":{"type":"string","description":"The title of this Announcement."},"body":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The message body of the Announcement. This field supports BbML; see here for more information."},"draft":{"type":"boolean","description":"An indication of whether or not the Announcement is in draft status."},"availability":{"type":"object","description":"Settings controlling availability of the course to students.","title":"Availability","properties":{"duration":{"type":"object","description":"Duration indicates when the System Announcement is Available based on whether it is Permanent or if the date/time of the request falls within its Start & End dates.","title":"Duration","properties":{"start":{"type":"string","format":"date-time","description":"The date this Announcement starts being Available."},"end":{"type":"string","format":"date-time","description":"The date this Announcement stops being Available."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/announcements/{announcementId}","version":[["3500.3.0"]],"permissions":[["course.announcements.MODIFY"],["course.announcements.VIEW"]]}
KEY GetCourse Meetings FUNC {"summary":"GetCourse Meetings","description":"Returns a list of course meetings for a given course id.\n\nThe \"course.attendance.VIEW\" entitlement is required to view a Course Meeting.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/CourseMeetingsSortCriteria.sort"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/meetings","version":[["3500.7.0"]],"permissions":[["course.attendance.VIEW"]]}
KEY CreateCourse Meeting FUNC {"summary":"CreateCourse Meeting","description":"Creates a new Course Meeting within the provided Course/Organization Id. An attendance grade book column will automatically be generated if one does not exist.\n\nThe \"course.attendance.CREATE\" entitlement is required to create a Course Meeting.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["courseId","description","end","start","title"],"properties":{"courseId":{"type":"string","description":"The primary ID of the course."},"title":{"type":"string","description":"The title of the meeting"},"description":{"type":"string","description":"The description of the meeting"},"start":{"type":"string","format":"date-time","description":"The start time of meeting"},"end":{"type":"string","format":"date-time","description":"The end time of meeting"},"externalLink":{"type":"string","description":"The externalLink of course meeting"}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/meetings","version":[["3500.7.0"]],"permissions":[["course.attendance.CREATE"]]}
KEY DeleteAll Meetings In Course FUNC {"summary":"DeleteAll Meetings In Course","description":"Deletes all course meetings in the course for the given course Id.\n\nThe 'course.attendance.DELETE' entitlement is required to delete Course Meetings.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/meetings","version":[["3500.7.0"]],"permissions":[["course.attendance.DELETE"]]}
KEY GenerateAttendance Data Download Url FUNC {"summary":"GenerateAttendance Data Download Url","description":"Generate Download URL for Attendance Data.\n\nThe \"course.attendance.CREATE\" entitlement is required to generate download URL for attendance data.\n\n**Since**: ????","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/meetings/downloadUrl","version":[],"permissions":[["course.attendance.CREATE"]]}
KEY GetAttendance Records By User Id FUNC {"summary":"GetAttendance Records By User Id","description":"Returns a list of Course Meeting Attendance for a given user id regardless of courses and meetings.\n\nThe \"course.attendance.VIEW\" entitlement is required to view a Course Meeting attendance.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/AttendanceRecordsSortCriteria.sort"},{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/meetings/users/{userId}","version":[["3500.7.0"]],"permissions":[["course.attendance.VIEW"]]}
KEY DeleteAll Attendance Records By Course And User Id FUNC {"summary":"DeleteAll Attendance Records By Course And User Id","description":"Deletes all attendance records for the user in specific course.\n\nThe 'course.attendance.DELETE' entitlement is required to delete attendance records.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/UserIdParam.userId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/meetings/users/{userId}","version":[["3500.7.0"]],"permissions":[["course.attendance.DELETE"]]}
KEY DeleteAll Attendance By User Id FUNC {"summary":"DeleteAll Attendance By User Id","description":"Deletes all attendance records for the user. It will delete meeting attendance regardless of course.\n\nThe 'course.attendance.DELETE' entitlement is required to delete attendance records.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/UserIdParam.userId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/meetings/users/{userId}/all","version":[["3500.7.0"]],"permissions":[["course.attendance.DELETE"]]}
KEY GetCourse Meeting FUNC {"summary":"GetCourse Meeting","description":"Returns a Course Meeting for the given meeting Id.\n\nThe \"course.attendance.VIEW\" entitlement is required to view a Course Meeting.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}","version":[["3500.7.0"]],"permissions":[["course.attendance.VIEW"]]}
KEY DeleteCourse Meeting FUNC {"summary":"DeleteCourse Meeting","description":"Delete the Course Meeting for the given course meeting Id.\n\nThe 'course.attendance.DELETE' entitlement is required to delete Course Meetings.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}","version":[["3500.7.0"]],"permissions":[["course.attendance.DELETE"]]}
KEY UpdateCourse Meeting FUNC {"summary":"UpdateCourse Meeting","description":"Update the Course Meeting for the given Course/Organization.\n\nThe \"course.attendance.MODIFY\" entitlement is required to update a Course Meeting. The \"course.attendance.VIEW\" entitlement is required to view a Course Meeting.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"courseId":{"type":"string","description":"The primary ID of the course."},"title":{"type":"string","description":"The title of the meeting"},"description":{"type":"string","description":"The description of the meeting"},"start":{"type":"string","format":"date-time","description":"The start time of meeting"},"end":{"type":"string","format":"date-time","description":"The end time of meeting"},"externalLink":{"type":"string","description":"The externalLink of course meeting"}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}","version":[["3500.7.0"]],"permissions":[["course.attendance.MODIFY"],["course.attendance.VIEW"]]}
KEY GetAttendance Records By Meeting Id FUNC {"summary":"GetAttendance Records By Meeting Id","description":"Returns a list of Course Meeting Attendance for a given meeting id.\n\nThe \"course.attendance.VIEW\" entitlement is required to view a Course Meeting attendance.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/AttendanceRecordsSortCriteria.sort"},{"name":"meetingId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users","version":[["3500.7.0"]],"permissions":[["course.attendance.VIEW"]]}
KEY CreateAttendance Record FUNC {"summary":"CreateAttendance Record","description":"Creates a new Course Meeting Attendance within the provided Course/Organization Id.\n\nThe \"course.attendance.CREATE\" entitlement is required to create a Course Meeting Attendance.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["meetingId","status","userId"],"properties":{"meetingId":{"type":"string","description":"The primary id of the meeting."},"userId":{"type":"string","description":"The learn external id of the user."},"status":{"type":"string","description":"The attendance status of the user.\n\n\n| Type | Description\n | --------- | --------- |\n| Absent | |\n| Late | |\n| Present | |\n| Excused | |\n","enum":["Absent","Late","Present","Excused"]}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users","version":[["3500.7.0"]],"permissions":[["course.attendance.CREATE"]]}
KEY DeleteAll Records In Meeting FUNC {"summary":"DeleteAll Records In Meeting","description":"Deletes all attendance records in the course meeting for a given meeting Id.\n\nThe 'course.attendance.DELETE' entitlement is required to delete attendance records.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users","version":[["3500.7.0"]],"permissions":[["course.attendance.DELETE"]]}
KEY UpdateAttendance Records FUNC {"summary":"UpdateAttendance Records","description":"Creates or updates attendance records for the meeting for all users in the course.\n\nUser required both of the entitlements below. If the user does not have the required entitlements,no records are created or modified. Entitlement | User Access ------------|----------- course.attendance.CREATE | Create Course/Organization Course Meeting Attendance course.attendance.MODIFY | Update Course/Organization Meeting Attendance\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["meetingId","status","userId"],"properties":{"meetingId":{"type":"string","description":"The primary id of the meeting."},"userId":{"type":"string","description":"The learn external id of the user."},"status":{"type":"string","description":"The attendance status of the user.\n\n\n| Type | Description\n | --------- | --------- |\n| Absent | |\n| Late | |\n| Present | |\n| Excused | |\n","enum":["Absent","Late","Present","Excused"]}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users/bulk","version":[["3500.7.0"]],"permissions":[["course.attendance.CREATE"],["course.attendance.MODIFY"]]}
KEY GetAttendance Record FUNC {"summary":"GetAttendance Record","description":"Returns a Course Meeting Attendance information for the given meeting and user Id.\n\nThe \"course.attendance.VIEW\" entitlement is required to view a Course Meeting Attendance.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users/{userId}","version":[["3500.7.0"]],"permissions":[["course.attendance.VIEW"]]}
KEY DeleteAttendance Record FUNC {"summary":"DeleteAttendance Record","description":"Delete attendance record for meeting.It will delete meeting attendance within a course meeting.\n\nThe 'course.attendance.DELETE' entitlement is required to delete Attendance Record.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/UserIdParam.userId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users/{userId}","version":[["3500.7.0"]],"permissions":[["course.attendance.DELETE"]]}
KEY UpdateAttendance Record FUNC {"summary":"UpdateAttendance Record","description":"Update the Course Meeting Attendance data for the given Course/Organization.\n\nThe \"course.attendance.MODIFY\" entitlement is required to update a Course Meeting Attendance. The \"course.attendance.VIEW\" entitlement is required to view a Course Meeting attendance.\n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"meetingId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/UserIdParam.userId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"meetingId":{"type":"string","description":"The primary id of the meeting."},"userId":{"type":"string","description":"The learn external id of the user."},"status":{"type":"string","description":"The attendance status of the user.\n\n\n| Type | Description\n | --------- | --------- |\n| Absent | |\n| Late | |\n| Present | |\n| Excused | |\n","enum":["Absent","Late","Present","Excused"]}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/meetings/{meetingId}/users/{userId}","version":[["3500.7.0"]],"permissions":[["course.attendance.MODIFY"],["course.attendance.VIEW"]]}
KEY GetCalendars FUNC {"summary":"GetCalendars","description":"Get the list of calendars. This endpoint will return all calendars viewable by the user. All users can request a list of calendars viewable to them.\n\n**Since**: 3400.9.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/calendars","version":[["3400.9.0"]],"permissions":[]}
KEY GetCalendar Items FUNC {"summary":"GetCalendar Items","description":"Get the list of calendar items. This endpoint will return all types of CalendarItems viewable by the user unless a specific type is specified as a query parameter.\n\nIf since and since are not provided this endpoint will default to the upcoming two week timeframe from now. \n\nIf only since is provided this endpoint will default the until parameter two weeks after since. \n\nIf only until is provided this endpoint will default the since parameter two prior to until. \n\nMaximum timespan between since and until is 16 weeks. \n\nCalendarItems of type GradebookColumn are a representation of a specific gradable item and therefore read-only. Modifications to GradebookColumn items performed via the Gradebook Column endpoints will be reflected in the CalendarItems endpoints. \n\nThe CalendarItem id can be used as the columnId on the Gradebook Column endpoints found here: /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}. Example requests:\n\n- GET ../items?since=2018-01-01T00:00:00.000Z&until2018-02-01T00:00:00.000Z // all calendar items for a given timeframe\n- GET ../items?since=2018-01-01T00:00:00.000Z&until2018-02-01T00:00:00.000Z&courseId=_123_1 // all calendar items for a given course (including Course, OfficeHours, GradebookColumn types)\n- GET ../items?since=2018-01-01T00:00:00.000Z&until2018-02-01T00:00:00.000Z&courseId=_123_1&type=GradebookColumn // all GradebookColumn items for a course\n- GET ../items?since=2018-01-01T00:00:00.000Z&until2018-02-01T00:00:00.000Z&courseId=_123_1&type=OfficeHours // all OfficeHours for a course\n- GET ../items?since=2018-01-01T00:00:00.000Z&until2018-02-01T00:00:00.000Z&type=GradebookColumn // all gradebook columns due within the given timeframe\n- GET ../items?since=2018-01-01T00:00:00.000Z&until2018-02-01T00:00:00.000Z&type=OfficeHours // all OfficeHours available to current user for a given timeframe\nThe following must be true in order to view the following calendar item types:\n\n- Institution\n-\n\n- All users can view Institution calendar items\n\n- Personal\n-\n\n- Any user may view their own calendar items, but not other user's calendar items\n\n- Course\n-\n\n- The user must be enrolled in the course\n- The user must have the 'course.calendar-entry.VIEW' entitlement\n- The course calendar must be enabled for the course the calendar item is associated with\n\n- GradebookColumn\n-\n\n- The user must be enrolled in the course\n- The user must have the 'course.calendar-entry.VIEW' entitlement\n- The course calendar must be enabled for the course the GradebookColumn is associated with\n\n- OfficeHours\n-\n\n- If the OfficeHours are created for a course calendar (calendarId = a course id) the user must be enrolled in the course\n- If the OfficeHours are created for a all courses (calendarId = PERSONAL) the user must be enrolled in any course that the user owning the OfficeHours is also enrolled in\n- In either case above the course calendar must be enabled\n\n\n\n**Since**: 3400.9.0","parameters":[{"name":"courseId","in":"query","description":"Specifies only calendar items associated with 'courseId' are to be returned.\n\n**Since**: 3400.9.0","required":false,"type":"string"},{"name":"type","in":"query","description":"Specifies only calendar items with the given type.\n\n**Since**: 3400.9.0\n\n\n| Type | Description\n | --------- | --------- |\n| Course | |\n| GradebookColumn | Read only. |\n| Institution | |\n| OfficeHours | |\n| Personal | |\n","required":false,"type":"string","enum":["Course","GradebookColumn","Institution","OfficeHours","Personal"]},{"name":"since","in":"query","description":"Specifies only calendar items after the 'since' date (inclusive) are to be returned. Maximum of 16 weeks after the 'since' date will be returned. ISO-8601 date-time format is expected: [yyyy-MM-dd|yyyyMMdd][T(hh:mm[:ss[.sss]]|hhmm[ss[.sss]])]?[Z|[+-]hh:mm]]\n\n**Since**: 3400.9.0","required":false,"type":"string","format":"date-time"},{"name":"until","in":"query","description":"Specifies only calendar items before the 'until' date (inclusive) are to be returned. Maximum of 16 weeks prior to the 'until' date will be returned. ISO-8601 date-time format is expected: [yyyy-MM-dd|yyyyMMdd][T(hh:mm[:ss[.sss]]|hhmm[ss[.sss]])]?[Z|[+-]hh:mm]]\n\n**Since**: 3400.9.0","required":false,"type":"string","format":"date-time"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"title(desc),start\" Supported fields are:\n\n- id\n- calendarId\n- title\n- start\n- end\n- modified\n\n**Since**: 3400.9.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/calendars/items","version":[["2018-01-01"],["00:00:00"],["2018-02-01"],["00:00:00"],["2018-01-01"],["00:00:00"],["2018-02-01"],["00:00:00"],["123_1"],["2018-01-01"],["00:00:00"],["2018-02-01"],["00:00:00"],["123_1"],["2018-01-01"],["00:00:00"],["2018-02-01"],["00:00:00"],["123_1"],["2018-01-01"],["00:00:00"],["2018-02-01"],["00:00:00"],["2018-01-01"],["00:00:00"],["2018-02-01"],["00:00:00"],["3400.9.0"]],"permissions":[]}
KEY CreateCalendar Item FUNC {"summary":"CreateCalendar Item","description":"\n\nCreate a calendar item. Calendar items may be single or recurring. \n\nCalendarItems of type OfficeHours will be assigned to the current user. The following must be true in order to create a calendar item:\n\n- Institution\n-\n\n- The user must have the 'system.calendar-item.EXECUTE' entitlement\n\n- Personal\n-\n\n- Any user may create their own calendar items\n\n- Course\n-\n\n- The user must be enrolled in the course\n- The user must have the 'course.calendar-entry.CREATE' entitlement\n- The specified courseId must not be for an organization\n- The course calendar must be enabled for the specified course\n\n- GradebookColumn\n-\n\n- GradebookColumns must be created using the Gradebook API endpoint: POST /learn/api/public/v2/courses/{courseId}/gradebook/columns\n\n- OfficeHours\n-\n\n- The user must have the 'course.calendar-entry.CREATE' entitlement\n- If calendarId = a course id the user must be enrolled in the course and the calendar must be enabled\n- Note: To create for all enrolled courses calendarId must be set to PERSONAL\n\n**Since**: 3400.9.0","parameters":[{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["calendarId","type"],"properties":{"type":{"type":"string","description":"The type of this Calendar Item.\n\n\n| Type | Description\n | --------- | --------- |\n| Course | |\n| GradebookColumn | Read only. |\n| Institution | |\n| OfficeHours | |\n| Personal | |\n","enum":["Course","GradebookColumn","Institution","OfficeHours","Personal"]},"calendarId":{"type":"string","description":"Calendar source identifier which indicates the calendar on which the calendar item was created. Examples of possible values : \"PERSONAL\", \"INSTITUTION\", and course id in the format of \"_3_1\"."},"title":{"type":"string","description":"Title of the calendar item. Title length cannot exceed 255 characters."},"description":{"type":"string","description":"Description of the calendar item."},"location":{"type":"string","description":"Location of the calendar item and it cannot exceed 1024 characters."},"start":{"type":"string","format":"date-time","description":"Start date of the calendar item either in the past if the calendar item is for an event that's already started OR in the future if it's for an event to start in the future. This is always set and should occur before the end date."},"end":{"type":"string","format":"date-time","description":"End date of the calendar item either in the past if the calendar item is for an event that's already end OR in the future if it's for an event to end in the future. This is always set and should occur after the start date."},"disableResizing":{"type":"boolean","description":"Whether resizing of the calendar item should NOT be allowed."},"dynamicCalendarItemProps":{"type":"object","description":"Extra calendar item properties if it is a GradebookColumn calendar item.","title":"DynamicCalendarItemProps","readOnly":true,"properties":{"attemptable":{"type":"boolean","description":"The dynamic calendar item can be attempted (can have attempts made against it) and the current user (in context) has permission/entitlement to grade attempts for the object represented by this calendar item."},"categoryId":{"type":"string","description":"Returns the gradeableItem categoryId value .it is only set if the calendar event is dynamically created based on a single grade book column"},"dateRangeLimited":{"type":"boolean","description":"The dynamic calendar item is only visible during a specific windows of time."},"eventType":{"type":"string","description":"Returns a human readable string describing the type of calendar item represented (e.g. assignment, test, etc.)."},"gradable":{"type":"boolean","description":"The dynamic calendar item can be graded and the current user (in context) has permission/entitlement to grade attempts for the object represented by this calendar item."}}},"recurrence":{"description":"Recurring definition if the calendar item is a repeatable calendar item. This object must be defined for OfficeHours type calendar items.","$ref":"#/definitions/CalendarItemRecurrence"}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/calendars/items","version":[["3400.9.0"]],"permissions":[]}
KEY GetCalendar Item FUNC {"summary":"GetCalendar Item","description":"\n\nGet a course calendar item. \n\nCalendarItems of type GradebookColumn are a representation of a specific gradable item and therefore read-only. Modifications to GradebookColumn items performed via the Gradebook Column endpoints will be reflected in the CalendarItems endpoints. \n\nThe CalendarItem id can be used as the columnId on the Gradebook Column endpoints found here: /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}. The following must be true in order to view the following calendar items types:\n\n- Institution\n-\n\n- All users can view Institution calendar items\n\n- Personal\n-\n\n- Any user may view their own calendar items, but not other user's calendar items\n\n- Course\n-\n\n- The user must be enrolled in the course\n- The user must have the 'course.calendar-entry.VIEW' entitlement\n- The course calendar must be enabled for the course the calendar item is associated with\n\n- GradebookColumn\n-\n\n- The user must be enrolled in the course\n- The user must have the 'course.calendar-entry.VIEW' entitlement\n- The course calendar must be enabled for the course the GradebookColumn is associated with\n\n- OfficeHours\n-\n\n- If the OfficeHours are created for a course calendar (calendarId = a course id) the user must be enrolled in the course\n- If the OfficeHours are created for a all courses (calendarId = PERSONAL) the user must be enrolled in any course that the user owning the OfficeHours is also enrolled in\n- In either case above the course calendar must be enabled\n\n**Since**: 3400.9.0","parameters":[{"name":"calendarItemType","in":"path","required":true,"type":"string","enum":["Course","GradebookColumn","Institution","OfficeHours","Personal"]},{"name":"calendarItemId","in":"path","required":true,"type":"string"}],"method":"get","path":"/learn/api/public/v1/calendars/items/{calendarItemType}/{calendarItemId}","version":[["3400.9.0"]],"permissions":[]}
KEY DeleteCalendar Item FUNC {"summary":"DeleteCalendar Item","description":"\n\nDelete a calendar item or series. The following must be true in order to delete a calendar item:\n\n- Institution\n-\n\n- The user must have the 'system.calendar-item.EXECUTE' entitlement\n\n- Personal\n-\n\n- Any user may delete their own calendar items\n\n- Course\n-\n\n- The user must be enrolled in the course\n- The user must have the 'course.calendar-entry.MODIFY' entitlement\n- The course calendar must be enabled for the specified course\n\n- GradebookColumn\n-\n\n- GradebookColumns must be deleted using the Gradebook API endpoint: DELETE /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}\n\n- OfficeHours\n-\n\n- The user must have the 'course.calendar-entry.MODIFY' entitlement\n- The user must own the calendarItem\n- The calendar must be enabled if the calendarItem is associated with a course calendar.\n\n**Since**: 3400.9.0","parameters":[{"name":"calendarItemType","in":"path","required":true,"type":"string","enum":["Course","GradebookColumn","Institution","OfficeHours","Personal"]},{"name":"calendarItemId","in":"path","required":true,"type":"string"},{"name":"deleteSeries","in":"query","description":"delete the series calendar items or just one calendar item. true - delete the series, false - delete one calendar item. Defaults to false.","required":false,"type":"boolean"}],"method":"delete","path":"/learn/api/public/v1/calendars/items/{calendarItemType}/{calendarItemId}","version":[["3400.9.0"]],"permissions":[]}
KEY UpdateCalendar Item FUNC {"summary":"UpdateCalendar Item","description":"\n\nUpdate a calendar item or series. \n\nWhen updating the series the existing CalendarItems will be removed and a new set of CalendarItems will be created. This is the same behavior as experienced via the UI. The following must be true in order to update a calendar item:\n\n- Institution\n-\n\n- The user must have the 'system.calendar-item.EXECUTE' entitlement\n\n- Personal\n-\n\n- Any user may update their own calendar items\n\n- Course\n-\n\n- The user must be enrolled in the course\n- The user must have the 'course.calendar-entry.MODIFY' entitlement\n- The course calendar must be enabled for the specified course\n\n- GradebookColumn\n-\n\n- GradebookColumns must be updated using the Gradebook API endpoint: PATCH /learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}\n\n- OfficeHours\n-\n\n- The user must have the 'course.calendar-entry.MODIFY' entitlement\n- If calendarId = a course id the user must be enrolled in the course and the calendar must be enabled\n\n**Since**: 3400.9.0","parameters":[{"name":"calendarItemType","in":"path","required":true,"type":"string","enum":["Course","GradebookColumn","Institution","OfficeHours","Personal"]},{"name":"calendarItemId","in":"path","required":true,"type":"string"},{"name":"updateSeries","in":"query","description":"update the series calendar items or just one calendar item. true - update the entire series, false - update a single calendar item. Defaults to false. When updating an entire series the full recurrence object must be populated just as if creating a new calendar series. If updating a single calendar entry the recurrence must not be specified.","required":false,"type":"boolean"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"title":{"type":"string","description":"Title of the calendar item. Title length cannot exceed 255 characters."},"description":{"type":"string","description":"Description of the calendar item."},"location":{"type":"string","description":"Location of the calendar item and it cannot exceed 1024 characters."},"start":{"type":"string","format":"date-time","description":"Start date of the calendar item either in the past if the calendar item is for an event that's already started OR in the future if it's for an event to start in the future. This is always set and should occur before the end date."},"end":{"type":"string","format":"date-time","description":"End date of the calendar item either in the past if the calendar item is for an event that's already end OR in the future if it's for an event to end in the future. This is always set and should occur after the start date."},"disableResizing":{"type":"boolean","description":"Whether resizing of the calendar item should NOT be allowed."},"dynamicCalendarItemProps":{"type":"object","description":"Extra calendar item properties if it is a GradebookColumn calendar item.","title":"DynamicCalendarItemProps","readOnly":true,"properties":{"attemptable":{"type":"boolean","description":"The dynamic calendar item can be attempted (can have attempts made against it) and the current user (in context) has permission/entitlement to grade attempts for the object represented by this calendar item."},"categoryId":{"type":"string","description":"Returns the gradeableItem categoryId value .it is only set if the calendar event is dynamically created based on a single grade book column"},"dateRangeLimited":{"type":"boolean","description":"The dynamic calendar item is only visible during a specific windows of time."},"eventType":{"type":"string","description":"Returns a human readable string describing the type of calendar item represented (e.g. assignment, test, etc.)."},"gradable":{"type":"boolean","description":"The dynamic calendar item can be graded and the current user (in context) has permission/entitlement to grade attempts for the object represented by this calendar item."}}},"recurrence":{"description":"Recurring definition if the calendar item is a repeatable calendar item. This object must be defined for OfficeHours type calendar items.","$ref":"#/definitions/CalendarItemRecurrence"}}}}],"method":"patch","path":"/learn/api/public/v1/calendars/items/{calendarItemType}/{calendarItemId}","version":[["3400.9.0"]],"permissions":[]}
KEY GetContents FUNC {"summary":"GetContents","description":"List top-level content items in a course.\n\nUsers with at least one of the following entitlements may access any content item:\n\n- course.adaptiverelease.CREATE\n- course.adaptiverelease.DELETE\n- course.adaptiverelease.MODIFY\n- course.adaptiverelease.VIEW\n- course.configure-areas.EXECUTE\n- course.content-item.copy.EXECUTE\n- course.content.DELETE\n- course.content.MODIFY\n- course.learningstandards.alignment.CREATE\n- course.performance.dashboard.VIEW\n\n\nFor other users, permission to view the content item will depend on the availability settings of the course and the content item. The following fields will be filtered out:\n\n- availability.available\n- availability.allowGuests\n- availability.adaptiveRelease\n\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"recursive","in":"query","description":"Search for child content recursively. A value of 'true' indicates that search results should include all content descendants within the hierarchy of the specified parent. A value of 'false' indicates results should be limited to immediate children only. Not setting this field defaults to 'false' behavior; only including immediate children.\n\n**Since**: 3100.2.0","required":false,"type":"boolean"},{"name":"contentHandler","in":"query","description":"Search for the specific content handler. Not setting this field will return all content handlers.\n\n**Since**: 3400.5.0","required":false,"type":"string"},{"name":"created","in":"query","description":"Search for contents with a created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3700.1.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3700.1.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"modified","in":"query","description":"Search for contents with a modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3700.4.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3700.4.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"reviewable","in":"query","description":"Search contents by whether they are reviewable or not.\n\n**Since**: 3700.15.0","required":false,"type":"boolean"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/contents","version":[["3000.1.0"]],"permissions":[["course.adaptiverelease.CREATE"],["course.adaptiverelease.DELETE"],["course.adaptiverelease.MODIFY"],["course.adaptiverelease.VIEW"],["item.copy.EXECUTE"],["course.content.DELETE"],["course.content.MODIFY"],["course.learningstandards.alignment.CREATE"],["course.performance.dashboard.VIEW"]]}
KEY CreateContent FUNC {"summary":"CreateContent","description":"Create a new top-level content item. Currently only folders may be created as top-level content items in a Classic course. For Ultra courses any content item is allowed and will be placed under the ROOT folder. Entitlement \"course.content.CREATE\" required to create Course Content.\n\n**Since**: 3000.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/AllowChildCourseContent.allowChildCourseContent"},{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["title"],"properties":{"parentId":{"type":"string","description":"The ID of the content's parent. Note that top-level contents do not have parents. The 'parentId' field is a writable field as of the Bb Learn 3200.6.0 release. Specifying a new value in PATCH requests allows the Content object to be moved from one parent to another."},"title":{"type":"string","description":"The title or name of this content. Typically shown as the main text to click in the course outline when accessing the content."},"body":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The body text associated with this content. This field supports BbML; see here for more information."},"description":{"type":"string","description":"The short description of this content.\n\nThis field is not used in Classic courses. For Ultra courses this is used to show information directly on the course outline."},"position":{"type":"integer","format":"int32","description":"The position of this content within its parent folder. Position values are zero-based (the first element has a position value of zero, not one). Default position is last in the list of child contents under the parent."},"launchInNewWindow":{"type":"boolean","description":"Indicates whether the content is going to open in a new window.\n\n**Since**: 3800.10.0"},"reviewable":{"type":"boolean","description":"Indicates whether Review Status is enabled for this content. Content items with review status enabled can be marked as reviewed by students. This can be used to track performance and in Adaptive Release rules to control the release of other content. Reviewable field is currently being used only in Classic courses.\n\n**Since**: 3700.15.0"},"availability":{"type":"object","description":"Settings controlling availability of the content to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the content is currently available to students. Instructors can always access the content. If set to 'PartiallyVisible', the title will be available to students but the body will not. Defaults to Yes.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| PartiallyVisible | |\n","enum":["Yes","No","PartiallyVisible"]},"allowGuests":{"type":"boolean","description":"Whether this content is available to users with the 'guest' role. Defaults to true."},"adaptiveRelease":{"type":"object","description":"Settings controlling adaptive release of the content to students.","title":"AdaptiveRelease","properties":{"start":{"type":"string","format":"date-time","description":"The date when this content will become available to students."},"end":{"type":"string","format":"date-time","description":"The date when this content will no longer be available to students."}}}}},"contentHandler":{"description":"Extended settings specific to this content item's content handler.","$ref":"#/definitions/ContentHandler"}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/contents","version":[["3000.7.0"]],"permissions":[["course.content.CREATE"]]}
KEY CreateAssignment FUNC {"summary":"CreateAssignment","description":"Create assignment content, grade column and file attachments in one POST. Any files specified with assignment creation must be previously uploaded using the uploads endpoint. Ultra courses supported since 3300.9.0 Classic courses supported since 3400.9.0 For Ultra courses, this will create:\n\n- A content item with a contentHandler.id = resource/x-bb-asmt-test-link\n- A gradebook column with contentId = id of the new content\n- An assessment question with questionHandler.type = presentation that includes the instructions as the question text\n- An assessment question with questionHandler.type = presentation for each given file attachment\n The following entitlements are required to create an Ultra assignment:\n\n- course.content.CREATE\n- course.assessment.CREATE\n- course.content.assessment.deploy.EXECUTE\n- course.gradebook.MODIFY\n- course.assessment.MODIFY, if instructions or files are specified\n For Classic courses, this will create:\n\n- A content item with contentHandler.id = resource/x-bb-assignment\n- A gradebook column with contentId = id of the new content\n- A file attachment for each given file attachment id\nThe following entitlements are required to create a Classic assignment:\n\n- course.content.CREATE\n- course.gradebook.MODIFY\n- course.content.MODIFY, if files are specified\n\n\n**Since**: 3300.9.0","parameters":[{"$ref":"#/parameters/AllowChildCourseContent.allowChildCourseContent"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["title"],"properties":{"parentId":{"type":"string","description":"The id of the parent content for the created assignment."},"title":{"type":"string","description":"The title used for the created assignment content and gradebook column. Typically shown as the main text to click in the course outline when accessing the assignment."},"instructions":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The text instructions to use when creating the assignment content. This field supports BbML; see here for more information."},"description":{"type":"string","description":"The description to use when creating the assignment content."},"position":{"type":"integer","format":"int32","description":"The position of the created assignment within the other other content of its parent. Position values are zero-based (the first element has a position value of zero, not one). Default position is last in the list of child contents under the parent."},"fileUploadIds":{"type":"array","items":{"type":"string"}},"availability":{"type":"object","title":"Availability","properties":{"available":{"type":"string","description":"Whether the created assignment is available to students. Instructors can always access the created assignment. If set to 'PartiallyVisible', the title will be available to students but the body will not. Defaults to Yes.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| PartiallyVisible | |\n","enum":["Yes","No","PartiallyVisible"]},"allowGuests":{"type":"boolean","description":"Whether the created assignment is available to users with the 'guest' role. Defaults to true."},"adaptiveRelease":{"type":"object","description":"Settings controlling adaptive release of created assignment to students.","title":"AdaptiveRelease","properties":{"start":{"type":"string","format":"date-time","description":"The date when the created assignment will become available to students."},"end":{"type":"string","format":"date-time","description":"The date when the created assignment will no longer be available to students."}}}}},"grading":{"type":"object","title":"Grading","properties":{"due":{"type":"string","format":"date-time","description":"Date and time that the created assignment will be due. If not specified, this will default to the specified \"availability.adaptiveRelease.end\" date. If that is also not specified, due date defaults to null."},"attemptsAllowed":{"type":"integer","format":"int32","description":"The number of attempts allowed on the created assignment. Defaults to 1. Maximum allowed is 10 for an Ultra Assignment. Value will be ignored if isUnlimitedAttemptsAllowed is set to true."},"gradeSchemaId":{"type":"string","description":"The grading schema to use for the created assignment. Defaults to Score."},"isUnlimitedAttemptsAllowed":{"type":"boolean","description":"Determines if the assignment has unlimited number of attempts.\n\n**Since**: 3400.8.0"}}},"score":{"type":"object","title":"Score","properties":{"possible":{"type":"number","description":"The number of points possible for the created assignment. Defaults to 100."}}},"originalityReportingTool":{"description":"The Originality Reporting Tool options to be used for the assignment content item.\n\n**Since**: 3800.16.0","$ref":"#/definitions/OriginalityReportingTool"}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/contents/createAssignment","version":[["3300.9.0"],["3400.9.0"],["3300.9.0"]],"permissions":[["course.content.CREATE"],["course.assessment.CREATE"],["course.content.assessment.deploy.EXECUTE"],["course.gradebook.MODIFY"],["course.assessment.MODIFY"],["course.content.CREATE"],["course.gradebook.MODIFY"],["course.content.MODIFY"]]}
KEY GetContent FUNC {"summary":"GetContent","description":"Load a specific content item from a course.\n\nUsers with at least one of the following entitlements may access any content item:\n\n- course.adaptiverelease.CREATE\n- course.adaptiverelease.DELETE\n- course.adaptiverelease.MODIFY\n- course.adaptiverelease.VIEW\n- course.configure-areas.EXECUTE\n- course.content-item.copy.EXECUTE\n- course.content.DELETE\n- course.content.MODIFY\n- course.learningstandards.alignment.CREATE\n- course.performance.dashboard.VIEW\n\nFor other users, permission to view the content item will depend on the availability settings of the course and the content item. The following fields will be filtered out:\n\n- availability.available\n- availability.allowGuests\n- availability.adaptiveRelease\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}","version":[["3000.1.0"]],"permissions":[["course.adaptiverelease.CREATE"],["course.adaptiverelease.DELETE"],["course.adaptiverelease.MODIFY"],["course.adaptiverelease.VIEW"],["item.copy.EXECUTE"],["course.content.DELETE"],["course.content.MODIFY"],["course.learningstandards.alignment.CREATE"],["course.performance.dashboard.VIEW"]]}
KEY DeleteContent FUNC {"summary":"DeleteContent","description":"Delete a content item.\n\nThe 'course.content.DELETE' entitlement is required.\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"$ref":"#/parameters/AllowChildCourseContent.allowChildCourseContent"},{"$ref":"#/parameters/DeleteGradesParam.deleteGrades"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}","version":[["3000.1.0"]],"permissions":[["course.content.DELETE"]]}
KEY UpdateContent FUNC {"summary":"UpdateContent","description":"Update a content item.\n\nThe 'course.content.MODIFY' entitlement is required.\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"$ref":"#/parameters/AllowChildCourseContent.allowChildCourseContent"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"parentId":{"type":"string","description":"The ID of the content's parent. Note that top-level contents do not have parents. The 'parentId' field is a writable field as of the Bb Learn 3200.6.0 release. Specifying a new value in PATCH requests allows the Content object to be moved from one parent to another."},"title":{"type":"string","description":"The title or name of this content. Typically shown as the main text to click in the course outline when accessing the content."},"body":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The body text associated with this content. This field supports BbML; see here for more information."},"description":{"type":"string","description":"The short description of this content.\n\nThis field is not used in Classic courses. For Ultra courses this is used to show information directly on the course outline."},"position":{"type":"integer","format":"int32","description":"The position of this content within its parent folder. Position values are zero-based (the first element has a position value of zero, not one). Default position is last in the list of child contents under the parent."},"launchInNewWindow":{"type":"boolean","description":"Indicates whether the content is going to open in a new window.\n\n**Since**: 3800.10.0"},"reviewable":{"type":"boolean","description":"Indicates whether Review Status is enabled for this content. Content items with review status enabled can be marked as reviewed by students. This can be used to track performance and in Adaptive Release rules to control the release of other content. Reviewable field is currently being used only in Classic courses.\n\n**Since**: 3700.15.0"},"availability":{"type":"object","description":"Settings controlling availability of the content to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the content is currently available to students. Instructors can always access the content. If set to 'PartiallyVisible', the title will be available to students but the body will not. Defaults to Yes.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| PartiallyVisible | |\n","enum":["Yes","No","PartiallyVisible"]},"allowGuests":{"type":"boolean","description":"Whether this content is available to users with the 'guest' role. Defaults to true."},"adaptiveRelease":{"type":"object","description":"Settings controlling adaptive release of the content to students.","title":"AdaptiveRelease","properties":{"start":{"type":"string","format":"date-time","description":"The date when this content will become available to students."},"end":{"type":"string","format":"date-time","description":"The date when this content will no longer be available to students."}}}}},"contentHandler":{"description":"Extended settings specific to this content item's content handler.","$ref":"#/definitions/ContentHandler"}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}","version":[["3000.1.0"]],"permissions":[["course.content.MODIFY"]]}
KEY GetContent Children FUNC {"summary":"GetContent Children","description":"List all child content items directly beneath another content item. This is only valid for content items that are allowed to have children (e.g. Folders).\n\nUsers with at least one of the following entitlements may access all child contents from a content item:\n\n- course.adaptiverelease.CREATE\n- course.adaptiverelease.DELETE\n- course.adaptiverelease.MODIFY\n- course.adaptiverelease.VIEW\n- course.configure-areas.EXECUTE\n- course.content-item.copy.EXECUTE\n- course.content.DELETE\n- course.content.MODIFY\n- course.learningstandards.alignment.CREATE\n- course.performance.dashboard.VIEW\nIn any of the following cases, the user may also get the child contents from a content item.\n\n- The user has a role in the course other than guest or observer, and doesn't have any of the previously mentioned entitlements.\n- The user has the role of observer, and both the course and the underlying content allow observer access.\n- The user accesses the course as guest, both the course and the underlying content allow guest access, further, the course content menu allows guest access as well for the original courses.\nFor other users, permission to view the content item will depend on the availability settings of the course and the content item. The following fields will be filtered out:\n\n- availability.available\n- availability.allowGuests\n- availability.adaptiveRelease\n\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"recursive","in":"query","description":"Search for child content recursively. A value of 'true' indicates that search results should include all content descendants within the hierarchy of the specified parent. A value of 'false' indicates results should be limited to immediate children only. Not setting this field defaults to 'false' behavior; only including immediate children.\n\n**Since**: 3100.2.0","required":false,"type":"boolean"},{"name":"contentHandler","in":"query","description":"Search for the specific content handler. Not setting this field will return all content handlers.\n\n**Since**: 3400.5.0","required":false,"type":"string"},{"name":"created","in":"query","description":"Search for contents with a created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3700.1.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3700.1.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"modified","in":"query","description":"Search for contents with a modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3700.4.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3700.4.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"reviewable","in":"query","description":"Search contents by whether they are reviewable or not.\n\n**Since**: 3700.15.0","required":false,"type":"boolean"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/children","version":[["3000.1.0"]],"permissions":[["course.adaptiverelease.CREATE"],["course.adaptiverelease.DELETE"],["course.adaptiverelease.MODIFY"],["course.adaptiverelease.VIEW"],["item.copy.EXECUTE"],["course.content.DELETE"],["course.content.MODIFY"],["course.learningstandards.alignment.CREATE"],["course.performance.dashboard.VIEW"]]}
KEY CreateChild FUNC {"summary":"CreateChild","description":"Create a new child content item beneath an existing content item. This is only valid for content items that are allowed to have children (e.g. Folders). Entitlement \"course.content.CREATE\" required to create Course Content.\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"$ref":"#/parameters/AllowChildCourseContent.allowChildCourseContent"},{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["title"],"properties":{"parentId":{"type":"string","description":"The ID of the content's parent. Note that top-level contents do not have parents. The 'parentId' field is a writable field as of the Bb Learn 3200.6.0 release. Specifying a new value in PATCH requests allows the Content object to be moved from one parent to another."},"title":{"type":"string","description":"The title or name of this content. Typically shown as the main text to click in the course outline when accessing the content."},"body":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The body text associated with this content. This field supports BbML; see here for more information."},"description":{"type":"string","description":"The short description of this content.\n\nThis field is not used in Classic courses. For Ultra courses this is used to show information directly on the course outline."},"position":{"type":"integer","format":"int32","description":"The position of this content within its parent folder. Position values are zero-based (the first element has a position value of zero, not one). Default position is last in the list of child contents under the parent."},"launchInNewWindow":{"type":"boolean","description":"Indicates whether the content is going to open in a new window.\n\n**Since**: 3800.10.0"},"reviewable":{"type":"boolean","description":"Indicates whether Review Status is enabled for this content. Content items with review status enabled can be marked as reviewed by students. This can be used to track performance and in Adaptive Release rules to control the release of other content. Reviewable field is currently being used only in Classic courses.\n\n**Since**: 3700.15.0"},"availability":{"type":"object","description":"Settings controlling availability of the content to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the content is currently available to students. Instructors can always access the content. If set to 'PartiallyVisible', the title will be available to students but the body will not. Defaults to Yes.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| PartiallyVisible | |\n","enum":["Yes","No","PartiallyVisible"]},"allowGuests":{"type":"boolean","description":"Whether this content is available to users with the 'guest' role. Defaults to true."},"adaptiveRelease":{"type":"object","description":"Settings controlling adaptive release of the content to students.","title":"AdaptiveRelease","properties":{"start":{"type":"string","format":"date-time","description":"The date when this content will become available to students."},"end":{"type":"string","format":"date-time","description":"The date when this content will no longer be available to students."}}}}},"contentHandler":{"description":"Extended settings specific to this content item's content handler.","$ref":"#/definitions/ContentHandler"}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/children","version":[["3000.1.0"]],"permissions":[["course.content.CREATE"]]}
KEY GetFile Attachments FUNC {"summary":"GetFile Attachments","description":"Get the file attachment meta data associated to the Content Item\n\nSupported Content Item Types: Content File (resource/x-bb-file), Document (resource/x-bb-document), Classic Assignment (resource/x-bb-assignment) (Since 3400.9.0) for a Classic Course\n\n**Since**: 3200.8.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments","version":[["3400.9.0"],["3200.8.0"]],"permissions":[]}
KEY CreateFile Attachment FUNC {"summary":"CreateFile Attachment","description":"Attach an uploaded file to a Content item.\n\nSupported Content Item Types: Content File (resource/x-bb-file), Document (resource/x-bb-document), Classic Assignment (resource/x-bb-assignment) for a Classic Course\n\n**Since**: 3400.9.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"in":"body","name":"inputFileAttachment","required":true,"schema":{"type":"object"}}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments","version":[["3400.9.0"]],"permissions":[]}
KEY GetFile Attachment FUNC {"summary":"GetFile Attachment","description":"Get the file attachment meta data by an attachment ID\n\nSupported Content Item Types: Content File (resource/x-bb-file), Document (resource/x-bb-document), Classic Assignment(resource/x-bb-assignment) (Since 3400.9.0) for a Classic Course\n\n**Since**: 3200.8.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"name":"attachmentId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments/{attachmentId}","version":[["3400.9.0"],["3200.8.0"]],"permissions":[]}
KEY DeleteFile Attachment FUNC {"summary":"DeleteFile Attachment","description":"Delete file attachment meta data by attachment ID\n\nSupported Content Item Types: Content File (resource/x-bb-file), Document (resource/x-bb-document), Classic Assignment(resource/x-bb-assignment) for a Classic Course\n\n**Since**: 3400.9.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"name":"attachmentId","in":"path","required":true,"type":"string"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/attachments/{attachmentId}","version":[["3400.9.0"]],"permissions":[]}
KEY Download FUNC {"summary":"Download","description":"Download the contents of the file for a Student Submission.\n\n**Since**: 3400.6.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"attemptId","in":"path","required":true,"type":"string"},{"name":"attemptFileId","in":"path","required":true,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files/{attemptFileId}/download","version":[["3400.6.0"]],"permissions":[]}
KEY GetContent Groups FUNC {"summary":"GetContent Groups","description":"Returns a list of content group associations for the specified content.\n\nCallers not enrolled in the course must have at least one of the following entitlements:\n\n- course.content.designer.VIEW Callers enrolled in the course will only be able to see Groups that are available to them.\n\n**Since**: 3100.5.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"contentId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/groups","version":[["3100.5.0"]],"permissions":[["course.content.designer.VIEW"]]}
KEY GetContent Group FUNC {"summary":"GetContent Group","description":"Returns a content group association for the specified content and group.\n\nCallers not enrolled in the course must have at least one of the following entitlements:\n\n- course.content.designer.VIEW Callers enrolled in the course will only be able to see Groups that are available to them.\n\n**Since**: 3100.5.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"contentId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/groups/{groupId}","version":[["3100.5.0"]],"permissions":[["course.content.designer.VIEW"]]}
KEY CreateContent Group FUNC {"summary":"CreateContent Group","description":"Creates a content group association.\n\nCallers not enrolled in the course must have at least one of the following entitlements:\n\n- course.content.MODIFY If the content is going to be accessed in Ultra, the following rules should be followed by the caller:\n\n- If the group is part of a set, all groups with the set should be associated with the content. - The content should be associated exclusively to individual groups or groups within a set, but not both.\n\n**Since**: 3100.5.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"contentId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/AllowChildCourseContent.allowChildCourseContent"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"contentId":{"type":"string","description":"The ID of the associated content."},"groupId":{"type":"string","description":"The ID of the association of content and group."}}}},{"$ref":"#/parameters/fields"}],"method":"put","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/groups/{groupId}","version":[["3100.5.0"]],"permissions":[["course.content.MODIFY"]]}
KEY DeleteContent Group FUNC {"summary":"DeleteContent Group","description":"Deletes a content group association.\n\nRequired entitlements:\n\n- course.content.DELETE If the content is going to be accessed in Ultra, and the group being removed is part of a group set, then the caller should ensure that all groups within that set are removed from the content.\n\n**Since**: 3100.5.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"contentId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/AllowChildCourseContent.allowChildCourseContent"},{"$ref":"#/parameters/GroupIdParam.groupId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/groups/{groupId}","version":[["3100.5.0"]],"permissions":[["course.content.DELETE"]]}
KEY GetTop Level Course Resources FUNC {"summary":"GetTop Level Course Resources","description":"Returns a list of the top-level course resources.\n\nUsers with the 'bbcms.cs.fileSystem.REST.VIEW' entitlement can view all resources.\n\nAll other users can view resources for which they have been granted the 'Read' permission.\n\n**Since**: 3700.12.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ResourceSearchCriteria.type"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/resources","version":[["3700.12.0"]],"permissions":[["bbcms.cs.fileSystem.REST.VIEW"]]}
KEY GetCourse Resource FUNC {"summary":"GetCourse Resource","description":"Loads a Course Resource by Id.\n\nUsers with the 'bbcms.cs.fileSystem.REST.VIEW' entitlement can view all resources.\n\nAll other users can view resources for which they have been granted the 'Read' permission.\n\n**Since**: 3700.13.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ResourceIdParam.resourceId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/resources/{resourceId}","version":[["3700.13.0"]],"permissions":[["bbcms.cs.fileSystem.REST.VIEW"]]}
KEY GetCourse Resource Children FUNC {"summary":"GetCourse Resource Children","description":"Returns a list of Course Resources that are children of the specified Resource.\n\nUsers with the 'bbcms.cs.fileSystem.REST.VIEW' entitlement can view all resources.\n\nAll other users can view resources for which they have been granted the 'Read' permission.\n\n**Since**: 3700.13.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ResourceIdParam.resourceId"},{"$ref":"#/parameters/ResourceSearchCriteria.type"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/resources/{resourceId}/children","version":[["3700.13.0"]],"permissions":[["bbcms.cs.fileSystem.REST.VIEW"]]}
KEY GetReview Status FUNC {"summary":"GetReview Status","description":"Obtain the review status for a content item. This endpoint will only fetch the reviewStatus if the corresponding content was previously marked as reviewable.\n\n**Since**: 3700.16.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/users/{userId}/reviewStatus","version":[["3700.16.0"]],"permissions":[]}
KEY UpdateReview Status FUNC {"summary":"UpdateReview Status","description":"Update the review status for a content item. This endpoint will only update the reviewStatus if the corresponding content was previously marked as reviewable.\n\n**Since**: 3700.16.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ContentIdParam.contentId"},{"$ref":"#/parameters/UserIdParam.userId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"reviewed":{"type":"boolean","description":"The current status of the content's 'reviewed' attribute.\n\n**Since**: 3700.16.0"}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/contents/{contentId}/users/{userId}/reviewStatus","version":[["3700.16.0"]],"permissions":[]}
KEY GetQuestions FUNC {"summary":"GetQuestions","description":"Get the list of questions for an Ultra Assessment.\n\nEither 'course.assessment.CREATE' or 'course.assessment.MODIFY' entitlement is needed to view questions. If the assessment has the external submissions setting enabled, then either the 'course.assessment.VIEW' or 'course.assessment.EXECUTE' entitlement is needed to view questions, and only presentation questions are returned.\n\n**Since**: 3300.9.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"assessmentId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions","version":[["3300.9.0"]],"permissions":[["course.assessment.CREATE"],["course.assessment.MODIFY"],["course.assessment.VIEW"],["course.assessment.EXECUTE"]]}
KEY CreateQuestion FUNC {"summary":"CreateQuestion","description":"Creates a question for an Ultra Assessment.\n\nThe 'course.assessment.MODIFY' entitlement is needed to create a question.\n\n**Since**: 3300.9.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"assessmentId","in":"path","required":true,"type":"string"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["text"],"properties":{"title":{"type":"string","description":"The title of the question."},"text":{"type":"string","description":"The main text content for the question. It may include plain and formatted text, and all kinds of content supported by the full text editor."},"position":{"type":"integer","format":"int32","description":"Position of the Question on the Assessment Canvas."},"points":{"type":"number","description":"The point value for the question."},"correctResponseFeedback":{"type":"string","description":"Feedback displayed to students when their submitted response is correct."},"incorrectResponseFeedback":{"type":"string","description":"Feedback displayed to students when their submitted response is incorrect."},"instructorNotes":{"type":"string","description":"Text added to the question as a note for the instructor. It is not intended to be displayed to students."},"questionHandler":{"$ref":"#/definitions/QuestionHandler"}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions","version":[["3300.9.0"]],"permissions":[["course.assessment.MODIFY"]]}
KEY GetQuestion By Id FUNC {"summary":"GetQuestion By Id","description":"Get a question by Id from an Ultra Assessment.\n\nEither 'course.assessment.CREATE' or 'course.assessment.MODIFY' entitlement is needed to view a question.\n\n**Since**: 3300.9.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"assessmentId","in":"path","required":true,"type":"string"},{"name":"questionId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions/{questionId}","version":[["3300.9.0"]],"permissions":[["course.assessment.CREATE"],["course.assessment.MODIFY"]]}
KEY DeleteQuestion FUNC {"summary":"DeleteQuestion","description":"Delete a question, specified by Id, from an Ultra Assessment.\n\nThe 'course.assessment.DELETE' entitlement is needed to perform the operation.\n\n**Since**: 3300.9.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"assessmentId","in":"path","required":true,"type":"string"},{"name":"questionId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions/{questionId}","version":[["3300.9.0"]],"permissions":[["course.assessment.DELETE"]]}
KEY UpdateQuestion FUNC {"summary":"UpdateQuestion","description":"Update a question, specified by Id, from an Ultra Assessment.\n\nThe 'course.assessment.MODIFY' entitlement is needed to perform the operation.\n\n**Since**: 3300.9.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"assessmentId","in":"path","required":true,"type":"string"},{"name":"questionId","in":"path","required":true,"type":"string"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"title":{"type":"string","description":"The title of the question."},"text":{"type":"string","description":"The main text content for the question. It may include plain and formatted text, and all kinds of content supported by the full text editor."},"position":{"type":"integer","format":"int32","description":"Position of the Question on the Assessment Canvas."},"points":{"type":"number","description":"The point value for the question."},"correctResponseFeedback":{"type":"string","description":"Feedback displayed to students when their submitted response is correct."},"incorrectResponseFeedback":{"type":"string","description":"Feedback displayed to students when their submitted response is incorrect."},"instructorNotes":{"type":"string","description":"Text added to the question as a note for the instructor. It is not intended to be displayed to students."},"questionHandler":{"$ref":"#/definitions/QuestionHandler"}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/assessments/{assessmentId}/questions/{questionId}","version":[["3300.9.0"]],"permissions":[["course.assessment.MODIFY"]]}
KEY GetCategories FUNC {"summary":"GetCategories","description":"Returns a list of categories of the provided type (course or organization)\n\nEntitlement system.course-categories.VIEW required\n\nUsers with entitlement \"system.course.categories.MODIFY\" for course categories, or \"system.org.categories.MODIFY\" for organization categories can view all fields and all categories.\n\nUsers with system.course-categories.VIEW but not the corresponding MODIFY entitlements have read access to all properties except:\n\n- restricted\n- institutionRoleIds\nIn addition, users without the corresponding MODIFY entitlement have access to a restricted category only if their institution role matches one of the roles in the institutionRoleIds list for that category.\n\n**Since**: 3600.0.0","parameters":[{"name":"categoryType","in":"path","required":true,"type":"string","enum":["Course","Organization"]},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"title(desc),start\" Supported fields are:\n\n- id\n- categoryId\n- title\n- available\n- created\n\n**Since**: 3700.6.0","required":false,"type":"string"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"title","in":"query","description":"Search for categories with titles that contain this value.\n\n**Since**: 3700.8.0","required":false,"type":"string"},{"name":"categoryId","in":"query","description":"Search for categories with category IDs that contain this value.\n\n**Since**: 3700.8.0","required":false,"type":"string"},{"name":"created","in":"query","description":"Search for categories with a created date relative to this value.\n\n**Since**: 3700.8.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3700.8.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"dataSourceId","in":"query","description":"Search for categories with a data source id matching this value.\n\n**Since**: 3700.9.0","required":false,"type":"string"},{"name":"frontPage","in":"query","description":"Search for categories with a front page indicator matching this value.\n\n**Since**: 3700.9.0","required":false,"type":"boolean"},{"name":"available","in":"query","description":"Search for categories with availability matching this value.\n\n**Since**: 3700.9.0","required":false,"type":"boolean"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/catalog/categories/{categoryType}","version":[["3600.0.0"]],"permissions":[["system.course.categories.MODIFY"],["system.org.categories.MODIFY"]]}
KEY CreateCategory FUNC {"summary":"CreateCategory","description":"Creates a new category of the provided type as defined in the request body\n\nEntitlement system.course.categories.MODIFY required to create course categories Entitlement system.org.categories.MODIFY required to create organization categories\n\n**Since**: 3600.0.0","parameters":[{"name":"categoryType","in":"path","required":true,"type":"string","enum":["Course","Organization"]},{"in":"body","name":"category","required":true,"schema":{"type":"object","required":["available","categoryId","title"],"properties":{"parentId":{"type":"string","description":"The ID of this category's parent category"},"categoryId":{"type":"string","description":"The human-readable id of the category"},"title":{"type":"string","description":"The title of category"},"description":{"type":"string","description":"The description of the category"},"frontPage":{"type":"boolean","description":"Boolean indicating whether or not the category should appear on the catalog front page"},"available":{"type":"boolean","description":"Boolean indicating whether or not the category is available"},"restricted":{"type":"boolean","description":"Boolean indicating whether or not category is available to all roles, or restricted to a specific set of roles."},"institutionRoleIds":{"type":"array","description":"The roles for which this category is available, if category is set to restricted. Not populated for lists of categories, only for individual category","items":{"type":"string"}}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/catalog/categories/{categoryType}","version":[["3600.0.0"]],"permissions":[["system.course.categories.MODIFY"],["system.org.categories.MODIFY"]]}
KEY GetCategory FUNC {"summary":"GetCategory","description":"Returns the category corresponding the provided type (course or organization) and ID\n\nEntitlement system.course-categories.VIEW required\n\nUsers with entitlement \"system.course.categories.MODIFY\" for course categories, or \"system.org.categories.MODIFY\" for organization categories can view all fields and all categories.\n\nUsers with system.course-categories.VIEW but not the corresponding MODIFY entitlements have read access to all properties except:\n\n- restricted\n- institutionRoleIds\nIn addition, users without the corresponding MODIFY entitlement have access to a restricted category only if their institution role matches one of the roles in the institutionRoleIds list for that category.\n\n**Since**: 3600.0.0","parameters":[{"name":"categoryType","in":"path","required":true,"type":"string","enum":["Course","Organization"]},{"name":"categoryId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}","version":[["3600.0.0"]],"permissions":[["system.course.categories.MODIFY"],["system.org.categories.MODIFY"]]}
KEY DeleteCategory FUNC {"summary":"DeleteCategory","description":"Deletes the category corresponding to the provided type and id\n\nEntitlement system.course.categories.MODIFY required to delete a course category Entitlement system.org.categories.MODIFY required to delete an organization category\n\n**Since**: 3600.0.0","parameters":[{"name":"categoryType","in":"path","required":true,"type":"string","enum":["Course","Organization"]},{"name":"categoryId","in":"path","required":true,"type":"string"}],"method":"delete","path":"/learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}","version":[["3600.0.0"]],"permissions":[["system.course.categories.MODIFY"],["system.org.categories.MODIFY"]]}
KEY UpdateCategory FUNC {"summary":"UpdateCategory","description":"Updates the category corresponding to the provided type and id.\n\nEntitlement system.course.categories.MODIFY required to modify course categories Entitlement system.org.categories.MODIFY required to modify organization categories\n\n**Since**: 3600.0.0","parameters":[{"name":"categoryType","in":"path","required":true,"type":"string","enum":["Course","Organization"]},{"name":"categoryId","in":"path","required":true,"type":"string"},{"in":"body","name":"category","required":true,"schema":{"type":"object","properties":{"title":{"type":"string","description":"The title of category"},"description":{"type":"string","description":"The description of the category"},"frontPage":{"type":"boolean","description":"Boolean indicating whether or not the category should appear on the catalog front page"},"available":{"type":"boolean","description":"Boolean indicating whether or not the category is available"},"restricted":{"type":"boolean","description":"Boolean indicating whether or not category is available to all roles, or restricted to a specific set of roles."},"institutionRoleIds":{"type":"array","description":"The roles for which this category is available, if category is set to restricted. Not populated for lists of categories, only for individual category","items":{"type":"string"}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/catalog/categories/{categoryType}/{categoryId}","version":[["3600.0.0"]],"permissions":[["system.course.categories.MODIFY"],["system.org.categories.MODIFY"]]}
KEY GetMemberships FUNC {"summary":"GetMemberships","description":"Get categories associated with the provided course. Entitlement system.course-categories.VIEW required\n\n**Since**: 3600.0.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/categories","version":[["3600.0.0"]],"permissions":[]}
KEY CreateMembership FUNC {"summary":"CreateMembership","description":"Creates a user membership in the specified course.\n\nMinimal entitlements required:\n\n- For courses: 'course.user-enroll.EXECUTE', 'system.enrollment.CREATE'\n- For organizations: 'course.user-enroll.EXECUTE', 'org.enrollment.CREATE'\n- For courses or organizations that have enabled self enrollment: 'system.generic.VIEW'\n\nBy default courseRoleId is Student and availability.available is Yes. Providing different values for these fields requires extra entitlements:\n\n- For courses: 'course.user-role.MODIFY' or 'course.user.MODIFY'\n- For organizations: 'course.user-role.MODIFY' or 'org.user.MODIFY'\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/UserIdParam.userId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"childCourseId":{"type":"string","description":"The primary ID of the child, cross-listed course, in which the user is directly enrolled. This field is read only in Learn versions 3000.11.0 through 3400.0.0. As of 3400.1.0, this field is mutable. If this membership's course is a parent course in a cross-listed set, the childCourseId can be updated to move the membership enrollment between child courses and the parent course in the set. Patching the childCourseId to \"null\" will move the membership to the parent course.\n\n**Since**: 3000.11.0"},"dataSourceId":{"type":"string","description":"The ID of the data source associated with this course. This may optionally be the data source's externalId using the syntax \"externalId:math101\"."},"availability":{"description":"Settings controlling availability of the course membership.","$ref":"#/definitions/Availability"},"courseRoleId":{"type":"string","description":"The user's role in the course.\n\nThese roles are also valid for an organization, although they are named differently in the UI.\n\nCustom course roles may also be referenced by their IDs.\n\n\n| Type | Description\n | --------- | --------- |\n| Instructor | Has access to all areas in the Control Panel. This role is generally given to those developing, teaching, or facilitating the class. Instructors may access a course that is unavailable to students. This role is customizable and may have different capabilities from what is documented here. |\n| BbFacilitator | The facilitator is an instructor like role. Facilitators are restricted versions of an instructor, in that they are able to deliver course instruction and administer all aspects of a pre-constructed course, but are not allowed to modify or alter the course. This role is customizable and may have different capabilities from what is documented here. |\n| TeachingAssistant | The teaching assistant role is that of a co-teacher. Teaching assistants are able to administer all areas of a course. Their only limitations are those imposed by the instructor or Blackboard administrator at your school. This role is customizable and may have different capabilities from what is documented here. |\n| CourseBuilder | Manages the course without having access to student grades. This role is customizable and may have different capabilities from what is documented here. |\n| Grader | Assists the instructor in the creation, management, delivery, and grading of items. This role is customizable and may have different capabilities from what is documented here. |\n| Student | |\n| Guest | Has no access to the Control Panel. Areas within the course are made available to guests, but typically they can only view course materials; they do not have access to tests or assessments, and do not have permission to post on discussion boards. This role's behavior is immutable. |\n","enum":["Instructor","BbFacilitator","TeachingAssistant","CourseBuilder","Grader","Student","Guest"]}}}},{"$ref":"#/parameters/fields"}],"method":"put","path":"/learn/api/public/v1/courses/{courseId}/users/{userId}","version":[["2015.11.0"]],"permissions":[["system.enrollment.CREATE"],["org.enrollment.CREATE"],["system.generic.VIEW"],["course.user.MODIFY"],["org.user.MODIFY"]]}
KEY DeleteMembership FUNC {"summary":"DeleteMembership","description":"Deletes a user membership from the specified course.\n\nRequired entitlements:\n\n- For courses: 'system.enrollment.DELETE' or 'course.user.DELETE'\n- For organizations: 'system.enrollment.DELETE' or 'org.enrollment.DELETE'\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/UserIdParam.userId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/users/{userId}","version":[["2015.11.0"]],"permissions":[["system.enrollment.DELETE"],["course.user.DELETE"],["system.enrollment.DELETE"],["org.enrollment.DELETE"]]}
KEY GetChild Categories FUNC {"summary":"GetChild Categories","description":"Returns a list of categories which are children of the category corresponding to the provided type (course or organization) and Id\n\nEntitlement system.course-categories.VIEW required\n\nUsers with entitlement \"system.course.categories.MODIFY\" for course categories, or \"system.org.categories.MODIFY\" for organization categories can view all fields and all categories.\n\nUsers with system.course-categories.VIEW but not the corresponding MODIFY entitlements have read access to all properties except:\n\n- restricted\n- institutionRoleIds\nIn addition, users without the corresponding MODIFY entitlement have access to a restricted category only if their institution role matches one of the roles in the institutionRoleIds list for that category.\n\n**Since**: 3600.0.0","parameters":[{"name":"categoryType","in":"path","required":true,"type":"string","enum":["Course","Organization"]},{"name":"parentId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"title(desc),start\" Supported fields are:\n\n- id\n- categoryId\n- title\n- available\n- created\n\n**Since**: 3700.6.0","required":false,"type":"string"},{"name":"title","in":"query","description":"Search for categories with titles that contain this value.\n\n**Since**: 3700.8.0","required":false,"type":"string"},{"name":"categoryId","in":"query","description":"Search for categories with category IDs that contain this value.\n\n**Since**: 3700.8.0","required":false,"type":"string"},{"name":"created","in":"query","description":"Search for categories with a created date relative to this value.\n\n**Since**: 3700.8.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3700.8.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"dataSourceId","in":"query","description":"Search for categories with a data source id matching this value.\n\n**Since**: 3700.9.0","required":false,"type":"string"},{"name":"frontPage","in":"query","description":"Search for categories with a front page indicator matching this value.\n\n**Since**: 3700.9.0","required":false,"type":"boolean"},{"name":"available","in":"query","description":"Search for categories with availability matching this value.\n\n**Since**: 3700.9.0","required":false,"type":"boolean"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/catalog/categories/{categoryType}/{parentId}/children","version":[["3600.0.0"]],"permissions":[["system.course.categories.MODIFY"],["system.org.categories.MODIFY"]]}
KEY GetAttempt File Meta Data List FUNC {"summary":"GetAttempt File Meta Data List","description":"Get the list of file metadata for a Student Submission associated to the course and attempt.\n\n- Id\n- Name\n\n**Since**: 3400.6.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"attemptId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files","version":[["3400.6.0"]],"permissions":[]}
KEY AttachFile FUNC {"summary":"AttachFile","description":"\n\nAttach a file to an Attempt for a Student Submission. Currently only supports Classic/9.1 Course Assignments. \n\n**Since**: 3500.7.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"attemptId","in":"path","required":true,"type":"string"},{"in":"body","name":"attemptFileTOPubV1","required":true,"schema":{"type":"object","required":["uploadId"],"properties":{"name":{"type":"string","description":"The name of the file which has been attached to an Attempt including the file extension."},"uploadId":{"type":"string"}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files","version":[["3500.7.0"]],"permissions":[]}
KEY GetAttempt File Meta Data FUNC {"summary":"GetAttempt File Meta Data","description":"Get the file metadata for a Student Submission associated to the course and attempt.\n\n- Id\n- Name\n\n**Since**: 3400.6.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"attemptId","in":"path","required":true,"type":"string"},{"name":"attemptFileId","in":"path","required":true,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files/{attemptFileId}","version":[["3400.6.0"]],"permissions":[]}
KEY DeleteAttachment FUNC {"summary":"DeleteAttachment","description":"Delete the file for a Student Submission associated to an attempt.\n\nThe student who owns the file can delete it while the attempt is in progress.\n\n**Since**: 3500.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"attemptId","in":"path","required":true,"type":"string"},{"name":"attemptFileId","in":"path","required":true,"type":"string"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/gradebook/attempts/{attemptId}/files/{attemptFileId}","version":[["3500.2.0"]],"permissions":[]}
KEY GetGrade Notations FUNC {"summary":"GetGrade Notations","description":"Returns a list of grade notations.\n\nThe entitlement \"course.user.grades.VIEW\" is needed.\n\n**Since**: 3200.13.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations","version":[["3200.13.0"]],"permissions":[["course.user.grades.VIEW"]]}
KEY CreateGrade Notation FUNC {"summary":"CreateGrade Notation","description":"Create a grade notation on this course.\n\nThe entitlement \"course.gradebook.MODIFY\" is needed.\n\n**Since**: 3200.13.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"gradeNotationInput","required":true,"schema":{"type":"object","required":["code","description"],"properties":{"code":{"type":"string","description":"The performance code associated with the grade notation."},"description":{"type":"string","description":"The description of the grade notation."}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations","version":[["3200.13.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetGrade Notation FUNC {"summary":"GetGrade Notation","description":"Returns a specific grade notation.\n\nThe entitlement \"course.user.grades.VIEW\" is needed.\n\n**Since**: 3200.13.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"gradeNotationId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations/{gradeNotationId}","version":[["3200.13.0"]],"permissions":[["course.user.grades.VIEW"]]}
KEY DeleteGrade Notation FUNC {"summary":"DeleteGrade Notation","description":"Delete a specific grade notation.\n\nThe entitlement \"course.gradebook.MODIFY\" is needed.\n\n**Since**: 3200.13.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"gradeNotationId","in":"path","required":true,"type":"string"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations/{gradeNotationId}","version":[["3200.13.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY UpdateGrade Notation FUNC {"summary":"UpdateGrade Notation","description":"Update a grade notation on this course.\n\nThe entitlement \"course.gradebook.MODIFY\" is needed.\n\n**Since**: 3200.14.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"gradeNotationId","in":"path","required":true,"type":"string"},{"in":"body","name":"gradeNotationInput","required":true,"schema":{"type":"object","properties":{"code":{"type":"string","description":"The performance code associated with the grade notation."},"description":{"type":"string","description":"The description of the grade notation."}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/gradebook/gradeNotations/{gradeNotationId}","version":[["3200.14.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetGradebook Categories FUNC {"summary":"GetGradebook Categories","description":"Returns a list of gradebook categories in a particular course.\n\nUsers with entitlements 'course.gradebook.MODIFY' or 'course.user.grades.VIEW', or users enrolled in the specified course can retrieve the list of gradebook categories.\n\n**Since**: 3400.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/DefaultRowBasedPagingParams.offset"},{"$ref":"#/parameters/DefaultRowBasedPagingParams.limit"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/categories","version":[["3400.2.0"]],"permissions":[["course.gradebook.MODIFY"],["course.user.grades.VIEW"]]}
KEY GetGradebook Category FUNC {"summary":"GetGradebook Category","description":"Returns the details of a gradebook category\n\nUsers with entitlements 'course.gradebook.MODIFY' or 'course.user.grades.VIEW', or users enrolled in the specified course can retrieve gradebook category details.\n\n**Since**: 3400.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"categoryId","in":"path","description":"the ID of the category to return","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/categories/{categoryId}","version":[["3400.2.0"]],"permissions":[["course.gradebook.MODIFY"],["course.user.grades.VIEW"]]}
KEY GetGrade Schemas FUNC {"summary":"GetGrade Schemas","description":"Returns a list of grade schemas associated with the specified course.\n\nUsers with entitlements 'course.gradebook.MODIFY' or 'course.user.grades.VIEW', or users enrolled in the specified course can retrieve grade schema details.\n\nA subset of the schema properties are available to enrolled users without the 'course.gradebook.MODIFY' entitlement:\n\n- id\n- scaleType\n\n**Since**: 3300.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/schemas","version":[["3300.2.0"]],"permissions":[["course.gradebook.MODIFY"],["course.user.grades.VIEW"],["course.gradebook.MODIFY"]]}
KEY CreateGrade Schema FUNC {"summary":"CreateGrade Schema","description":"Create a Tabular Grade Schema on this course. Currently only supports Classic/9.1 Courses.\n\nThe entitlement \"course.gradebook.MODIFY\" is needed.\n\n**Since**: 3300.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"gradeSchemaTOPubV1","required":true,"schema":{"type":"object","required":["title"],"properties":{"externalId":{"type":"string","description":"The externalId associated with this grade schema."},"title":{"type":"string","description":"The title of this grade schema."},"description":{"type":"string","description":"The description of this grade schema."},"scaleType":{"type":"string","description":"The scale type of this grade schema.\n\n\n| Type | Description\n | --------- | --------- |\n| Percent | |\n| Score | |\n| Tabular | |\n| Text | |\n| CompleteIncomplete | |\n","enum":["Percent","Score","Tabular","Text","CompleteIncomplete"]},"symbols":{"type":"array","description":"The list of grade symbols for this grade schema. Only returned for Tabular scaleType schemas.","items":{"$ref":"#/definitions/GradeSymbol"}}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/gradebook/schemas","version":[["3300.2.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetGrade Schema FUNC {"summary":"GetGrade Schema","description":"Loads the grade schema associated with the specified course and schema Id.\n\nUsers with entitlements 'course.gradebook.MODIFY' or 'course.user.grades.VIEW', or users enrolled in the specified course can retrieve the grade schema details.\n\nA subset of the schema properties are available to enrolled users without the 'course.gradebook.MODIFY' entitlement:\n\n- id\n- scaleType\n\n**Since**: 3300.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeSchemaIdParam.schemaId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/schemas/{schemaId}","version":[["3300.2.0"]],"permissions":[["course.gradebook.MODIFY"],["course.user.grades.VIEW"],["course.gradebook.MODIFY"]]}
KEY DeleteGrade Schema FUNC {"summary":"DeleteGrade Schema","description":"Deletes the grade schema associated with the specified course and schema Id.\n\nRequires entitlement 'course.gradebook.MODIFY'\n\nGrade schemas in Ultra courses may not be deleted\n\nA schema must be removable (not in-use, and either tabular or user-created) to be deleted\n\n**Since**: 3300.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeSchemaIdParam.schemaId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/gradebook/schemas/{schemaId}","version":[["3300.2.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY UpdateGrade Schema FUNC {"summary":"UpdateGrade Schema","description":"\n\nUpdates the grade schema associated with the specified course and schema Id. \n\nRequires entitlement 'course.gradebook.MODIFY' \n\nA schema must have a scaleType of Tabular to be updated \n\nIf updating the symbols field, the following criteria must be true:\n\n- All symbols for the schema must be included. Any existing symbols not included in the patch will be deleted.\n- There must be at least 1 symbol for schemas associated with Classic courses, and 2 for Ultra courses.\n- When sorted descending by lowerBound, The lowerBound of a symbol must be equal to the upperBound of the following symbol. In other words, there should be no gaps or overlaps between the symbols.\n- The lowerBound, upperBound and absoluteValue of all symbols must be nonnegative.\n- The text field must be unique for each symbol in a schema.\n- The lowerBound and upperBound fields must have a maximum of 3 digits after the decimal point.\n- The absoluteValue field must have a maximum of 3 digits after the decimal point for Classic courses, and 4 for Ultra courses.- - \n\n**Since**: 3300.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeSchemaIdParam.schemaId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"The externalId associated with this grade schema."},"title":{"type":"string","description":"The title of this grade schema."},"description":{"type":"string","description":"The description of this grade schema."},"symbols":{"type":"array","description":"The list of grade symbols for this grade schema. Only returned for Tabular scaleType schemas.","items":{"$ref":"#/definitions/GradeSymbol"}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/gradebook/schemas/{schemaId}","version":[["3300.2.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetGrade Columns FUNC {"summary":"GetGrade Columns","description":"Returns a list of grade columns.\n\nThe entitlement \"course.gradebook.MODIFY\" is needed. Alternatively, student users may view the grade columns if they are enrolled in the course, and the mygrade tool is available in the course, and the columns are visible to the student. Observers may view grade columns if course access is allowed for observers and the associated observee is a student that satisfies all conditions required by a student user to view grade columns.\n\nStudent or observer users may view a limited subset of grade column fields:\n\n- id\n- name\n- description\n- externalGrade\n- contentId\n- score.possible\n- grading.type\n- grading.due\n- grading.attemptsAllowed\n- grading.scoringModel\n\n**Since**: 3000.3.0\n\n**Deprecated**: since 3200.10.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"contentId","in":"query","description":"Search for grade columns associated with this content item.\n\n**Since**: 3000.11.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns","version":[["3000.3.0"],["3200.10.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY CreateGrade Column FUNC {"summary":"CreateGrade Column","description":"Create a manual grade column. The entitlement \"course.gradebook.MODIFY\" is needed.\n\n**Since**: 3000.7.0\n\n**Deprecated**: since 3200.10.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["grading","name"],"properties":{"externalId":{"type":"string","description":"The externalId for this grade column"},"name":{"type":"string","description":"The name of the grade column."},"description":{"type":"string","description":"The description of the grade column."},"externalGrade":{"type":"boolean","description":"Whether this grade column is an external grade column."},"score":{"type":"object","description":"Settings controlling the numerical scoring of this grade column.","title":"Score","properties":{"possible":{"type":"number","description":"The points possible for this grade column."},"decimalPlaces":{"type":"integer","format":"int32","description":"Decimal place precision used to display scores for this grade column.\n\n**Deprecated**: since 3200.10.0; no alternative exists since this field never fully functioned as described."}}},"availability":{"type":"object","description":"Settings controlling the availability/visibility of grade column data.","title":"Availability","properties":{"available":{"type":"string","description":"Whether this grade column is available to students\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may view the grade column. |\n| No | Students may not view the grade column. |\n","enum":["Yes","No"]}}},"grading":{"type":"object","description":"Settings controlling whether numerical and text grade values for this grade column are calculated, determined based on attempts, or manually entered.","title":"Grading","properties":{"type":{"type":"string","description":"The type of Grading settings for this Grade Column.\n\n\n| Type | Description\n | --------- | --------- |\n| Attempts | Indicates score and grade values are determined based on user attempts |\n| Calculated | Indicates score and grade values are determined by applying a calculated formula. |\n| Manual | Indicates score and grade values are manually entered. |\n","enum":["Attempts","Calculated","Manual"]},"due":{"type":"string","format":"date-time","description":"The date on which attempts are due for the grade column."},"attemptsAllowed":{"type":"integer","format":"int32","description":"Number of attempts allowed for the grade column."},"scoringModel":{"type":"string","description":"The scoring model for the submitted grade column attempts.\n\n\n| Type | Description\n | --------- | --------- |\n| Last | |\n| Highest | |\n| Lowest | |\n| First | |\n| Average | |\n","enum":["Last","Highest","Lowest","First","Average"]},"anonymousGrading":{"type":"object","description":"Settings for anonymous grading","title":"AnonymousGrading","properties":{"type":{"type":"string","description":"The type of AnonymousGrading settings for this Attempts based Grade Column.\n\n\n| Type | Description\n | --------- | --------- |\n| None | Indicates anonymous grading is not enabled. |\n| AfterAllGraded | Indicates anonymized grades are released after all attempts have been graded. |\n| Date | Indicates anonymized grades are released after a specified release date. |\n","enum":["None","AfterAllGraded","Date"]},"releaseAfter":{"type":"string","format":"date-time","description":"Date after which grades are released from being anonymized, if AnonymousGrading type is 'Date'."}},"required":["type"]}},"required":["anonymousGrading","type"]}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns","version":[["3000.7.0"],["3200.10.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetGrade Column FUNC {"summary":"GetGrade Column","description":"Loads a specific grade column.\n\nThe entitlement \"course.gradebook.MODIFY\" is needed. Alternatively, student users may view the grade column if they are enrolled in the course, and the mygrade tool is available in the course, and the column is visible to the student. Observers may view the grade column if course access is allowed for observers and the associated observee is a student that satisfies all conditions required by a student user to view grade columns.\n\nStudent or observer users may view a limited subset of grade column fields:\n\n- id\n- name\n- description\n- externalGrade\n- contentId\n- score.possible\n- grading.type\n- grading.due\n- grading.attemptsAllowed\n- grading.scoringModel\n\n**Since**: 3000.3.0\n\n**Deprecated**: since 3200.10.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}","version":[["3000.3.0"],["3200.10.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY DeleteGrade Column FUNC {"summary":"DeleteGrade Column","description":"Delete a specific grade column. The entitlement \"course.gradebook.MODIFY\" is needed.\n\n**Since**: 3000.7.0\n\n**Deprecated**: since 3200.10.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"name":"onlyIfEmpty","in":"query","required":false,"type":"boolean"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}","version":[["3000.7.0"],["3200.10.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY UpdateGrade Column FUNC {"summary":"UpdateGrade Column","description":"Update a manual grade column. The entitlement \"course.gradebook.MODIFY\" is needed.\n\n**Since**: 3000.7.0\n\n**Deprecated**: since 3200.10.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"The externalId for this grade column"},"name":{"type":"string","description":"The name of the grade column."},"description":{"type":"string","description":"The description of the grade column."},"externalGrade":{"type":"boolean","description":"Whether this grade column is an external grade column."},"score":{"type":"object","description":"Settings controlling the numerical scoring of this grade column.","title":"Score","properties":{"possible":{"type":"number","description":"The points possible for this grade column."},"decimalPlaces":{"type":"integer","format":"int32","description":"Decimal place precision used to display scores for this grade column.\n\n**Deprecated**: since 3200.10.0; no alternative exists since this field never fully functioned as described."}}},"availability":{"type":"object","description":"Settings controlling the availability/visibility of grade column data.","title":"Availability","properties":{"available":{"type":"string","description":"Whether this grade column is available to students\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may view the grade column. |\n| No | Students may not view the grade column. |\n","enum":["Yes","No"]}}},"grading":{"type":"object","description":"Settings controlling whether numerical and text grade values for this grade column are calculated, determined based on attempts, or manually entered.","title":"Grading","properties":{"due":{"type":"string","format":"date-time","description":"The date on which attempts are due for the grade column."},"attemptsAllowed":{"type":"integer","format":"int32","description":"Number of attempts allowed for the grade column."},"scoringModel":{"type":"string","description":"The scoring model for the submitted grade column attempts.\n\n\n| Type | Description\n | --------- | --------- |\n| Last | |\n| Highest | |\n| Lowest | |\n| First | |\n| Average | |\n","enum":["Last","Highest","Lowest","First","Average"]},"anonymousGrading":{"type":"object","description":"Settings for anonymous grading","title":"AnonymousGrading","properties":{"type":{"type":"string","description":"The type of AnonymousGrading settings for this Attempts based Grade Column.\n\n\n| Type | Description\n | --------- | --------- |\n| None | Indicates anonymous grading is not enabled. |\n| AfterAllGraded | Indicates anonymized grades are released after all attempts have been graded. |\n| Date | Indicates anonymized grades are released after a specified release date. |\n","enum":["None","AfterAllGraded","Date"]},"releaseAfter":{"type":"string","format":"date-time","description":"Date after which grades are released from being anonymized, if AnonymousGrading type is 'Date'."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}","version":[["3000.7.0"],["3200.10.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetColumn Attempts FUNC {"summary":"GetColumn Attempts","description":"Returns a list of attempts associated with the specified grade column.\n\nThe 'course.gradebook.MODIFY' entitlement is needed to view column attempts. Alternatively, if the 'userId' query parameter is specified, and the user making the request matches the specified 'userId', then the user may view his/her own attempt. When querying an anonymous grade column, if the release criteria has not yet been met, then the 'userId' attribute will not be populated for the returned column attempts. If the release criteria has not been met and the 'userId' query parameter is specified, a 403 response is returned, unless the requesting user matches the specified 'userId' value.\n\nA subset of attempt properties are available to a student when requesting his or her own attempts:\n\n- id\n- userId\n- groupAttemptId\n- status\n- text\n- score\n- groupOverride\n- feedback\n- studentComments\n- studentSubmission\n- exempt\n- created\nWhen this endpoint is called by the API Gateway User, the response will only contain attributes visible to a Grader. If an Attempt is InProgress, then a Student's submission & comments would not be visible to the API Gateway User. If an Attempt is NeedsGrading, then a Student's submission & comments are visible to the API Gateway User.\n\nIf the caller has the course.assessment.EXECUTE entitlement, and the attempt is associated with an assessment where the flag to require secure taking is enabled, and the attempt status is InProgress, then the studentSubmission is omitted unless the call comes from a secure browser.\n\nIf the caller has the course.assessment.EXECUTE entitlement, and the attempt is associated with an assessment where the flag to require secure reviewing is enabled, and the attempt status is not InProgress, then the studentSubmission is omitted unless the call comes from a secure browser.\n\n**Since**: 3100.4.0\n\n**Deprecated**: since 3300.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"userId","in":"query","description":"Search for grade column attempts submitted by this user. This may be the primary ID, or any of the secondary IDs prefixed with the ID type. \n\n | ID type | Example |\n |------------|---------------------------------------|\n | primary | _123_1 |\n | externalId | externalId:jsmith |\n | userName | userName:jsmith |\n | uuid | uuid:915c7567d76d444abf1eed56aad3beb5 |\n \n\n**Since**: 3100.4.0","required":false,"type":"string"},{"name":"attemptStatuses","in":"query","description":"Search for grade column attempts with one of these statuses.\n\n**Since**: 3100.4.0\n\n\n| Type | Description\n | --------- | --------- |\n| NotAttempted | none of the students in a group has submitted an attempt; applies only to group assessments |\n| Abandoned | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| InProgress | attempt activity has commenced, but has not been submitted for grading |\n| Suspended | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| Canceled | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| NeedsGrading | attempt has been submitted for grading, but has not been fully graded |\n| Completed | a grade has been entered for the attempt |\n| InProgressAgain | attempt has been graded, but more student activity occurred after the grade was entered; applies only to collaborative tools such as discussions |\n| NeedsGradingAgain | additional student activity occurring after a grade was entered requires that the attempt be regraded; applies only to collaborative tools such as discussions |\n","required":false,"type":"string","enum":["NotAttempted","Abandoned","InProgress","Suspended","Canceled","NeedsGrading","Completed","InProgressAgain","NeedsGradingAgain"]},{"name":"created","in":"query","description":"Search for attempts with created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3800.0.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Defaults to greaterOrEqual if not specified.\n\n**Since**: 3800.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"modified","in":"query","description":"Search for attempts with modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3800.0.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter. Defaults to greaterOrEqual if not specified.\n\n**Since**: 3800.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"attemptDate","in":"query","description":"Search for attempts with attempt date relative to this value. 'attemptDateCompare' may also be sent to control search behavior.\n\n**Since**: 3800.0.0","required":false,"type":"string","format":"date-time"},{"name":"attemptDateCompare","in":"query","description":"Used alongside the 'attemptDate' search parameter. Defaults to greaterOrEqual if not specified.\n\n**Since**: 3800.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/attempts","version":[["3100.4.0"],["3300.0.0"]],"permissions":[["course.gradebook.MODIFY"],["course.assessment.EXECUTE"],["course.assessment.EXECUTE"]]}
KEY CreateColumn Attempt FUNC {"summary":"CreateColumn Attempt","description":"Create an Attempt on the specified Grade Column. Currently supports Classic and Ultra Course Assignments. Student attributes (studentSubmission & studentComments) can only be specified by Student Users. Grader attributes (text, score, notes & feedback, attemptDate) can only be specified by Grader Users. Graders must have the entitlement \"course.gradebook.MODIFY\" for the course. Graders are allowed to create attempts that contain \"studentSubmission\" text on behalf of a student if the authenticated application for this request has the \"course.attempt.nonowner.SUBMIT\" entitlement and the attempt has a \"status\" of NeedsGrading. If the caller has the course.assessment.EXECUTE entitlement, and the attempt is associated with an assessment where the flag to require secure taking is enabled, then the caller must be in a secure browser in order to create the attempt.\n\n**Since**: 3300.12.0","parameters":[{"name":"columnId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"attemptInput","required":true,"schema":{"type":"object","properties":{"userId":{"type":"string","description":"The user ID associated with this attempt. Defaults to the authenticated user on create. Can be specified as a user other than the authenticated user if the authenticated user has the \"course.gradebook.MODIFY\" entitlement and the authenticated application has the \"course.attempt.nonowner.SUBMIT\" entitlement."},"status":{"type":"string","description":"The status of this attempt.\n\n\n| Type | Description\n | --------- | --------- |\n| NotAttempted | none of the students in a group has submitted an attempt; applies only to group assessments |\n| Abandoned | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| InProgress | attempt activity has commenced, but has not been submitted for grading |\n| Suspended | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| Canceled | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| NeedsGrading | attempt has been submitted for grading, but has not been fully graded |\n| Completed | a grade has been entered for the attempt |\n| InProgressAgain | attempt has been graded, but more student activity occurred after the grade was entered; applies only to collaborative tools such as discussions |\n| NeedsGradingAgain | additional student activity occurring after a grade was entered requires that the attempt be regraded; applies only to collaborative tools such as discussions |\n","enum":["NotAttempted","Abandoned","InProgress","Suspended","Canceled","NeedsGrading","Completed","InProgressAgain","NeedsGradingAgain"]},"text":{"type":"string","description":"The text grade associated with this attempt."},"score":{"type":"number","description":"The score associated with this attempt."},"reconciliationMode":{"type":"string","description":"The reconciliation mode to use when reconciling the attempt grade. When modifying reconciliationMode, score is also required. A new score will not be calculated based on the reconciliationMode\n\n**Since**: 3700.2.0\n\n\n| Type | Description\n | --------- | --------- |\n| Average | |\n| Highest | |\n| Lowest | |\n| Custom | |\n","enum":["Average","Highest","Lowest","Custom"]},"notes":{"type":"string","description":"The instructor notes associated with this attempt."},"feedback":{"type":"string","description":"The instructor feedback associated with this attempt."},"studentComments":{"type":"string","description":"The student comments associated with this attempt."},"studentSubmission":{"type":"string","description":"The student submission text associated with this attempt."},"exempt":{"type":"boolean","description":"Whether the score associated with this attempt is ignored when computing the user's grade for the associated grade column."},"attemptDate":{"type":"string","format":"date-time","description":"Return the attempt date associated with this attempt."}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/attempts","version":[["3300.12.0"]],"permissions":[["course.gradebook.MODIFY"],["course.attempt.nonowner.SUBMIT"],["course.assessment.EXECUTE"]]}
KEY GetColumn Attempt FUNC {"summary":"GetColumn Attempt","description":"Loads the grade column attempt for the specified id.\n\nThe 'course.gradebook.MODIFY' entitlement is needed to view an attempt. Alternatively, if the user making the request is also the user associated with the attempt grade, then the user may view his/her own attempt. When accessing an anonymous grade column attempt, if the release criteria has not yet been met, then the 'userId' attribute will not be populated for the returned attempt.\n\nA subset of attempt properties are available to a student when requesting his or her own attempt:\n\n- id\n- userId\n- groupAttemptId\n- status\n- text\n- score\n- groupOverride\n- feedback\n- studentComments\n- studentSubmission\n- exempt\n- created\nWhen this endpoint is called by the API Gateway User, the response will only contain attributes visible to a Grader. If an Attempt is InProgress, then a Student's submission & comments would not be visible to the API Gateway User. If an Attempt is NeedsGrading, then a Student's submission & comments are visible to the API Gateway User. If the caller has the course.assessment.EXECUTE entitlement, and the attempt is associated with an assessment where the flag to require secure taking is enabled, and the attempt status is InProgress, then the studentSubmission is omitted unless the call comes from a secure browser.\n\nIf the caller has the course.assessment.EXECUTE entitlement, and the attempt is associated with an assessment where the flag to require secure reviewing is enabled, and the attempt status is not InProgress, then the studentSubmission is omitted unless the call comes from a secure browser.\n\n**Since**: 3100.4.0\n\n**Deprecated**: since 3300.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"name":"attemptId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/attempts/{attemptId}","version":[["3100.4.0"],["3300.0.0"]],"permissions":[["course.gradebook.MODIFY"],["course.assessment.EXECUTE"],["course.assessment.EXECUTE"]]}
KEY UpdateColumn Attempt FUNC {"summary":"UpdateColumn Attempt","description":"Update an existing Attempt on a Grade Column. Students can only modify the studentSubmission, studentComments and status of their own attempt if the status is InProgress. The status can only be set to NeedsGrading. Doing so is the equivalent of submitting the attempt. Instructors can modify all mutable fields but studentSubmission and studentComments as long as the status is not InProgress. Setting the status to Complete is the equivalent of posting a graded attempt. The \"course.gradebook.MODIFY\" entitlement is required to update score, text, notes, feedback and set the status to Complete. If the caller has the course.assessment.EXECUTE entitlement, and the attempt is associated with an assessment where the flag to require secure taking is enabled, then the caller must be in a secure browser in order to create the attempt. Classic course support since 3500.2.0\n\n**Since**: 3300.12.0","parameters":[{"name":"columnId","in":"path","required":true,"type":"string"},{"name":"attemptId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"attemptInput","required":true,"schema":{"type":"object","properties":{"status":{"type":"string","description":"The status of this attempt.\n\n\n| Type | Description\n | --------- | --------- |\n| NotAttempted | none of the students in a group has submitted an attempt; applies only to group assessments |\n| Abandoned | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| InProgress | attempt activity has commenced, but has not been submitted for grading |\n| Suspended | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| Canceled | **Deprecated**: Since 9.1 SP8 unsupported status, undetermined behavior if used. |\n| NeedsGrading | attempt has been submitted for grading, but has not been fully graded |\n| Completed | a grade has been entered for the attempt |\n| InProgressAgain | attempt has been graded, but more student activity occurred after the grade was entered; applies only to collaborative tools such as discussions |\n| NeedsGradingAgain | additional student activity occurring after a grade was entered requires that the attempt be regraded; applies only to collaborative tools such as discussions |\n","enum":["NotAttempted","Abandoned","InProgress","Suspended","Canceled","NeedsGrading","Completed","InProgressAgain","NeedsGradingAgain"]},"text":{"type":"string","description":"The text grade associated with this attempt."},"score":{"type":"number","description":"The score associated with this attempt."},"reconciliationMode":{"type":"string","description":"The reconciliation mode to use when reconciling the attempt grade. When modifying reconciliationMode, score is also required. A new score will not be calculated based on the reconciliationMode\n\n**Since**: 3700.2.0\n\n\n| Type | Description\n | --------- | --------- |\n| Average | |\n| Highest | |\n| Lowest | |\n| Custom | |\n","enum":["Average","Highest","Lowest","Custom"]},"notes":{"type":"string","description":"The instructor notes associated with this attempt."},"feedback":{"type":"string","description":"The instructor feedback associated with this attempt."},"studentComments":{"type":"string","description":"The student comments associated with this attempt."},"studentSubmission":{"type":"string","description":"The student submission text associated with this attempt."},"exempt":{"type":"boolean","description":"Whether the score associated with this attempt is ignored when computing the user's grade for the associated grade column."}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/attempts/{attemptId}","version":[["3500.2.0"],["3300.12.0"]],"permissions":[["course.gradebook.MODIFY"],["course.assessment.EXECUTE"]]}
KEY GetColumn Grades FUNC {"summary":"GetColumn Grades","description":"Returns a list of grades associated with the specified grade column. This operation does not include 'ReadyToPost' grades when returning grade details for calculated grade columns.\n\nUsers with entitlement 'course.gradebook.MODIFY' can retrieve grades for any or all enrolled users. Requests for grades in a columns whose attempts are not visible to instructors will return with a status of \"403 - Forbidden.\"\n\nEnrolled users without the 'course.gradebook.MODIFY' entitlement may only view their own grade; such users cannot retrieve grades of other users. A request for the grade in a columns that has been hidden from students in the gradebook will return with a status \"403 - Forbidden.\". A subset of grade properties are available to a student when requesting his or her own grades:\n\n- userId\n- columnId\n- status\n- text\n- score\n- exempt\n- feedback\n\n**Since**: 3000.3.0\n\n**Deprecated**: since 3300.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/users","version":[["3000.3.0"],["3300.0.0"]],"permissions":[["course.gradebook.MODIFY"],["course.gradebook.MODIFY"]]}
KEY GetColumn Grade Last Changed FUNC {"summary":"GetColumn Grade Last Changed","description":"Loads the grade column grade with the maximum change index. This change index can be used to determine the relative order in which the grades were created and/or updated. This operation does not include 'ReadyToPost' grades when determining the maximum change index grade.\n\nUsers with entitlement 'course.gradebook.MODIFY' can retrieve grades for any or all enrolled users. Requests for grades in a columns whose attempts are not visible to instructors will return with a status of \"403 - Forbidden.\"\n\nEnrolled users without the 'course.gradebook.MODIFY' entitlement may only view their own grade; such users cannot retrieve grades of other users. A request for the grade in a columns that has been hidden from students in the gradebook will return with a status \"403 - Forbidden.\".\n\n**Since**: 3300.4.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v2/courses/{courseId}/gradebook/columns/{columnId}/users/lastChanged","version":[["3300.4.0"]],"permissions":[["course.gradebook.MODIFY"],["course.gradebook.MODIFY"]]}
KEY GetColumn Grade FUNC {"summary":"GetColumn Grade","description":"Loads the grade column grade for a specific user. If grade details have yet to be entered for the specified user, then no grade details will be included in the returned grade object. This operation does not include 'ReadyToPost' grades when returning grade details for calculated grade columns.\n\nUsers with entitlement 'course.gradebook.MODIFY' can retrieve grades for any or all enrolled users. Requests for grades in a columns whose attempts are not visible to instructors will return with a status of \"403 - Forbidden.\"\n\nEnrolled users without the 'course.gradebook.MODIFY' entitlement may only view their own grade; such users cannot retrieve grades of other users. A request for the grade in a columns that has been hidden from students in the gradebook will return with a status \"403 - Forbidden.\". A subset of grade properties are available to a student when requesting his or her own grades:\n\n- userId\n- columnId\n- status\n- text\n- score\n- exempt\n- feedback\n\n**Since**: 3000.3.0\n\n**Deprecated**: since 3300.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/users/{userId}","version":[["3000.3.0"],["3300.0.0"]],"permissions":[["course.gradebook.MODIFY"],["course.gradebook.MODIFY"]]}
KEY UpdateColumn Grade FUNC {"summary":"UpdateColumn Grade","description":"Update the grade column grade for a specific user, including the text grade, score, instructor notes and feedback, and exempt status. When updating text grade or score, the resulting grade is always marked as 'Posted'. This end-point, currently, does not support marking the grade as 'ReadyToPost'. Grade overrides may be cleared by either specifying the 'score' attribute as null, or the 'text'; attribute as null, '', or '-' in the body of the request. The entitlement 'course.gradebook.MODIFY' is required to perform this operation.\n\n**Since**: 3000.5.0\n\n**Deprecated**: since 3300.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GradeColumnIdParam.columnId"},{"$ref":"#/parameters/UserIdParam.userId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"text":{"type":"string","description":"The text representation of this grade."},"score":{"type":"number","description":"The score associated with this grade."},"notes":{"type":"string","description":"The instructor notes associated with this grade. This notes field is used for grades on manual grade columns. That is, when column.grading.type = Manual. It is also used when column.grading.type = Attempts and the grade has been manually overridden."},"feedback":{"type":"string","description":"The instructor feedback associated with this grade. This feedback is used for grades on manual grade columns. That is, when column.grading.type = Manual. It is also used when column.grading.type = Attempts and the grade has been manually overridden."},"exempt":{"type":"boolean","description":"Whether the score associated with this grade is ignored when computing the course grade."}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/gradebook/columns/{columnId}/users/{userId}","version":[["3000.5.0"],["3300.0.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetUser Grades FUNC {"summary":"GetUser Grades","description":"Loads the course grades for a specific user.\n\nUsers with entitlement \"course.gradebook.MODIFY\" have read access to all the properties of the collection results.\n\nUsers without entitlement \"course.gradebook.MODIFY\" requesting grades for themselves (i.e., userId = current user id) have read access to a restricted subset of properties of the collections result. These are the properties available to a student when requesting his or her own grades:\n\n- userId\n- columnId\n- status\n- text\n- score\n- exempt\n- feedback\n\n**Since**: 3000.3.0\n\n**Deprecated**: since 3300.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/users/{userId}","version":[["3000.3.0"],["3300.0.0"]],"permissions":[["course.gradebook.MODIFY"],["course.gradebook.MODIFY"]]}
KEY GetGrading Periods FUNC {"summary":"GetGrading Periods","description":"Returns a list of grading periods.\n\nThe entitlement \"course.gradebook.MODIFY\" or \"course.gradebook-metadata.VIEW\" is needed. Note that grading period Ids may be visible on GradableItems based on GradableItem (column / assignment) entitlement restrictions.\n\nThis endpoint supports paging, sorting, and the filtering of fields returned on result object.\n\n**Since**: 3300.3.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" or \"(asc)\" suffix to request an ascending or descending sort for that property. e.g. \"title(desc),description\" Supported fields are:\n\n- id\n- title\n- position\n- dateMode\n- description\n\n**Since**: 3300.2.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/periods","version":[["3300.3.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY CreateGrading Period FUNC {"summary":"CreateGrading Period","description":"Create a grading period.\n\nThe entitlement \"course.gradebook.MODIFY\" is needed.\n\nThis endpoint supports the filtering of fields returned on result object.\n\nThis endpoint has an optional request parameter \"associate\", which will default false. If associate=true, then when the period is updated all assignments in this course with a due date within the bounds of the grading period's start and end dates (if set) will associate themselves to the updated grading period.\n\n**Since**: 3300.3.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"associate","in":"query","required":false,"type":"boolean"},{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string","description":"The title of the grading period. Length is limited to 64 characters."},"description":{"type":"string","description":"The description of the grading period. Length is limited to 1000 characters."},"position":{"type":"integer","format":"int32","description":"The relative position of the grading period to other grading periods when viewed in the grade book."},"dateMode":{"type":"string","description":"Property may be set to DoNotUseDates to explicitly blank dates, in which case startDate and endDate are ignored; otherwise set to UseDates; in this case startDate and endDate must be included and valid.\n\n\n| Type | Description\n | --------- | --------- |\n| DoNotUseDates | Do not use dates |\n| UseDates | Use dates |\n","enum":["DoNotUseDates","UseDates"]},"start":{"type":"string","format":"date-time","description":"If start and end are set, and start is before end, these define temporal coverage of grading period which may be used to associate GradableItems (Columns) by due date. Start dates will be persisted as starting at 00:00:00 on the submitted day."},"end":{"type":"string","format":"date-time","description":"If start and end are set, and start is before end, these define temporal coverage of grading period which may be used to associate GradableItems (Columns) by due date. End dates will be persisted as ending at 23:59:59 on the submitted day."}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/gradebook/periods","version":[["3300.3.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetGrading Period FUNC {"summary":"GetGrading Period","description":"Returns a specific grading period.\n\nThe entitlement \"course.gradebook.MODIFY\" or \"course.gradebook-metadata.VIEW\" is needed. Note that grading period Ids may be visible on GradableItems based on GradableItem (column / assignment) entitlement restrictions.\n\nThis endpoint supports the filtering of fields returned on result object.\n\n**Since**: 3300.3.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"periodId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/gradebook/periods/{periodId}","version":[["3300.3.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY DeleteGrading Period FUNC {"summary":"DeleteGrading Period","description":"Delete a specific grading period. The entitlement \"course.gradebook.MODIFY\" is needed.\n\n**Since**: 3300.3.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"periodId","in":"path","required":true,"type":"string"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/gradebook/periods/{periodId}","version":[["3300.3.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY UpdateGrading Period FUNC {"summary":"UpdateGrading Period","description":"Update a grading period. The entitlement \"course.gradebook.MODIFY\" is needed.\n\nThis endpoint supports the filtering of fields returned on result object.\n\nThis endpoint has an optional request parameter \"associate\", which will default false. If associate=true, then when the period is updated all assignments in this course with a due date within the bounds of the grading period's start and end dates (if set) will associate themselves to the updated grading period.\n\n**Since**: 3300.3.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"periodId","in":"path","required":true,"type":"string"},{"name":"associate","in":"query","required":false,"type":"boolean"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"title":{"type":"string","description":"The title of the grading period. Length is limited to 64 characters."},"description":{"type":"string","description":"The description of the grading period. Length is limited to 1000 characters."},"position":{"type":"integer","format":"int32","description":"The relative position of the grading period to other grading periods when viewed in the grade book."},"dateMode":{"type":"string","description":"Property may be set to DoNotUseDates to explicitly blank dates, in which case startDate and endDate are ignored; otherwise set to UseDates; in this case startDate and endDate must be included and valid.\n\n\n| Type | Description\n | --------- | --------- |\n| DoNotUseDates | Do not use dates |\n| UseDates | Use dates |\n","enum":["DoNotUseDates","UseDates"]},"start":{"type":"string","format":"date-time","description":"If start and end are set, and start is before end, these define temporal coverage of grading period which may be used to associate GradableItems (Columns) by due date. Start dates will be persisted as starting at 00:00:00 on the submitted day."},"end":{"type":"string","format":"date-time","description":"If start and end are set, and start is before end, these define temporal coverage of grading period which may be used to associate GradableItems (Columns) by due date. End dates will be persisted as ending at 23:59:59 on the submitted day."}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/gradebook/periods/{periodId}","version":[["3300.3.0"]],"permissions":[["course.gradebook.MODIFY"]]}
KEY GetGroup Memberships FUNC {"summary":"GetGroup Memberships","description":"Returns a list of group memberships objects for the specified group.\n\nCallers not enrolled in the group must have at least one of the following entitlements:\n\n- course.group.VIEW\n\n**Since**: 3100.6.0\n\n**Deprecated**: since 3600.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/groups/{groupId}/users","version":[["3100.6.0"],["3600.0.0"]],"permissions":[["course.group.VIEW"]]}
KEY GetGroup Membership FUNC {"summary":"GetGroup Membership","description":"Loads a group membership in the specified group.\n\nCallers not enrolled in the group must have at least one of the following entitlements:\n\n- course.group.VIEW\n\n**Since**: 3100.6.0\n\n**Deprecated**: since 3600.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}","version":[["3100.6.0"],["3600.0.0"]],"permissions":[["course.group.VIEW"]]}
KEY CreateGroup Membership FUNC {"summary":"CreateGroup Membership","description":"Creates a group membership in the specified group.\n\nMinimal entitlements required:\n\n- course.group.MODIFY\n\n**Since**: 3100.6.0\n\n**Deprecated**: since 3600.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"}],"method":"put","path":"/learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}","version":[["3100.6.0"],["3600.0.0"]],"permissions":[["course.group.MODIFY"]]}
KEY DeleteGroup Membership FUNC {"summary":"DeleteGroup Membership","description":"Deletes a group from the specified course.\n\nRequired entitlements:\n\n- course.group.MODIFY\n\n**Since**: 3100.6.0\n\n**Deprecated**: since 3600.0.0; use the v2 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/UserIdParam.userId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/groups/{groupId}/users/{userId}","version":[["3100.6.0"],["3600.0.0"]],"permissions":[["course.group.MODIFY"]]}
KEY GetGroups FUNC {"summary":"GetGroups","description":"Callers with the following entitlement can view all groups in the course:\n\n- course.groups.VIEW\nCallers enrolled in course can view all groups they're enrolled in, and all self-enrollment groups\n\n**Since**: 3100.5.0\n\n**Deprecated**: since 3800.6.0; use the v2 end-point instead.","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"name(desc)\" Supported fields are:\n\n- name\n- externalId\n\n**Since**: 3100.4.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/groups","version":[["3100.5.0"],["3800.6.0"]],"permissions":[["course.groups.VIEW"]]}
KEY CreateGroup FUNC {"summary":"CreateGroup","description":"Creates a group in the specified course.\n\nMinimal entitlements required:\n\n- course.group.CREATE\n\n**Since**: 3100.5.0\n\n**Deprecated**: since 3800.6.0; use the v2 end-point instead.","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["name"],"properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the group. Defaults to a random UUID if not provided during create."},"parentId":{"type":"string","description":"The primary ID of the group's parent group set."},"name":{"type":"string","description":"The title of the group."},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the group. This field supports BbML; see here for more information."},"isGroupSet":{"type":"boolean","description":"Whether or not this is a group set.\n\n**Since**: 3700.1.0"},"availability":{"type":"object","description":"Settings controlling availability of the group to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the Group is currently available to students.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the group. |\n| No | Students may not access the group. |\n| SignupOnly | Students may only signup and see the group listed, not yet access it. |\n","enum":["Yes","No","SignupOnly"]}}},"enrollment":{"type":"object","description":"Settings controlling enrollment of the group to students.","title":"Enrollment","properties":{"type":{"type":"string","description":"Whether the Group allows self enrollment or only enrolled by instructor. This can only be set on creation.\n\n\n| Type | Description\n | --------- | --------- |\n| InstructorOnly | Students are added to the Group by the instructor |\n| SelfEnrollment | Students are added to the Group by self enrollment |\n","enum":["InstructorOnly","SelfEnrollment"]},"limit":{"type":"integer","format":"int32","description":"The maximum allowed enrollment size for self enrolled groups."},"signupSheet":{"type":"object","description":"Settings controlling signup to the group for students. Only applicable if Enrollment.Type allows self enrollment.","title":"SignupSheet","properties":{"name":{"type":"string","description":"The name of the signup sheet"},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the signup sheet This field supports BbML; see here for more information."},"showMembers":{"type":"boolean","description":"A boolean indicating whether or not members can be seen by others prior to signing up."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/groups","version":[["3100.5.0"],["3800.6.0"]],"permissions":[["course.group.CREATE"]]}
KEY GetGroup Sets FUNC {"summary":"GetGroup Sets","description":"Returns a list of all groupsets\n\nCallers not enrolled in the course must have the following entitlement:\n\n- course.groups.VIEW\n- course.groups.admin.VIEW\n\n**Since**: 3800.6.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"created","in":"query","description":"Search for groups with created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3800.8.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter.\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3800.8.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"modified","in":"query","description":"Search for groups with modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3800.8.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter.\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3800.8.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"name(desc)\" Supported fields are:\n\n- name\n- externalId\n\n**Since**: 3100.4.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v2/courses/{courseId}/groups/sets","version":[["3800.6.0"]],"permissions":[["course.groups.VIEW"],["course.groups.admin.VIEW"]]}
KEY CreateGroup Set FUNC {"summary":"CreateGroup Set","description":"Creates a groupset in the specified course.\n\nCallers must have the following entitlement:\n\n- 'course.groups.CREATE'\n\n**Since**: 3800.6.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["name"],"properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the group. Defaults to a random UUID if not provided during create."},"name":{"type":"string","description":"The title of the group."},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the group. This field supports BbML; see here for more information."},"availability":{"type":"object","description":"Settings controlling availability of the group to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the Group is currently available to students.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the group. |\n| No | Students may not access the group. |\n| SignupOnly | Students may only signup and see the group listed, not yet access it. |\n","enum":["Yes","No","SignupOnly"]}}},"enrollment":{"type":"object","description":"Settings controlling enrollment of the group to students.","title":"Enrollment","properties":{"type":{"type":"string","description":"Whether the Group allows self enrollment or only enrolled by instructor. This can only be set on creation.\n\n\n| Type | Description\n | --------- | --------- |\n| InstructorOnly | Students are added to the Group by the instructor |\n| SelfEnrollment | Students are added to the Group by self enrollment |\n","enum":["InstructorOnly","SelfEnrollment"]},"limit":{"type":"integer","format":"int32","description":"The maximum allowed enrollment size for self enrolled groups."},"signupSheet":{"type":"object","description":"Settings controlling signup to the group for students. Only applicable if Enrollment.Type allows self enrollment.","title":"SignupSheet","properties":{"name":{"type":"string","description":"The name of the signup sheet"},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the signup sheet This field supports BbML; see here for more information."},"showMembers":{"type":"boolean","description":"A boolean indicating whether or not members can be seen by others prior to signing up."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v2/courses/{courseId}/groups/sets","version":[["3800.6.0"]],"permissions":[["course.groups.CREATE"]]}
KEY GetGroup Set FUNC {"summary":"GetGroup Set","description":"Loads a groupset in the specified course.\n\nUsers calling this end point should meet at least one of these entitlement checks.\n\n- course.groups.VIEW\n- course.groups.admin.VIEW\n\n**Since**: 3800.6.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}","version":[["3800.6.0"]],"permissions":[["course.groups.VIEW"],["course.groups.admin.VIEW"]]}
KEY DeleteGroup Set FUNC {"summary":"DeleteGroup Set","description":"Deletes a groupset from the specified course.\n\nRequired entitlements:\n\n- course.group.DELETE\n\n**Since**: 3800.6.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GroupIdParam.groupId"}],"method":"delete","path":"/learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}","version":[["3800.6.0"]],"permissions":[["course.group.DELETE"]]}
KEY UpdateGroup Set FUNC {"summary":"UpdateGroup Set","description":"Updates a groupset in the specified course.\n\nMinimal entitlements required:\n\n- course.group.MODIFY\n\n**Since**: 3800.6.0","parameters":[{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the group. Defaults to a random UUID if not provided during create."},"name":{"type":"string","description":"The title of the group."},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the group. This field supports BbML; see here for more information."},"availability":{"type":"object","description":"Settings controlling availability of the group to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the Group is currently available to students.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the group. |\n| No | Students may not access the group. |\n| SignupOnly | Students may only signup and see the group listed, not yet access it. |\n","enum":["Yes","No","SignupOnly"]}}},"enrollment":{"type":"object","description":"Settings controlling enrollment of the group to students.","title":"Enrollment","properties":{"limit":{"type":"integer","format":"int32","description":"The maximum allowed enrollment size for self enrolled groups."},"signupSheet":{"type":"object","description":"Settings controlling signup to the group for students. Only applicable if Enrollment.Type allows self enrollment.","title":"SignupSheet","properties":{"name":{"type":"string","description":"The name of the signup sheet"},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the signup sheet This field supports BbML; see here for more information."},"showMembers":{"type":"boolean","description":"A boolean indicating whether or not members can be seen by others prior to signing up."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}","version":[["3800.6.0"]],"permissions":[["course.group.MODIFY"]]}
KEY GetGroup Set Children FUNC {"summary":"GetGroup Set Children","description":"Returns a list of all groups within a groupset\n\nCallers not enrolled in the group must have the following entitlement:\n\n- course.groups.VIEW\n\n**Since**: 3800.6.0","parameters":[{"$ref":"#/parameters/GroupIdParam.groupId"},{"name":"created","in":"query","description":"Search for groups with created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3800.8.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter.\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3800.8.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"modified","in":"query","description":"Search for groups with modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3800.8.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter.\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3800.8.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"name(desc)\" Supported fields are:\n\n- name\n- externalId\n\n**Since**: 3100.4.0","required":false,"type":"string"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}/groups","version":[["3800.6.0"]],"permissions":[["course.groups.VIEW"]]}
KEY CreateGroup Set Child FUNC {"summary":"CreateGroup Set Child","description":"Creates a group within a groupset.\n\nCallers must have the following entitlement:\n\n- 'course.groups.CREATE'\n\n**Since**: 3800.6.0","parameters":[{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["name"],"properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the group. Defaults to a random UUID if not provided during create."},"name":{"type":"string","description":"The title of the group."},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the group. This field supports BbML; see here for more information."},"availability":{"type":"object","description":"Settings controlling availability of the group to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the Group is currently available to students.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the group. |\n| No | Students may not access the group. |\n| SignupOnly | Students may only signup and see the group listed, not yet access it. |\n","enum":["Yes","No","SignupOnly"]}}},"enrollment":{"type":"object","description":"Settings controlling enrollment of the group to students.","title":"Enrollment","properties":{"type":{"type":"string","description":"Whether the Group allows self enrollment or only enrolled by instructor. This can only be set on creation.\n\n\n| Type | Description\n | --------- | --------- |\n| InstructorOnly | Students are added to the Group by the instructor |\n| SelfEnrollment | Students are added to the Group by self enrollment |\n","enum":["InstructorOnly","SelfEnrollment"]},"limit":{"type":"integer","format":"int32","description":"The maximum allowed enrollment size for self enrolled groups."},"signupSheet":{"type":"object","description":"Settings controlling signup to the group for students. Only applicable if Enrollment.Type allows self enrollment.","title":"SignupSheet","properties":{"name":{"type":"string","description":"The name of the signup sheet"},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the signup sheet This field supports BbML; see here for more information."},"showMembers":{"type":"boolean","description":"A boolean indicating whether or not members can be seen by others prior to signing up."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v2/courses/{courseId}/groups/sets/{groupId}/groups","version":[["3800.6.0"]],"permissions":[["course.groups.CREATE"]]}
KEY GetGroup FUNC {"summary":"GetGroup","description":"Loads a group in the specified course.\n\nEntitlement and field visibility rules are the same as those when loading the groups collection.\n\n**Since**: 3100.5.0\n\n**Deprecated**: since 3800.6.0; use the v2 end-point instead.","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GroupIdParam.groupId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/groups/{groupId}","version":[["3100.5.0"],["3800.6.0"]],"permissions":[]}
KEY DeleteGroup FUNC {"summary":"DeleteGroup","description":"Deletes a group from the specified course.\n\nRequired entitlements:\n\n- course.group.DELETE\n\n**Since**: 3100.5.0\n\n**Deprecated**: since 3800.6.0; use the v2 end-point instead.","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GroupIdParam.groupId"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/groups/{groupId}","version":[["3100.5.0"],["3800.6.0"]],"permissions":[["course.group.DELETE"]]}
KEY UpdateGroup FUNC {"summary":"UpdateGroup","description":"Updates a group in the specified course.\n\nMinimal entitlements required:\n\n- course.group.MODIFY\n\n**Since**: 3100.5.0\n\n**Deprecated**: since 3800.6.0; use the v2 end-point instead.","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/GroupIdParam.groupId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the group. Defaults to a random UUID if not provided during create."},"parentId":{"type":"string","description":"The primary ID of the group's parent group set."},"name":{"type":"string","description":"The title of the group."},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the group. This field supports BbML; see here for more information."},"availability":{"type":"object","description":"Settings controlling availability of the group to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the Group is currently available to students.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the group. |\n| No | Students may not access the group. |\n| SignupOnly | Students may only signup and see the group listed, not yet access it. |\n","enum":["Yes","No","SignupOnly"]}}},"enrollment":{"type":"object","description":"Settings controlling enrollment of the group to students.","title":"Enrollment","properties":{"limit":{"type":"integer","format":"int32","description":"The maximum allowed enrollment size for self enrolled groups."},"signupSheet":{"type":"object","description":"Settings controlling signup to the group for students. Only applicable if Enrollment.Type allows self enrollment.","title":"SignupSheet","properties":{"name":{"type":"string","description":"The name of the signup sheet"},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the signup sheet This field supports BbML; see here for more information."},"showMembers":{"type":"boolean","description":"A boolean indicating whether or not members can be seen by others prior to signing up."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/groups/{groupId}","version":[["3100.5.0"],["3800.6.0"]],"permissions":[["course.group.MODIFY"]]}
KEY GetCourse Memberships FUNC {"summary":"GetCourse Memberships","description":"Returns a list of user memberships for the specified course or organization.\n\nCallers not enrolled in the course must have at least one of the following entitlements:\n\n- For courses: 'course.user.VIEW', 'system.user.course.enrollment.VIEW', or 'system.courseuserlist.VIEW'\n- For organizations: 'course.user.VIEW', 'system.user.org.enrollment.VIEW', or 'system.orguserlist.VIEW'\nCallers enrolled in the course will only be able to see memberships that are available and that have opted to be included in the course roster.\n\nFor callers enrolled in the course as well as those with the 'course.user.VIEW' entitlement, system fields such as externalId and dataSourceId will not be visible.\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"role","in":"query","description":"Search for memberships with a course role id that matches this value.\n\n**Since**: 3500.5.0","required":false,"type":"string"},{"name":"created","in":"query","description":"Search for memberships with a created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3100.0.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3100.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"modified","in":"query","description":"Search for memberships with a modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3800.9.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3800.9.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"dataSourceId","in":"query","description":"Search for memberships with this dataSourceId. This may optionally be the data source's externalId using the syntax \"externalId:math101\".\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"lastAccessed","in":"query","description":"Search for memberships with a last accessed date relative to this value. 'lastAccessedCompare' may also be sent to control search behavior.\n\n**Since**: 3300.9.0","required":false,"type":"string","format":"date-time"},{"name":"lastAccessedCompare","in":"query","description":"Used alongside the 'lastAccessed' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3300.9.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"availability.available","in":"query","description":"Search for users with availability.available properties that contain this value.\n\n**Since**: 3100.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| Disabled | **Since**: 3100.0.0 |\n","required":false,"type":"string","enum":["Yes","No","Disabled"]},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"created(desc)\" Supported fields are:\n\n- created\n- lastAccessed (Since 3300.9.0)\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/users","version":[["3000.1.0"]],"permissions":[["course.user.VIEW"],["system.user.course.enrollment.VIEW"],["system.courseuserlist.VIEW"],["course.user.VIEW"],["system.user.org.enrollment.VIEW"],["system.orguserlist.VIEW"],["course.user.VIEW"]]}
KEY GetMembership FUNC {"summary":"GetMembership","description":"Loads a user membership in the specified course.\n\nEntitlement and field visibility rules are the same as those when loading the memberships collection.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/users/{userId}","version":[["2015.11.0"]],"permissions":[]}
KEY UpdateMembership FUNC {"summary":"UpdateMembership","description":"Updates a user membership in the specified course. \n\n | Field | Entitlements Required |\n |------------------------|---------------------------------------------------------------------------------|\n | dataSourceId | 'course.user.MODIFY' or 'org.user.MODIFY' |\n | childCourseId | 'course.user.MODIFY' or 'org.user.MODIFY' |\n | courseRoleId | 'course.user.MODIFY', 'org.user.MODIFY', or 'course.user-role.MODIFY' |\n | availability.available | 'course.user.MODIFY', 'org.user.MODIFY', or 'course.course-availability.MODIFY' |\n \n\nIn addition, callers must have standard view entitlements to receive a response. Without view entitlements the operation will be performed but an empty result object will be returned.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/UserIdParam.userId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"childCourseId":{"type":"string","description":"The primary ID of the child, cross-listed course, in which the user is directly enrolled. This field is read only in Learn versions 3000.11.0 through 3400.0.0. As of 3400.1.0, this field is mutable. If this membership's course is a parent course in a cross-listed set, the childCourseId can be updated to move the membership enrollment between child courses and the parent course in the set. Patching the childCourseId to \"null\" will move the membership to the parent course.\n\n**Since**: 3000.11.0"},"dataSourceId":{"type":"string","description":"The ID of the data source associated with this course. This may optionally be the data source's externalId using the syntax \"externalId:math101\"."},"availability":{"description":"Settings controlling availability of the course membership.","$ref":"#/definitions/Availability"},"courseRoleId":{"type":"string","description":"The user's role in the course.\n\nThese roles are also valid for an organization, although they are named differently in the UI.\n\nCustom course roles may also be referenced by their IDs.\n\n\n| Type | Description\n | --------- | --------- |\n| Instructor | Has access to all areas in the Control Panel. This role is generally given to those developing, teaching, or facilitating the class. Instructors may access a course that is unavailable to students. This role is customizable and may have different capabilities from what is documented here. |\n| BbFacilitator | The facilitator is an instructor like role. Facilitators are restricted versions of an instructor, in that they are able to deliver course instruction and administer all aspects of a pre-constructed course, but are not allowed to modify or alter the course. This role is customizable and may have different capabilities from what is documented here. |\n| TeachingAssistant | The teaching assistant role is that of a co-teacher. Teaching assistants are able to administer all areas of a course. Their only limitations are those imposed by the instructor or Blackboard administrator at your school. This role is customizable and may have different capabilities from what is documented here. |\n| CourseBuilder | Manages the course without having access to student grades. This role is customizable and may have different capabilities from what is documented here. |\n| Grader | Assists the instructor in the creation, management, delivery, and grading of items. This role is customizable and may have different capabilities from what is documented here. |\n| Student | |\n| Guest | Has no access to the Control Panel. Areas within the course are made available to guests, but typically they can only view course materials; they do not have access to tests or assessments, and do not have permission to post on discussion boards. This role's behavior is immutable. |\n","enum":["Instructor","BbFacilitator","TeachingAssistant","CourseBuilder","Grader","Student","Guest"]}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/users/{userId}","version":[["2015.11.0"]],"permissions":[["course.user.MODIFY"],["org.user.MODIFY"],["course.user.MODIFY"],["org.user.MODIFY"],["course.user.MODIFY"],["org.user.MODIFY"],["course.user.MODIFY"],["org.user.MODIFY"]]}
KEY GetUser Memberships FUNC {"summary":"GetUser Memberships","description":"Returns a list of course and organization memberships for the specified user.\n\nUsers can always view their own memberships. Callers viewing the memberships of another user require at least one of the following entitlements:\n\n- 'system.user.course.enrollment.VIEW' allows callers to see course memberships\n- 'system.user.org.enrollment.VIEW' allows callers to see organization memberships\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"role","in":"query","description":"Search for memberships with a course role id that matches this value.\n\n**Since**: 3500.5.0","required":false,"type":"string"},{"name":"created","in":"query","description":"Search for memberships with a created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3100.0.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3100.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"modified","in":"query","description":"Search for memberships with a modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3800.9.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3800.9.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"dataSourceId","in":"query","description":"Search for memberships with this dataSourceId. This may optionally be the data source's externalId using the syntax \"externalId:math101\".\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"lastAccessed","in":"query","description":"Search for memberships with a last accessed date relative to this value. 'lastAccessedCompare' may also be sent to control search behavior.\n\n**Since**: 3300.9.0","required":false,"type":"string","format":"date-time"},{"name":"lastAccessedCompare","in":"query","description":"Used alongside the 'lastAccessed' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3300.9.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"availability.available","in":"query","description":"Search for users with availability.available properties that contain this value.\n\n**Since**: 3100.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| Disabled | **Since**: 3100.0.0 |\n","required":false,"type":"string","enum":["Yes","No","Disabled"]},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"created(desc)\" Supported fields are:\n\n- created\n- lastAccessed (Since 3300.9.0)\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/users/{userId}/courses","version":[["2015.11.0"]],"permissions":[["system.user.course.enrollment.VIEW"],["system.user.org.enrollment.VIEW"]]}
KEY GetMessages FUNC {"summary":"GetMessages","description":"Retrieve all the messages for a course by specified folder. This endpoint currently supports only Original courses.\n\nThe \"course.message.VIEW\" entitlement is required to view Course Messages.\n\n**Since**: 3900.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/CourseMessageSearchCriteria.folderType"},{"$ref":"#/parameters/CourseMessageSearchCriteria.folderName"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"isRead(desc),start\" Supported fields are:\n\n- isRead\n- postedDate\n\n**Since**: 3900.2.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/messages","version":[["3900.2.0"]],"permissions":[["course.message.VIEW"]]}
KEY CreateMessage FUNC {"summary":"CreateMessage","description":"Creates a new Course Message. This endpoint currently supports only Original courses.\n\nThe \"course.message.CREATE\" entitlement is required to create or reply a course message\n\n**Since**: 3900.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the message"},"subject":{"type":"string","description":"The subject of the message"},"body":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The body text of the message. This field supports BbML; see here for more information."},"isRead":{"type":"boolean","description":"Whether or not the message has been read"},"attachment":{"description":"Metadata for the file attached to the message, if one exists","$ref":"#/definitions/CourseMessageAttachment"},"toUsers":{"type":"array","description":"The to participants of the message","items":{"type":"string"}},"ccUsers":{"type":"array","description":"The cc participants of the message","items":{"type":"string"}},"bccUsers":{"type":"array","description":"The bcc participants of the message","items":{"type":"string"}},"isExistingAttachment":{"type":"boolean","description":"Whether or not the attachment is the existing attachment for the message"},"isReply":{"type":"boolean","description":"Whether or not this message is a reply to another message"}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/messages","version":[["3900.2.0"]],"permissions":[["course.message.CREATE"]]}
KEY GetFolders FUNC {"summary":"GetFolders","description":"Retrieve all the folders for a course. This endpoint currently supports only Original courses.\n\nThe \"course.message.VIEW\" entitlement is required to view a Course Message folders.\n\n**Since**: 3900.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/messages/folders","version":[["3900.2.0"]],"permissions":[["course.message.VIEW"]]}
KEY DeleteMessage FUNC {"summary":"DeleteMessage","description":"Delete a message.\n\nThe 'course.message.DELETE' entitlement is required to delete the message.\n\n**Since**: 3900.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"messageId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/CourseMessageSearchCriteria.folderType"},{"$ref":"#/parameters/CourseMessageSearchCriteria.folderName"}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/messages/{messageId}","version":[["3900.2.0"]],"permissions":[["course.message.DELETE"]]}
KEY UpdateMessage FUNC {"summary":"UpdateMessage","description":"Update the read status of the message. This endpoint currently supports only Original courses.\n\n**Since**: 3900.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"messageId","in":"path","required":true,"type":"string"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"isRead":{"type":"boolean","description":"Whether or not the message has been read"}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/courses/{courseId}/messages/{messageId}","version":[["3900.2.0"]],"permissions":[]}
KEY GetMessage Participants FUNC {"summary":"GetMessage Participants","description":"Retrieve all participants for the specified message.\n\nThe \"course.message.VIEW\" entitlement is required to view a Course Message participants.\n\n**Since**: 3900.2.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"messageId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"participationType","in":"query","description":"Search the participation type\n\n**Since**: 3800.20.0","required":false,"type":"string"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"PARTICIPATION_TYPE(desc),start\" Supported fields are:\n\n- participationType\n\n**Since**: 3900.2.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/messages/{messageId}/participants","version":[["3900.2.0"]],"permissions":[["course.message.VIEW"]]}
KEY GetCourse Children FUNC {"summary":"GetCourse Children","description":"Returns a list of course cross-listings.\n\nThe 'system.course.cross-list.VIEW' or 'system.org.cross-list.VIEW' or 'course.children.VIEW' entitlement is needed.\n\n**Since**: 3000.11.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/children","version":[["3000.11.0"]],"permissions":[["system.course.cross"],["system.org.cross"],["course.children.VIEW"]]}
KEY GetChild FUNC {"summary":"GetChild","description":"Loads a specific course cross-listing.\n\nThe 'system.course.cross-list.VIEW' or 'system.org.cross-list.VIEW' entitlement is needed.\n\n**Since**: 3000.11.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ChildCourseIdParam.childCourseId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/children/{childCourseId}","version":[["3000.11.0"]],"permissions":[["system.course.cross"],["system.org.cross"]]}
KEY AddChild Course FUNC {"summary":"AddChild Course","description":"Merges two courses (or organizations) together. Commonly referred to as cross-listing. Only a single level of parent/child relationship is supported (ie. Parent courses may not become children, similarly, a child cannot become a parent)\n\nMinimal entitlements required:\n\n- For courses: 'system.course.cross-list.VIEW'\n- For organizations: 'system.org.cross-list.VIEW'\n\nUpon being merged, all enrollments in the child course are replicated in the parent course, and any future enrollment changes in the child course are also synchronized automatically with the parent course. Duplicate student enrollments will result in a 409 CONFLICT unless the 'ignoreEnrollmentErrors' query parameter is set to true. Users in other roles, such as grader, teaching assistant, or guest, are assigned roles based on the last time they are added to the parent course.\n\n**Since**: 3400.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ChildCourseIdParam.childCourseId"},{"$ref":"#/parameters/IgnoreCourseMergeEnrollmentErrors.ignoreEnrollmentErrors"},{"$ref":"#/parameters/fields"}],"method":"put","path":"/learn/api/public/v1/courses/{courseId}/children/{childCourseId}","version":[["3400.1.0"]],"permissions":[["system.course.cross"],["system.org.cross"]]}
KEY RemoveChild Course FUNC {"summary":"RemoveChild Course","description":"Delete a course-course relationship, resulting in two unrelated courses.\n\nMinimal entitlements required:\n\n- For courses: 'system.course.separate-out.VIEW'\n- For organizations: 'system.org.separate-out.VIEW'\n\n**Since**: 3900.4.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/ChildCourseIdParam.childCourseId"},{"name":"separationStyle","in":"query","description":"The method by which the courses will be separated. Default: CompleteSeparation\n\n**Since**: 3900.4.0\n\n\n| Type | Description\n | --------- | --------- |\n| completeSeparation | Re-enable the child course with enrollments and remove all the child enrollments from the master course. |\n| enrollmentsInBoth | Re-enable the child course with enrollments but leave all the child enrollments in the master course as well, marking them as unavailable. |\n","required":false,"type":"string","enum":["completeSeparation","enrollmentsInBoth"]}],"method":"delete","path":"/learn/api/public/v1/courses/{courseId}/children/{childCourseId}","version":[["3900.4.0"]],"permissions":[["system.course.separate"],["system.org.separate"]]}
KEY GetCross List Set FUNC {"summary":"GetCross List Set","description":"Returns the course cross-listing set for the specified course. This will return any and all parent/child associations regardless of the specified course being a parent or child course. The result will be empty if the specified course is not cross-listed.\n\nThe 'system.course.cross-list.VIEW' or 'system.org.cross-list.VIEW' entitlement is needed.\n\n**Since**: 3400.1.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/crossListSet","version":[["3400.1.0"]],"permissions":[["system.course.cross"],["system.org.cross"]]}
KEY GetTask FUNC {"summary":"GetTask","description":"Check the status of a queued task associated with a Course. Returns 200 unless task is complete. If task is complete this endpoint will return a 303 SEE OTHER with a Location header providing a URI to the GET Course endpoint. Statistical data shows that the average copy task duration is under a second. However, very large courses can take several minutes. Also important to note is that these background tasks can potentially be queued behind other system tasks therefore prolonging the time a task stays in the `Queued` status. We recommend that this endpoint be polled every 60 seconds while waiting for a Course copy to complete.\n\nUsers with entitlements 'system.course.copy.EXECUTE' can view the task status.\n\n**Since**: 3300.0.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"taskId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/tasks/{taskId}","version":[["3300.0.0"]],"permissions":[["system.course.copy.EXECUTE"]]}
KEY CopyCourse FUNC {"summary":"CopyCourse","description":"Creates an exact copy of an existing Course into a new Course.\n\nUsers with entitlements 'system.course.copy.EXECUTE' can create a course copy. Users with entitlements 'system.org.copy.EXECUTE' can create an organization copy. All users's must also have 'course.content.copy.EXECUTE' entitlement associated with the specified source courseId.\n\n**Since**: 3300.0.0\n\n**Deprecated**: since 3800.0.0; use the v2 end-point instead.","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"reqCourseObjToConvert","required":true,"schema":{"type":"object","required":["courseId"],"properties":{"courseId":{"type":"string","description":"The Course ID to copy into."}}}}],"method":"post","path":"/learn/api/public/v1/courses/{courseId}/copy","version":[["3300.0.0"],["3800.0.0"]],"permissions":[["system.course.copy.EXECUTE"],["system.org.copy.EXECUTE"],["course.content.copy.EXECUTE"]]}
KEY GetCourses FUNC {"summary":"GetCourses","description":"Returns a list of courses and organizations.\n\nTo view disabled courses a user must have the entitlement 'system.course.VIEW'.\n\nUsers with the 'course.configure-properties.EXECUTE' course entitlement, or the 'system.course.properties.MODIFY' system entitlement can access all course properties.\n\nUsers enrolled in the course have read access to all properties except:\n\n- uuid\n- externalId\n- dataSourceId\n- created\n- allowGuests\n- enrollment.accessCode\n\nUsers who are not enrolled in the course and do not have associated entitlements only have read access to the following properties:\n\n- id\n- courseId\n- name\n- description\n- organization\n- readOnly\n- termId\n- availability.available\n- availability.duration.type\n- availability.duration.start\n- availability.duration.end\n- availability.duration.daysOfUse\nIf the course enrollment is self-enroll, all users can view the course as though they were enrolled.\n\n**Since**: 3400.8.0\n\n**Deprecated**: since 3800.1.0; use the v3 end-point instead","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"modified","in":"query","description":"Search for courses with a modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3500.4.0","required":false,"type":"string","format":"date-time"},{"name":"modifiedCompare","in":"query","description":"Used alongside the 'modified' search parameter. Defaults to greaterOrEqual if not specified.\n\n**Since**: 3500.4.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"courseId","in":"query","description":"Search for courses with courseId properties that contain this value.\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"name","in":"query","description":"Search for courses with name properties that contain this value.\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"description","in":"query","description":"Search for courses with description properties that contain this value.\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"externalId","in":"query","description":"Search for courses with externalId properties that contain this value.\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"created","in":"query","description":"Search for courses with a created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3100.0.0","required":false,"type":"string","format":"date-time"},{"name":"allowGuests","in":"query","description":"Search for courses which are configured to allow/disallow guest access, based on input. Default: n/a (return courses regardless of guests allowed)\n\n**Since**: 3200.3.0","required":false,"type":"boolean"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Defaults to greaterOrEqual if not specified.\n\n**Since**: 3100.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"name":"availability.available","in":"query","description":"Search for courses with availability.available properties that contain this value.\n\n**Since**: 3000.13.0\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the course. |\n| No | Students may not access the course. |\n| Disabled | Disabled by the SIS. Students may not access the course. **Since**: 3100.0.0 |\n| Term | Availability is inherited from the term settings. Requires a termId be set. |\n","required":false,"type":"string","enum":["Yes","No","Disabled","Term"]},{"name":"dataSourceId","in":"query","description":"Search for courses with this dataSourceId. This may optionally be the data source's externalId using the syntax \"externalId:math101\".\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"termId","in":"query","description":"Search for courses with this termId. This may optionally be the term's externalId using the syntax \"externalId:spring2015\".\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"organization","in":"query","description":"Search for courses by organization flag. A value of 'true' indicates that search results should be limited to only Organizations. A value of 'false' indicates results should be limited to Courses. Not setting this field indicates that both Courses and Organizations should be returned.\n\n**Since**: 3100.0.0","required":false,"type":"boolean"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"name(desc),created\" Supported fields are:\n\n- courseId\n- name\n- externalId\n- created\n- modified\n\n**Since**: 3400.8.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v2/courses","version":[["3400.8.0"],["3800.1.0"]],"permissions":[["system.course.VIEW"],["system.course.properties.MODIFY"],["availability.duration.type"],["availability.duration.start"],["availability.duration.end"],["availability.duration.daysOfUse"]]}
KEY CreateCourse FUNC {"summary":"CreateCourse","description":"Creates a course or organization.\n\nThe 'system.course.CREATE' entitlement is needed to create a course, while 'system.org.CREATE' is needed for an organization.\n\n**Since**: 3400.8.0\n\n**Deprecated**: since 3800.1.0; use the v3 end-point instead","parameters":[{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["courseId","name"],"properties":{"externalId":{"type":"string","description":"An optional externally-defined unique ID for the course. Defaults to the courseId.\n\nFormerly known as 'batchUid'.","maxLength":256},"dataSourceId":{"type":"string","description":"The ID of the data source associated with this course. This may optionally be the data source's externalId using the syntax \"externalId:math101\"."},"courseId":{"type":"string","description":"The Course ID attribute, shown to users in the UI.","maxLength":100},"name":{"type":"string","description":"The name of the course.","maxLength":333},"description":{"type":"string","description":"The description of the course."},"organization":{"type":"boolean","description":"Whether this object represents an Organization. Defaults to false."},"ultraStatus":{"type":"string","description":"Whether the course is rendered using Classic or Ultra Course View.\n\n\n| Type | Description\n | --------- | --------- |\n| Undecided | The ultra status is not decided. |\n| Classic | The course is decided as classic. |\n| Ultra | The course is decided as ultra |\n| UltraPreview | The course is currently in Ultra mode but during the preview state where it may still be reverted via a Restore to the classic state |\n","enum":["Undecided","Classic","Ultra","UltraPreview"]},"allowGuests":{"type":"boolean","description":"Whether guests (users with the role guest) are allowed access to the course. Defaults to true."},"closedComplete":{"type":"boolean","description":"This status does not affect availability of the course for viewing in any way. closedComplete is valid for both Ultra and Classic courses. If an Ultra course is in closedComplete mode, updates are not possible. For a Classic course in closedComplete mode, updates are still possible (through Web UI but not through REST i.e. closed is enforced for original courses when updated through REST the same way Ultra courses are blocked) but new notifications are not generated."},"termId":{"type":"string","description":"The ID of the term associated to this course. This may optionally be the term's externalId using the syntax \"externalId:spring.2016\"."},"availability":{"type":"object","description":"Settings controlling availability of the course to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the course is currently available to students. Instructors can always access the course if they have 'Access unavailable course' entitlement. If set to 'Term', the course's parent term availability settings will be used.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the course. |\n| No | Students may not access the course. |\n| Disabled | Disabled by the SIS. Students may not access the course. @since 3100.0.0 |\n| Term | Availability is inherited from the term settings. Requires a termId be set. |\n","enum":["Yes","No","Disabled","Term"]},"duration":{"type":"object","description":"Settings controlling the length of time the course is available.","title":"Duration","properties":{"type":{"type":"string","description":"The intended length of the course. Possible values are:\n\n- Continuous: The course is active on an ongoing basis. This is the default.\n- DateRange: The course will only be available between specific date ranges.\n- FixedNumDays: The course will only be available for a set number of days.\n- Term: The course's parent term duration settings will be used.\n\n\n| Type | Description\n | --------- | --------- |\n| Continuous | Course is active on an ongoing basis. |\n| DateRange | Course is only intended to be available between specific date ranges |\n| FixedNumDays | Course is only available for a set number of days |\n| Term | Course availablity is dictated by its associated term |\n","enum":["Continuous","DateRange","FixedNumDays","Term"]},"start":{"type":"string","format":"date-time","description":"The date this course starts. May only be set if availability.duration.type is DateRange."},"end":{"type":"string","format":"date-time","description":"The date this course ends. May only be set if availability.duration.type is DateRange."},"daysOfUse":{"type":"integer","format":"int32","description":"The number of days this course can be used. May only be set if availability.duration.type is FixedNumDays."}}}}},"enrollment":{"type":"object","description":"Settings controlling how students may enroll in the course.","title":"Enrollment","properties":{"type":{"type":"string","description":"Specifies the enrollment options for the course. Defaults to InstructorLed.\n\n\n| Type | Description\n | --------- | --------- |\n| InstructorLed | Enrollment tasks for the course can only performed by the instructor |\n| SelfEnrollment | Instructors have the ability to enroll users, and students can also enroll themselves in the course |\n| EmailEnrollment | Instructors have the ability to enroll users, and students can email requests to the instructor for enrollment |\n","enum":["InstructorLed","SelfEnrollment","EmailEnrollment"]},"start":{"type":"string","format":"date-time","description":"The date on which enrollments are allowed for the course. May only be set if enrollment.type is SelfEnrollment."},"end":{"type":"string","format":"date-time","description":"The date on which enrollment in this course ends. May only be set if enrollment.type is SelfEnrollment."},"accessCode":{"type":"string","description":"The enrollment access code associated with this course. May only be set if enrollment.type is SelfEnrollment.","maxLength":50}}},"locale":{"type":"object","description":"Settings controlling localization within the course.","title":"Locale","properties":{"id":{"type":"string","description":"The locale of this course.","maxLength":20},"force":{"type":"boolean","description":"Whether students are forced to use the course's specified locale."}}}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v2/courses","version":[["3400.8.0"],["3800.1.0"]],"permissions":[["system.course.CREATE"],["system.org.CREATE"]]}
KEY GetCourse FUNC {"summary":"GetCourse","description":"Loads a specific course or organization.\n\nTo view disabled courses a user must have the entitlement 'system.course.VIEW'.\n\nUsers with the 'course.configure-properties.EXECUTE' entitlement can access all course properties.\n\nUsers enrolled in the course have read access to all properties except:\n\n- uuid\n- externalId\n- dataSourceId\n- created\n- allowGuests\n- enrollment.accessCode\n\nUsers with no access to the course only have read access to the following properties:\n\n- id\n- courseId\n- name\n- description\n- organization\n- closedComplete\n- termId\n- availability.available\n- availability.duration.type\n- availability.duration.start\n- availability.duration.end\n- availability.duration.daysOfUse\nIf the course enrollment is self-enroll, all users can view the course as though they were enrolled.\n\n**Since**: 3400.8.0\n\n**Deprecated**: since 3800.1.0; use the v3 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v2/courses/{courseId}","version":[["3400.8.0"],["3800.1.0"]],"permissions":[["system.course.VIEW"],["availability.duration.type"],["availability.duration.start"],["availability.duration.end"],["availability.duration.daysOfUse"]]}
KEY DeleteCourse FUNC {"summary":"DeleteCourse","description":"Deletes a course or organization in synchronous fashion.\n\nThe 'system.course.DELETE' entitlement is needed to delete a course, while 'system.org.DELETE' is needed for an organization.\n\n**Since**: 3400.8.0\n\n**Deprecated**: since 3800.1.0; use the v3 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"removeFiles","in":"query","description":"Whether to delete course files. Defaults to true.","required":false,"type":"boolean"}],"method":"delete","path":"/learn/api/public/v2/courses/{courseId}","version":[["3400.8.0"],["3800.1.0"]],"permissions":[["system.course.DELETE"],["system.org.DELETE"]]}
KEY UpdateCourse FUNC {"summary":"UpdateCourse","description":"Updates a course or organization.\n\nTo update a course, the user must have either 'system.course|org.properties.MODIFY' or 'course.configure-properties.EXECUTE' entitlements. However, if the user has the latter entitlement, then additional entitlements are needed to be able to update certain fields, as shown below: \n\n | Field | Entitlements Required |\n |---------------------------------|------------------------------------------------------------------------|\n | name | course.name.MODIFY |\n | description | course.name.MODIFY |\n | allowGuests | course.configure-guest-access.EXECUTE |\n | enrollment.type | course.configure-properties.EXECUTE, course.enrollment.MODIFY |\n | enrollment.start | course.configure-properties.EXECUTE, course.enrollment.MODIFY |\n | enrollment.end | course.configure-properties.EXECUTE, course.enrollment.MODIFY |\n | enrollment.accessCode | course.configure-properties.EXECUTE, course.enrollment.MODIFY |\n | availability.available | course.configure-properties.EXECUTE, course.availability.MODIFY |\n | locale.id | course.configure-properties.EXECUTE, course.locale.MODIFY |\n | locale.force | course.configure-properties.EXECUTE, course.locale.MODIFY |\n | availability.duration.type | course.configure-properties.EXECUTE, course.configure-duration.EXECUTE |\n | availability.duration.start | course.configure-properties.EXECUTE, course.configure-duration.EXECUTE |\n | availability.duration.end | course.configure-properties.EXECUTE, course.configure-duration.EXECUTE |\n | availability.duration.daysOfUse | course.configure-properties.EXECUTE, course.configure-duration.EXECUTE |\n \n\n**Since**: 3400.8.0\n\n**Deprecated**: since 3800.1.0; use the v3 end-point instead","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"An optional externally-defined unique ID for the course. Defaults to the courseId.\n\nFormerly known as 'batchUid'.","maxLength":256},"dataSourceId":{"type":"string","description":"The ID of the data source associated with this course. This may optionally be the data source's externalId using the syntax \"externalId:math101\"."},"name":{"type":"string","description":"The name of the course.","maxLength":333},"description":{"type":"string","description":"The description of the course."},"allowGuests":{"type":"boolean","description":"Whether guests (users with the role guest) are allowed access to the course. Defaults to true."},"closedComplete":{"type":"boolean","description":"This status does not affect availability of the course for viewing in any way. closedComplete is valid for both Ultra and Classic courses. If an Ultra course is in closedComplete mode, updates are not possible. For a Classic course in closedComplete mode, updates are still possible (through Web UI but not through REST i.e. closed is enforced for original courses when updated through REST the same way Ultra courses are blocked) but new notifications are not generated."},"termId":{"type":"string","description":"The ID of the term associated to this course. This may optionally be the term's externalId using the syntax \"externalId:spring.2016\"."},"availability":{"type":"object","description":"Settings controlling availability of the course to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the course is currently available to students. Instructors can always access the course if they have 'Access unavailable course' entitlement. If set to 'Term', the course's parent term availability settings will be used.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the course. |\n| No | Students may not access the course. |\n| Disabled | Disabled by the SIS. Students may not access the course. @since 3100.0.0 |\n| Term | Availability is inherited from the term settings. Requires a termId be set. |\n","enum":["Yes","No","Disabled","Term"]},"duration":{"type":"object","description":"Settings controlling the length of time the course is available.","title":"Duration","properties":{"type":{"type":"string","description":"The intended length of the course. Possible values are:\n\n- Continuous: The course is active on an ongoing basis. This is the default.\n- DateRange: The course will only be available between specific date ranges.\n- FixedNumDays: The course will only be available for a set number of days.\n- Term: The course's parent term duration settings will be used.\n\n\n| Type | Description\n | --------- | --------- |\n| Continuous | Course is active on an ongoing basis. |\n| DateRange | Course is only intended to be available between specific date ranges |\n| FixedNumDays | Course is only available for a set number of days |\n| Term | Course availablity is dictated by its associated term |\n","enum":["Continuous","DateRange","FixedNumDays","Term"]},"start":{"type":"string","format":"date-time","description":"The date this course starts. May only be set if availability.duration.type is DateRange."},"end":{"type":"string","format":"date-time","description":"The date this course ends. May only be set if availability.duration.type is DateRange."},"daysOfUse":{"type":"integer","format":"int32","description":"The number of days this course can be used. May only be set if availability.duration.type is FixedNumDays."}}}}},"enrollment":{"type":"object","description":"Settings controlling how students may enroll in the course.","title":"Enrollment","properties":{"type":{"type":"string","description":"Specifies the enrollment options for the course. Defaults to InstructorLed.\n\n\n| Type | Description\n | --------- | --------- |\n| InstructorLed | Enrollment tasks for the course can only performed by the instructor |\n| SelfEnrollment | Instructors have the ability to enroll users, and students can also enroll themselves in the course |\n| EmailEnrollment | Instructors have the ability to enroll users, and students can email requests to the instructor for enrollment |\n","enum":["InstructorLed","SelfEnrollment","EmailEnrollment"]},"start":{"type":"string","format":"date-time","description":"The date on which enrollments are allowed for the course. May only be set if enrollment.type is SelfEnrollment."},"end":{"type":"string","format":"date-time","description":"The date on which enrollment in this course ends. May only be set if enrollment.type is SelfEnrollment."},"accessCode":{"type":"string","description":"The enrollment access code associated with this course. May only be set if enrollment.type is SelfEnrollment.","maxLength":50}}},"locale":{"type":"object","description":"Settings controlling localization within the course.","title":"Locale","properties":{"id":{"type":"string","description":"The locale of this course.","maxLength":20},"force":{"type":"boolean","description":"Whether students are forced to use the course's specified locale."}}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v2/courses/{courseId}","version":[["3400.8.0"],["3800.1.0"]],"permissions":[["org.properties.MODIFY"],["course.name.MODIFY"],["course.name.MODIFY"],["course.enrollment.MODIFY"],["course.enrollment.MODIFY"],["course.enrollment.MODIFY"],["course.enrollment.MODIFY"],["course.availability.MODIFY"],["course.locale.MODIFY"],["course.locale.MODIFY"],["availability.duration.type"],["availability.duration.start"],["availability.duration.end"],["availability.duration.daysOfUse"]]}
KEY GetData Sources FUNC {"summary":"GetData Sources","description":"Returns a list of data sources.\n\nThe 'system.datasource.manager.VIEW' entitlement is needed.\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/DataSourceSearchCriteriaQueryParams.externalId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/dataSources","version":[["3000.1.0"]],"permissions":[["system.datasource.manager.VIEW"]]}
KEY CreateData Source FUNC {"summary":"CreateData Source","description":"Creates a data source.\n\nThe 'system.datasource.manager.VIEW' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["externalId"],"properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the data source.\n\nFormerly known as 'batchUid'."},"description":{"type":"string","description":"The description of the data source."}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/dataSources","version":[["2015.11.0"]],"permissions":[["system.datasource.manager.VIEW"]]}
KEY GetData Source FUNC {"summary":"GetData Source","description":"Loads a data source.\n\nThe 'system.datasource.manager.VIEW' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/DataSourceIdParam.dataSourceId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/dataSources/{dataSourceId}","version":[["2015.11.0"]],"permissions":[["system.datasource.manager.VIEW"]]}
KEY DeleteData Source FUNC {"summary":"DeleteData Source","description":"Deletes a data source.\n\nThe 'system.datasource.manager.VIEW' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/DataSourceIdParam.dataSourceId"},{"$ref":"#/parameters/fields"}],"method":"delete","path":"/learn/api/public/v1/dataSources/{dataSourceId}","version":[["2015.11.0"]],"permissions":[["system.datasource.manager.VIEW"]]}
KEY UpdateData Source FUNC {"summary":"UpdateData Source","description":"Updates a data source.\n\nThe 'system.datasource.manager.VIEW' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/DataSourceIdParam.dataSourceId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the data source.\n\nFormerly known as 'batchUid'."},"description":{"type":"string","description":"The description of the data source."}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/dataSources/{dataSourceId}","version":[["2015.11.0"]],"permissions":[["system.datasource.manager.VIEW"]]}
KEY GetAssociated Nodes FUNC {"summary":"GetAssociated Nodes","description":"Obtains a list of nodes to which a given course is directly associated.\n\nUsers with the 'system.multiinst.node.course.association.VIEW' entitlement and the 'system.multiinst.node.org.association.VIEW' system entitlement can access all node association information.\n\n**Since**: 3800.10.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/nodes","version":[["3800.10.0"]],"permissions":[["system.multiinst.node.course.association"],["system.multiinst.node.org.association"]]}
KEY GetNodes FUNC {"summary":"GetNodes","description":"Returns the Top-level institutional hierarchy nodes\n\nEntitlement system.multiinst.hierarchy.manager.VIEW required\n\nUsers with entitlement \"system.multiinst.hierarchy.manager.VIEW\" for Node management can view all fields.\n\n**Since**: 3800.10.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"recursive","in":"query","description":"Search Institutional Hierarchy Nodes recursively. If true, returns all descendant nodes of the specified Node. If false, only immediate children are returned (defualt: false)\n\n**Since**: 3800.14.0","required":false,"type":"boolean"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/institutionalHierarchy/nodes","version":[["3800.10.0"]],"permissions":[["system.multiinst.hierarchy.manager.VIEW"],["system.multiinst.hierarchy.manager.VIEW"]]}
KEY CreateNode FUNC {"summary":"CreateNode","description":"Creates a new institutional hierarchy node\n\nEntitlement system.multiinst.hierarchy.manager.CREATE required\n\nUsers with entitlement \"system.multiinst.hierarchy.manager.CREATE\" for Node management can create a new Node.\n\n**Since**: 3800.15.0","parameters":[{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["title"],"properties":{"externalId":{"type":"string","description":"Node unique identifier","maxLength":256},"title":{"type":"string","description":"Node display name","maxLength":256},"description":{"type":"string","description":"Node description","maxLength":1000}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/institutionalHierarchy/nodes","version":[["3800.15.0"]],"permissions":[["system.multiinst.hierarchy.manager.CREATE"],["system.multiinst.hierarchy.manager.CREATE"]]}
KEY GetNode FUNC {"summary":"GetNode","description":"Returns the institutional hierarchy node corresponding the provided ID\n\nEntitlement system.multiinst.hierarchy.manager.VIEW required\n\nUsers with entitlement \"system.multiinst.hierarchy.manager.VIEW\" for Node management can view all fields.\n\n**Since**: 3800.10.0","parameters":[{"$ref":"#/parameters/NodeIdParam.nodeId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}","version":[["3800.10.0"]],"permissions":[["system.multiinst.hierarchy.manager.VIEW"],["system.multiinst.hierarchy.manager.VIEW"]]}
KEY DeleteNode FUNC {"summary":"DeleteNode","description":"Deletes an institutional hierarchy node. The root node cannot be deleted. This deletes orphan children in a cascading fashion.\n\nThe 'system.multiinst.hierarchy.manager.DELETE' entitlement is required.\n\n**Since**: 3800.15.0","parameters":[{"$ref":"#/parameters/NodeIdParam.nodeId"}],"method":"delete","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}","version":[["3800.15.0"]],"permissions":[["system.multiinst.hierarchy.manager.DELETE"]]}
KEY UpdateNode FUNC {"summary":"UpdateNode","description":"Updates Institutional Hierarchy Node information.\n\nEntitlement system.multiinst.hierarchy.manager.MODIFY is required\n\n**Since**: 3800.15.0","parameters":[{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"Node unique identifier","maxLength":256},"title":{"type":"string","description":"Node display name","maxLength":256},"description":{"type":"string","description":"Node description","maxLength":1000}}}},{"$ref":"#/parameters/NodeIdParam.nodeId"},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}","version":[["3800.15.0"]],"permissions":[["system.multiinst.hierarchy.manager.MODIFY"]]}
KEY GetNode Children FUNC {"summary":"GetNode Children","description":"Returns the children of the institutional hierarchy node corresponding to the provided ID\n\nEntitlement system.multiinst.hierarchy.manager.VIEW required\n\nUsers with entitlement \"system.multiinst.hierarchy.manager.VIEW\" for Node management can view all fields.\n\n**Since**: 3800.10.0","parameters":[{"$ref":"#/parameters/NodeIdParam.nodeId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"recursive","in":"query","description":"Search Institutional Hierarchy Nodes recursively. If true, returns all descendant nodes of the specified Node. If false, only immediate children are returned (defualt: false)\n\n**Since**: 3800.14.0","required":false,"type":"boolean"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/children","version":[["3800.10.0"]],"permissions":[["system.multiinst.hierarchy.manager.VIEW"],["system.multiinst.hierarchy.manager.VIEW"]]}
KEY CreateChild Node FUNC {"summary":"CreateChild Node","description":"Create a new institutional hierarchy node whose parent corresponds to the supplied nodeId\n\nEntitlement system.multiinst.hierarchy.manager.CREATE required\n\nUsers with entitlement \"system.multiinst.hierarchy.manager.CREATE\" for Node management can create a new Node.\n\n**Since**: 3800.15.0","parameters":[{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["title"],"properties":{"externalId":{"type":"string","description":"Node unique identifier","maxLength":256},"title":{"type":"string","description":"Node display name","maxLength":256},"description":{"type":"string","description":"Node description","maxLength":1000}}}},{"$ref":"#/parameters/NodeIdParam.nodeId"},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/children","version":[["3800.15.0"]],"permissions":[["system.multiinst.hierarchy.manager.CREATE"],["system.multiinst.hierarchy.manager.CREATE"]]}
KEY GetNode Course Associations FUNC {"summary":"GetNode Course Associations","description":"Returns a list of node-course relationships for the specified node.\n\nUsers with the 'system.multiinst.node.course.association.VIEW' entitlement and the 'system.multiinst.node.org.association.VIEW' system entitlement can access all node association information.\n\n**Since**: 3800.10.0","parameters":[{"$ref":"#/parameters/NodeIdParam.nodeId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/CourseNodeFilterCriteriaV1.null.course.organization"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/courses","version":[["3800.10.0"]],"permissions":[["system.multiinst.node.course.association"],["system.multiinst.node.org.association"]]}
KEY CreateNode Course Association FUNC {"summary":"CreateNode Course Association","description":"Creates a node-course relationship for the specified node and course.\n\nUsers with the 'system.multiinst.node.course.association.CREATE' entitlement can create Course - Hierarchy Node associations. Users with the 'system.multiinst.node.org.association.CREATE' entitlement can create Organization - Hierarchy Node associations\n\n**Since**: 3800.17.0","parameters":[{"$ref":"#/parameters/NodeIdParam.nodeId"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"isPrimary":{"type":"boolean","description":"Whether or not this association represents the primary node association of the course"}}}},{"$ref":"#/parameters/fields"}],"method":"put","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/courses/{courseId}","version":[["3800.17.0"]],"permissions":[["system.multiinst.node.course.association"],["system.multiinst.node.org.association"]]}
KEY DeleteNode Course Association FUNC {"summary":"DeleteNode Course Association","description":"Deletes the association between a given Node and a Course\n\nEntitlement system.multiinst.node.course.association.DELETE required to delete Node-Course associations Entitlement system.multiinst.node.org.association.DELETE required to delete Node-Organization associations\n\n**Since**: 3800.17.0","parameters":[{"$ref":"#/parameters/NodeIdParam.nodeId"},{"$ref":"#/parameters/CourseIdParam.courseId"}],"method":"delete","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/courses/{courseId}","version":[["3800.17.0"]],"permissions":[["system.multiinst.node.course.association"],["system.multiinst.node.org.association"]]}
KEY UpdateNode Course Association FUNC {"summary":"UpdateNode Course Association","description":"Update a specified node-course association.\n\nUsers with the 'system.multiinst.node.course.association.CREATE' entitlement can update Course - Hierarchy Node associations Users with the 'system.multiinst.node.org.association.CREATE' entitlement can update Organization - Hierarchy Node associations\n\n**Since**: 3800.17.0","parameters":[{"$ref":"#/parameters/NodeIdParam.nodeId"},{"$ref":"#/parameters/CourseIdParam.courseId"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"isPrimary":{"type":"boolean","description":"Whether or not this association represents the primary node association of the course"}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/institutionalHierarchy/nodes/{nodeId}/courses/{courseId}","version":[["3800.17.0"]],"permissions":[["system.multiinst.node.course.association"],["system.multiinst.node.org.association"]]}
KEY GetPlacements FUNC {"summary":"GetPlacements","description":"Returns a list of LTI placements\n\nSupports the standard paging and sorting query parameters, with a maximum page size of 1000.\n\n**Since**: 3300.0.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"handle","in":"query","description":"Search for placements with handle properties that contain this value.\n\n**Since**: 3200.12.0","required":false,"type":"string"},{"name":"name","in":"query","description":"Search for placements with name properties that contain this value.\n\n**Since**: 3200.12.0","required":false,"type":"string"},{"name":"type","in":"query","description":"Search for placements with type properties that contain this value.\n\n**Since**: 3200.12.0\n\n\n| Type | Description\n | --------- | --------- |\n| Application | Application or Student Tool Placement |\n| ContentHandler | Content Type placement |\n| ContentItemMessage | Content-item Message placement (see IMSGlobal spec) **Since**: 3300.5.0 |\n| System | System-level Tools |\n| Administrator | Administrator-level Tools **Since**: 3400.1.0 |\n| UltraUI | Ultra-UI Extensions **Since**: 3700.6.0 |\n| BaseNavigation | Base Navigation |\n| CourseNavigation | Course Navigation |\n","required":false,"type":"string","enum":["Application","ContentHandler","ContentItemMessage","System","Administrator","UltraUI","BaseNavigation","CourseNavigation"]},{"name":"authorId","in":"query","description":"Search for placements with author ID properties that contain this value.\n\n**Since**: 3200.12.0\n\n**Deprecated**: since 3900.0.0; Field was never used and has been removed","required":false,"type":"string"},{"name":"courseId","in":"query","description":"Search for LTI placements that are available for this course. Note this only applies to Application, ContentHandler, and ContentItemMessage types currently\n\n**Since**: 3900.0.0","required":false,"type":"string"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"name.family(desc),created\"\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/lti/placements","version":[["3300.0.0"]],"permissions":[]}
KEY CreatePlacement FUNC {"summary":"CreatePlacement","description":"Creates an LTI placement\n\nThe 'system.administration.VIEW' entitlement is required to create placements\n\n**Since**: 3300.0.0","parameters":[{"in":"body","name":"input","required":true,"schema":{"type":"object","required":["handle","name","type","url"],"properties":{"name":{"type":"string","description":"The name of the placement. Not required to be unique. Maximum length of 50 characters, BAD_REQUEST error with message is returned if greater than 50 characters.","maxLength":50},"description":{"type":"string","description":"The description of the placement. Not required to be unique. Maximum length is 1000 characters, BAD_REQUEST error with message is returned if greater than 1000 characters.","maxLength":1000},"iconUrl":{"type":"string","description":"The URL of the icon for this placement, if any. Not required to be unique, must be a complete and valid URL. Maximum length is 255 characters, BAD_REQUEST error with message is returned if greater than 255 characters or incomplete URL.","maxLength":255},"handle":{"type":"string","description":"The handle that uniquely identifies this placement. Required to be unique. Maximum length is 32 characters, BAD_REQUEST error with message is returned if greater than 32 characters.","maxLength":32},"type":{"type":"string","description":"The type of placement.\n\n\n| Type | Description\n | --------- | --------- |\n| Application | Application or Student Tool Placement |\n| ContentHandler | Content Type placement |\n| ContentItemMessage | Content-item Message placement (see IMSGlobal spec) **Since**: 3300.5.0 |\n| System | System-level Tools |\n| Administrator | Administrator-level Tools **Since**: 3400.1.0 |\n| UltraUI | Ultra-UI Extensions **Since**: 3700.6.0 |\n| BaseNavigation | Base Navigation |\n| CourseNavigation | Course Navigation |\n","enum":["Application","ContentHandler","ContentItemMessage","System","Administrator","UltraUI","BaseNavigation","CourseNavigation"]},"url":{"type":"string","description":"The URL of the tool provider. Not required to be unique, must be a complete and valid URL. Maximum length is 1024 characters, BAD_REQUEST error with message is returned if greater than 1024 characters or incomplete URL.","maxLength":1024},"key":{"type":"string"},"secret":{"type":"string"},"authorId":{"type":"string","description":"Id of the creator of the placement\n\n**Deprecated**: since 3900.0 not used"},"instructorCreated":{"type":"boolean","description":"Whether an instructor created the placement or not (otherwise admin)\n\n**Deprecated**: since 3900.0 not used"},"allowStudents":{"type":"boolean","description":"Whether the course tool is visible by students, or only to non-students (e.g. instructors). Defaults to true, allowing students to see the tool."},"allowGrading":{"type":"boolean","description":"Whether this placement can accept grades from the tool provider and a grade column can be created for it. This only applies to Enum[Type]#`ContentHandler` types. All others don't support grading and will be set to false."},"availability":{"type":"object","description":"Settings controlling availability of the placement.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the placement is available within the system.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n","enum":["Yes","No"]}}},"launchInNewWindow":{"type":"boolean","description":"Whether this placement link should be opened in a new window or not."},"customParameters":{"type":"object","example":{"key1":"value1","key2":"value2"},"description":"Custom launch parameters for the tool.","additionalProperties":{"type":"string"}}}}}],"method":"post","path":"/learn/api/public/v1/lti/placements","version":[["3300.0.0"]],"permissions":[["system.administration.VIEW"]]}
KEY GetPlacement FUNC {"summary":"GetPlacement","description":"Returns the LTI placement with the specified Id\n\n**Since**: 3300.0.0","parameters":[{"name":"placementId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/lti/placements/{placementId}","version":[["3300.0.0"]],"permissions":[]}
KEY DeletePlacement FUNC {"summary":"DeletePlacement","description":"Deletes an LTI placement with the specified Id\n\nThe 'system.administration.VIEW' entitlement is required to delete placements\n\n**Since**: 3300.0.0","parameters":[{"name":"placementId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"delete","path":"/learn/api/public/v1/lti/placements/{placementId}","version":[["3300.0.0"]],"permissions":[["system.administration.VIEW"]]}
KEY UpdatePlacement FUNC {"summary":"UpdatePlacement","description":"Updates an LTI placement with the given Id\n\nThe 'system.administration.VIEW' entitlement is required to update placements\n\n**Since**: 3300.0.0","parameters":[{"name":"placementId","in":"path","required":true,"type":"string"},{"in":"body","name":"input","required":true,"schema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the placement. Not required to be unique. Maximum length of 50 characters, BAD_REQUEST error with message is returned if greater than 50 characters.","maxLength":50},"description":{"type":"string","description":"The description of the placement. Not required to be unique. Maximum length is 1000 characters, BAD_REQUEST error with message is returned if greater than 1000 characters.","maxLength":1000},"iconUrl":{"type":"string","description":"The URL of the icon for this placement, if any. Not required to be unique, must be a complete and valid URL. Maximum length is 255 characters, BAD_REQUEST error with message is returned if greater than 255 characters or incomplete URL.","maxLength":255},"url":{"type":"string","description":"The URL of the tool provider. Not required to be unique, must be a complete and valid URL. Maximum length is 1024 characters, BAD_REQUEST error with message is returned if greater than 1024 characters or incomplete URL.","maxLength":1024},"key":{"type":"string"},"secret":{"type":"string"},"authorId":{"type":"string","description":"Id of the creator of the placement\n\n**Deprecated**: since 3900.0 not used"},"instructorCreated":{"type":"boolean","description":"Whether an instructor created the placement or not (otherwise admin)\n\n**Deprecated**: since 3900.0 not used"},"allowStudents":{"type":"boolean","description":"Whether the course tool is visible by students, or only to non-students (e.g. instructors). Defaults to true, allowing students to see the tool."},"allowGrading":{"type":"boolean","description":"Whether this placement can accept grades from the tool provider and a grade column can be created for it. This only applies to Enum[Type]#`ContentHandler` types. All others don't support grading and will be set to false."},"availability":{"type":"object","description":"Settings controlling availability of the placement.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the placement is available within the system.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n","enum":["Yes","No"]}}},"launchInNewWindow":{"type":"boolean","description":"Whether this placement link should be opened in a new window or not."},"customParameters":{"type":"object","example":{"key1":"value1","key2":"value2"},"description":"Custom launch parameters for the tool.","additionalProperties":{"type":"string"}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/lti/placements/{placementId}","version":[["3300.0.0"]],"permissions":[["system.administration.VIEW"]]}
KEY GetDomain Configs FUNC {"summary":"GetDomain Configs","description":"This endpoint returns the list of LTI domain configs\n\nThe 'system.administration.VIEW' entitlement is needed to list domains.\n\n**Since**: 3300.9.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/apipublic/v1/lti/domains","version":[["3300.9.0"]],"permissions":[["system.administration.VIEW"]]}
KEY CreateDomain Config FUNC {"summary":"CreateDomain Config","description":"Creates an LTI Domain Config.\n\nThe 'system.administration.VIEW' entitlement is needed to create a domain.\n\n**Since**: 3300.9.0","parameters":[{"in":"body","name":"input","description":"JSON input object","required":true,"schema":{"type":"object","properties":{"primaryDomain":{"type":"string","description":"The primary domain name associated with this configuration."},"clientId":{"type":"string","description":"The client id associated with this configuration. Only applicable for LTI versions 1.3+, excluding 2.0\n\n**Since**: 3600.0.0"},"key":{"type":"string"},"secret":{"type":"string"},"status":{"type":"string","description":"Enum that indicates if the set of domains associated with this config can or cannot be linked to.\n\n\n| Type | Description\n | --------- | --------- |\n| Approved | |\n| Excluded | |\n| NeedsApproval | **Since**: 3300.9.0 |\n","enum":["Approved","Excluded","NeedsApproval"]},"sendUserDataType":{"type":"string","description":"Enum indicating when user data can be sent to the LTI tool provider.\n\n\n| Type | Description\n | --------- | --------- |\n| Never | |\n| Sslonly | |\n| Always | **Since**: 3300.9.0 |\n","enum":["Never","Sslonly","Always"]},"sendRole":{"type":"boolean","description":"Whether the user's role can be sent to the LTI tool provider."},"sendName":{"type":"boolean","description":"Whether the user's name can be sent to the LTI tool provider."},"sendEmail":{"type":"boolean","description":"Whether the user's email address can be sent to the LTI tool provider."},"useSplashScreen":{"type":"boolean","description":"Whether a splash screen is shown before launching the LTI link.\n\nCannot be set to true if allowMembershipService is true."},"allowMembershipService":{"type":"boolean","description":"Whether the Tool is allowed to call the LTI Names and Roles service and get the course memberships."},"allowGradesService":{"type":"boolean","description":"Whether the Tool is allowed to call the LTI Assignment and Grades service and manage line items and grades.\n\n**Since**: 3600.0.0"},"publicKey":{"type":"string","description":"The public key of the tool, if specified. It is optional and can be null\n\n**Since**: 3800.17.0"},"jwksUrl":{"type":"string","description":"The JWKS URL of the tool, if specified. It is optional and can be null\n\n**Since**: 3800.17.0"},"customParameters":{"type":"object","example":{"key1":"value1","key2":"value2"},"description":"The custom parameters for the given domain.","additionalProperties":{"type":"string"}}}}}],"method":"post","path":"/learn/apipublic/v1/lti/domains","version":[["3300.9.0"]],"permissions":[["system.administration.VIEW"]]}
KEY GetDomain Config FUNC {"summary":"GetDomain Config","description":"This endpoint returns the LTI domain config with the specified Id\n\nThe 'system.administration.VIEW' entitlement is needed to get a domain.\n\n**Since**: 3300.9.0","parameters":[{"name":"domainId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/apipublic/v1/lti/domains/{domainId}","version":[["3300.9.0"]],"permissions":[["system.administration.VIEW"]]}
KEY DeleteDomain Config FUNC {"summary":"DeleteDomain Config","description":"Deletes an LTI Domain Config.\n\nThe 'system.administration.VIEW' entitlement is needed to delete a domain.\n\n**Since**: 3300.9.0","parameters":[{"name":"domainId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"delete","path":"/learn/apipublic/v1/lti/domains/{domainId}","version":[["3300.9.0"]],"permissions":[["system.administration.VIEW"]]}
KEY UpdateDomain Config FUNC {"summary":"UpdateDomain Config","description":"Updates an LTI Domain Config.\n\nThe 'system.administration.VIEW' entitlement is needed to update a domain.\n\n**Since**: 3300.9.0","parameters":[{"name":"domainId","in":"path","required":true,"type":"string"},{"in":"body","name":"input","description":"JSON input object","required":true,"schema":{"type":"object","properties":{"primaryDomain":{"type":"string","description":"The primary domain name associated with this configuration."},"clientId":{"type":"string","description":"The client id associated with this configuration. Only applicable for LTI versions 1.3+, excluding 2.0\n\n**Since**: 3600.0.0"},"key":{"type":"string"},"secret":{"type":"string"},"status":{"type":"string","description":"Enum that indicates if the set of domains associated with this config can or cannot be linked to.\n\n\n| Type | Description\n | --------- | --------- |\n| Approved | |\n| Excluded | |\n| NeedsApproval | **Since**: 3300.9.0 |\n","enum":["Approved","Excluded","NeedsApproval"]},"sendUserDataType":{"type":"string","description":"Enum indicating when user data can be sent to the LTI tool provider.\n\n\n| Type | Description\n | --------- | --------- |\n| Never | |\n| Sslonly | |\n| Always | **Since**: 3300.9.0 |\n","enum":["Never","Sslonly","Always"]},"sendRole":{"type":"boolean","description":"Whether the user's role can be sent to the LTI tool provider."},"sendName":{"type":"boolean","description":"Whether the user's name can be sent to the LTI tool provider."},"sendEmail":{"type":"boolean","description":"Whether the user's email address can be sent to the LTI tool provider."},"useSplashScreen":{"type":"boolean","description":"Whether a splash screen is shown before launching the LTI link.\n\nCannot be set to true if allowMembershipService is true."},"allowMembershipService":{"type":"boolean","description":"Whether the Tool is allowed to call the LTI Names and Roles service and get the course memberships."},"allowGradesService":{"type":"boolean","description":"Whether the Tool is allowed to call the LTI Assignment and Grades service and manage line items and grades.\n\n**Since**: 3600.0.0"},"publicKey":{"type":"string","description":"The public key of the tool, if specified. It is optional and can be null\n\n**Since**: 3800.17.0"},"jwksUrl":{"type":"string","description":"The JWKS URL of the tool, if specified. It is optional and can be null\n\n**Since**: 3800.17.0"},"customParameters":{"type":"object","example":{"key1":"value1","key2":"value2"},"description":"The custom parameters for the given domain.","additionalProperties":{"type":"string"}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/apipublic/v1/lti/domains/{domainId}","version":[["3300.9.0"]],"permissions":[["system.administration.VIEW"]]}
KEY GetReview Status By Course Id FUNC {"summary":"GetReview Status By Course Id","description":"List the content review statuses for all the users enrolled in a course. Users calling this endpoint must have the following entitlement: this entitlement check.\n\n- course.performance.dashboard.VIEW\n\n**Since**: 3700.15.0","parameters":[{"$ref":"#/parameters/CourseIdParam.courseId"},{"name":"userId","in":"query","description":"Optional search criteria to filter by user id.\n\n**Since**: 3700.15.0","required":false,"type":"string"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courses/{courseId}/performance/contentReviewStatus","version":[["3700.15.0"]],"permissions":[["course.performance.dashboard.VIEW"]]}
KEY GetProctoring Services FUNC {"summary":"GetProctoring Services","description":"Returns a list of proctoring services Supports the standard paging query parameters, with a maximum page size of 1000. No entitlement check is performed as this data is not restricted. Any secure fields such as keys/secrets are not included in the results.\n\n**Since**: 3500.6.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/ProctoringServicesSearchCriteriaV1.null.availability.available"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/proctoring/services","version":[["3500.6.0"]],"permissions":[]}
KEY GetProctoring Service FUNC {"summary":"GetProctoring Service","description":"Returns the proctoring service with the specified Id No entitlement check is performed as this data is not restricted. Any secure fields such as keys/secrets are not included in the results.\n\n**Since**: 3500.6.0","parameters":[{"name":"proctoringServiceId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/proctoring/services/{proctoringServiceId}","version":[["3500.6.0"]],"permissions":[]}
KEY GetCourse Roles FUNC {"summary":"GetCourse Roles","description":"\n\nReturns a list of course roles. This list will contain all the course roles the context user has access to see. \n\nIf the context user has any of these entitlements, then the user can see all course roles:\n\n- system.courserole.CREATE\n- system.enrollment.CREATE\n- system.courserole.manager.VIEW\n- system.courserole.DELETE\n\n\nOtherwise, these course role entitlements are checked for any courses the context user is enrolled in:\n\n- course.user-enroll.EXECUTE\n- system.courserole.CREATE\n- system.enrollment.CREATE\n- system.courserole.manager.VIEW\n- system.courserole.DELETE\n- course.user-role.MODIFY\n\n\nIf the logged in user has any of those course role entitlements for a Course where Course.organization = false, then the user can see course roles where Availability.Available = Course or CourseAndOrganization \n\nIf the logged in user has any of those course role entitlements for a Course where Course.organization = true, then the user can see course roles where Availability.Available = Organization or CourseAndOrganization \n\n**Since**: 3300.5.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"name.family(desc),created\"\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"name":"custom","in":"query","description":"Search course roles by whether they are a custom or system generated course role.\n\n**Since**: 3300.5.0","required":false,"type":"boolean"},{"name":"roleId","in":"query","description":"Search course roles using their roleId's. Any course role with a roleId that contains the given string will be returned. The search is case insensitive.\n\n**Since**: 3300.5.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courseRoles","version":[["3300.5.0"]],"permissions":[["system.courserole.CREATE"],["system.enrollment.CREATE"],["system.courserole.manager.VIEW"],["system.courserole.DELETE"],["system.courserole.CREATE"],["system.enrollment.CREATE"],["system.courserole.manager.VIEW"],["system.courserole.DELETE"]]}
KEY GetCourse Role FUNC {"summary":"GetCourse Role","description":"\n\nReturns a single course role. The path id can be either the CourseRole.id field like \"/courseRoles/_5_1\" or the CourseRole.roleId field like \"/courseRoles/roleId:Student\". \n\nA 403 (FORBIDDEN) status is returned if the context user does not have access to see the course role. \n\nIf the context user has any of these entitlements, then the user can see all course roles:\n\n- system.courserole.CREATE\n- system.enrollment.CREATE\n- system.courserole.manager.VIEW\n- system.courserole.DELETE\n\n\nOtherwise, these course role entitlements are checked for any courses the context user is enrolled in:\n\n- course.user-enroll.EXECUTE\n- system.courserole.CREATE\n- system.enrollment.CREATE\n- system.courserole.manager.VIEW\n- system.courserole.DELETE\n- course.user-role.MODIFY\n\n\nIf the logged in user has any of those course role entitlements for a Course where Course.organization = false, then the user can see course roles where Availability.Available = Course or CourseAndOrganization \n\nIf the logged in user has any of those course role entitlements for a Course where Course.organization = true, then the user can see course roles where Availability.Available = Organization or CourseAndOrganization \n\n**Since**: 3300.5.0","parameters":[{"name":"roleId","in":"path","description":"The course role ID. This may be the primary ID, or the roleId. The suffix \":custom\" will be appended to the roleId of a custom course role if that roleId conflicts with the roleId of a system generated course role. For example, if a custom role roleId is specified as \"Student\" then the roleId will actually be \"Student:custom\" since there is already a system generated course role with the roleId of \"Student\". \n\n | ID type | Examples |\n |------------|------------------------------------------------------------|\n | primary | _123_1 |\n | roleId | roleId:Student, roleId:MyCustomRole, roleId:Student:custom |\n \n\n**Since**: 3300.5.0","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/courseRoles/{roleId}","version":[["3300.5.0"]],"permissions":[["system.courserole.CREATE"],["system.enrollment.CREATE"],["system.courserole.manager.VIEW"],["system.courserole.DELETE"],["system.courserole.CREATE"],["system.enrollment.CREATE"],["system.courserole.manager.VIEW"],["system.courserole.DELETE"]]}
KEY GetInstitution Roles FUNC {"summary":"GetInstitution Roles","description":"Returns a list of institution roles.\n\nUsers must have the entitlement 'system.institutionrole.VIEW' to access this endpoint.\n\n**Since**: 3300.4.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"roleId(desc)\" Supported fields are:\n\n- roleId\n- custom\n\n**Since**: 3300.4.0","required":false,"type":"string"},{"name":"roleId","in":"query","description":"Search for institution roles with roleId properties that contain this value.\n\n**Since**: 3300.4.0","required":false,"type":"string"},{"name":"custom","in":"query","description":"Search for institution roles by custom flag. A value of 'true' indicates that search results should be limited to only custom roles. A value of 'false' indicates results should be limited to built-in roles. Not setting this field indicates that all institution roles should be returned.\n\n**Since**: 3300.4.0","required":false,"type":"boolean"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/institutionRoles","version":[["3300.4.0"]],"permissions":[["system.institutionrole.VIEW"]]}
KEY GetInstitution Role FUNC {"summary":"GetInstitution Role","description":"Loads a specific institution role.\n\nUsers must have the entitlement 'system.institutionrole.VIEW' to access this endpoint.\n\n**Since**: 3300.4.0","parameters":[{"name":"roleId","in":"path","description":"The institution role ID. This may be the primary ID, or any of the secondary IDs prefixed with the ID type. \n\n | ID type | Example |\n |------------|---------------------------------------|\n | primary | _123_1 |\n | roleId | roleId:STUDENT |\n \n\n**Since**: 3300.5.0","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/institutionRoles/{roleId}","version":[["3300.4.0"]],"permissions":[["system.institutionrole.VIEW"]]}
KEY GetSystem Roles FUNC {"summary":"GetSystem Roles","description":"Returns a list of system roles.\n\nUsers must have the 'system.systemrole.manager.VIEW' entitlement to access this endpoint.\n\n**Since**: 3300.5.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"roleId","in":"query","description":"Search for system roles with roleId\n\n**Since**: 3300.5.0","required":false,"type":"string"},{"name":"custom","in":"query","description":"Search for system roles by custom flag. A value of 'true' indicates that search results should be limited to only custom roles. A value of 'false' indicates results should be limited to built-in roles. Not setting this field indicates that all system roles should be returned.\n\n**Since**: 3300.5.0","required":false,"type":"boolean"},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"roleId(desc)\"\n\nSupported fields are:\n\n\n\nAlso with users with any of the following entitlements can view the users information using the expand param:\n\n- system.user.VIEW\n- user.VIEW\n\n\n**Since**: 3800.4.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"},{"name":"expand","in":"query","description":"A comma-delimited list of fields to expand as part of the response. Expanded fields may cause additional load time. Supported fields are:
","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/sessions","version":[["3800.4.0"]],"permissions":[["system.user.sessions.VIEW"],["system.user.VIEW"]]}
KEY GetSIS Logs By Data Set Uid FUNC {"summary":"GetSIS Logs By Data Set Uid","description":"\n\nReturns a list of SIS Integration logs. Users with 'system.dataintegrations.log.VIEW' entitlement can view these logs. NOTE: If integration is processing the feed file then 423 (LOCKED) will be returned as response.\n\n**Since**: 3200.0.1","parameters":[{"name":"id","in":"path","description":": dataSetUid of the integration","required":true,"type":"string"},{"$ref":"#/parameters/LogLevel.level"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/logs/sis/dataSets/{id}","version":[["3200.0.1"]],"permissions":[["system.dataintegrations.log.VIEW"]]}
KEY GetPolicies FUNC {"summary":"GetPolicies","description":"Returns the links to the Blackboard and Institution privacy policies\n\n**Since**: 3400.5.0","parameters":[{"name":"locale","in":"query","description":"the locale, otherwise it defaults to en_US","required":false,"type":"string"}],"method":"get","path":"/learn/api/public/v1/system/policies/privacy","version":[["3400.5.0"]],"permissions":[]}
KEY GetSystem Task FUNC {"summary":"GetSystem Task","description":"Get the background task by the given task Id.\n\n**Since**: 3800.1.0","parameters":[{"name":"taskId","in":"path","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/system/tasks/{taskId}","version":[["3800.1.0"]],"permissions":[]}
KEY GetVersion FUNC {"summary":"GetVersion","description":"Gets the current Learn server version.\n\n**Since**: 3000.3.0","parameters":[],"method":"get","path":"/learn/api/public/v1/system/version","version":[["3000.3.0"]],"permissions":[]}
KEY GetTerms FUNC {"summary":"GetTerms","description":"Returns a list of terms.\n\nAt least one of the entitlements 'system.term.VIEW' or 'system.term.MODIFY' are needed.\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"externalId","in":"query","description":"Search for term with externalId properties that contain this value.\n\n**Since**: 3100.6.0","required":false,"type":"string"},{"name":"dataSourceId","in":"query","description":"Search for term with this dataSourceId.\n\n**Since**: 3100.6.0","required":false,"type":"string"},{"name":"availability.available","in":"query","description":"Search for users with availability.available properties that contain this value.\n\n**Since**: 3100.6.0\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the term and the courses it contains. |\n| No | Students may not access the term or the courses it contains. |\n","required":false,"type":"string","enum":["Yes","No"]},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/terms","version":[["3000.1.0"]],"permissions":[["system.term.VIEW"],["system.term.MODIFY"]]}
KEY CreateTerm FUNC {"summary":"CreateTerm","description":"Creates a term.\n\nThe 'system.term.MODIFY' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["externalId","name"],"properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the term.\n\nFormerly known as 'sourcedidId'.","maxLength":256},"dataSourceId":{"type":"string","description":"The ID of the data source associated with this term. This may optionally be the data source's externalId using the syntax \"externalId:math101\"."},"name":{"type":"string","description":"The name of the term.","maxLength":333},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the term. This field supports BbML; see here for more information."},"availability":{"type":"object","description":"Settings controlling availability of the term to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the term and the courses it contains are available to students. Instructors can always access their courses.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the term and the courses it contains. |\n| No | Students may not access the term or the courses it contains. |\n","enum":["Yes","No"]},"duration":{"type":"object","description":"Settings controlling the length of time the term is available.","title":"Duration","properties":{"type":{"type":"string","description":"The intended length of the term. Possible values are:\n\n\n| Type | Description\n | --------- | --------- |\n| Continuous | The term is active on an ongoing basis. This is the default. |\n| DateRange | The term will only be available between specific date ranges. |\n| FixedNumDays | The term will only be available for a set number of days. |\n","enum":["Continuous","DateRange","FixedNumDays"]},"start":{"type":"string","format":"date-time","description":"The date this term starts. May only be set if availability.duration.type is DateRange."},"end":{"type":"string","format":"date-time","description":"The date this term ends. May only be set if availability.duration.type is DateRange."},"daysOfUse":{"type":"integer","format":"int32","description":"The number of days courses within this term can be used. May only be set if availability.duration.type is FixedNumDays."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/terms","version":[["2015.11.0"]],"permissions":[["system.term.MODIFY"]]}
KEY GetTerm FUNC {"summary":"GetTerm","description":"Loads a term.\n\nThe caller must be enrolled in a course contained within the term, or must have at least one of the entitlements 'system.term.VIEW' or 'system.term.MODIFY'.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/TermIdParam.termId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/terms/{termId}","version":[["2015.11.0"]],"permissions":[["system.term.VIEW"],["system.term.MODIFY"]]}
KEY DeleteTerm FUNC {"summary":"DeleteTerm","description":"Deletes a term.\n\nThe 'system.term.MODIFY' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/TermIdParam.termId"}],"method":"delete","path":"/learn/api/public/v1/terms/{termId}","version":[["2015.11.0"]],"permissions":[["system.term.MODIFY"]]}
KEY UpdateTerm FUNC {"summary":"UpdateTerm","description":"Updates a term.\n\nThe 'system.term.MODIFY' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/TermIdParam.termId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"An externally-defined unique ID for the term.\n\nFormerly known as 'sourcedidId'.","maxLength":256},"dataSourceId":{"type":"string","description":"The ID of the data source associated with this term. This may optionally be the data source's externalId using the syntax \"externalId:math101\"."},"name":{"type":"string","description":"The name of the term.","maxLength":333},"description":{"type":"string","format":"BbML","example":" Header Large
Header Medium
Header Small
Bold Italic Italic Underline
\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\"
<braces test=\"values\" other=\"strange things\">
Header Small
- Number 1
- Number 2
Just words followed by a formula

Blackboard
","description":"The description of the term. This field supports BbML; see here for more information."},"availability":{"type":"object","description":"Settings controlling availability of the term to students.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the term and the courses it contains are available to students. Instructors can always access their courses.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | Students may access the term and the courses it contains. |\n| No | Students may not access the term or the courses it contains. |\n","enum":["Yes","No"]},"duration":{"type":"object","description":"Settings controlling the length of time the term is available.","title":"Duration","properties":{"type":{"type":"string","description":"The intended length of the term. Possible values are:\n\n\n| Type | Description\n | --------- | --------- |\n| Continuous | The term is active on an ongoing basis. This is the default. |\n| DateRange | The term will only be available between specific date ranges. |\n| FixedNumDays | The term will only be available for a set number of days. |\n","enum":["Continuous","DateRange","FixedNumDays"]},"start":{"type":"string","format":"date-time","description":"The date this term starts. May only be set if availability.duration.type is DateRange."},"end":{"type":"string","format":"date-time","description":"The date this term ends. May only be set if availability.duration.type is DateRange."},"daysOfUse":{"type":"integer","format":"int32","description":"The number of days courses within this term can be used. May only be set if availability.duration.type is FixedNumDays."}}}}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/terms/{termId}","version":[["2015.11.0"]],"permissions":[["system.term.MODIFY"]]}
KEY Upload FUNC {"summary":"Upload","description":"Upload a file to temporary storage. The request is a multipart/form-data POST following RFC 1867. (https://www.ietf.org/rfc/rfc1867.txt)\n\nThe uploaded file will be scanned for potential security threats by the system's XSS filters. If the file is deemed as unsafe, the request will be rejected and an HTTP Status of 422 is returned.\n\nReturns an ID of the file reference, so it can be used for processing by a different service.\n\nExample Request:
curl -X POST -H 'Authorization: Bearer your_token' -F 'file=@/path/to/your/file' https://YOUR_LEARN_INSTANCE/learn/api/public/v1/uploads
\n\n**Since**: 3100.12.0","parameters":[{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/uploads","version":[["3100.12.0"]],"permissions":[["www.ietf.org"]]}
KEY GetUsers FUNC {"summary":"GetUsers","description":"Returns a list of users.\n\nAt least one of the entitlements 'system.user.VIEW' or 'user.VIEW' are needed.\n\nNote: Users with the 'SystemAdmin' role are only included in the results if the logged on user also has this role.\n\n**Since**: 3000.1.0","parameters":[{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"name":"userName","in":"query","description":"Search for users with userName properties that contain this value.\n\n**Since**: 3000.11.0","required":false,"type":"string"},{"name":"externalId","in":"query","description":"Search for users with externalId properties that contain this value.\n\n**Since**: 3000.11.0","required":false,"type":"string"},{"name":"created","in":"query","description":"Search for users with a created date relative to this value. 'createdCompare' may also be sent to control search behavior.\n\n**Since**: 3000.11.0","required":false,"type":"string","format":"date-time"},{"name":"modified","in":"query","description":"Search for users with a modified date relative to this value. 'modifiedCompare' may also be sent to control search behavior.\n\n**Since**: 3700.1.0","required":false,"type":"string","format":"date-time"},{"name":"createdCompare","in":"query","description":"Used alongside the 'created' search parameter. Supported values:\n\n- lessThan\n- greaterOrEqual\n\nDefaults to greaterOrEqual if not specified.\n\n**Since**: 3000.11.0\n\n\n| Type | Description\n | --------- | --------- |\n| lessThan | |\n| greaterOrEqual | |\n","required":false,"type":"string","enum":["lessThan","greaterOrEqual"]},{"$ref":"#/parameters/UsersSearchCriteria.modifiedCompare"},{"name":"dataSourceId","in":"query","description":"Search for users with this dataSourceId. This may optionally be the data source's externalId using the syntax \"externalId:math101\".\n\n**Since**: 3000.11.0","required":false,"type":"string"},{"name":"name.family","in":"query","description":"Search for users with name.family properties that contain this value.\n\n**Since**: 3000.11.0","required":false,"type":"string"},{"name":"availability.available","in":"query","description":"Search for users with availability.available properties that contain this value.\n\n**Since**: 3100.0.0\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| Disabled | **Since**: 3100.0.0 |\n","required":false,"type":"string","enum":["Yes","No","Disabled"]},{"name":"sort","in":"query","description":"Properties to sort by. This is a comma-delimited list of JSON properties, with an optional \"(desc)\" suffix to request a descending sort for that property. e.g. \"name.family(desc),created\" Supported fields are:\n\n- userName\n- name.family\n- externalId\n- dataSourceId\n- created\n\n**Since**: 3100.0.0","required":false,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/users","version":[["3000.1.0"]],"permissions":[["system.user.VIEW"]]}
KEY CreateUser FUNC {"summary":"CreateUser","description":"Creates a user.\n\nThe 'system.user.CREATE' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","required":["name","password","userName"],"properties":{"externalId":{"type":"string","description":"An optional externally-defined unique ID for the user. Defaults to the userName.\n\nFormerly known as 'batchUid'.","maxLength":256},"dataSourceId":{"type":"string","description":"The ID of the data source associated with this user. This may optionally be the data source's externalId using the syntax \"externalId:math101\"."},"userName":{"type":"string","description":"The userName property, shown in the UI."},"studentId":{"type":"string","description":"The user's student ID name or number as defined by the school or institution.","maxLength":100},"password":{"type":"string","description":"The user's login password."},"educationLevel":{"type":"string","description":"The education level of this user.\n\n\n| Type | Description\n | --------- | --------- |\n| K8 | Kindergarten through 8th grade |\n| HighSchool | Grades 9 through 12. |\n| Freshman | College or university freshman. |\n| Sophomore | College or university sophomore. |\n| Junior | College or university junior. |\n| Senior | College or university senior. |\n| GraduateSchool | Graduate school student. |\n| PostGraduateSchool | Post-graduate school student. |\n| Unknown | Education Level is not known, or not specified. |\n","enum":["K8","HighSchool","Freshman","Sophomore","Junior","Senior","GraduateSchool","PostGraduateSchool","Unknown"]},"gender":{"type":"string","description":"The gender of this user.\n\n\n| Type | Description\n | --------- | --------- |\n| Female | Female |\n| Male | Male |\n| Unknown | Gender is not known, or not specified. |\n","enum":["Female","Male","Unknown"]},"birthDate":{"type":"string","format":"date-time","description":"The birth date of this user."},"institutionRoleIds":{"type":"array","description":"The primary and secondary institution roles assigned to this user. The primary institution role is the first item in the list, followed by all secondary institution roles sorted alphabetically.\n\n**Since**: 3300.3.0","items":{"type":"string"}},"systemRoleIds":{"type":"array","description":"The system roles (the administrative user roles in the UI) for this user. The first role in this list is the user's primary system role, while the remaining are secondary system roles.","items":{"$ref":"#/definitions/SystemRoleEnum"}},"availability":{"type":"object","description":"Settings controlling availability of the user account.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the user is available within the system. Unavailable users cannot log in.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| Disabled | **Since**: 3100.0.0 |\n","enum":["Yes","No","Disabled"]}}},"name":{"type":"object","description":"Properties used to build the user's display name.","title":"Name","properties":{"given":{"type":"string","description":"The given (first) name of this user.","maxLength":100},"family":{"type":"string","description":"The family (last) name of this user.","maxLength":100},"middle":{"type":"string","description":"The middle name of this user.","maxLength":100},"other":{"type":"string","description":"The other name (nickname) of this user.","maxLength":100},"suffix":{"type":"string","description":"The suffix of this user's name. Examples: Jr., III, PhD.","maxLength":100},"title":{"type":"string","description":"The title of this user. Examples: Mr., Ms., Dr.","maxLength":100}},"required":["family","given"]},"job":{"type":"object","description":"The user's job information.","title":"Job","properties":{"title":{"type":"string","description":"The user's job title.","maxLength":100},"department":{"type":"string","description":"The department the user belongs to.","maxLength":100},"company":{"type":"string","description":"The company the user works for.","maxLength":100}}},"contact":{"type":"object","description":"The user's contact information.","title":"Contact","properties":{"homePhone":{"type":"string","description":"The user's home phone number.","maxLength":50},"mobilePhone":{"type":"string","description":"The user's mobile phone number.","maxLength":50},"businessPhone":{"type":"string","description":"The user's business phone number.","maxLength":50},"businessFax":{"type":"string","description":"The user's business fax number.","maxLength":50},"email":{"type":"string","description":"The user's email address.","maxLength":100},"webPage":{"type":"string","description":"The URL of the user's personal website.","maxLength":100}}},"address":{"type":"object","description":"The user's mailing address.","title":"Address","properties":{"street1":{"type":"string","description":"The street address of the user.","maxLength":100},"street2":{"type":"string","description":"An additional field to store the street address of the user.","maxLength":100},"city":{"type":"string","description":"The city the user resides in.","maxLength":50},"state":{"type":"string","description":"The state or province the user resides in.","maxLength":50},"zipCode":{"type":"string","description":"The zip code or postal code the user resides in.","maxLength":50},"country":{"type":"string","description":"The country the user resides in.","maxLength":50}}},"locale":{"type":"object","description":"The user's localization settings.","title":"Locale","properties":{"id":{"type":"string","description":"The locale specified by the user. This locale will be used anywhere the user is allowed to customize their locale; courses may force a specific locale, overriding the user's locale preference."},"calendar":{"type":"string","description":"The calendar type specified by the user.\n\n\n| Type | Description\n | --------- | --------- |\n| Gregorian | Gregorian |\n| GregorianHijri | Gregorian & Hijri |\n| Hijri | Hijri |\n| HijriGregorian | Hijri & Gregorian |\n","enum":["Gregorian","GregorianHijri","Hijri","HijriGregorian"]},"firstDayOfWeek":{"type":"string","description":"The user's preferred first day of the week.\n\n\n| Type | Description\n | --------- | --------- |\n| Sunday | Sunday |\n| Monday | Monday |\n| Saturday | Saturday |\n","enum":["Sunday","Monday","Saturday"]}}},"avatar":{"type":"object","description":"The user's avatar metadata\n\n**Since**: 3800.13.0","title":"Avatar","properties":{"source":{"type":"string","description":"The source of the user's avatar\n\n**Since**: 3800.13.0\n\n\n| Type | Description\n | --------- | --------- |\n| Default | The server default avatar |\n| User | The user set his/her own avatar |\n| System | A privileged user set the user's avatar to something other than default |\n","enum":["Default","User","System"]},"uploadId":{"type":"string","description":"The upload id of the avatar image file\n\n**Since**: 3800.13.0"}}}}}},{"$ref":"#/parameters/fields"}],"method":"post","path":"/learn/api/public/v1/users","version":[["2015.11.0"]],"permissions":[["system.user.CREATE"]]}
KEY GetUser FUNC {"summary":"GetUser","description":"Loads a user.\n\nProperties returned will depend on the caller's entitlements.\n\nCallers with the entitlement 'user.VIEW' will always get a minimal set of core properties:\n\n- id\n- name.given\n- name.family\n- name.middle\n- systemRoleIds\n\nDepending on the Learn administrator customizable user field display settings, as well as the target user's personal visibility settings, the following fields might also be included:\n\n- userName\n- educationLevel\n- gender\n- birthDate\n- name.other\n- name.suffix\n- name.title\n- job.*\n- contact.*\n- address.*\n\nCallers asking for their own user record get all fields listed above, plus:\n\n- locale.*\n\nAll user properties are provided to callers with one of the entitlements 'system.user.properties.MODIFY', 'system.useradmin.generic.VIEW', or 'system.user.VIEW'.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/users/{userId}","version":[["2015.11.0"]],"permissions":[["system.user.properties.MODIFY"],["system.useradmin.generic.VIEW"],["system.user.VIEW"]]}
KEY DeleteUser FUNC {"summary":"DeleteUser","description":"Deletes a user.\n\nThe 'system.user.DELETE' entitlement is needed.\n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/fields"}],"method":"delete","path":"/learn/api/public/v1/users/{userId}","version":[["2015.11.0"]],"permissions":[["system.user.DELETE"]]}
KEY UpdateUser FUNC {"summary":"UpdateUser","description":"Updates a user.\n\nCallers may update their own user record if they have the 'self.user.MODIFY' entitlement. Updating other users requires the 'system.user.properties.MODIFY' entitlement.\n\nCertain properties may be edited by callers with more finely grained entitlements: \n\n | Field | Entitlements Required |\n |------------------------|-----------------------------------------------------|\n | systemRoleIds | system.user.MODIFY, system.user-system-role.MODIFY |\n | availability.available | system.user.MODIFY, system.user.availability.MODIFY |\n | password | system.user.MODIFY, system.user-password.MODIFY |\n \n\n**Since**: 2015.11.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"in":"body","name":"input","description":"JSON input object.","required":true,"schema":{"type":"object","properties":{"externalId":{"type":"string","description":"An optional externally-defined unique ID for the user. Defaults to the userName.\n\nFormerly known as 'batchUid'.","maxLength":256},"dataSourceId":{"type":"string","description":"The ID of the data source associated with this user. This may optionally be the data source's externalId using the syntax \"externalId:math101\"."},"userName":{"type":"string","description":"The userName property, shown in the UI."},"studentId":{"type":"string","description":"The user's student ID name or number as defined by the school or institution.","maxLength":100},"password":{"type":"string","description":"The user's login password."},"educationLevel":{"type":"string","description":"The education level of this user.\n\n\n| Type | Description\n | --------- | --------- |\n| K8 | Kindergarten through 8th grade |\n| HighSchool | Grades 9 through 12. |\n| Freshman | College or university freshman. |\n| Sophomore | College or university sophomore. |\n| Junior | College or university junior. |\n| Senior | College or university senior. |\n| GraduateSchool | Graduate school student. |\n| PostGraduateSchool | Post-graduate school student. |\n| Unknown | Education Level is not known, or not specified. |\n","enum":["K8","HighSchool","Freshman","Sophomore","Junior","Senior","GraduateSchool","PostGraduateSchool","Unknown"]},"gender":{"type":"string","description":"The gender of this user.\n\n\n| Type | Description\n | --------- | --------- |\n| Female | Female |\n| Male | Male |\n| Unknown | Gender is not known, or not specified. |\n","enum":["Female","Male","Unknown"]},"birthDate":{"type":"string","format":"date-time","description":"The birth date of this user."},"institutionRoleIds":{"type":"array","description":"The primary and secondary institution roles assigned to this user. The primary institution role is the first item in the list, followed by all secondary institution roles sorted alphabetically.\n\n**Since**: 3300.3.0","items":{"type":"string"}},"systemRoleIds":{"type":"array","description":"The system roles (the administrative user roles in the UI) for this user. The first role in this list is the user's primary system role, while the remaining are secondary system roles.","items":{"$ref":"#/definitions/SystemRoleEnum"}},"availability":{"type":"object","description":"Settings controlling availability of the user account.","title":"Availability","properties":{"available":{"type":"string","description":"Whether the user is available within the system. Unavailable users cannot log in.\n\n\n| Type | Description\n | --------- | --------- |\n| Yes | |\n| No | |\n| Disabled | **Since**: 3100.0.0 |\n","enum":["Yes","No","Disabled"]}}},"name":{"type":"object","description":"Properties used to build the user's display name.","title":"Name","properties":{"given":{"type":"string","description":"The given (first) name of this user.","maxLength":100},"family":{"type":"string","description":"The family (last) name of this user.","maxLength":100},"middle":{"type":"string","description":"The middle name of this user.","maxLength":100},"other":{"type":"string","description":"The other name (nickname) of this user.","maxLength":100},"suffix":{"type":"string","description":"The suffix of this user's name. Examples: Jr., III, PhD.","maxLength":100},"title":{"type":"string","description":"The title of this user. Examples: Mr., Ms., Dr.","maxLength":100}}},"job":{"type":"object","description":"The user's job information.","title":"Job","properties":{"title":{"type":"string","description":"The user's job title.","maxLength":100},"department":{"type":"string","description":"The department the user belongs to.","maxLength":100},"company":{"type":"string","description":"The company the user works for.","maxLength":100}}},"contact":{"type":"object","description":"The user's contact information.","title":"Contact","properties":{"homePhone":{"type":"string","description":"The user's home phone number.","maxLength":50},"mobilePhone":{"type":"string","description":"The user's mobile phone number.","maxLength":50},"businessPhone":{"type":"string","description":"The user's business phone number.","maxLength":50},"businessFax":{"type":"string","description":"The user's business fax number.","maxLength":50},"email":{"type":"string","description":"The user's email address.","maxLength":100},"webPage":{"type":"string","description":"The URL of the user's personal website.","maxLength":100}}},"address":{"type":"object","description":"The user's mailing address.","title":"Address","properties":{"street1":{"type":"string","description":"The street address of the user.","maxLength":100},"street2":{"type":"string","description":"An additional field to store the street address of the user.","maxLength":100},"city":{"type":"string","description":"The city the user resides in.","maxLength":50},"state":{"type":"string","description":"The state or province the user resides in.","maxLength":50},"zipCode":{"type":"string","description":"The zip code or postal code the user resides in.","maxLength":50},"country":{"type":"string","description":"The country the user resides in.","maxLength":50}}},"locale":{"type":"object","description":"The user's localization settings.","title":"Locale","properties":{"id":{"type":"string","description":"The locale specified by the user. This locale will be used anywhere the user is allowed to customize their locale; courses may force a specific locale, overriding the user's locale preference."},"calendar":{"type":"string","description":"The calendar type specified by the user.\n\n\n| Type | Description\n | --------- | --------- |\n| Gregorian | Gregorian |\n| GregorianHijri | Gregorian & Hijri |\n| Hijri | Hijri |\n| HijriGregorian | Hijri & Gregorian |\n","enum":["Gregorian","GregorianHijri","Hijri","HijriGregorian"]},"firstDayOfWeek":{"type":"string","description":"The user's preferred first day of the week.\n\n\n| Type | Description\n | --------- | --------- |\n| Sunday | Sunday |\n| Monday | Monday |\n| Saturday | Saturday |\n","enum":["Sunday","Monday","Saturday"]}}},"avatar":{"type":"object","description":"The user's avatar metadata\n\n**Since**: 3800.13.0","title":"Avatar","properties":{"source":{"type":"string","description":"The source of the user's avatar\n\n**Since**: 3800.13.0\n\n\n| Type | Description\n | --------- | --------- |\n| Default | The server default avatar |\n| User | The user set his/her own avatar |\n| System | A privileged user set the user's avatar to something other than default |\n","enum":["Default","User","System"]},"uploadId":{"type":"string","description":"The upload id of the avatar image file\n\n**Since**: 3800.13.0"}}}}}},{"$ref":"#/parameters/fields"}],"method":"patch","path":"/learn/api/public/v1/users/{userId}","version":[["2015.11.0"]],"permissions":[["self.user.MODIFY"],["system.user.properties.MODIFY"],["system.user.MODIFY"],["system.user.MODIFY"],["system.user.availability.MODIFY"],["system.user.MODIFY"]]}
KEY GetUser Avatar FUNC {"summary":"GetUser Avatar","description":"Gets a user's avatar image.\n\nThe response is an HTTP redirect rather then image raw data. It is up to the caller of the api to follow the redirect and download the image.\n\nThe redirect link returned is signed on behalf of the user of the API. It is expiring, so it is not recommended for bookmarking. The caller of this API is checked for permissions to see the requested user's resource.\n\n**Since**: 3800.10.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"}],"method":"get","path":"/learn/api/public/v1/users/{userId}/avatar","version":[["3800.10.0"]],"permissions":[]}
KEY GetObservees FUNC {"summary":"GetObservees","description":"Returns a list of users being observed by a given user.\n\nThe 'observer.associations.VIEW' entitlement is needed as well as being able to view the provided user.\n\n**Since**: 3500.5.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/users/{userId}/observees","version":[["3500.5.0"]],"permissions":[["observer.associations.VIEW"]]}
KEY GetObservers FUNC {"summary":"GetObservers","description":"Returns a list of users observing a given user.\n\nThe 'observer.associations.VIEW' entitlement is needed as well as being able to view the provided user.\n\n**Since**: 3500.5.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/users/{userId}/observers","version":[["3500.5.0"]],"permissions":[["observer.associations.VIEW"]]}
KEY CreateObserver FUNC {"summary":"CreateObserver","description":"Creates an observer/observee association. The user identified by userId must not have the OBSERVER system role. Similarly, the user identified by observerId must have the OBSERVER system role.\n\nThe 'system.observer_user.CREATE' entitlement is needed as well as being able to view the provided users.\n\n**Since**: 3500.5.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"name":"observerId","in":"path","description":"The user ID. This may be the primary ID, or any of the secondary IDs prefixed with the ID type. \n\n | ID type | Example |\n |------------|---------------------------------------|\n | primary | _123_1 |\n | externalId | externalId:jsmith |\n | userName | userName:jsmith |\n | uuid | uuid:915c7567d76d444abf1eed56aad3beb5 |\n \n\n**Since**: 3500.5.0","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"put","path":"/learn/api/public/v1/users/{userId}/observers/{observerId}","version":[["3500.5.0"]],"permissions":[]}
KEY DeleteObserver FUNC {"summary":"DeleteObserver","description":"Removes an observer/observee association.\n\nThe 'system.observer_user.DELETE' entitlement is needed as well as being able to view the provided users.\n\n**Since**: 3500.5.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"name":"observerId","in":"path","description":"The user ID. This may be the primary ID, or any of the secondary IDs prefixed with the ID type. \n\n | ID type | Example |\n |------------|---------------------------------------|\n | primary | _123_1 |\n | externalId | externalId:jsmith |\n | userName | userName:jsmith |\n | uuid | uuid:915c7567d76d444abf1eed56aad3beb5 |\n \n\n**Since**: 3500.5.0","required":true,"type":"string"},{"$ref":"#/parameters/fields"}],"method":"delete","path":"/learn/api/public/v1/users/{userId}/observers/{observerId}","version":[["3500.5.0"]],"permissions":[]}
KEY GetCurrent Active User By Id FUNC {"summary":"GetCurrent Active User By Id","description":"Displays active session information for a specific user.\n\nThe entitlement system.user.sessions.VIEW is needed to request a user's active sessions.\n\n**Since**: 3800.4.0","parameters":[{"$ref":"#/parameters/UserIdParam.userId"},{"$ref":"#/parameters/RowBasedPagingParams.offset"},{"$ref":"#/parameters/RowBasedPagingParams.limit"},{"$ref":"#/parameters/fields"}],"method":"get","path":"/learn/api/public/v1/users/{userId}/sessions","version":[["3800.4.0"]],"permissions":[["system.user.sessions.VIEW"]]}
{ learn: { major: [33m3900[39m, minor: [33m4[39m, patch: [33m0[39m, build: [32m'rel.23+718491f'[39m } }
lc version: "3900.4.0"