# LearningApi

## Search for enrollments by filtering on specific properties

> At least one user id or org id is required. The two can be mixed. In addition to userid and orgid search results can be filtered by> \
> other fields including the date enrolled and date completed. Please look at the model spec for the filter.> \\
>
> \
> Results will be ordered by the enrollment date ({Nexport.WebApi.Model.v1.ApiEnrollmentItem.EnrollmentDate} from earliest to latest.> \
> \###Permissions> \
> Requires the View Section Enrollments and View Training Plan Enrollments Permission in the target user's owner organization or> \
> in the organization the enrollment belongs to. If a list of organizations is specified in the filter then you must have these permissions in all> \
> of the specified organizations.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/SearchEnrollments":{"post":{"tags":["LearningApi"],"summary":"Search for enrollments by filtering on specific properties","description":"At least one user id or org id is required. The two can be mixed. In addition to userid and orgid search results can be filtered by\r\nother fields including the date enrolled and date completed. Please look at the model spec for the filter.\r\n\r\nResults will be ordered by the enrollment date ({Nexport.WebApi.Model.v1.ApiEnrollmentItem.EnrollmentDate} from earliest to latest.\r\n###Permissions\r\nRequires the View Section Enrollments and View Training Plan Enrollments Permission in the target user's owner organization or\r\nin the organization the enrollment belongs to. If a list of organizations is specified in the filter then you must have these permissions in all\r\nof the specified organizations.","operationId":"LearningApi_SearchEnrollments","parameters":[{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"The request page of results","required":false},{"schema":{"type":"integer","format":"int32"},"name":"paer_page","in":"query","description":"(OBSOLETE) Left here for backwards compatibility please use the per_page parameter","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","description":"Number of results to return on each page. If less than 1 or null the value will be reset to 30. If greater than 1000 then the the value will be reset to 1000","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Enrollment search results successfully returned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollmentSearchResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/EnrollmentSearchResponse"}}}},"403":{"description":"Not authorized to view subscriptions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrollmentSearchFilter"}},"text/json":{"schema":{"$ref":"#/components/schemas/EnrollmentSearchFilter"}}},"description":"Filter for subscriptions","required":true}}}},"components":{"schemas":{"EnrollmentSearchResponse":{"description":"Enrollments matching the provided filter","required":["page","page_size","total_count","api_error_entity"],"type":"object","properties":{"enrollments":{"type":"array","items":{"$ref":"#/components/schemas/ApiEnrollmentItem"}},"page":{"format":"int32","description":"The one based index of the current page","type":"integer"},"page_size":{"format":"int32","description":"Requested page size","type":"integer"},"total_count":{"format":"int32","description":"Number of records across ALL pages","type":"integer"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiEnrollmentItem":{"description":"This class exposes the public fields of the Nexport Enrollment class\r\nfor use with the web api","required":["enrollment_id","result","phase","user_id"],"type":"object","properties":{"enrollment_id":{"format":"uuid","description":"Id of this enrollment","type":"string"},"enrollment_date":{"format":"date-time","description":"When this enrollment was created","type":"string"},"start_date":{"format":"date-time","description":"When this enrollment was started","type":"string"},"expiration_date":{"format":"date-time","description":"When this enrollment expires (UTC)","type":"string"},"completion_date":{"format":"date-time","description":"When this enrollment was completed by the student (UTC)","type":"string"},"syllabus_id":{"format":"uuid","description":"Id of the syllabus belonging to this enrollment","type":"string"},"first_activity_date":{"format":"date-time","description":"When this enrollment was first accessed (UTC)","type":"string"},"last_activity_date":{"format":"date-time","description":"When this enrollment was last accessed (UTC)","type":"string"},"result":{"format":"int32","description":"When in the completed state this describes what the end result is.0 = Not Graded, 1 = Passed, 2 = Failed","enum":[0,1,2],"type":"integer"},"phase":{"format":"int32","description":"The state of an activity.0 = Not Started, 1 = In Progress, 2 = Finished, 15 = To Be Graded, 16 = Resubmit Required","enum":[0,1,2,15,16],"type":"integer"},"user_id":{"format":"uuid","description":"Id of the user/student in the enrollment","type":"string"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"EnrollmentSearchFilter":{"description":"Specify how to filter the search results for enrollments.","type":"object","properties":{"user_ids":{"description":"Limit the results to only enrollments for ANY of these users\r\nThis field is ignored if no IDs are provided","type":"array","items":{"format":"uuid","type":"string"}},"syllabus_unique_names":{"description":"Limit the results to only enrollments in syllabus' with ANY of these unique names.\r\nThis field is ignored if no IDs are provided","type":"array","items":{"type":"string"}},"org_ids":{"description":"Limit the results to only enrollments in ANY of these organizations (by ID).\r\nThis field is ignored if no IDs are provided","type":"array","items":{"format":"uuid","type":"string"}},"enrollment_ids":{"description":"Limit the results to only enrollments with any of these enrollment Ids.\r\nThis field is ignored if no IDs are provided","type":"array","items":{"format":"uuid","type":"string"}},"utc_activity_before":{"format":"date-time","description":"Only return enrollments with a last activity date before this date","type":"string"},"utc_activity_after":{"format":"date-time","description":"Only return enrollments with a last activity date after this date","type":"string"},"utc_enrolled_before":{"format":"date-time","description":"Only return enrollments created before this date","type":"string"},"utc_enrolled_after":{"format":"date-time","description":"Only return enrollments created AFTER this date","type":"string"},"utc_completed_before":{"format":"date-time","description":"Only return enrollments completed before this date","type":"string"},"utc_completed_after":{"format":"date-time","description":"Only return enrollments completed AFTER this date","type":"string"},"syllabus_ids":{"description":"Only return enrollments in any of these sylabus IDs.\r\nThis field is ignored if no IDs are provided","type":"array","items":{"format":"uuid","type":"string"}}}}}}}
```

## Returns a list of section enrollments based on the supplied search criteria.

> Returns a list of section enrollments based on the supplied search criteria.> \
> Must supply method with at least one of: &#x20;> \\
>
> \
> \- subscriber\_id> \
> \- syllabus\_id> \
> \- enrollment\_id&#x20;> \
> \- syllabus\_unique\_name> \\
>
> \
> If \*syllabus\_id\* or \*enrollment\_id\* is supplied, then \*org\_id\* must also be supplied.> \
> Results are ordered by enrollment date from most recent to least recent.> \
> \###Permissions Requirements> \
> Requires the View Section Enrollments permission in the specified org or an ancestor, or> \
> the specified subscription org or an ancestor, or the enrollment subscription org or an ancestor.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetSectionEnrollments":{"get":{"tags":["LearningApi"],"summary":"Returns a list of section enrollments based on the supplied search criteria.","description":"Returns a list of section enrollments based on the supplied search criteria.\r\nMust supply method with at least one of:  \r\n\r\n- subscriber_id\r\n- syllabus_id\r\n- enrollment_id \r\n- syllabus_unique_name\r\n\r\nIf *syllabus_id* or *enrollment_id* is supplied, then *org_id* must also be supplied.\r\nResults are ordered by enrollment date from most recent to least recent.\r\n###Permissions Requirements\r\nRequires the View Section Enrollments permission in the specified org or an ancestor, or\r\nthe specified subscription org or an ancestor, or the enrollment subscription org or an ancestor.","operationId":"LearningApi_GetSectionEnrollments","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"org_id","in":"query","description":"Id of the organization to check permissions in for syllabus options","required":false},{"schema":{"type":"string","format":"uuid"},"name":"subscriber_id","in":"query","description":"Id of the subscription that the section enrollments belong to","required":false},{"schema":{"type":"string","format":"uuid"},"name":"user_id","in":"query","description":"If provided then subscriber ID must not be sent","required":false},{"schema":{"type":"string","format":"uuid"},"name":"syllabus_id","in":"query","description":"Id of a syllabus that belongs to the enrollments","required":false},{"schema":{"type":"string","format":"uuid"},"name":"enrollment_id","in":"query","description":"Id of a particular section enrollment","required":false},{"schema":{"type":"string"},"name":"syllabus_unique_name","in":"query","description":"Unique name of a syllabus that belongs to the enrollment","required":false},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","description":"How many results to show per page","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of section enrollments","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SectionEnrollmentsResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SectionEnrollmentsResponse"}}}}},"403":{"description":"Not authorized to view section enrollments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"If a required field is missing OR both userid AND subscriberid are provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"SectionEnrollmentsResponse":{"title":"SectionEnrollmentsResponse","description":"Contains relevant section enrollment information","default":{"section":{"section_number":"SN 01","section_ceus":".2 CEUs","section_duration":"2 hours","id":"12345678-1234-5678-9abc-123456789abc","syllabus_id":"12345678-1234-5678-9abc-123456789abc","title":"Sample title","unique_name":"Sample name","utc_date_created":"2015-12-25T19:25:24.731+00:00","utc_date_last_modified":"2015-12-25T19:25:24.731+00:00","hidden":false,"disable_certificates_for_student":false,"allow_drops":false,"auto_enroll_new_members":false,"enrollment_duration":3,"enrollment_start":"2015-12-25T19:25:24.731+00:00","enrollment_end":"2015-12-25T19:25:24.731+00:00","final_drop_date":"2015-12-25T19:25:24.731+00:00","training_start":"2015-12-25T19:25:24.731+00:00","training_end":"2015-12-25T19:25:24.731+00:00","disable_manual_enrollment":false,"credit_hours":5,"api_error_entity":{"error_code":0,"warning_messages":[]}},"enrollment_day":25,"enrollment_month":12,"enrollment_year":2015,"subscription_id":"12345678-1234-5678-9abc-123456789abc","title":"Sample title","number":"101","assignment_count":10,"completed_assignment_count":7,"percent_assignments_complete":70,"weighted_score":550,"max_weighted_score":700,"id":"12345678-1234-5678-9abc-123456789abc","enrollment_id":"12345678-1234-5678-9abc-123456789abc","enrollment_date":"2015-12-25T19:25:24.731+00:00","start_date":"2015-12-25T19:25:24.731+00:00","expiration_date":"2015-12-25T19:25:24.731+00:00","completion_date":"2015-12-25T19:25:24.731+00:00","syllabus_id":"12345678-1234-5678-9abc-123456789abc","unique_name":"SN 101","result":1,"phase":1,"user_id":"12345678-1234-5678-9abc-123456789abc","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["section","subscription_id","enrollment_id","result","phase","user_id","api_error_entity"],"type":"object","properties":{"section":{"$ref":"#/components/schemas/SectionResponse","description":"Contains relevant fields for the section this enrollment belongs to"},"enrollment_day":{"format":"int32","description":"Day the student enrolled","type":"integer"},"enrollment_month":{"format":"int32","description":"Month the student enrolled","type":"integer"},"enrollment_year":{"format":"int32","description":"Year the student enrolled","type":"integer"},"subscription_id":{"format":"uuid","description":"Id of the subscription this enrollment is attached to","type":"string"},"title":{"description":"Title of the section this enrollment belongs to","type":"string"},"number":{"description":"Number of the section this enrollment belongs to","type":"string"},"assignment_count":{"format":"int32","description":"Number of assignments in the section that is tied to this enrollment","type":"integer"},"completed_assignment_count":{"format":"int32","description":"How many assignments have been completed for this enrollment","type":"integer"},"percent_assignments_complete":{"format":"int32","description":"Return the percentage of assignments completed\r\nout of the total assignments for credit.","type":"integer"},"weighted_score":{"format":"int32","description":"The Weighted Score of this enrollment","type":"integer"},"max_weighted_score":{"format":"double","description":"The Max Weighted Score of this enrollment","type":"number"},"enrollment_id":{"format":"uuid","description":"Id of this enrollment","type":"string"},"enrollment_date":{"format":"date-time","description":"When this enrollment was created","type":"string"},"start_date":{"format":"date-time","description":"When this enrollment was started","type":"string"},"expiration_date":{"format":"date-time","description":"When this enrollment expires (UTC)","type":"string"},"completion_date":{"format":"date-time","description":"When this enrollment was completed by the student (UTC)","type":"string"},"syllabus_id":{"format":"uuid","description":"Id of the syllabus belonging to this enrollment","type":"string"},"unique_name":{"description":"UniqueName is meant to be a simple way to map a user defined identifier to\r\nto specific a syllabus without the risk of duplicates. The advantage over using\r\nthe Id is that it can be moved from one syllabus to another.","type":"string"},"first_activity_date":{"format":"date-time","description":"When this enrollment was first accessed (UTC)","type":"string"},"last_activity_date":{"format":"date-time","description":"When this enrollment was last accessed (UTC)","type":"string"},"result":{"format":"int32","description":"When in the completed state this describes what the end result is.0 = Not Graded, 1 = Passed, 2 = Failed","enum":[0,1,2],"type":"integer"},"phase":{"format":"int32","description":"The state of an activity.0 = Not Started, 1 = In Progress, 2 = Finished, 15 = To Be Graded, 16 = Resubmit Required","enum":[0,1,2,15,16],"type":"integer"},"user_id":{"format":"uuid","description":"Id of the user in the enrollment","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"SectionResponse":{"title":"Section Details","description":"Contains relevant section information","default":{"section_number":"SN 01 iIleF","section_ceus":".2 CEUs","section_duration":"2 hours","id":"d0bf02e8-c623-4d0a-abfe-febfa38fcd7f","syllabus_id":"d0bf02e8-c623-4d0a-abfe-febfa38fcd7f","title":"Sample title","unique_name":"Sample name","utc_date_created":"2015-11-25T19:25:24.731+00:00","utc_date_last_modified":"2015-12-25T19:25:24.731+00:00","hidden":false,"disable_certificates_for_student":false,"allow_drops":false,"auto_enroll_new_members":false,"enrollment_duration":3,"enrollment_start":"2015-12-15T19:25:24.731+00:00","enrollment_end":"2016-04-23T19:25:24.731+00:00","final_drop_date":"2016-04-23T19:25:24.731+00:00","training_start":"2015-12-25T19:25:24.731+00:00","training_end":"2016-04-23T19:25:24.731+00:00","disable_manual_enrollment":false,"credit_hours":5,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["section_number","section_ceus","section_duration","syllabus_id","title","enrollment_duration","enrollment_start","enrollment_end","final_drop_date","training_end","api_error_entity"],"type":"object","properties":{"section_number":{"description":"Section number","type":"string"},"section_ceus":{"description":"Section CEUs","type":"string"},"section_duration":{"description":"How long the section lasts","type":"string"},"syllabus_id":{"format":"uuid","description":"Id of the syllabus","type":"string"},"title":{"description":"Title for this syllabus","type":"string"},"unique_name":{"description":"UniqueName is meant to be a simple way to map a user defined identifier to\r\nto specific a syllabus without the risk of duplicates. The advantage over using\r\nthe Id is that it can be moved from one syllabus to another.","type":"string"},"utc_date_created":{"format":"date-time","description":"When this syllabus was created","type":"string"},"utc_date_last_modified":{"format":"date-time","description":"When this syllabus was last modified","type":"string"},"hidden":{"description":"Does the section show up on the enrollment list?","type":"boolean"},"disable_certificates_for_student":{"description":"Can the student print their own certificate","type":"boolean"},"allow_drops":{"description":"Are students allowed to drop the section on their own?","type":"boolean"},"auto_enroll_new_members":{"description":"Should groups auto-enroll new members into this section?","type":"boolean"},"end_after_period_from_enrollment_start":{"description":"Use EnrollmentDuration in calculating course end date","type":"boolean"},"enrollment_duration":{"format":"int32","description":"Duration of enrollment from enrollmentDate","type":"integer"},"enrollment_start":{"format":"date-time","description":"The first day that the student can be enrolled into this section","type":"string"},"enrollment_end":{"format":"date-time","description":"The last day that the student can be enrolled into this section","type":"string"},"final_drop_date":{"format":"date-time","description":"The last day that the student can drop this section","type":"string"},"training_start":{"format":"date-time","description":"When the section opens for launching.","type":"string"},"training_end":{"format":"date-time","description":"When the section closes.","type":"string"},"disable_manual_enrollment":{"description":"This controls whether or not the student can enroll themselves from the catalog view.\r\nAdministrators should still be able to enroll a student AND the student should still be able to purchase in the Marketplace if it's available for enrollment\r\nDon't use this in the model.","type":"boolean"},"credit_hours":{"format":"","description":"How many credit hours this syllabus is worth.","type":"number"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Returns a list of training plan enrollments

> Returns a list of training plan enrollments based on the supplied search criteria.> \
> Must supply method with at least one of:> \
> \- subscriber\_id> \
> \- user\_id> \
> \- syllabus\_id> \
> \- enrollment\_id> \
> \- syllabus\_unique\_name> \
> If syllabus\_id or enrollment\_id is supplied, then org\_id must also be supplied.> \
> Results are ordered by enrollment date from most recent to least recent.> \
> Requires the View Training Plan Enrollments permission in the specified org or an ancestor, or> \
> the specified subscription org or an ancestor, or the enrollment subscription org or an ancestor.> \
> \###Permissions Requirements> \
> Requires the View Training Plan Enrollments permission in the specified org or an ancestor, or> \
> the specified subscription org or an ancestor, or the enrollment subscription org or an ancestor.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetTrainingPlanEnrollments":{"get":{"tags":["LearningApi"],"summary":"Returns a list of training plan enrollments","description":"Returns a list of training plan enrollments based on the supplied search criteria.\r\nMust supply method with at least one of:\r\n- subscriber_id\r\n- user_id\r\n- syllabus_id\r\n- enrollment_id\r\n- syllabus_unique_name\r\nIf syllabus_id or enrollment_id is supplied, then org_id must also be supplied.\r\nResults are ordered by enrollment date from most recent to least recent.\r\nRequires the View Training Plan Enrollments permission in the specified org or an ancestor, or\r\nthe specified subscription org or an ancestor, or the enrollment subscription org or an ancestor.\r\n###Permissions Requirements\r\nRequires the View Training Plan Enrollments permission in the specified org or an ancestor, or\r\nthe specified subscription org or an ancestor, or the enrollment subscription org or an ancestor.","operationId":"LearningApi_GetTrainingPlanEnrollments","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"org_id","in":"query","description":"Id of the organization to check permissions in for syllabus options","required":false},{"schema":{"type":"string","format":"uuid"},"name":"subscriber_id","in":"query","description":"Id of the subscription that the training plan enrollments belong to","required":false},{"schema":{"type":"string","format":"uuid"},"name":"user_id","in":"query","required":false},{"schema":{"type":"string","format":"uuid"},"name":"syllabus_id","in":"query","description":"Id of a syllabus that belongs to the enrollments","required":false},{"schema":{"type":"string","format":"uuid"},"name":"enrollment_id","in":"query","description":"Id of a particular training plan enrollment","required":false},{"schema":{"type":"string"},"name":"syllabus_unique_name","in":"query","description":"Unique name of a syllabus that belongs to the enrollment","required":false},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","description":"How many results to show per page","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of training plan enrollments","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrainingPlanEnrollmentsResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrainingPlanEnrollmentsResponse"}}}}},"403":{"description":"Not authorized to view training plan enrollments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"TrainingPlanEnrollmentsResponse":{"title":"TrainingPlanEnrollmentsResponse","description":"Contains id of the student that the enrollment belongs to","default":{"student_id":"00000000-0000-0000-0000-000000000000","subscription_id":"12345678-1234-5678-9abc-123456789abc","name":"Sample name","percent_requirements_fulfilled":60,"ed2go_registration_key":"Sample key","average_score":2,"grade_point_average":2,"id":"12345678-1234-5678-9abc-123456789abc","enrollment_id":"12345678-1234-5678-9abc-123456789abc","enrollment_date":"2015-12-25T19:25:24.731+00:00","start_date":"2015-12-25T19:25:24.731+00:00","expiration_date":"2015-12-25T19:25:24.731+00:00","completion_date":"2015-12-25T19:25:24.731+00:00","syllabus_id":"12345678-1234-5678-9abc-123456789abc","unique_name":"Sample name","first_activity_date":"2015-12-25T19:25:24.731+00:00","last_activity_date":"2015-12-25T19:25:24.731+00:00","result":1,"phase":1,"user_id":"12345678-1234-5678-9abc-123456789abc","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["subscription_id","name","enrollment_id","result","phase","user_id","api_error_entity"],"type":"object","properties":{"subscription_id":{"format":"uuid","description":"Id of the subscription this enrollment belongs to","type":"string"},"name":{"description":"Name of the training plan that the enrollment is attached to","type":"string"},"percent_requirements_fulfilled":{"format":"int32","description":"Return the percentage of requirements that are fulfilled for this enrollment","type":"integer"},"ed2go_registration_key":{"description":"Registration key created by Ed2Go that corresponds to this enrollment (if applicable)","type":"string"},"average_score":{"format":"","description":"The Average Score of this enrollment","type":"number"},"grade_point_average":{"format":"","description":"The Grade Point Average (GPA) of this enrollment","type":"number"},"enrollment_id":{"format":"uuid","description":"Id of this enrollment","type":"string"},"enrollment_date":{"format":"date-time","description":"When this enrollment was created","type":"string"},"start_date":{"format":"date-time","description":"When this enrollment was started","type":"string"},"expiration_date":{"format":"date-time","description":"When this enrollment expires (UTC)","type":"string"},"completion_date":{"format":"date-time","description":"When this enrollment was completed by the student (UTC)","type":"string"},"syllabus_id":{"format":"uuid","description":"Id of the syllabus belonging to this enrollment","type":"string"},"unique_name":{"description":"UniqueName is meant to be a simple way to map a user defined identifier to\r\nto specific a syllabus without the risk of duplicates. The advantage over using\r\nthe Id is that it can be moved from one syllabus to another.","type":"string"},"first_activity_date":{"format":"date-time","description":"When this enrollment was first accessed (UTC)","type":"string"},"last_activity_date":{"format":"date-time","description":"When this enrollment was last accessed (UTC)","type":"string"},"result":{"format":"int32","description":"When in the completed state this describes what the end result is.0 = Not Graded, 1 = Passed, 2 = Failed","enum":[0,1,2],"type":"integer"},"phase":{"format":"int32","description":"The state of an activity.0 = Not Started, 1 = In Progress, 2 = Finished, 15 = To Be Graded, 16 = Resubmit Required","enum":[0,1,2,15,16],"type":"integer"},"user_id":{"format":"uuid","description":"Id of the user in the enrollment","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetCustomEnrollmentFields

> Gets all the custom enrollment fields available to an organization, or a field matching an id> \
> in a given org. Will throw a CustomFieldNotFound exception if no custom profile field exists> \
> with the given field id.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCustomEnrollmentFields":{"get":{"tags":["LearningApi"],"summary":"Gets all the custom enrollment fields available to an organization, or a field matching an id\r\nin a given org. Will throw a CustomFieldNotFound exception if no custom profile field exists\r\nwith the given field id.","operationId":"LearningApi_GetCustomEnrollmentFields","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"org_id","in":"query","description":"Id of the organization to get the custom enrollment fields for","required":true},{"schema":{"type":"string","format":"uuid"},"name":"field_id","in":"query","description":"Optional field id to filter by","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of custom enrollment fields","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetCustomEnrollmentFieldsResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetCustomEnrollmentFieldsResponse"}}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetCustomEnrollmentFieldsResponse":{"title":"GetCustomEnrollmentFieldsResponse","description":"Contains information about a single custom enrollment field","default":{"field_id":"12345678-1234-5678-9abc-123456789abc","name":"Sample name","key":"Sample key","description":"Sample description","type":1,"org_id":"12345678-1234-5678-9abc-123456789abc","org_short_name":"testorg","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["field_id","name","key","type","org_id","org_short_name","api_error_entity"],"type":"object","properties":{"field_id":{"format":"uuid","description":"Id of the custom field","type":"string"},"name":{"description":"Represents the name of the custom field","type":"string"},"key":{"description":"Key of the custom field","type":"string"},"description":{"description":"Description of the custom field","type":"string"},"type":{"format":"int32","description":"Type of custom enrollment field.\r\nNone=0;\r\nText=1;\r\nDateTime=2;\r\nBoolean=3;\r\nNumeric=4;\r\nEmail=5;\r\nSelectDropDown=6;\r\nDateOnly=7;\r\nSelectCheckbox=8;0 = None, 1 = Text Field, 2 = Date/Time Field, 3 = YES/NO Field, 4 = Number Field, 5 = Email Field, 6 = Select Dropdown Field, 7 = Date Field, 8 = Select Checkbox Field","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"org_id":{"format":"uuid","description":"Id of the organization this custom enrollment field belongs to","type":"string"},"org_short_name":{"description":"Short name of the organization this custom enrollment field belongs to","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Gets the default custom enrollment field

> Gets the default custom enrollment field setting for the given organization and field, and optionally> \
> filters by syllabus. Will throw a CustomFieldNotFound exception if no custom profile field exists> \
> with the given field id. Returns null if no default setting is found.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetDefaultCustomEnrollmentFieldSetting":{"get":{"tags":["LearningApi"],"summary":"Gets the default custom enrollment field","description":"Gets the default custom enrollment field setting for the given organization and field, and optionally\r\nfilters by syllabus. Will throw a CustomFieldNotFound exception if no custom profile field exists\r\nwith the given field id. Returns null if no default setting is found.","operationId":"LearningApi_GetDefaultCustomEnrollmentFieldSetting","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"org_id","in":"query","description":"Id of an organization that the field is in","required":true},{"schema":{"type":"string","format":"uuid"},"name":"field_id","in":"query","description":"Id of the custom enrollment field","required":true},{"schema":{"type":"string","format":"uuid"},"name":"syllabus_id","in":"query","description":"Optional id of the syllabus to get the default field setting for","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Custom enrollment field and default setting","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDefaultCustomEnrollmentFieldSettingResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetDefaultCustomEnrollmentFieldSettingResponse"}}}},"409":{"description":"Profile Field was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetDefaultCustomEnrollmentFieldSettingResponse":{"title":"GetDefaultCustomEnrollmentFieldSettingResponse","description":"Contains information for a single custom enrollment field setting","default":{"field_id":"12345678-1234-5678-9abc-123456789abc","name":"Sample name","key":"Sample key","default_value":"Sample string value","setting_org_id":"12345678-1234-5678-9abc-123456789abc","setting_org_short_name":"testorg","field_org_id":"12345678-1234-5678-9abc-123456789abc","field_org_short_name":"testorg","type":1,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["field_id","name","key","default_value","setting_org_id","setting_org_short_name","field_org_id","field_org_short_name","type","api_error_entity"],"type":"object","properties":{"field_id":{"format":"uuid","description":"Id of the field this custom enrollment field setting corresponds to","type":"string"},"name":{"description":"Represents the name of the custom field","type":"string"},"key":{"description":"Key of the custom field","type":"string"},"default_value":{"description":"Custom field default value","type":"string"},"setting_org_id":{"format":"uuid","description":"Id of the organization the default setting is in","type":"string"},"setting_org_short_name":{"description":"Short name of the organization the default setting is in","type":"string"},"field_org_id":{"format":"uuid","description":"Id of the organization the setting field is in","type":"string"},"field_org_short_name":{"description":"Short name of the organization the setting field is in","type":"string"},"type":{"format":"int32","description":"Type of custom enrollment field this setting belongs to.\r\nNone=0;\r\nText=1;\r\nDateTime=2;\r\nBoolean=3;\r\nNumeric=4;\r\nEmail=5;\r\nSelectDropDown=6;\r\nDateOnly=7;\r\nSelectCheckbox=8;0 = None, 1 = Text Field, 2 = Date/Time Field, 3 = YES/NO Field, 4 = Number Field, 5 = Email Field, 6 = Select Dropdown Field, 7 = Date Field, 8 = Select Checkbox Field","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Gets all custom enrollment field values based on the given criteria

> Gets all custom enrollment field values based on the given criteria, with DateTime fields being in UTC.> \
> Valid argument combinations are: &#x20;> \
> \- enrollment\_id> \
> \- subscriber\_id and syllabus\_id> \
> \- enrollment\_id and key> \
> \- subscriber\_id, syllabus\_id, and key.> \
> \###Permissions Requirements> \
> Requires the View Section Enrollments permission in the enrollment organization.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCustomEnrollmentFieldValues":{"get":{"tags":["LearningApi"],"summary":"Gets all custom enrollment field values based on the given criteria","description":"Gets all custom enrollment field values based on the given criteria, with DateTime fields being in UTC.\r\nValid argument combinations are:  \r\n- enrollment_id\r\n- subscriber_id and syllabus_id\r\n- enrollment_id and key\r\n- subscriber_id, syllabus_id, and key.\r\n###Permissions Requirements\r\nRequires the View Section Enrollments permission in the enrollment organization.","operationId":"LearningApi_GetCustomEnrollmentFieldValues","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"enrollment_id","in":"query","description":"Id of the enrollment to get the custom enrollment field values for","required":false},{"schema":{"type":"string","format":"uuid"},"name":"subscriber_id","in":"query","description":"Id of the subscription to get the custom enrollment field values for","required":false},{"schema":{"type":"string","format":"uuid"},"name":"syllabus_id","in":"query","description":"Id of the section or training plan to get the custom enrollment field values for","required":false},{"schema":{"type":"string"},"name":"key","in":"query","description":"Key of the custom enrollment field to get the value for","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of custom enrollment field values","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetCustomEnrollmentFieldValuesResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetCustomEnrollmentFieldValuesResponse"}}}}},"403":{"description":"Not authorized to view section enrollments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetCustomEnrollmentFieldValuesResponse":{"title":"GetCustomEnrollmentFieldValuesResponse","description":"Contains information for a single custom enrollment field value","default":{"name":"Sample name","key":"Sample key","value":"Sample string value","org_id":"12345678-1234-5678-9abc-123456789abc","org_short_name":"testorg","inherited_from_org_id":"12345678-1234-5678-9abc-123456789abc","inherited_from_org_short_name":"testorg","field_id":"12345678-1234-5678-9abc-123456789abc","type":1,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["name","key","value","org_id","org_short_name","field_id","type","api_error_entity"],"type":"object","properties":{"name":{"description":"Represents the name of the custom field","type":"string"},"key":{"description":"Key of the custom field","type":"string"},"value":{"description":"Custom field value","type":"string"},"org_id":{"format":"uuid","description":"Id of the enrollment organization this custom enrollment field value belongs to","type":"string"},"org_short_name":{"description":"Short name of the enrollment organization this custom enrollment field value belongs to","type":"string"},"inherited_from_org_id":{"format":"uuid","description":"Id of the organization this field is inherited from (if applicable)","type":"string"},"inherited_from_org_short_name":{"description":"Short name of the organization this field is inherited from (if applicable)","type":"string"},"field_id":{"format":"uuid","description":"Id of the field this custom enrollment field value corresponds to","type":"string"},"type":{"format":"int32","description":"Type of custom enrollment field this value belongs to.\r\nNone=0;\r\nText=1;\r\nDateTime=2;\r\nBoolean=3;\r\nNumeric=4;\r\nEmail=5;\r\nSelectDropDown=6;\r\nDateOnly=7;\r\nSelectCheckbox=8;0 = None, 1 = Text Field, 2 = Date/Time Field, 3 = YES/NO Field, 4 = Number Field, 5 = Email Field, 6 = Select Dropdown Field, 7 = Date Field, 8 = Select Checkbox Field","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Sets the custom enrollment field values for a subscription

> Sets the custom enrollment field values for a subscription based on> \
> the enrollment id and key/value pairs in the request.> \
> \###Permissions> \
> Requires the Update Section Enrollments permission in the enrollment subscription organization.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/SetCustomEnrollmentFieldValues":{"post":{"tags":["LearningApi"],"summary":"Sets the custom enrollment field values for a subscription","description":"Sets the custom enrollment field values for a subscription based on\r\nthe enrollment id and key/value pairs in the request.\r\n###Permissions\r\nRequires the Update Section Enrollments permission in the enrollment subscription organization.","operationId":"LearningApi_SetCustomEnrollmentFieldValues","parameters":[{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Information about whether an error occurred (in the case of a nonexistent field being passed in, not an exception)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCustomEnrollmentFieldValuesResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SetCustomEnrollmentFieldValuesResponse"}}}},"403":{"description":"Not authorized to update section enrollments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetCustomEnrollmentFieldValuesRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/SetCustomEnrollmentFieldValuesRequest"}}},"description":"Contains enrollment id and dictionary of key/value pairs","required":true}}}},"components":{"schemas":{"SetCustomEnrollmentFieldValuesResponse":{"title":"SetCustomEnrollmentFieldValuesResponse","description":"Used to inform the method caller if any of the passed in fields are invalid.\r\nMessage may contain additional error information.","default":{"error":true,"message":"Sample error","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["error","api_error_entity"],"type":"object","properties":{"error":{"description":"Whether there was an error in the method","type":"boolean"},"message":{"description":"Contains additional information about the type of error that occurred","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"SetCustomEnrollmentFieldValuesRequest":{"description":"Contains id of the enrollment and the custom fields/values to set","required":["enrollment_id","custom_enrollment_field_values"],"type":"object","properties":{"enrollment_id":{"format":"uuid","description":"Id of the enrollment to set custom fields/values for","type":"string"},"custom_enrollment_field_values":{"description":"Custom enrollment field key/value pairs","type":"object","additionalProperties":{"type":"string"}}}}}}}
```

## Drop an enrollment.

> Allows a user to drop an enrollment. Will create a drop record on the user's transcript.> \
> Requires either the Drop Section Enrollments or Drop Training Plan Enrollments permission in the> \
> enrollment organization or an ancestor.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/DropEnrollment":{"get":{"tags":["LearningApi"],"summary":"Drop an enrollment.","description":"Allows a user to drop an enrollment. Will create a drop record on the user's transcript.\r\nRequires either the Drop Section Enrollments or Drop Training Plan Enrollments permission in the\r\nenrollment organization or an ancestor.","operationId":"LearningApi_DropEnrollment","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"enrollment_id","in":"query","description":"Id of the enrollment to drop","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Enrollment id and whether the enrollment has been dropped","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropDeleteEnrollmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/DropDeleteEnrollmentResponse"}}}},"403":{"description":"Not authorized to drop enrollments, or enrollment does not allow drops","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"DropDeleteEnrollmentResponse":{"title":"DropDeleteEnrollmentResponse","description":"Contains information pertaining to a dropped or deleted enrollment","default":{"enrollment_id":"12345678-1234-5678-9abc-123456789abc","is_dropped_or_deleted":true,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["enrollment_id","is_dropped_or_deleted","api_error_entity"],"type":"object","properties":{"enrollment_id":{"format":"uuid","description":"Id of the enrollment that was dropped or deleted","type":"string"},"is_dropped_or_deleted":{"description":"Can be used to verify that the enrollment was successfully removed if no errors occur.\r\nTrue if the enrollment no longer exists in the system, false otherwise.","type":"boolean"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Allows a user to delete an enrollment.

> Deleted Enrollments Will no longer be visible on the user's transcript, but will create> \
> a deleted record visible to admins.> \
> \###Permissions> \
> Requires either the Delete Section Enrollments or Drop Training Plan Enrollments permission in the> \
> enrollment organization or an ancestor.> \
> Customer service can delete section enrollments and system operators can delete training plan enrollments.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/DeleteEnrollment":{"get":{"tags":["LearningApi"],"summary":"Allows a user to delete an enrollment.","description":"Deleted Enrollments Will no longer be visible on the user's transcript, but will create\r\na deleted record visible to admins.\r\n###Permissions\r\nRequires either the Delete Section Enrollments or Drop Training Plan Enrollments permission in the\r\nenrollment organization or an ancestor.\r\nCustomer service can delete section enrollments and system operators can delete training plan enrollments.","operationId":"LearningApi_DeleteEnrollment","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"enrollment_id","in":"query","description":"Id of the enrollment to delete","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Enrollment id and whether it has been deleted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DropDeleteEnrollmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/DropDeleteEnrollmentResponse"}}}},"403":{"description":"Not authorized to delete enrollments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"DropDeleteEnrollmentResponse":{"title":"DropDeleteEnrollmentResponse","description":"Contains information pertaining to a dropped or deleted enrollment","default":{"enrollment_id":"12345678-1234-5678-9abc-123456789abc","is_dropped_or_deleted":true,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["enrollment_id","is_dropped_or_deleted","api_error_entity"],"type":"object","properties":{"enrollment_id":{"format":"uuid","description":"Id of the enrollment that was dropped or deleted","type":"string"},"is_dropped_or_deleted":{"description":"Can be used to verify that the enrollment was successfully removed if no errors occur.\r\nTrue if the enrollment no longer exists in the system, false otherwise.","type":"boolean"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Creates a enrollment with the information specified by request.

> Creates a enrollment with the information specified by request.&#x20;> \
> \###Permissions> \
> Requires the Update Section Enrollments or Update Training Plan Enrollments permission> \
> based on the specified syllabus in the specified org or any ancestors. Also requires the Add Subscriptions and Add Memberships permissions if there> \
> is no pre-existing subscription or memberships. A membership is required in the syllabus organization or in an organization to which the catalog is shared.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/CreateEnrollment":{"post":{"tags":["LearningApi"],"summary":"Creates a enrollment with the information specified by request.","description":"Creates a enrollment with the information specified by request. \r\n###Permissions\r\nRequires the Update Section Enrollments or Update Training Plan Enrollments permission\r\nbased on the specified syllabus in the specified org or any ancestors. Also requires the Add Subscriptions and Add Memberships permissions if there\r\nis no pre-existing subscription or memberships. A membership is required in the syllabus organization or in an organization to which the catalog is shared.","operationId":"LearningApi_CreateEnrollment","parameters":[{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Id of created enrollment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnrollmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateEnrollmentResponse"}}}},"403":{"description":"Not authorized to create an enrollment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found or duplicate enrollment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEnrollmentRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CreateEnrollmentRequest"}}},"description":"This holds all the enrollment information (userid, syllabusid, etc.) for the new enrollment","required":true}}}},"components":{"schemas":{"CreateEnrollmentResponse":{"title":"CreateEnrollmentResponse","description":"Contains the id of the enrollment created by the CreateEnrollment web api method","default":{"enrollment_id":"12345678-1234-5678-9abc-123456789abc","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["enrollment_id","api_error_entity"],"type":"object","properties":{"enrollment_id":{"format":"uuid","description":"Id of the created enrollment","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"CreateEnrollmentRequest":{"description":"Contains fields for creating a new enrollment","required":["org_id","user_id","membership_group_ids"],"type":"object","properties":{"org_id":{"format":"uuid","description":"Id of the enrollment's organization","type":"string"},"user_id":{"format":"uuid","description":"The user id to create the enrollment for","type":"string"},"syllabus_id":{"format":"uuid","description":"The syllabus id to create the enrollment in","type":"string"},"syllabus_unique_name":{"description":"The syllabus unique name to create the enrollment in","type":"string"},"membership_group_ids":{"description":"Membership group ids to give the user a membership in","type":"array","items":{"format":"uuid","type":"string"}}}}}}}
```

## Gets assignment statuses for a section enrollment.

> Use either enrollment\_id OR both subscription\_id and section\_id.> \
> Can optionally filter by a specific assignment.> \\
>
> \
> Results are ordered by assignment status creation date from most recent to least recent.> \
> \###Permissions> \
> Requires the View Enrollments permission in the enrollment/subscription org or an ancestor.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetAssignmentStatuses":{"get":{"tags":["LearningApi"],"summary":"Gets assignment statuses for a section enrollment.","description":"Use either enrollment_id OR both subscription_id and section_id.\r\nCan optionally filter by a specific assignment.\r\n\r\nResults are ordered by assignment status creation date from most recent to least recent.\r\n###Permissions\r\nRequires the View Enrollments permission in the enrollment/subscription org or an ancestor.","operationId":"LearningApi_GetAssignmentStatuses","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"enrollment_id","in":"query","description":"Section enrollment to get statuses for","required":false},{"schema":{"type":"string","format":"uuid"},"name":"subscription_id","in":"query","description":"Id of the subscription for a section enrollment","required":false},{"schema":{"type":"string","format":"uuid"},"name":"section_id","in":"query","description":"Id of the section for a section enrollment","required":false},{"schema":{"type":"string","format":"uuid"},"name":"assignment_id","in":"query","description":"Optional assignment to filter by","required":false},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","description":"How many results to show per page","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of assignment statuses","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AssignmentStatusResponseItem"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AssignmentStatusResponseItem"}}}}},"403":{"description":"Not authorized to view section enrollments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"AssignmentStatusResponseItem":{"title":"AssignmentStatusResponseItem","description":"Represents an assignment status for an assignment on an enrollment.","default":{"assignment_status_id":"12345678-1234-5678-9abc-123456789abc","phase":16,"result":2,"resubmit_required_reason":"Try harder","academic_override":true,"academic_override_reason":"Just because","utc_creation_date":"2015-12-25T19:25:24.731+00:00","utc_first_activity_date":"2015-12-25T19:25:24.731+00:00","utc_last_activity_date":"2015-12-25T19:25:24.731+00:00","utc_completion_date":"2015-12-25T19:25:24.731+00:00","academic_override_admin_id":"12345678-1234-5678-9abc-123456789abc","grade_given_by_id":"12345678-1234-5678-9abc-123456789abc","assignment_id":"12345678-1234-5678-9abc-123456789abc","enrollment_id":"12345678-1234-5678-9abc-123456789abc","user_id":"12345678-1234-5678-9abc-123456789abc","enrollment_score":300,"enrollment_max_score":600,"assignment_score":60,"assignment_max_score":100,"assignment_mastery_score":70,"assignment_weight":100,"assignment_weighted_score":60,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["assignment_status_id","phase","result","academic_override","utc_creation_date","assignment_id","enrollment_id","user_id","api_error_entity"],"type":"object","properties":{"assignment_status_id":{"format":"uuid","description":"Id of the assignment status","type":"string"},"phase":{"format":"int32","description":"The state of an activity.\r\nNotStarted=0;\r\nInProgress=1;\r\nFinished=2;\r\nToBeGraded=15;\r\nResubmitRequired=16;0 = Not Started, 1 = In Progress, 2 = Finished, 15 = To Be Graded, 16 = Resubmit Required","enum":[0,1,2,15,16],"type":"integer"},"result":{"format":"int32","description":"When an Activity/Enrollment is in the completed state an ActivityResult describes what the end result is.\r\nNotGraded=0;\r\nPassing=1;\r\nFailing=2;0 = Not Graded, 1 = Passed, 2 = Failed","enum":[0,1,2],"type":"integer"},"resubmit_required_reason":{"description":"Why the assignment must be resubmitted (if applicable)","type":"string"},"academic_override":{"description":"True if this assignment has been academically overridden by an admin","type":"boolean"},"academic_override_reason":{"description":"Why the assignment was academically overridden (if applicable)","type":"string"},"utc_creation_date":{"format":"date-time","description":"When this assignment status was created","type":"string"},"utc_first_activity_date":{"format":"date-time","description":"When the assignment first had activity (if applicable)","type":"string"},"utc_last_activity_date":{"format":"date-time","description":"When the assignment last had activity (if applicable)","type":"string"},"utc_completion_date":{"format":"date-time","description":"When the assignment was completed by the student (if applicable)","type":"string"},"academic_override_admin_id":{"format":"uuid","description":"Id of the admin who edited the assignment status (if applicable)","type":"string"},"grade_given_by_id":{"format":"uuid","description":"Id of the instructor or other operator that gave this grade.\r\nShould be null if the grade was system assigned","type":"string"},"assignment_id":{"format":"uuid","description":"Id of the assignment for this assignment status","type":"string"},"enrollment_id":{"format":"uuid","description":"Id of the enrollment for this assignment status","type":"string"},"user_id":{"format":"uuid","description":"Id of the user tied to the assignment status enrollment","type":"string"},"enrollment_score":{"format":"int32","description":"The Score of this enrollment","type":"integer"},"enrollment_max_score":{"format":"double","description":"The Max Score of this enrollment","type":"number"},"assignment_score":{"format":"int32","description":"The Score of this assignment","type":"integer"},"assignment_max_score":{"format":"double","description":"The Max Score of this assignment","type":"number"},"assignment_mastery_score":{"format":"double","description":"The Mastery Score of this assignment","type":"number"},"assignment_weight":{"format":"double","description":"The Weight of this assignment","type":"number"},"assignment_weighted_score":{"format":"","description":"The Weighted Score of this assignment","type":"number"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Gets the url for a completed certificate for a given enrollment.

> Gets the url for a completed certificate for a given enrollment. If the enrollment has been deleted,> \
> it will attempt to get the certificate based on the transcript record for that enrollment.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCertificateUrl":{"get":{"tags":["LearningApi"],"summary":"Gets the url for a completed certificate for a given enrollment.","description":"Gets the url for a completed certificate for a given enrollment. If the enrollment has been deleted,\r\nit will attempt to get the certificate based on the transcript record for that enrollment.","operationId":"LearningApi_GetCertificateUrl","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"enrollment_id","in":"query","description":"Id of the enrollment","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Url of completed certificate file","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CertificateUrlResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/CertificateUrlResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"CertificateUrlResponse":{"title":"CertificateUrlResponse","description":"Contains the url of a completed certificate","default":{"certificate_url":"http://www.nexportcampus.com/suborg/controller/action?foo=bar","certificate_ready":false,"certificate_not_assigned":false,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["certificate_url","certificate_ready","certificate_not_assigned","api_error_entity"],"type":"object","properties":{"certificate_url":{"description":"Url pointing to completed certificate pdf","type":"string"},"certificate_ready":{"description":"Returns true if the certificate is ready to be downloaded.","type":"boolean"},"certificate_not_assigned":{"description":"Will be set to TRUE if the Syllabus (Traning Plan or Section) for this enrollment has no assigned certificate.","type":"boolean"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Gets relevant section information for a given syllabus.

> Either a productid or a syllabus ID must be given but not both.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetSection":{"get":{"tags":["LearningApi"],"summary":"Gets relevant section information for a given syllabus.","description":"Either a productid or a syllabus ID must be given but not both.","operationId":"LearningApi_GetSection","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"syllabus_id","in":"query","description":"Id of the syllabus","required":false},{"schema":{"type":"string","format":"uuid"},"name":"product_id","in":"query","description":"The Product ID from a catalog","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Section information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SectionResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/SectionResponse"}}}},"409":{"description":"Section or Product ID is not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"SectionResponse":{"title":"Section Details","description":"Contains relevant section information","default":{"section_number":"SN 01 iIleF","section_ceus":".2 CEUs","section_duration":"2 hours","id":"d0bf02e8-c623-4d0a-abfe-febfa38fcd7f","syllabus_id":"d0bf02e8-c623-4d0a-abfe-febfa38fcd7f","title":"Sample title","unique_name":"Sample name","utc_date_created":"2015-11-25T19:25:24.731+00:00","utc_date_last_modified":"2015-12-25T19:25:24.731+00:00","hidden":false,"disable_certificates_for_student":false,"allow_drops":false,"auto_enroll_new_members":false,"enrollment_duration":3,"enrollment_start":"2015-12-15T19:25:24.731+00:00","enrollment_end":"2016-04-23T19:25:24.731+00:00","final_drop_date":"2016-04-23T19:25:24.731+00:00","training_start":"2015-12-25T19:25:24.731+00:00","training_end":"2016-04-23T19:25:24.731+00:00","disable_manual_enrollment":false,"credit_hours":5,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["section_number","section_ceus","section_duration","syllabus_id","title","enrollment_duration","enrollment_start","enrollment_end","final_drop_date","training_end","api_error_entity"],"type":"object","properties":{"section_number":{"description":"Section number","type":"string"},"section_ceus":{"description":"Section CEUs","type":"string"},"section_duration":{"description":"How long the section lasts","type":"string"},"syllabus_id":{"format":"uuid","description":"Id of the syllabus","type":"string"},"title":{"description":"Title for this syllabus","type":"string"},"unique_name":{"description":"UniqueName is meant to be a simple way to map a user defined identifier to\r\nto specific a syllabus without the risk of duplicates. The advantage over using\r\nthe Id is that it can be moved from one syllabus to another.","type":"string"},"utc_date_created":{"format":"date-time","description":"When this syllabus was created","type":"string"},"utc_date_last_modified":{"format":"date-time","description":"When this syllabus was last modified","type":"string"},"hidden":{"description":"Does the section show up on the enrollment list?","type":"boolean"},"disable_certificates_for_student":{"description":"Can the student print their own certificate","type":"boolean"},"allow_drops":{"description":"Are students allowed to drop the section on their own?","type":"boolean"},"auto_enroll_new_members":{"description":"Should groups auto-enroll new members into this section?","type":"boolean"},"end_after_period_from_enrollment_start":{"description":"Use EnrollmentDuration in calculating course end date","type":"boolean"},"enrollment_duration":{"format":"int32","description":"Duration of enrollment from enrollmentDate","type":"integer"},"enrollment_start":{"format":"date-time","description":"The first day that the student can be enrolled into this section","type":"string"},"enrollment_end":{"format":"date-time","description":"The last day that the student can be enrolled into this section","type":"string"},"final_drop_date":{"format":"date-time","description":"The last day that the student can drop this section","type":"string"},"training_start":{"format":"date-time","description":"When the section opens for launching.","type":"string"},"training_end":{"format":"date-time","description":"When the section closes.","type":"string"},"disable_manual_enrollment":{"description":"This controls whether or not the student can enroll themselves from the catalog view.\r\nAdministrators should still be able to enroll a student AND the student should still be able to purchase in the Marketplace if it's available for enrollment\r\nDon't use this in the model.","type":"boolean"},"credit_hours":{"format":"","description":"How many credit hours this syllabus is worth.","type":"number"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Gets a list of sections.

> Gets a list of sections that matches the list of section IDs provided.> \\
>
> \
> The number of returned sections may not match the number requested. If the list contains duplicates only one entry will be returned.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetSections":{"post":{"tags":["LearningApi"],"summary":"Gets a list of sections.","description":"Gets a list of sections that matches the list of section IDs provided.\r\n\r\nThe number of returned sections may not match the number requested. If the list contains duplicates only one entry will be returned.","operationId":"LearningApi_GetSections","parameters":[{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of Sections","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSectionsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetSectionsResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"List of IDs is empty\nList contains null oe empty value\nThe list contains more than 1000 entries\nOne or more Sections could not be found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSectionsRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetSectionsRequest"}}},"required":true}}}},"components":{"schemas":{"GetSectionsResponse":{"title":"Get Sections Result","description":"Contains relevant section information","required":["sections","api_error_entity"],"type":"object","properties":{"sections":{"description":"Array of sections","type":"array","items":{"$ref":"#/components/schemas/SectionResponse"}},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"SectionResponse":{"title":"Section Details","description":"Contains relevant section information","default":{"section_number":"SN 01 iIleF","section_ceus":".2 CEUs","section_duration":"2 hours","id":"d0bf02e8-c623-4d0a-abfe-febfa38fcd7f","syllabus_id":"d0bf02e8-c623-4d0a-abfe-febfa38fcd7f","title":"Sample title","unique_name":"Sample name","utc_date_created":"2015-11-25T19:25:24.731+00:00","utc_date_last_modified":"2015-12-25T19:25:24.731+00:00","hidden":false,"disable_certificates_for_student":false,"allow_drops":false,"auto_enroll_new_members":false,"enrollment_duration":3,"enrollment_start":"2015-12-15T19:25:24.731+00:00","enrollment_end":"2016-04-23T19:25:24.731+00:00","final_drop_date":"2016-04-23T19:25:24.731+00:00","training_start":"2015-12-25T19:25:24.731+00:00","training_end":"2016-04-23T19:25:24.731+00:00","disable_manual_enrollment":false,"credit_hours":5,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["section_number","section_ceus","section_duration","syllabus_id","title","enrollment_duration","enrollment_start","enrollment_end","final_drop_date","training_end","api_error_entity"],"type":"object","properties":{"section_number":{"description":"Section number","type":"string"},"section_ceus":{"description":"Section CEUs","type":"string"},"section_duration":{"description":"How long the section lasts","type":"string"},"syllabus_id":{"format":"uuid","description":"Id of the syllabus","type":"string"},"title":{"description":"Title for this syllabus","type":"string"},"unique_name":{"description":"UniqueName is meant to be a simple way to map a user defined identifier to\r\nto specific a syllabus without the risk of duplicates. The advantage over using\r\nthe Id is that it can be moved from one syllabus to another.","type":"string"},"utc_date_created":{"format":"date-time","description":"When this syllabus was created","type":"string"},"utc_date_last_modified":{"format":"date-time","description":"When this syllabus was last modified","type":"string"},"hidden":{"description":"Does the section show up on the enrollment list?","type":"boolean"},"disable_certificates_for_student":{"description":"Can the student print their own certificate","type":"boolean"},"allow_drops":{"description":"Are students allowed to drop the section on their own?","type":"boolean"},"auto_enroll_new_members":{"description":"Should groups auto-enroll new members into this section?","type":"boolean"},"end_after_period_from_enrollment_start":{"description":"Use EnrollmentDuration in calculating course end date","type":"boolean"},"enrollment_duration":{"format":"int32","description":"Duration of enrollment from enrollmentDate","type":"integer"},"enrollment_start":{"format":"date-time","description":"The first day that the student can be enrolled into this section","type":"string"},"enrollment_end":{"format":"date-time","description":"The last day that the student can be enrolled into this section","type":"string"},"final_drop_date":{"format":"date-time","description":"The last day that the student can drop this section","type":"string"},"training_start":{"format":"date-time","description":"When the section opens for launching.","type":"string"},"training_end":{"format":"date-time","description":"When the section closes.","type":"string"},"disable_manual_enrollment":{"description":"This controls whether or not the student can enroll themselves from the catalog view.\r\nAdministrators should still be able to enroll a student AND the student should still be able to purchase in the Marketplace if it's available for enrollment\r\nDon't use this in the model.","type":"boolean"},"credit_hours":{"format":"","description":"How many credit hours this syllabus is worth.","type":"number"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"GetSectionsRequest":{"title":"Get Sections Filter","description":"","required":["sections"],"type":"object","properties":{"sections":{"description":"List of section IDs of sections to return","type":"array","items":{"format":"uuid","type":"string"}}}}}}}
```

## GET /api/v1/LearningApi/GetSectionDescription

> Returns the description for a given section

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetSectionDescription":{"get":{"tags":["LearningApi"],"summary":"Returns the description for a given section","operationId":"LearningApi_GetSectionDescription","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"section_id","in":"query","description":"Id of the section","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Section description","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDescriptionResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetDescriptionResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetDescriptionResponse":{"title":"GetDescriptionResponse","description":"Contains description of section/training plan/etc.","default":{"description":"Sample description","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["description","api_error_entity"],"type":"object","properties":{"description":{"description":"Description of section or training plan, etc.","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetSectionObjectives

> Returns the objectives for a given section

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetSectionObjectives":{"get":{"tags":["LearningApi"],"summary":"Returns the objectives for a given section","operationId":"LearningApi_GetSectionObjectives","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"section_id","in":"query","description":"Id of the section","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Section objectives","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetObjectivesResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetObjectivesResponse"}}}},"409":{"description":"Section not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetObjectivesResponse":{"title":"GetObjectivesResponse","description":"Contains section objectives","default":{"objectives":"Sample objectives","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["objectives","api_error_entity"],"type":"object","properties":{"objectives":{"description":"Objectives of the section","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Student sessions in assignments

> Returns the student sessions in section assignments.> \\
>
> \
> An Assignment Session accounts for the time a student spends in an assignment.> \
> If a student is in an assignment and is inactive for more than 10 minutes then a new session will be recording on their next activity.> \\
>
> \
> \###Permissions> \
> The API user must have the "Can View Enrollments" permission on the given org.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetStudentSessions":{"post":{"tags":["LearningApi"],"summary":"Student sessions in assignments","description":"Returns the student sessions in section assignments.\r\n\r\nAn Assignment Session accounts for the time a student spends in an assignment.\r\nIf a student is in an assignment and is inactive for more than 10 minutes then a new session will be recording on their next activity.\r\n\r\n###Permissions\r\nThe API user must have the \"Can View Enrollments\" permission on the given org.","operationId":"LearningApi_GetStudentSessions","parameters":[{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Successfully returned the requested sessions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignmentSessionsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/AssignmentSessionsResponse"}}}},"409":{"description":"The user or organization were not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetStudentSessionsRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetStudentSessionsRequest"}}},"required":true}}}},"components":{"schemas":{"AssignmentSessionsResponse":{"required":["page","page_size","total_count","api_error_entity"],"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/AssignmentSession"}},"page":{"format":"int32","description":"The one based index of the current page","type":"integer"},"page_size":{"format":"int32","description":"Requested page size","type":"integer"},"total_count":{"format":"int32","description":"Number of records across ALL pages","type":"integer"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"AssignmentSession":{"type":"object","properties":{"assignment_id":{"format":"uuid","type":"string"},"user_id":{"format":"uuid","type":"string"},"enrollment_id":{"format":"uuid","type":"string"},"organization_id":{"format":"uuid","type":"string"},"section_id":{"format":"uuid","type":"string"},"order":{"format":"int64","type":"integer"},"utc_start":{"format":"date-time","type":"string"},"utc_end":{"format":"date-time","type":"string"},"id":{"format":"uuid","type":"string"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"GetStudentSessionsRequest":{"description":"Request Message for retrieving student sessions","required":["user_id","org_id","from_date","paging"],"type":"object","properties":{"user_id":{"format":"uuid","description":"User ID of the student sessions being searched for being searched","type":"string"},"org_id":{"format":"uuid","type":"string"},"section_id":{"format":"uuid","description":"If provided then the results will be limited to this one section id","type":"string"},"from_date":{"format":"date-time","type":"string"},"to_date":{"format":"date-time","type":"string"},"paging":{"$ref":"#/components/schemas/ApiPaginationOptions"}}},"ApiPaginationOptions":{"description":"Describe the page number and records per page","required":["page","per_page"],"type":"object","properties":{"page":{"format":"int32","description":"The page of records to retrieve","type":"integer"},"per_page":{"format":"int32","description":"How many records per page","type":"integer"}}}}}}
```

## GET /api/v1/LearningApi/GetTrainingPlan

> Gets relevant training plan information for a given training plan id.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetTrainingPlan":{"get":{"tags":["LearningApi"],"summary":"Gets relevant training plan information for a given training plan id.","operationId":"LearningApi_GetTrainingPlan","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"training_plan_id","in":"query","description":"Id of the training plan","required":false},{"schema":{"type":"string","format":"uuid"},"name":"product_id","in":"query","description":"A product id from any catalog this training plan is in","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Training plan information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrainingPlanResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/TrainingPlanResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"TrainingPlanResponse":{"title":"TrainingPlanResponse","description":"Contains relevant training plan information","default":{"org_id":"12345678-1234-5678-9abc-123456789abc","name":"Sample name","root_requirement_id":"12345678-1234-5678-9abc-123456789abc","id":"12345678-1234-5678-9abc-123456789abc","syllabus_id":"12345678-1234-5678-9abc-123456789abc","title":"Sample title","unique_name":"Sample name","utc_date_created":"2015-12-25T19:25:24.731+00:00","utc_date_last_modified":"2015-12-25T19:25:24.731+00:00","hidden":false,"disable_certificates_for_student":false,"allow_drops":false,"auto_enroll_new_members":false,"enrollment_duration":3,"enrollment_start":"2015-12-25T19:25:24.731+00:00","enrollment_end":"2015-12-25T19:25:24.731+00:00","final_drop_date":"2015-12-25T19:25:24.731+00:00","training_start":"2015-12-25T19:25:24.731+00:00","training_end":"2015-12-25T19:25:24.731+00:00","disable_manual_enrollment":false,"credit_hours":5,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["syllabus_id","title","enrollment_duration","enrollment_start","enrollment_end","final_drop_date","training_end","api_error_entity"],"type":"object","properties":{"org_id":{"format":"uuid","description":"Id of the organization this training plan belongs to","type":"string"},"name":{"description":"Name of the Training Plan","type":"string"},"root_requirement_id":{"format":"uuid","description":"Id of the root requirement for this training plan","type":"string"},"syllabus_id":{"format":"uuid","description":"Id of the syllabus","type":"string"},"title":{"description":"Title for this syllabus","type":"string"},"unique_name":{"description":"UniqueName is meant to be a simple way to map a user defined identifier to\r\nto specific a syllabus without the risk of duplicates. The advantage over using\r\nthe Id is that it can be moved from one syllabus to another.","type":"string"},"utc_date_created":{"format":"date-time","description":"When this syllabus was created","type":"string"},"utc_date_last_modified":{"format":"date-time","description":"When this syllabus was last modified","type":"string"},"hidden":{"description":"Does the section show up on the enrollment list?","type":"boolean"},"disable_certificates_for_student":{"description":"Can the student print their own certificate","type":"boolean"},"allow_drops":{"description":"Are students allowed to drop the section on their own?","type":"boolean"},"auto_enroll_new_members":{"description":"Should groups auto-enroll new members into this section?","type":"boolean"},"end_after_period_from_enrollment_start":{"description":"Use EnrollmentDuration in calculating course end date","type":"boolean"},"enrollment_duration":{"format":"int32","description":"Duration of enrollment from enrollmentDate","type":"integer"},"enrollment_start":{"format":"date-time","description":"The first day that the student can be enrolled into this section","type":"string"},"enrollment_end":{"format":"date-time","description":"The last day that the student can be enrolled into this section","type":"string"},"final_drop_date":{"format":"date-time","description":"The last day that the student can drop this section","type":"string"},"training_start":{"format":"date-time","description":"When the section opens for launching.","type":"string"},"training_end":{"format":"date-time","description":"When the section closes.","type":"string"},"disable_manual_enrollment":{"description":"This controls whether or not the student can enroll themselves from the catalog view.\r\nAdministrators should still be able to enroll a student AND the student should still be able to purchase in the Marketplace if it's available for enrollment\r\nDon't use this in the model.","type":"boolean"},"credit_hours":{"format":"","description":"How many credit hours this syllabus is worth.","type":"number"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetTrainingPlanDescription

> Returns the description for a given training plan

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetTrainingPlanDescription":{"get":{"tags":["LearningApi"],"summary":"Returns the description for a given training plan","operationId":"LearningApi_GetTrainingPlanDescription","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"training_plan_id","in":"query","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Training plan description","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDescriptionResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetDescriptionResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetDescriptionResponse":{"title":"GetDescriptionResponse","description":"Contains description of section/training plan/etc.","default":{"description":"Sample description","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["description","api_error_entity"],"type":"object","properties":{"description":{"description":"Description of section or training plan, etc.","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetAssignments

> Gets a list of assignments for the corresponding section.> \
> Assignments are sorted first by display order from lowest to highest,> \
> then by the date they were added from most least recent to most recent.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetAssignments":{"get":{"tags":["LearningApi"],"summary":"Gets a list of assignments for the corresponding section.\r\nAssignments are sorted first by display order from lowest to highest,\r\nthen by the date they were added from most least recent to most recent.","operationId":"LearningApi_GetAssignments","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"section_id","in":"query","required":true},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of assignments","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AssignmentResponse"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AssignmentResponse"}}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"AssignmentResponse":{"title":"AssignmentResponse","description":"Contains details of an assignment","default":{"id":"12345678-1234-5678-9abc-123456789abc","assignment_id":"12345678-1234-5678-9abc-123456789abc","title":"Sample title","pacing_duration_hours":3,"weight":13.5,"due_date_deduction":10,"due_date_strategy":1,"utc_due_date":"2015-12-25T19:25:24.731+00:00","utc_start_date":"2015-12-25T19:25:24.731+00:00","lock_out_hours":5,"utc_date_modified":"2015-12-25T19:25:24.731+00:00","utc_date_added":"2015-12-25T19:25:24.731+00:00","grading_strategy":0,"max_score":100,"mastery_score":70,"display_order":4,"assignment_type":"Test Assignment","attempt_limit":3,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["assignment_id","title","pacing_duration_hours","weight","due_date_deduction","utc_due_date","utc_start_date","lock_out_hours","max_score","mastery_score","assignment_type","api_error_entity"],"type":"object","properties":{"assignment_id":{"format":"uuid","description":"Id of the assignment","type":"string"},"title":{"description":"Corresponds to Caption/Title/Topic field in Assignment.\r\nGets the raw VTL template for this field.","type":"string"},"pacing_duration_hours":{"format":"int32","description":"The amount of time a student is credited for completing this assignment towards their calculated pace.\r\nThis does not represent the amount of time that a student spends in an assignments such as session time BUT it rather respresents the amount of total calendar \r\ntime given to the student to complete an assignment.","type":"integer"},"weight":{"format":"double","description":"Determines how much this assignment affects the student's grade","type":"number"},"due_date_deduction":{"format":"int32","description":"How many points are deducted for turning the assignment in late","type":"integer"},"due_date_strategy":{"format":"int32","description":"How a late assignment is handled.\r\nFailAfterDueDate=0;\r\nApplyPenalty=1;\r\nTakeNoAction=2;0 = Fail After Due Date, 1 = Apply Penalty, 2 = Take No Action","enum":[0,1,2],"type":"integer"},"utc_due_date":{"format":"date-time","description":"When the assignment is due","type":"string"},"utc_start_date":{"format":"date-time","description":"When the assignment becomes available","type":"string"},"lock_out_hours":{"format":"int32","description":"The number of hours that must pass since the enrollment date before this assignment is available.","type":"integer"},"utc_date_modified":{"format":"date-time","description":"When the assignment was last modified","type":"string"},"utc_date_added":{"format":"date-time","description":"When this assignment was added","type":"string"},"grading_strategy":{"format":"int32","description":"ManuallyGraded=0;\r\nInternal=2;\r\nNoGrade=3;0 = ManuallyGradedAssignmentType, 2 = InternallyGradedAssignmentType, 3 = NoGradeAssignmentType","enum":[0,2,3],"type":"integer"},"max_score":{"format":"double","description":"The highest attainable score for this assignment","type":"number"},"mastery_score":{"format":"double","description":"The minimum score required to attain mastery of an assignment","type":"number"},"display_order":{"format":"int64","description":"Used for sorting","type":"integer"},"assignment_type":{"description":"The type of assignment. Can be any of the following:\r\nCourseware Assignment;\r\nDiscussion Assignment;\r\nMedia Assignment;\r\nQuality Assurance Assignment;\r\nSwappable Assignment;\r\nTest Assignment;\r\nSurvey Assignment;\r\nWriting Assignment;\r\nStudent Input Assignment;","type":"string"},"attempt_limit":{"format":"int32","description":"For test assignments, how many atttempts a student is allowed before they are no longer able to take the test","type":"integer"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetAssignment

> Gets the details of an assignment based on its Id

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetAssignment":{"get":{"tags":["LearningApi"],"summary":"Gets the details of an assignment based on its Id","operationId":"LearningApi_GetAssignment","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"assignment_id","in":"query","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Assignment information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignmentResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/AssignmentResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"AssignmentResponse":{"title":"AssignmentResponse","description":"Contains details of an assignment","default":{"id":"12345678-1234-5678-9abc-123456789abc","assignment_id":"12345678-1234-5678-9abc-123456789abc","title":"Sample title","pacing_duration_hours":3,"weight":13.5,"due_date_deduction":10,"due_date_strategy":1,"utc_due_date":"2015-12-25T19:25:24.731+00:00","utc_start_date":"2015-12-25T19:25:24.731+00:00","lock_out_hours":5,"utc_date_modified":"2015-12-25T19:25:24.731+00:00","utc_date_added":"2015-12-25T19:25:24.731+00:00","grading_strategy":0,"max_score":100,"mastery_score":70,"display_order":4,"assignment_type":"Test Assignment","attempt_limit":3,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["assignment_id","title","pacing_duration_hours","weight","due_date_deduction","utc_due_date","utc_start_date","lock_out_hours","max_score","mastery_score","assignment_type","api_error_entity"],"type":"object","properties":{"assignment_id":{"format":"uuid","description":"Id of the assignment","type":"string"},"title":{"description":"Corresponds to Caption/Title/Topic field in Assignment.\r\nGets the raw VTL template for this field.","type":"string"},"pacing_duration_hours":{"format":"int32","description":"The amount of time a student is credited for completing this assignment towards their calculated pace.\r\nThis does not represent the amount of time that a student spends in an assignments such as session time BUT it rather respresents the amount of total calendar \r\ntime given to the student to complete an assignment.","type":"integer"},"weight":{"format":"double","description":"Determines how much this assignment affects the student's grade","type":"number"},"due_date_deduction":{"format":"int32","description":"How many points are deducted for turning the assignment in late","type":"integer"},"due_date_strategy":{"format":"int32","description":"How a late assignment is handled.\r\nFailAfterDueDate=0;\r\nApplyPenalty=1;\r\nTakeNoAction=2;0 = Fail After Due Date, 1 = Apply Penalty, 2 = Take No Action","enum":[0,1,2],"type":"integer"},"utc_due_date":{"format":"date-time","description":"When the assignment is due","type":"string"},"utc_start_date":{"format":"date-time","description":"When the assignment becomes available","type":"string"},"lock_out_hours":{"format":"int32","description":"The number of hours that must pass since the enrollment date before this assignment is available.","type":"integer"},"utc_date_modified":{"format":"date-time","description":"When the assignment was last modified","type":"string"},"utc_date_added":{"format":"date-time","description":"When this assignment was added","type":"string"},"grading_strategy":{"format":"int32","description":"ManuallyGraded=0;\r\nInternal=2;\r\nNoGrade=3;0 = ManuallyGradedAssignmentType, 2 = InternallyGradedAssignmentType, 3 = NoGradeAssignmentType","enum":[0,2,3],"type":"integer"},"max_score":{"format":"double","description":"The highest attainable score for this assignment","type":"number"},"mastery_score":{"format":"double","description":"The minimum score required to attain mastery of an assignment","type":"number"},"display_order":{"format":"int64","description":"Used for sorting","type":"integer"},"assignment_type":{"description":"The type of assignment. Can be any of the following:\r\nCourseware Assignment;\r\nDiscussion Assignment;\r\nMedia Assignment;\r\nQuality Assurance Assignment;\r\nSwappable Assignment;\r\nTest Assignment;\r\nSurvey Assignment;\r\nWriting Assignment;\r\nStudent Input Assignment;","type":"string"},"attempt_limit":{"format":"int32","description":"For test assignments, how many atttempts a student is allowed before they are no longer able to take the test","type":"integer"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetAssignmentInstructions

> Returns instructions for a given assignment.> \
> The text for the instructions will be the raw VTL template.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetAssignmentInstructions":{"get":{"tags":["LearningApi"],"summary":"Returns instructions for a given assignment.\r\nThe text for the instructions will be the raw VTL template.","operationId":"LearningApi_GetAssignmentInstructions","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"assignment_id","in":"query","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Assignment instructions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAssignmentInstructionsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetAssignmentInstructionsResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetAssignmentInstructionsResponse":{"title":"GetAssignmentInstructionsResponse","description":"Contains instructions for an assignment","default":{"assignment_instructions":"Sample instructions","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["assignment_instructions","api_error_entity"],"type":"object","properties":{"assignment_instructions":{"description":"Instructions for an assignment","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetOrganizations

> OBSOLETE> \
> Use AdminApi/GetOrganizations instead> \
> Returns a list of sub organizations (as well as the parent organization)> \
> corresponding to the given id or short name. Each item in the list will contain> \
> the org id, org name, and org short name.> \
> Results are in alphabetical order by org name.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetOrganizations":{"get":{"tags":["LearningApi"],"summary":"OBSOLETE\r\nUse AdminApi/GetOrganizations instead\r\nReturns a list of sub organizations (as well as the parent organization)\r\ncorresponding to the given id or short name. Each item in the list will contain\r\nthe org id, org name, and org short name.\r\nResults are in alphabetical order by org name.","operationId":"LearningApi_GetOrganizations","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"org_id","in":"query","required":false},{"schema":{"type":"string"},"name":"org_short_name","in":"query","required":false},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of organizations","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResponseItem"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResponseItem"}}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"deprecated":true}}},"components":{"schemas":{"OrganizationResponseItem":{"title":"OrganizationResponseItem","description":"Contains organization name, short name, and custom fields","default":{"id":"12345678-1234-5678-9abc-123456789abc","org_id":"12345678-1234-5678-9abc-123456789abc","name":"Test Organization","short_name":"testorg","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["org_id","name","short_name","api_error_entity"],"type":"object","properties":{"org_id":{"format":"uuid","description":"Id of the organization","type":"string"},"name":{"description":"Name of the organization","type":"string"},"short_name":{"description":"Short name of the organization","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## POST /api/v1/LearningApi/GetCatalogs

> Returns information about catalogs matching the specified search criteria.> \
> Results are ordered alphabetically by catalog name.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCatalogs":{"post":{"tags":["LearningApi"],"summary":"Returns information about catalogs matching the specified search criteria.\r\nResults are ordered alphabetically by catalog name.","operationId":"LearningApi_GetCatalogs","parameters":[{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Response containing list of catalogs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/CatalogResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/CatalogRequest"}}},"description":"Search criteria","required":true}}}},"components":{"schemas":{"CatalogResponse":{"description":"Contains list of catalog response items.","required":["catalogs","api_error_entity"],"type":"object","properties":{"catalogs":{"description":"List of catalog response items matching search criteria","type":"array","items":{"$ref":"#/components/schemas/CatalogResponseItem"}},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"CatalogResponseItem":{"title":"CatalogResponseItem","description":"Exposes the public fields of a Nexport catalog for use with the\r\nweb api","default":{"org_id":"12345678-1234-5678-9abc-123456789abc","org_name":"Test Organization","org_short_name":"testorg","id":"12345678-1234-5678-9abc-123456789abc","catalog_id":"12345678-1234-5678-9abc-123456789abc","is_enabled":true,"name":"Sample name","date_created":"2015-12-25T19:25:24.731+00:00","owner_id":"12345678-1234-5678-9abc-123456789abc","owner_name":"fname lname","modified_by_id":"12345678-1234-5678-9abc-123456789abc","last_modified":"2015-12-25T19:25:24.731+00:00","pricing_model":1,"access_time_limit":"1.02:30:45","publishing_model":1},"required":["org_id","org_name","org_short_name","catalog_id","name"],"type":"object","properties":{"org_id":{"format":"uuid","description":"Id of the organization that this catalog belongs to","type":"string"},"org_name":{"description":"Name of the organization that this catalog belongs to","type":"string"},"org_short_name":{"description":"Short name of the organization that this catalog belongs to","type":"string"},"catalog_id":{"format":"uuid","description":"Id of the catalog","type":"string"},"is_enabled":{"description":"Whether the catalog is enabled or disabled","type":"boolean"},"name":{"description":"Name of the catalog","type":"string"},"date_created":{"format":"date-time","description":"When the catalog was created","type":"string"},"owner_id":{"format":"uuid","description":"Id of the user that owns this catalog","type":"string"},"owner_name":{"description":"Name of the user that owns this catalog","type":"string"},"modified_by_id":{"format":"uuid","description":"Id of the user that modified this catalog","type":"string"},"last_modified":{"format":"date-time","description":"When the catalog was last modified","type":"string"},"pricing_model":{"format":"int32","description":"The entire catalog uses a single PricingModel.\r\nThis property determines HOW prices are set for items in the catalog.\r\nNone=0;\r\nPerHourPrice=1;\r\nPerItemPrice=2;0 = None, 1 = PerHour, 2 = PerItem","enum":[0,1,2],"type":"integer"},"access_time_limit":{"description":"This property applies to users that have purchased the catalog. This is the timespan that the student has after redeeming this catalog\r\nto have access to it. The time starts when the catalog is redeemed and the catalog is available until this amount of time has passed.","type":"string"},"publishing_model":{"format":"int32","description":"This property controls how this catalog is made available to users.\r\nAvailableToMembers=0;\r\nForSaleInMarketPlace=1;\r\nHidden=2;0 = AvailableToMembers, 1 = ForSaleInMarketPlace, 2 = Hidden","enum":[0,1,2],"type":"integer"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"CatalogRequest":{"description":"Contains information for retrieving catalog data","required":["group_id"],"type":"object","properties":{"group_id":{"format":"uuid","description":"Id of group or organization","type":"string"},"publishing_model":{"format":"int32","description":"The publishing model for the catalogs. Will grab all by default if not specified.\r\nAvailableToMembers=0;\r\nForSaleInMarketPlace=1;\r\nHidden=2;0 = AvailableToMembers, 1 = ForSaleInMarketPlace, 2 = Hidden","enum":[0,1,2],"type":"integer"},"catalog_access_option":{"format":"int32","description":"The accessing option for listing the catalogs. Default to shared catalogs if not specified.\r\nShared=0;\r\nOwned=1;\r\nBoth=2;0 = Shared, 1 = Owned, 2 = Both","enum":[0,1,2],"type":"integer"}}}}}}
```

## GET /api/v1/LearningApi/GetCatalog

> Returns details for the given catalog

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCatalog":{"get":{"tags":["LearningApi"],"summary":"Returns details for the given catalog","operationId":"LearningApi_GetCatalog","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"catalog_id","in":"query","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Catalog information","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CatalogResponseItem"}},"text/json":{"schema":{"$ref":"#/components/schemas/CatalogResponseItem"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"CatalogResponseItem":{"title":"CatalogResponseItem","description":"Exposes the public fields of a Nexport catalog for use with the\r\nweb api","default":{"org_id":"12345678-1234-5678-9abc-123456789abc","org_name":"Test Organization","org_short_name":"testorg","id":"12345678-1234-5678-9abc-123456789abc","catalog_id":"12345678-1234-5678-9abc-123456789abc","is_enabled":true,"name":"Sample name","date_created":"2015-12-25T19:25:24.731+00:00","owner_id":"12345678-1234-5678-9abc-123456789abc","owner_name":"fname lname","modified_by_id":"12345678-1234-5678-9abc-123456789abc","last_modified":"2015-12-25T19:25:24.731+00:00","pricing_model":1,"access_time_limit":"1.02:30:45","publishing_model":1},"required":["org_id","org_name","org_short_name","catalog_id","name"],"type":"object","properties":{"org_id":{"format":"uuid","description":"Id of the organization that this catalog belongs to","type":"string"},"org_name":{"description":"Name of the organization that this catalog belongs to","type":"string"},"org_short_name":{"description":"Short name of the organization that this catalog belongs to","type":"string"},"catalog_id":{"format":"uuid","description":"Id of the catalog","type":"string"},"is_enabled":{"description":"Whether the catalog is enabled or disabled","type":"boolean"},"name":{"description":"Name of the catalog","type":"string"},"date_created":{"format":"date-time","description":"When the catalog was created","type":"string"},"owner_id":{"format":"uuid","description":"Id of the user that owns this catalog","type":"string"},"owner_name":{"description":"Name of the user that owns this catalog","type":"string"},"modified_by_id":{"format":"uuid","description":"Id of the user that modified this catalog","type":"string"},"last_modified":{"format":"date-time","description":"When the catalog was last modified","type":"string"},"pricing_model":{"format":"int32","description":"The entire catalog uses a single PricingModel.\r\nThis property determines HOW prices are set for items in the catalog.\r\nNone=0;\r\nPerHourPrice=1;\r\nPerItemPrice=2;0 = None, 1 = PerHour, 2 = PerItem","enum":[0,1,2],"type":"integer"},"access_time_limit":{"description":"This property applies to users that have purchased the catalog. This is the timespan that the student has after redeeming this catalog\r\nto have access to it. The time starts when the catalog is redeemed and the catalog is available until this amount of time has passed.","type":"string"},"publishing_model":{"format":"int32","description":"This property controls how this catalog is made available to users.\r\nAvailableToMembers=0;\r\nForSaleInMarketPlace=1;\r\nHidden=2;0 = AvailableToMembers, 1 = ForSaleInMarketPlace, 2 = Hidden","enum":[0,1,2],"type":"integer"}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}}}}}
```

## GET /api/v1/LearningApi/GetCatalogDescription

> Returns the description for a given catalog

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCatalogDescription":{"get":{"tags":["LearningApi"],"summary":"Returns the description for a given catalog","operationId":"LearningApi_GetCatalogDescription","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"catalog_id","in":"query","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Description of the catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDescriptionResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetDescriptionResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetDescriptionResponse":{"title":"GetDescriptionResponse","description":"Contains description of section/training plan/etc.","default":{"description":"Sample description","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["description","api_error_entity"],"type":"object","properties":{"description":{"description":"Description of section or training plan, etc.","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetCatalogCreditHours

> Returns the credit hours for a given catalog

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCatalogCreditHours":{"get":{"tags":["LearningApi"],"summary":"Returns the credit hours for a given catalog","operationId":"LearningApi_GetCatalogCreditHours","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"catalog_id","in":"query","required":true},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"Credit hours of the catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCatalogCreditHoursResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetCatalogCreditHoursResponse"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetCatalogCreditHoursResponse":{"title":"GetCatalogCreditHoursResponse","description":"Contains the total credit hours of the catalog","default":{"credit_hours":10,"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["credit_hours","api_error_entity"],"type":"object","properties":{"credit_hours":{"format":"","description":"Total credit hours based on the credit hours of sections and training plan in the catalog","type":"number"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetCategories

> Returns a list of categories for a given catalog.> \
> Results are ordered by the category creation date from most recent to least recent.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCategories":{"get":{"tags":["LearningApi"],"summary":"Returns a list of categories for a given catalog.\r\nResults are ordered by the category creation date from most recent to least recent.","operationId":"LearningApi_GetCategories","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"catalog_id","in":"query","required":true},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of categories","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CategoryResponseItem"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CategoryResponseItem"}}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"CategoryResponseItem":{"title":"CategoryResponseItem","description":"Exposes the public members of the Nexport category for use with the\r\nweb api","default":{"id":"12345678-1234-5678-9abc-123456789abc","category_id":"12345678-1234-5678-9abc-123456789abc","name":"Sample name","catalog_id":"12345678-1234-5678-9abc-123456789abc","org_id":"12345678-1234-5678-9abc-123456789abc","parent_category_id":"12345678-1234-5678-9abc-123456789abc","date_created":"2015-12-25T19:25:24.731+00:00"},"required":["category_id","name","catalog_id","org_id","parent_category_id"],"type":"object","properties":{"category_id":{"format":"uuid","description":"Id of the category","type":"string"},"name":{"description":"The name of the Category","type":"string"},"catalog_id":{"format":"uuid","description":"Id of the catalog in which the category belongs to","type":"string"},"org_id":{"format":"uuid","description":"Id of the organization in which the category belongs to","type":"string"},"parent_category_id":{"format":"uuid","description":"Id of the category's parent category","type":"string"},"date_created":{"format":"date-time","description":"When this category was created","type":"string"}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}}}}}
```

## GET /api/v1/LearningApi/GetCatalogSyllabi

> Gets a list of syllabus ids, names, and types for syllabi that belong to the catalog.> \
> Results are ordered alphabetically by syllabus title.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCatalogSyllabi":{"get":{"tags":["LearningApi"],"summary":"Gets a list of syllabus ids, names, and types for syllabi that belong to the catalog.\r\nResults are ordered alphabetically by syllabus title.","operationId":"LearningApi_GetCatalogSyllabi","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"catalog_id","in":"query","required":true},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of syllabi","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetSyllabiResponseItem"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetSyllabiResponseItem"}}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetSyllabiResponseItem":{"title":"GetSyllabiResponseItem","description":"Item for a list of syllabi. Contains syllabus name, type, and product id","default":{"id":"12345678-1234-5678-9abc-123456789abc","syllabus_id":"12345678-1234-5678-9abc-123456789abc","syllabus_name":"Sample name","syllabus_type":0,"product_id":"12345678-1234-5678-9abc-123456789abc","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["syllabus_id","syllabus_type","api_error_entity"],"type":"object","properties":{"syllabus_id":{"format":"uuid","description":"Id of the syllabus","type":"string"},"syllabus_name":{"description":"Name of the syllabus","type":"string"},"syllabus_type":{"format":"int32","description":"Section=0;\r\nTrainingPlan=1;\r\nUnknown=-1;0 = Section, 1 = Training Plan, -1 = Unknown","enum":[0,1,-1],"type":"integer"},"product_id":{"format":"uuid","description":"Product ID is derived from the catalog. The Product ID is used when adding an item to an invoice.","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## Gets syllabi in a category

> Gets a list of syllabus ids, names, and types for syllabi that belong to the given category.> \
> Results are ordered alphabetically by syllabus title.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCategorySyllabi":{"get":{"tags":["LearningApi"],"summary":"Gets syllabi in a category","description":"Gets a list of syllabus ids, names, and types for syllabi that belong to the given category.\r\nResults are ordered alphabetically by syllabus title.","operationId":"LearningApi_GetCategorySyllabi","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"category_id","in":"query","required":true},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of syllabi","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetSyllabiResponseItem"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetSyllabiResponseItem"}}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}}}}},"components":{"schemas":{"GetSyllabiResponseItem":{"title":"GetSyllabiResponseItem","description":"Item for a list of syllabi. Contains syllabus name, type, and product id","default":{"id":"12345678-1234-5678-9abc-123456789abc","syllabus_id":"12345678-1234-5678-9abc-123456789abc","syllabus_name":"Sample name","syllabus_type":0,"product_id":"12345678-1234-5678-9abc-123456789abc","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["syllabus_id","syllabus_type","api_error_entity"],"type":"object","properties":{"syllabus_id":{"format":"uuid","description":"Id of the syllabus","type":"string"},"syllabus_name":{"description":"Name of the syllabus","type":"string"},"syllabus_type":{"format":"int32","description":"Section=0;\r\nTrainingPlan=1;\r\nUnknown=-1;0 = Section, 1 = Training Plan, -1 = Unknown","enum":[0,1,-1],"type":"integer"},"product_id":{"format":"uuid","description":"Product ID is derived from the catalog. The Product ID is used when adding an item to an invoice.","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## GET /api/v1/LearningApi/GetTestAttempts

> OBSOLETE> \
> Use AssessmentApi/GetTestAttempts instead> \
> Gets a list of test attempts for the given section enrollment and assignment.> \
> Results are ordered by attempt index from highest (most recent attempt) to lowest (least recent attempt).> \
> Requires at least one of the following:> \
> User has View Section Enrollments permission in enrollment organization or an ancestor> \
> OR> \
> User has Update Section Enrollments permission in enrollment organization or an ancestor> \
> OR> \
> User is an instructor for the section that the assignment is in.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetTestAttempts":{"get":{"tags":["LearningApi"],"summary":"OBSOLETE\r\nUse AssessmentApi/GetTestAttempts instead\r\nGets a list of test attempts for the given section enrollment and assignment.\r\nResults are ordered by attempt index from highest (most recent attempt) to lowest (least recent attempt).\r\nRequires at least one of the following:\r\nUser has View Section Enrollments permission in enrollment organization or an ancestor\r\nOR\r\nUser has Update Section Enrollments permission in enrollment organization or an ancestor\r\nOR\r\nUser is an instructor for the section that the assignment is in.","operationId":"LearningApi_GetTestAttempts","parameters":[{"schema":{"type":"string","format":"uuid"},"name":"enrollment_id","in":"query","required":true},{"schema":{"type":"string","format":"uuid"},"name":"assignment_id","in":"query","required":true},{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of test attempts","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TestAttemptResponseItem"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TestAttemptResponseItem"}}}}},"403":{"description":"Not authorized to view test attempts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"deprecated":true}}},"components":{"schemas":{"TestAttemptResponseItem":{"title":"TestAttemptResponseItem","description":"Contains details of a test attempt","default":{"attempt_id":"12345678-1234-5678-9abc-123456789abc","attempt_index":6,"start_date":"2015-12-25T19:25:24.731+00:00","last_time_left_update":"2015-12-25T19:25:24.731+00:00","finish_date":"2015-12-25T19:25:24.731+00:00","allow_relaunch":false,"time_left":"1.02:30:45","num_questions":10,"is_complete":true,"score":90,"comments":"Question 10 was way too difficult","api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["attempt_id","attempt_index","allow_relaunch","num_questions","is_complete","api_error_entity"],"type":"object","properties":{"attempt_id":{"format":"uuid","description":"Id of this test attempt","type":"string"},"attempt_index":{"format":"int32","description":"Which attempt number this is. Index is ZERO BASED.","type":"integer"},"start_date":{"format":"date-time","description":"When the student started this attempt (in UTC)","type":"string"},"last_time_left_update":{"format":"date-time","description":"When the TimeLeft field was last modified","type":"string"},"finish_date":{"format":"date-time","description":"When the student completed this attempt (in UTC)","type":"string"},"allow_relaunch":{"description":"Whether or not the student can relaunch the test after exiting without finishing","type":"boolean"},"time_left":{"description":"How much time the student has remaining to complete this attempt","type":"string"},"num_questions":{"format":"int32","description":"The number of questions that this attempt was created with","type":"integer"},"is_complete":{"description":"Has this attempt been submitted?","type":"boolean"},"score":{"format":"double","description":"The score for this attempt or null if is_complete is set to false","type":"number"},"comments":{"description":"Any additional comments from the student for this test attempt.","type":"string"},"proctor_response_item":{"$ref":"#/components/schemas/ProctorResponseItem","description":"Additional infomation about the proctor or null if not proctored"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ProctorResponseItem":{"description":"Contains information related to the proctor for an assignment","required":["proctor_id","proctor_user_id","proctor_code","proctor_first_name","proctor_last_name","organization_access_code_id","access_code","date_proctored","api_error_entity"],"type":"object","properties":{"proctor_id":{"format":"uuid","description":"Id of the Proctor","type":"string"},"proctor_user_id":{"format":"uuid","description":"User Id of the Proctor","type":"string"},"proctor_code":{"description":"Code assigned to the proctor","type":"string"},"proctor_first_name":{"description":"The first name of the proctor","type":"string"},"proctor_last_name":{"description":"The last name of the proctor","type":"string"},"organization_access_code_id":{"format":"uuid","description":"The Id of the Access Code","type":"string"},"access_code":{"description":"The Access Code used","type":"string"},"date_proctored":{"format":"date-time","description":"When the proctor unlocked the assignment (in UTC)","type":"string"},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}}}}}
```

## POST /api/v1/LearningApi/GetCmiData

> OBSOLETE> \
> Use ScormApi/GetCmiData instead> \
> Gets data for the specified SCORM CMI fields based on the element names.> \
> Results are ordered alphabetically by SCO ID.> \
> Requires the View Section Enrollments permission in the enrollment organization or an ancestor.

```json
{"openapi":"3.1.1","info":{"title":"NexPort Web API","version":"v1"},"servers":[{"url":"https://www.nexportcampus.com"}],"paths":{"/api/v1/LearningApi/GetCmiData":{"post":{"tags":["LearningApi"],"summary":"OBSOLETE\r\nUse ScormApi/GetCmiData instead\r\nGets data for the specified SCORM CMI fields based on the element names.\r\nResults are ordered alphabetically by SCO ID.\r\nRequires the View Section Enrollments permission in the enrollment organization or an ancestor.","operationId":"LearningApi_GetCmiData","parameters":[{"schema":{"type":"integer","format":"int32"},"name":"page","in":"query","description":"Which page of results to start on","required":false},{"schema":{"type":"integer","format":"int32"},"name":"per_page","in":"query","required":false},{"schema":{"type":"string"},"name":"access_token","in":"query","description":"Use the AdminApi Authenticate method to get the access_token","required":true}],"responses":{"200":{"description":"List of SCOs and corresponding CMI data","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetCmiDataResponseItem"}}},"text/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GetCmiDataResponseItem"}}}}},"403":{"description":"Not authorized to view section enrollments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"409":{"description":"Entity not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}},"422":{"description":"Validation exception. See response body for more info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}},"text/json":{"schema":{"$ref":"#/components/schemas/ApiResponseBase"}}}}},"deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCmiDataRequest"}},"text/json":{"schema":{"$ref":"#/components/schemas/GetCmiDataRequest"}}},"description":"Contains list of CMI element names","required":true}}}},"components":{"schemas":{"GetCmiDataResponseItem":{"title":"GetCmiDataResponseItem","description":"Contains list of CMI fields/values as well as start and end date for the attempt, the title, and the sco id","default":{"title":"Sample title","sco_id":"I_SCO0","start_date_utc":"2015-12-25T19:25:24.731+00:00","exit_date_utc":"2015-12-25T19:25:24.731+00:00","cmi_fields":[{"cmi_element_name":"cmi.core.lesson_status","cmi_element_value":"incomplete"},{"cmi_element_name":"cmi.core.exit"},{"cmi_element_name":"cmi.core.invalid_name","cmi_element_value":"","error_message":"401 - Not Implemented Error"}],"api_error_entity":{"error_code":0,"warning_messages":[]}},"required":["title","sco_id","cmi_fields","api_error_entity"],"type":"object","properties":{"title":{"description":"Title for the SCO","type":"string"},"sco_id":{"description":"ID for the SCO","type":"string"},"start_date_utc":{"format":"date-time","description":"When the student started this SCO","type":"string"},"exit_date_utc":{"format":"date-time","description":"When the student exited this SCO","type":"string"},"cmi_fields":{"description":"List of objects containing field name, field value, and error code if applicable","type":"array","items":{"$ref":"#/components/schemas/CmiField"}},"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"CmiField":{"description":"Represents a SCO CMI field and the value, as well as error information if applicable","required":["cmi_element_name"],"type":"object","properties":{"cmi_element_name":{"description":"Name of the CMI Element","type":"string"},"cmi_element_value":{"description":"Value of the CMI Element. Empty string in the case of an error.\r\nValue will be excluded if it is null.","type":"string"},"error_message":{"description":"If an error occurred processing this element, then a message will be added.\r\nNull if no error occurred.","type":"string"}}},"ApiErrorEntity":{"description":"Model used to determine what, if anything, went wrong with an api request","required":["error_code"],"type":"object","properties":{"error_code":{"format":"int32","description":"Used to denote the kind of error that occurred, if any.\r\nNoError=0;\r\nUnknownError=1;\r\nValidationError=2;\r\nItemNotFound=3;\r\nAuthenticationError=4;\r\nAuthorizationError=5;0 = No Error, 1 = Unknown Error, 2 = Validation Error, 3 = Item Not Found, 4 = Authentication Error, 5 = Authorization Error, 6 = Subscription Not Found, 7 = Enrollment Already Exists, 8 = Subscription Already Exists","enum":[0,1,2,3,4,5,6,7,8],"type":"integer"},"error_message":{"description":"Message describing what caused the error to occur","type":"string"},"warning_messages":{"description":"Warning messages describing any  potential problems with the request that do not cause the request to fail","type":"array","items":{"type":"string"},"readOnly":true}}},"ApiResponseBase":{"title":"NexPort API Response","description":"Base class for api responses","default":{"api_error_entity":{"error_code":3,"error_message":"No entity found matching id in request","warning_messages":[]}},"required":["api_error_entity"],"type":"object","properties":{"api_error_entity":{"$ref":"#/components/schemas/ApiErrorEntity","description":"Error information"}}},"GetCmiDataRequest":{"description":"Contains information for filtering which SCORM CMI data to retrieve","required":["enrollment_id","assignment_id","cmi_element_names"],"type":"object","properties":{"enrollment_id":{"format":"uuid","description":"Id of the enrollment to get SCORM data for","type":"string"},"assignment_id":{"format":"uuid","description":"Id of the assignment to get SCORM data for","type":"string"},"cmi_element_names":{"description":"List of CMI element names to get data for","type":"array","items":{"type":"string"}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nexportsolutions.com/nexport-user-documentation/developer-documentation/campus-webapi/learningapi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
