The Program Sections API manages the sections that organize content within an online program. A section groups related learning steps, controls their order within a program, and can optionally delay access. For scheduled programs, the delay is counted from the program's start date. For self-paced programs, it's counted from each participant's enrollment date.
Program sections work with the broader Online Programs model. A section always belongs to a single program, and steps are created inside sections. In practice, most implementations use the Programs API to create the parent program first, then use the Program Sections API to shape the program outline, and finally use the Program Steps API to add the actual learning content inside each section.
With the Program Sections API, you can:
Section availability depends on the program type and the section's delayInDays value. For scheduled programs, the delay is counted from the program's start date. This means someone who joins after the program has started may find several sections already available. For self-paced programs, the delay is counted from that participant's enrollment date. A value of 0 makes the section available from the start. The parent program's status and access restrictions also determine whether participants can access the section.
The service assigns the stored ordering value automatically when a section is created. To change the order later, call MoveSection.
It's important to note the following points before starting to code:
section.programId. After creation, the section stays attached to that program and the program ID can't be changed.delayInDays relative to the program's start date for scheduled programs, or relative to each participant's enrollment date for self-paced programs. Participant enrollment dates are available as Participant.enrollmentInfo.startDate.delayInDays must be lower than that duration.MoveSection.wix.online_programs.v3.section. Section extended fields aren't filterable or sortable. Cloning a section copies its extended field data.ListSections. Use QuerySections when you need filtering, custom sorting or paging, or a cross-program query.DeleteSection as permanent. Deleted sections are removed from normal reads, and there's no public restore flow.0 means the section is available from the start.Last updated: 18 September 2026