publish_courses
Publish courses to domains for learner access using batch operations. Configure slugs, visibility, open access, and prerequisites to control course availability and enrollment.
Instructions
PUBLISH courses to domains, making them reachable by learners. BATCH.
This is the tool that puts content in front of the public. Each item needs
`course_id` and `domain_id`; everything else is optional.
`slug` is the URL path and is CREATE-ONLY - it can be set here and never
changed by `update_published_courses`. Omit it and Skilljar generates one from
the title. Lowercase letters, numbers and dashes, two or more parts.
MOST BOOLEANS DEFAULT FALSE, BUT TWO DEFAULT TRUE:
`require_all_prerequisites` defaults TRUE
`unique_progress_per_enrollment` defaults TRUE
Everything else - `is_hidden`, `visible_on_catalog`, `open_access`,
`restrict_access_start_end_dates`, `allow_self_service_reenroll`,
`strict_enforce_group_visibility` - defaults false.
`open_access` allows ANONYMOUS access: anyone with the URL, no sign-in.
`visible_on_catalog` lists the course publicly. Both are off unless asked for.
`visibility_override_type` is GROUP (the default) or CATEGORY.
Publishing a course to a domain it is already on is a PER-ITEM conflict
(`already_published`), not a whole-batch failure - the other items still land.
Requires the `published-courses:write` OAuth scope.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| published_courses | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| note | Yes | ||
| total | Yes | ||
| failed | Yes | ||
| succeeded | Yes |