Skip to main content
POST
/
api
/
content
/
coursesections
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A CourseSection is a structural grouping that organises lessons within a Course. Sections represent milestones or learning stages — each section should bring the member one step closer to the course’s overall learning goal. Sections are ordered by DisplayOrder and can be set to unlock immediately or after a delay, using the same UnlockType / UnlockAfterDays mechanism as individual lessons:
UnlockTypeMeaning
ImmediateSection is available as soon as the member enrols
SequentialUnlocked only after the previous section is completed
TimedUnlocked after the number of days specified by UnlockAfterDays
Sections are optional — lessons can belong directly to a course without a section. However, using sections can help create a clearer learning path for members, and allows you to unlock groups of lessons at once.

Authentication

This endpoint requires OAuth2 authentication. Include a valid bearer token in the Authorization header. The authenticated user must be a full unrestricted administrator or have the CourseSection-Create role.

Request Body

Required Fields

CourseId
integer
required
ID of the course this section belongs to.
Title
string
required
Section title displayed to members.
DisplayOrder
integer
required
Position of the section within the course; lower numbers appear first.
UnlockAfterDays
integer
required
Number of days after enrolment before the section unlocks; only used when UnlockType is Timed (3).

Optional Fields

SectionContents
string
Optional HTML or rich-text introductory content shown at the top of the section.
Active
boolean
Whether the section is active and visible to enrolled members.
UnlockType
integer
When the section becomes available: Immediate (1), after the previous section is done — Sequential (2), or after a set number of days — Timed (3). See eLessonUnlockType enum above.
NewImageUrl
string
URL of a new thumbnail image to upload (JPG/JPEG, PNG, or GIF, max 10 MB).
ClearImageFile
boolean
Set to true to remove the existing thumbnail image.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/content/coursesections" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "CourseId": 0,
    "Title": "",
    "DisplayOrder": 0,
    "UnlockAfterDays": 0
}'

Response

200

Status
integer
HTTP status code. 200 on success.
Message
string
A human-readable message confirming the creation.
Value
object
Contains the Id of the newly created record.
WasSuccessful
boolean
true if the coursesection was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "CourseSection was successfully created.",
  "Value": {
    "Id": 87654321
  },
  "OpenInDialog": false,
  "OpenInWindow": false,
  "RedirectURL": null,
  "JavaScript": null,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "UpdatedBy": "admin@example.com",
  "Errors": null,
  "WasSuccessful": true
}

400

Message
string
A summary of the validation error(s), in the format PropertyName: error message.
Value
any
null on validation failure.
Errors
object[]
Array of validation errors.
WasSuccessful
boolean
false when the request fails validation.
Example Response
{
  "Message": "Title: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "Title"
    }
  ],
  "WasSuccessful": false
}