> 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

# Resource: Programs

# Type: Program Object

# Link: https://dev.wix.com/docs/api-reference/business-management/online-programs/programs/program-object.md

## Description: A program is an Online Programs course, challenge, or structured journey.
Programs contain lifecycle state, public description, timeline, access rules,
pricing, SEO, rewards, and summary information for their content.

## Schema:

```json
 Type: Program Object | type: Program
 Description: A program is an Online Programs course, challenge, or structured journey.
Programs contain lifecycle state, public description, timeline, access rules,
pricing, SEO, rewards, and summary information for their content.
       - name: id  | type: string | description: Program ID.
           - name: value  | type: string | description: 
       - name: revision  | type: string | description: Revision number, which increments by 1 each time the program is updated. To prevent conflicting changes, the current revision must be specified when updating a program.
           - name: value  | type: string | description: 
       - name: createdDate  | type: string | description: Date and time the program was created.
           - name: seconds  | type: string | description: 
           - name: nanos  | type: number | description: 
       - name: updatedDate  | type: string | description: Date and time the program was last updated.
       - name: status  | type: string | description: Current program lifecycle status.
           enum: DRAFT, PUBLISHED, ENDED, ARCHIVED
       - name: statusUpdatedDate  | type: string | description: Date and time when `status` last changed.
       - name: categoryIds  | type: Array<string> | description: Category IDs assigned to the program. This field is read-only; use the Program Categories API to assign categories.
       - name: description  | type: Description | description: Public-facing program title, details, and media.
           - name: title  | type: string | description: Program title.
           - name: details  | type: string | description: Detailed program description.
       - name: timeline  | type: Timeline | description: Program timeline settings. Use this to configure self-paced or scheduled programs.
           - name: selfPaced  | type: boolean | description: Whether participants can progress at their own pace.
           - name: startDate  | type: string | description: Local date when the scheduled program starts.
           - name: durationInDays  | type: number | description: Scheduled program duration in days.
               - name: value  | type: number | description: 
       - name: restrictions  | type: Restrictions | description: Program access, participation, and progression rules.
           - name: maxParticipants  | type: number | description: Maximum number of active participants allowed in the program.
           - name: hideFutureSteps  | type: boolean | description: Whether future steps are hidden from participants until they become available.
           - name: resolveStepsInOrder  | type: boolean | description: Whether participants must complete steps in order.
           - name: shareProgress  | type: boolean | description: Whether participants can share progress in the connected group.
           - name: accessType  | type: string | description: Program discovery and join access.
               enum: PUBLIC, PRIVATE, SECRET
       - name: price  | type: Money | description: Optional one-time payment price for joining the program.
           - name: value  | type: string | description: Monetary amount. Decimal string with a period as a decimal separator (e.g., 3.99).
           - name: currency  | type: string | description: Currency code. Must be valid ISO 4217 currency code (e.g., USD).
       - name: seo  | type: Seo | description: SEO settings used for the program page.
           - name: slug  | type: string | description: Unique URL slug for the program page.
           - name: seoData  | type: SeoSchema | description: Advanced SEO schema data.
               - name: tags  | type: Array<Tag> | description: SEO tag information.
               - name: settings  | type: Settings | description: SEO general settings.
           - name: url  | type: PageUrl | description: Program page URL.
               - name: base  | type: string | description: The base URL. For premium sites, this is the domain. For free sites, this is the site URL. For example, `mysite.wixsite.com/mysite`.
               - name: path  | type: string | description: The relative path for the page within the site. For example, `/product-page/a-product`.
           - name: imageUrl  | type: string | description: Image URL derived from the program description media.
           - name: imageAlt  | type: string | description: Alternative text for the SEO image.
           - name: courseWorkload  | type: string | description: Approximate SEO program duration in ISO 8601 duration format.
       - name: rewards  | type: Array<Reward> | description: Rewards assigned to participants when they reach configured milestones.
           - name: trigger  | type: string | description: Program milestone that grants the reward. If omitted, the trigger defaults to `JOINED_TO_PROGRAM` for compatibility with existing rewards.
               enum: JOINED_TO_PROGRAM, STEP_COMPLETED, ALL_STEPS_COMPLETED
           - name: badgeIds  | type: Array<string> | description: Badge IDs to assign when the reward is granted.
           - name: certificate  | type: Certificate | description: Certificate assigned when the reward is granted.
               - name: id  | type: string | description: Certificate ID. Currently this is the program GUID.
               - name: connectedDate  | type: string | description: Date and time the certificate was connected to the program.
       - name: socialGroupId  | type: string | description: ID of the social group connected to the program, if one exists.
       - name: extendedFields  | type: ExtendedFields | description: Custom fields for apps that extend the Program entity.
           - 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).
       - name: shouldSendInvoice  | type: boolean | description: Whether to send an invoice after a single-payment purchase. When false, the buyer receives a payment confirmation email instead.
       - name: videoStepsSettings  | type: VideoStepsSettings | description: Settings that control how video steps behave in this program.
           - name: autoNavigate  | type: boolean | description: Whether the participant is automatically moved to the next video step after finishing the current one.
           - name: requiredCompletionPercentage  | type: number | description: Percentage of a video that must be watched to complete a video step.
       - name: contentSummary  | type: ContentSummary | description: Read-only counts of content entities in the program.
           - name: stepCount  | type: number | description: Number of steps in the program.
           - name: sectionCount  | type: number | description: Number of sections in the program.
       - name: ownerUserId  | type: string | description: ID of the site user who created the program.

```