> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# CloneSection

# Package: onlinePrograms

# Namespace: SectionsService

# Method link: https://dev.wix.com/docs/api-reference/business-management/online-programs/sections/clone-section.md

## Permission Scopes:
Manage Online Programs: SCOPE.CHALLENGES.MANAGE

## Introduction

Clones a section.

The cloned section is added to the same program after the current last section. Translation content and extended field data are copied to the cloned section.

This method triggers both a Section Created lifecycle event for the new section and a Section Cloned action event containing the source and cloned sections.

Steps are cloned asynchronously after this call returns. The `section.total_steps` value in the response may not reflect the eventual number of cloned steps. Until cloning finishes, Get, List, and Query calls may return a lower actual step count.

A program can contain up to 1,000 sections. This call fails if cloning the section would exceed that limit.

---

## REST API

### Schema

```
 Method: cloneSection
 Description: Clones a section.  The cloned section is added to the same program after the current last section. Translation content and extended field data are copied to the cloned section.  This method triggers both a Section Created lifecycle event for the new section and a Section Cloned action event containing the source and cloned sections.  Steps are cloned asynchronously after this call returns. The `section.total_steps` value in the response may not reflect the eventual number of cloned steps. Until cloning finishes, Get, List, and Query calls may return a lower actual step count.  A program can contain up to 1,000 sections. This call fails if cloning the section would exceed that limit.
 URL: https://www.wixapis.com/online-programs/v3/sections/{sectionId}/clone
 Method: POST
 Return type: CloneSectionResponse
  - name: section | type: Section | description: Cloned section.  
     - name: id | type: string | description: Section GUID.  | read-only: true | validation: format GUID
     - name: revision | type: string | description: Revision number, which increments by 1 each time the section is updated. To prevent conflicting changes, the current `revision` must be passed when updating the section.  | read-only: true | validation: format int64
     - name: createdDate | type: string | description: Date and time the section was created.  | read-only: true | validation: format date-time
     - name: updatedDate | type: string | description: Date and time the section was last updated.  | read-only: true | validation: format date-time
     - name: programId | type: string | description: Program GUID of the parent program. Provide it when creating a section. After creation, this value can't be changed.  | read-only: true | validation: format GUID, immutable
     - name: description | type: Description | description: Section title.  
        - name: title | type: string | description:   | validation: maxLength 500
     - name: totalSteps | type: integer | description: Total number of steps in the section.  | read-only: true | validation: format int32
     - name: ordering | type: number | description: Position rank used to order sections within a program. To reorder sections, call Move Section.  | read-only: true 
     - name: delayInDays | type: integer | description: Number of days before the section becomes available. The count starts from the program's start date for scheduled programs, or from the participant's enrollment date for self-paced ones. Someone joining a scheduled program after it began may find several sections already open. Use `0` for a section available from the start.  | validation: minimum 0, maximum 5000
     - name: extendedFields | type: ExtendedFields | description: Custom field data for the section. [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md) must be configured in the app dashboard before they can be accessed with API calls.  
        - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map


```

### Examples

### Clone a section
Creates a copy of an existing section in the same program.

```curl
curl -X POST \
'https://www.wixapis.com/online-programs/v3/sections/ead4f8aa-7cd7-462b-a0a9-f9e83b161792/clone' \
-H 'Authorization: <AUTH>' \
-H 'Content-Type: application/json' \
-d '{}'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.onlinePrograms.sections.cloneSection(sectionId)
 Description: Clones a section.  The cloned section is added to the same program after the current last section. Translation content and extended field data are copied to the cloned section.  This method triggers both a Section Created lifecycle event for the new section and a Section Cloned action event containing the source and cloned sections.  Steps are cloned asynchronously after this call returns. The `section.total_steps` value in the response may not reflect the eventual number of cloned steps. Until cloning finishes, Get, List, and Query calls may return a lower actual step count.  A program can contain up to 1,000 sections. This call fails if cloning the section would exceed that limit.
 # Note: If the parameter `a.b` is listed under required parameters, `b` is only required if `a` is also present.
 Required parameters:  sectionId
 Method parameters: 
   param name: sectionId | type: string | description: GUID of the section to clone. | required: true | validation: format GUID
 Return type: PROMISE<CloneSectionResponse>
  - name: section | type: Section | description: Cloned section.  
     - name: _id | type: string | description: Section GUID.  | read-only: true | validation: format GUID
     - name: revision | type: string | description: Revision number, which increments by 1 each time the section is updated. To prevent conflicting changes, the current `revision` must be passed when updating the section.  | read-only: true | validation: format int64
     - name: _createdDate | type: Date | description: Date and time the section was created.  | read-only: true 
     - name: _updatedDate | type: Date | description: Date and time the section was last updated.  | read-only: true 
     - name: programId | type: string | description: Program GUID of the parent program. Provide it when creating a section. After creation, this value can't be changed.  | read-only: true | validation: format GUID, immutable
     - name: description | type: Description | description: Section title.  
        - name: title | type: string | description:   | validation: maxLength 500
     - name: totalSteps | type: integer | description: Total number of steps in the section.  | read-only: true | validation: format int32
     - name: ordering | type: number | description: Position rank used to order sections within a program. To reorder sections, call Move Section.  | read-only: true 
     - name: delayInDays | type: integer | description: Number of days before the section becomes available. The count starts from the program's start date for scheduled programs, or from the participant's enrollment date for self-paced ones. Someone joining a scheduled program after it began may find several sections already open. Use `0` for a section available from the start.  | validation: minimum 0, maximum 5000
     - name: extendedFields | type: ExtendedFields | description: Custom field data for the section. [Extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md) must be configured in the app dashboard before they can be accessed with API calls.  
        - name: namespaces | type: object | description: Extended field data. Each key corresponds to the namespace of the app that created the extended fields. The value of each key is structured according to the schema defined when the extended fields were configured.  You can only access fields for which you have the appropriate permissions.  Learn more about [extended fields](https://dev.wix.com/docs/rest/articles/getting-started/extended-fields.md).  | validation: format map


```

### Examples

### Clone a section
```javascript
import { sections } from "@wix/online-programs";

async function cloneSection() {
  const response = await sections.cloneSection(
    "ead4f8aa-7cd7-462b-a0a9-f9e83b161792",
  );

  return response;
}

/* Promise resolves to:
 * {
 *   "section": {
 *     "_id": "3b2734ad-62c9-4def-987f-5539533f7abc",
 *     "revision": "1",
 *     "programId": "f68c8cf0-95aa-4949-984e-efe800ede364",
 *     "description": { "title": "Section 1" }
 *   }
 * }
 */

```

### cloneSection (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { sections } from '@wix/online-programs';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { sections },
  // Include the auth strategy and host as relevant
});


async function cloneSection(sectionId) {
  const response = await myWixClient.sections.cloneSection(sectionId);
};
```

---