Author - Course Templates API

This endpoint controls the creation and maintenance of courses.

Interfaces

Object Synopses

CourseTemplateRequest

  • title String Required

    Title of course.

  • description String

    A description of the course.

  • is_published Boolean Required

    Describes the visibility of the course.

  • has_unpublished_changes Boolean Required

    Describes if there are changes not yet visible to learners.

  • default_days_until_due Integer Required

    Number of days from assignment to a learner until course is due.

  • default_due_on_date String

    Date on which all enrollments will be due.

  • due_date_type String

    Due date type currently being utilized by the server.

  • course_type String Required

    Describes whether course is native bridge, SCORM, Lynda, or OpenSesame.

  • external_course_id String

    Optional identifier for linking to external systems.

  • has_certificate Boolean

    Indicates if certificate is issued when course is successfully completed.

  • passing_threshold Integer

    Percent correct answers required to pass course.

  • max_quiz_attempts Integer

    The number of times a learner is allowed to answer quiz questions.

  • continuing_education_credits Integer

    The number of points a learner earns for completing this course.

  • open_book Boolean

    Indicates if learners can navigate the course during quizzes.

  • tags Array

    A list of tags for the course

  • matching_tags Array

    Tags matching the search query for the course

  • maintain_branding_in_sub_account Boolean

    Controls whether this course is rendered with the custom branding of its originating account when shared

  • locked_attributes_enabled Boolean

    Indicates if some course attributes are locked.

  • locked_attributes Array

    Attributes that are locked on the enrollment profile of the course.

  • derived_locked_attributes Array

    Attributes that are locked on the enrollment profile, including those set on the subaccount and the root subaccount

OrderedSlide

  • id Integer Required

    Slide id.

  • position Integer Required

    Published. Slide position in the course.

  • new_position Integer Required

    Unpublished slide position in the course.

  • published_attributes {API::SlideAttributes}
    No description provided.
  • draft_attributes {API::SlideAttributes}
    No description provided.
  • published_at DateTime or null

    Required DateTime slide was published.

  • estimated_time Integer

    Estimated number of minutes to complete slide.

  • attachments TODO

    Array of slide attachments

SlideAttributes

  • title String

    The title of the slide

  • body String

    The content of the slide

  • type String

    Slide type

  • allow_comments Boolean or null Required

    Allows comments by learners if true.

  • cover_slide_data {API::CoverSlideData}
    No description provided.
  • attachment_url String or null

    The URL of the image associated with the quiz question.

  • attachment_align String or null

    The alignment of the image associated with the quiz question, one of top, left, wide, or bottom.

  • static_order Boolean or null

    Skips randomizing answer order if true.

CoverSlideData

  • dark Boolean Required

    Describes the color scheme of slide.

  • heading String

    Required on cover slides. Optional on all others. Title of slide.

  • intro String

    Subtitle of slide.

  • backgroundColor String

    Hex color of background.

  • primaryColor String

    Hex color of foreground.

  • backgroundImageUrl String

    URL of background image

  • backgroundImageStyle String

    Optional unless backgroundImageUrl is present. Controls how background image is displayed

  • backgroundImageOpacity Float

    Optional unless backgroundImageUrl is present. Describes opacity of the image.

CourseTemplateSubAccount

  • id Integer

    SubAccount id

  • name String

    The name of the subaccount

  • is_root Boolean

    Is this the root account

  • not_current Boolean

    Is this course outside the current subaccount

  • sub_accounts_exist Boolean

    Do subaccounts exist in the account

List courses

GET /api/author/course_templates

Note: the deleted_at element in the returned object is present only if deleted records were requested.

Response Codes

  • 200 OK
  • 304 Not Modified

Parameters

  • sort String [ newest, title, updated, archived ]

    Query parameter. Applies a sort to the result list.

  • filters[] String [ my_courses, unpublished, has_certificate, no_enrollments, bridge, scorm, lynda, opensesame ]

    Query parameter. This argument may occur multiple times.

  • search String

    Query parameter. Search course titles for a match with the given string.

  • includes[] String [ counts, expiration, enrollment_profiles, programs ]

    Query paramater. Additional information to be returned in the response. This argument may occur multiple times. If counts is given, response will include enrollment_counts. If expiration is given, response will include auto_re_enroll, default_days_until_expiration, expires, and re_enrollment_period. If enrollment_profiles is given, response will include enroll_url, open_enrollment, and uuid. If programs is given, response will include program_ids.

  • updated_after DateTime

    Query parameter. Filters list to only include courses updated after the given RFC 3339 compliant timestamp.

  • created_after DateTime

    Query parameter. Filters list to only include courses created after the given RFC 3339 compliant timestamp.

  • deleted_after DateTime

    Query parameter. Filters list to only include courses deleted after the given RFC 3339 compliant timestamp.

  • updated_before DateTime

    Query parameter. Filters list to only include courses updated before the given RFC 3339 compliant timestamp.

  • created_before DateTime

    Query parameter. Filters list to only include courses created before the given RFC 3339 compliant timestamp.

  • deleted_before DateTime

    Query parameter. Filters list to only include courses deleted before the given RFC 3339 compliant timestamp.

  • only_deleted Boolean

    Filters list to only include deleted courses.

  • with_deleted Boolean

    Filters list to also include deleted courses.

Example Request

with includes
/api/author/course_templates?includes[]=enrollment_profiles&includes[]=expiration

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "1",
      "estimated_time": null,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "Scorm 01",
      "description": "",
      "is_published": true,
      "has_unpublished_changes": false,
      "default_days_until_due": 7,
      "has_certificate": false,
      "external_status": "inapplicable",
      "external_status_message": "optional messaging",
      "course_type": "scorm",
      "open_book": false,
      "enrollments_count": 0,
      "attachments_count": 1,
      "created_at": "2018-10-30T23:37:07.864Z",
      "updated_at": "2018-11-28T09:58:33.000Z",
      "deleted_at": "2018-12-05T19:27:54.010Z",
      "third_party_course_id": null,
      "external_course_id": null,
      "next_section_due": null,
      "sub_account": {
        "id": "1",
        "name": "Bridge",
        "is_root": true,
        "sub_accounts_exist": false,
        "not_current": false,
        "tac_type": "domestic",
        "tac_custom_body_markup": null,
        "tac_updated_at": "2016-08-05T18:03:21.815Z"
      },
      "has_shared_enrollments": false,
      "tags": [],
      "matching_tags": [],
      "expires": false,
      "default_days_until_expiration": null,
      "retain": false,
      "retain_intervals": [1, 3, 7],
      "auto_re_enroll": false,
      "re_enrollment_period": 7,
      "open_enrollment": false,
      "uuid": "193c854d",
      "enroll_url": "http://bridge.bridgelearning.dev:3000/learner/courses/193c854d/enroll",
      "links": {
        "author": "1"
      },
      "show_correct_response": true,
      "locked_attributes_enabled": false,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

List course titles

GET /api/author/course_templates/titles

{ “meta”: {}, “course_templates”: [ { “id”: “1”, “title”: “My Test Course” } ] }

Parameters

  • sort String [ newest, title, updated ]

    Query parameter. Applies a sort to the result list.

  • filters[] String [ my_courses, unpublished, has_certificate, no_enrollments, bridge, scorm, lynda, opensesame ]

    Query parameter. This argument may occur multiple times.

  • search String

    Query parameter. Search course titles for a match with the given string.

Show course

GET /api/author/course_templates/:id

Response Codes

  • 200 OK
  • 304 Not Modified

Parameters

  • id Integer Required

    The course id.

  • sort String

    Query parameter. This argument makes no difference on outcome, since a single object is always sorted.

  • includes[] String [ has_shared_enrollments, next_section_due, programs, with_content ]

    Query paramater. Additional information to be returned in the response. This argument may occur multiple times. If has_shared_enrollments or next_section_due is given, response will include each respective field. If programs is given, response will include program_ids.

Example Request

with includes
/api/author/course_templates/1?includes[]=has_shared_enrollments&includes[]=next_section_due

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "1",
      "estimated_time": null,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "Scorm 01",
      "description": "",
      "is_published": true,
      "has_unpublished_changes": false,
      "default_days_until_due": 7,
      "has_certificate": false,
      "external_status": "inapplicable",
      "external_status_message": "optional messaging",
      "course_type": "scorm",
      "open_book": false,
      "enrollments_count": 0,
      "attachments_count": 1,
      "updated_at": "2016-09-01T12:44:10.773-06:00",
      "third_party_course_id": null,
      "external_course_id": null,
      "next_section_due": null,
      "sub_account": {
        "id": "1",
        "name": "Bridge",
        "is_root": true,
        "sub_accounts_exist": false,
        "not_current": false,
        "tac_type": "domestic",
        "tac_custom_body_markup": null,
        "tac_updated_at": "2016-08-05T18:03:21.815Z"
      },
      "has_shared_enrollments": false,
      "enrollment_counts": {
        "all": 0,
        "required": 0,
        "optional": 0,
        "finished": 0,
        "not_started": 0,
        "overdue": 0,
        "in_progress": 0
      },
      "tags": [],
      "matching_tags": [],
      "expires": false,
      "default_days_until_expiration": null,
      "retain": false,
      "retain_intervals": [1, 3, 7],
      "auto_re_enroll": false,
      "re_enrollment_period": 7,
      "open_enrollment": false,
      "uuid": "193c854d",
        "enroll_url": "http://bridge.bridgelearning.dev:3000/learner/courses/193c854d/enroll",
        "links": {
        "author": "1"
      },
      "scorm": {
        "registration_instancing_option": "always",
        "player_launch_type": "2",
        "sco_launch_type": "2",
        "score_rollup_mode": "3"
      },
      "locked_attributes_enabled": true,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

Create course

POST /api/author/course_templates

Response codes

  • 201 Created

Parameters

  • course_templates CourseTemplateRequest[] Required

    Body parameter. An array of {API::CourseTemplateRequest} to be created.

Example Request

{
  "course_templates": [
    "{API::CourseTemplateRequest}"
  ]
}
curl \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"course_templates":["{API::CourseTemplateRequest}"]}' \
  http://<bridge>/api/author/course_templates
    

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id":                           "4",
      "estimated_time":               null,
      "passing_threshold":            80,
      "max_quiz_attempts":            5,
      "continuing_education_credits": 3,
      "title":                        "My Course",
      "description":                  "A description",
      "is_published":                 false,
      "has_unpublished_changes":      false,
      "default_days_until_due":       7,
      "has_certificate":              false,
      "program_ids":                  [],
      "external_status":              "inapplicable",
      "external_status_message":      "optional messaging",
      "external_course_id":           "P314159",
      "course_type":                  "bridge",
      "open_book":                    false,
      "enrollments_count":            0,
      "sub_account": {
        "id": 1,
        "name": "Acme, Co",
        "is_root": true,
        "not_current": false,
        "sub_accounts_exist": true
      },
      "links": {
        "author": "1"
      },
      "locked_attributes_enabled":         false,
      "locked_attributes":            ["title", "description"],
      "derived_locked_attributes":    ["title", "description"]
    }
  ]
}

Update a course

PATCH /api/author/course_templates/:id
PUT /api/author/course_templates/:id

Response Codes

  • 200 OK

Parameters

  • course_template CourseTemplateRequest Required

    Body parameter. A {API::CourseTemplateRequest} containing the fields to be updated.

Example Request

{
  "course_template": "{API::CourseTemplateRequest}"
}
curl \
  -X PATCH \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"course_template":"{API::CourseTemplateRequest}"}' \
  http://<bridge>/api/author/course_templates/:id
    

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "1",
      "estimated_time": 3,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "My Test Course",
      "is_published": true,
      "has_unpublished_changes": false,
      "default_days_until_due": 7,
      "has_certificate": true,
      "program_ids": [],
      "external_status": "inapplicable",
      "external_status_message": "optional messaging",
      "external_course_id": "P314159",
      "course_type": "bridge",
      "open_book": false,
      "enrollments_count": 3,
      "sub_account": {
        "id": 1,
        "name": "Acme, Co",
        "is_root": true,
        "not_current": false,
        "sub_accounts_exist": true
      },
      "links": {
        "author": "1"
      },
      "locked_attributes_enabled": true,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

Delete a course

DELETE /api/author/course_templates/:id

Response codes

  • 204 No Content On successful deletion

Parameters

  • id Integer Required

    Path parameter. Course template id.

Restore a destroyed course

POST /api/author/course_templates/:id/restore

Response codes

  • 200 OK On successful restoration
  • 204 No Content On unsuccesful restoration

Parameters

  • id Integer Required

    Path paramter. Course template id.

Syncs course enrollments with data available in upstream SCORM

POST /api/author/course_templates/:id/sync

This endpoint requires support user permissions(validated by the frontend) for now. In the future this may become available to account admins with a custom account permission such as course_template_sync(which would need to be created)

Response codes

  • 204 No Content On successful sync request
  • 400 Bad Request When course is not SCORM
  • 403 Forbidden

Parameters

  • id Integer Required

    Path parameter. Course template id.

Example Request

/api/author/course_templates/1/sync

Publish course

POST /api/author/course_templates/:id/publish

Makes a course visible to non-authors

Response Codes

  • 200 OK
  • 400 Bad Request When course is archived

Parameters

  • id Integer Required

    Path parameter. Course template id.

  • notify_filter String

    Which learners to notify. One of ‘all’, ‘finished’, or ‘in_progress’.

  • notify_message String

    Message to send to learners. Limited to 1000 characters.

  • re_enroll Boolean

    Indicates if completed enrollments should be re-enrolled. Defaults to false.

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "7",
      "estimated_time": 1,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "Test Course",
      "is_published": true,
      "has_unpublished_changes": false,
      "default_days_until_due": 7,
      "has_certificate": false,
      "program_ids": [],
      "external_status": "inapplicable",
      "external_status_message": "optional messaging",
      "external_course_id": "P314159",
      "course_type": "bridge",
      "open_book": false,
      "enrollments_count": 0,
      "sub_account": {
        "id": 1,
        "name": "Acme, Co",
        "is_root": true,
        "not_current": false,
        "sub_accounts_exist": true
      },
      "links": {
        "author": "1"
      },
      "locked_attributes_enabled": true,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

Discard changes

POST /api/author/course_templates/:id/discard_changes

Discards unpublished changes to the course.

Response Codes

  • 200 OK

Parameters

  • id Integer Required

    Path parameter. Course template id.

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "7",
      "estimated_time": 1,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "Test Course",
      "description": "A description",
      "is_published": true,
      "has_unpublished_changes": false,
      "default_days_until_due": 7,
      "has_certificate": false,
      "program_ids": [],
      "external_status": "inapplicable",
      "external_status_message": "optional messaging",
      "external_course_id": "P314159",
      "course_type": "bridge",
      "open_book": false,
      "enrollments_count": 0,
      "sub_account": {
        "id": 1,
        "name": "Acme, Co",
        "is_root": true,
        "not_current": false,
        "sub_accounts_exist": true
      },
      "links": {
        "author": "1"
      },
      "locked_attributes_enabled": true,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

Upload SCORM

POST /api/author/course_templates/:id/upload

Upload a SCORM course.

Response Codes

  • 200 OK
  • 400 Bad Request When course is archived

Parameters

  • id Integer Required

    Path parameter. Course template to be overwritten by upload.

  • location String Required

    Body parameter. URI of course to import.

  • file_modified_at DateTime

    Body parameter. Last modification time of the uploaded file.

  • name String

    Body parameter. Name of the uploaded file.

Example Request

{
  "location": "https://instructure-getsmart.s3.amazonaws.com/uploads/1/3d885212-e681-4971-98ab-0e1100b521c1.zip",
  "file_modified_at": "2012-09-21T23:18:28.000Z",
  "name": "RuntimeBasicCalls_SCORM20043rdEdition.zip"
}
curl \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"location":"https://instructure-getsmart.s3.amazonaws.com/uploads/1/3d885212-e681-4971-98ab-0e1100b521c1.zip","file_modified_at":"2012-09-21T23:18:28.000Z","name":"RuntimeBasicCalls_SCORM20043rdEdition.zip"}' \
  http://<bridge>/api/author/course_templates/:id/upload
    

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "19",
      "estimated_time": null,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "A course title",
      "description": "A description",
      "is_published": false,
      "has_unpublished_changes": false,
      "default_days_until_due": 7,
      "has_certificate": false,
      "program_ids": [],
      "external_status": "pending",
      "external_status_message": "optional messaging",
      "external_course_id": "P314159",
      "course_type": "scorm",
      "open_book": false,
      "enrollments_count": 0,
      "sub_account": {
        "id": 1,
        "name": "Acme, Co",
        "is_root": true,
        "not_current": false,
        "sub_accounts_exist": true
      },
      "links": {
        "author": "1"
      },
      "locked_attributes_enabled": true,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

Upload SCORM that has been attached to a course

POST /api/author/course_templates/:id/import_attached_scorm

Replace course with previously attached SCORM course and then publish.

Response Codes

  • 200 OK
  • 400 Bad Request When course is archived

Parameters

  • id Integer Required

    Path parameter. Course template to be overwritten by upload.

Example Request

{
}
curl \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{}' \
  http://<bridge>/api/author/course_templates/:id/import_attached_scorm
    

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "19",
      "estimated_time": null,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "A course title",
      "description": "A description",
      "is_published": false,
      "has_been_unpublished": false,
      "has_unpublished_changes": false,
      "retain": false,
      "quizzes_count": 0,
      "external_status": "inapplicaable",
      "external_status_message": null,
      "course_type": "scorm",
      "enrollments_count": 0,
      "attachments_count": 1,
      "meta": {
        "domain_id": "1",
        "sub_account_id": "1",
        "r2b_jwt": "aaa.bbb.ccc"
      },
      "sub_account": {
        "id": 1,
        "name": "Acme, Co",
        "is_root": true,
        "sub_accounts_exist": false,
        "not_current": false,
        "tac_type": "domestic",
        "tac_custom_body_markup": null,
        "tac_updated_at": "2016-08-05T18:03:21.815Z"
      },
      "updated_at": "2016-09-01T12:44:10.773-06:00",
      "has_shared_enrollments": false,
      "enrollment_counts": {
        "all": 0,
        "required": 0,
        "optional": 0,
        "finished": 0,
        "not_started": 0,
        "overdue": 0,
        "in_progress": 0
      },
      "tags": [],
      "matching_tags": [],
      "expires": false,
      "default_days_until_expiration": null,
      "retain": false,
      "retain_intervals": [1, 3, 7],
      "auto_re_enroll": false,
      "re_enrollment_period": 7,
      "open_enrollment": false,
      "uuid": "193c854d",
        "enroll_url": "http://bridge.bridgelearning.dev:3000/learner/courses/193c854d/enroll",
        "links": {
        "author": "1"
      },
      "scorm": {
        "registration_instancing_option": "always",
        "player_launch_type": "2",
        "sco_launch_type": "2",
        "score_rollup_mode": "3"
      },
      "locked_attributes_enabled": true,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

Attach a SCORM course

POST /api/author/course_templates/:id/attach_scorm

Attach a SCORM course to a Bridge course.

Response Codes

  • 200 OK
  • 400 Bad Request When course is archived

Parameters

  • id Integer Required

    Path parameter. Course template to attach SCORM course.

  • location String Required

    Body parameter. URI of SCORM course to import.

  • file_modified_at DateTime

    Body parameter. Last modification time of the uploaded SCORM course file.

  • name String

    Body parameter. Display name of the uploaded SCORM course file.

Example Request

{
  "location": "https://instructure-getsmart.s3.amazonaws.com/uploads/1/3d885212-e681-4971-98ab-0e1100b521c1.zip",
  "file_modified_at": "2012-09-21T23:18:28.000Z",
  "name": "RuntimeBasicCalls_SCORM20043rdEdition.zip"
}
curl \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{"location":"https://instructure-getsmart.s3.amazonaws.com/uploads/1/3d885212-e681-4971-98ab-0e1100b521c1.zip","file_modified_at":"2012-09-21T23:18:28.000Z","name":"RuntimeBasicCalls_SCORM20043rdEdition.zip"}' \
  http://<bridge>/api/author/course_templates/:id/attach_scorm
    

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "19",
      "estimated_time": null,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "A course title",
      "description": "A description",
      "is_published": false,
      "has_unpublished_changes": false,
      "default_days_until_due": 7,
      "has_certificate": false,
      "program_ids": [],
      "external_status": "attached",
      "external_course_id": "P314159",
      "course_type": "scorm",
      "open_book": false,
      "enrollments_count": 0,
      "sub_account": {
        "id": 1,
        "name": "Acme, Co",
        "is_root": true,
        "not_current": false,
        "sub_accounts_exist": true
      },
      "links": {
        "author": "1"
      },
      "locked_attributes_enabled": true,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

Clone a course

POST /api/author/course_templates/:id/clone

Response Codes

  • 200 OK
  • 400 Bad Request When original course is archived

Parameters

  • id Integer Required

    Path parameter. Course template id.

Example Response

{
  "meta": {},
  "course_templates": [
    {
      "id": "10",
      "estimated_time": 1,
      "passing_threshold": 80,
      "max_quiz_attempts": 5,
      "continuing_education_credits": 3,
      "title": "Copy of Test Course",
      "description": "A description",
      "is_published": true,
      "has_unpublished_changes": false,
      "default_days_until_due": 7,
      "has_certificate": false,
      "program_ids": [],
      "external_status": "inapplicable",
      "external_course_id": "P314159",
      "course_type": "bridge",
      "open_book": false,
      "enrollments_count": 0,
      "sub_account": {
        "id": 1,
        "name": "Acme, Co",
        "is_root": true,
        "not_current": false,
        "sub_accounts_exist": true
      },
      "links": {
        "author": "1"
      },
      "locked_attributes_enabled": true,
      "locked_attributes": ["title", "description"],
      "derived_locked_attributes": ["title", "description"]
    }
  ]
}

Export a course

GET /api/author/course_templates/:id/export

This endpoint requires the course_template_download permission which by default is granted to admins and account admins.

Bridge courses are exported to JSON format. SCORM courses export a ZIP of relevant SCORM metadata.

Response Codes

  • 200 OK
  • 401 Unauthorized

Parameters

  • id Integer Required

    Path parameter. The course id

  • format String

    Path parameter. Ignored.

Example Response

{
  "id": 7,
  "title": "Test Course",
  "description": "A description",
  "estimated_time": 1,
  "user_id": 1,
  "passing_threshold": 80,
  "max_quiz_attempts": 5,
  "continuing_education_credits": 3,
  "published_at": "2015-07-15T11:15:22.730-06:00",
  "default_days_until_due": 7,
  "has_unpublished_changes": true,
  "has_certificate": false,
  "external_id": null,
  "external_status": "inapplicable",
  "external_course_id": "P314159",
  "course_type": "bridge",
  "domain_id": 1,
  "ordered_slides": [
    "{API::OrderedSlide}"
  ]
}