Experience Cloud Sites API

Manage Experience Cloud sites, themes, and configurations. Provides programmatic access to create, update, and retrieve site settings, branding, and navigation for digital experience portals.

OpenAPI Specification

salesforce-experience-cloud-sites-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Salesforce Experience Cloud Sites API
  description: >-
    Manage Experience Cloud sites, themes, and configurations. Provides
    programmatic access to create, update, and retrieve site settings, branding,
    and navigation for digital experience portals. Part of the Salesforce
    Connect REST API.
  version: 59.0.0
  contact:
    name: Salesforce Developer Support
    url: https://developer.salesforce.com/
  license:
    name: Salesforce Master Subscription Agreement
    url: https://www.salesforce.com/company/legal/sfdc-website-terms-of-service/
servers:
  - url: https://{instance}.salesforce.com/services/data/v59.0
    description: Salesforce Instance
    variables:
      instance:
        default: yourInstance
        description: Your Salesforce instance name or custom domain
security:
  - oauth2: []
  - bearerAuth: []
tags:
  - name: Navigation
    description: Site navigation menu operations
  - name: Publish
    description: Site publishing operations
  - name: Sites
    description: Experience Cloud site management operations
  - name: Themes
    description: Site theme and branding operations
paths:
  /connect/communities:
    get:
      operationId: listExperienceCloudSites
      summary: Salesforce Experience Cloud List Experience Cloud Sites
      description: >-
        Returns a list of all Experience Cloud sites (communities) available
        to the context user. Includes site metadata such as name, status,
        URL path prefix, and template information.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/StatusFilter'
      responses:
        '200':
          description: Successfully retrieved list of Experience Cloud sites
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommunityListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      operationId: createExperienceCloudSite
      summary: Salesforce Experience Cloud Create an Experience Cloud Site
      description: >-
        Creates a new Experience Cloud site with the specified name, template,
        and URL path prefix. Requires the Create and Set Up Experiences
        permission.
      tags:
        - Sites
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCommunityInput'
      responses:
        '201':
          description: Experience Cloud site created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Community'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /connect/communities/{communityId}:
    get:
      operationId: getExperienceCloudSite
      summary: Salesforce Experience Cloud Get an Experience Cloud Site
      description: >-
        Returns detailed information about a specific Experience Cloud site
        including its name, description, status, URL path prefix, template
        type, and login and self-registration URLs.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/CommunityId'
      responses:
        '200':
          description: Successfully retrieved Experience Cloud site details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Community'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: updateExperienceCloudSite
      summary: Salesforce Experience Cloud Update an Experience Cloud Site
      description: >-
        Updates the properties of an existing Experience Cloud site such as
        its name, description, and status.
      tags:
        - Sites
      parameters:
        - $ref: '#/components/parameters/CommunityId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCommunityInput'
      responses:
        '200':
          description: Experience Cloud site updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Community'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /connect/communities/{communityId}/publish:
    post:
      operationId: publishExperienceCloudSite
      summary: Salesforce Experience Cloud Publish an Experience Cloud Site
      description: >-
        Publishes the specified Experience Cloud site, making all pending
        changes live. Requires the Create and Set Up Experiences permission.
      tags:
        - Publish
      parameters:
        - $ref: '#/components/parameters/CommunityId'
      responses:
        '200':
          description: Experience Cloud site published successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishStatus'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /connect/communities/{communityId}/navigation-menu/navigation-menu-items:
    get:
      operationId: getNavigationMenuItems
      summary: Salesforce Experience Cloud Get Navigation Menu Items
      description: >-
        Returns the navigation menu items configured for the specified
        Experience Cloud site. Includes menu labels, target URLs, access
        restrictions, and hierarchy structure.
      tags:
        - Navigation
      parameters:
        - $ref: '#/components/parameters/CommunityId'
        - name: navigationLinkSetId
          in: query
          description: The ID of the navigation link set to retrieve
          schema:
            type: string
        - name: menuItemTypesToSkip
          in: query
          description: Comma-separated list of menu item types to exclude
          schema:
            type: string
        - name: publishStatus
          in: query
          description: Filter by publish status of the navigation menu
          schema:
            type: string
            enum:
              - Draft
              - Live
      responses:
        '200':
          description: Successfully retrieved navigation menu items
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NavigationMenuItemCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /connect/communities/{communityId}/themes:
    get:
      operationId: getSiteThemes
      summary: Salesforce Experience Cloud Get Site Themes
      description: >-
        Returns the available themes for the specified Experience Cloud site
        including branding properties, colors, fonts, and images.
      tags:
        - Themes
      parameters:
        - $ref: '#/components/parameters/CommunityId'
      responses:
        '200':
          description: Successfully retrieved site themes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThemeCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: Salesforce OAuth 2.0 authentication
      flows:
        authorizationCode:
          authorizationUrl: https://login.salesforce.com/services/oauth2/authorize
          tokenUrl: https://login.salesforce.com/services/oauth2/token
          scopes:
            api: Access and manage your data
            web: Access the web application
            full: Full access
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: OAuth2
      description: Bearer token obtained through OAuth 2.0 flow
  parameters:
    CommunityId:
      name: communityId
      in: path
      required: true
      description: The ID of the Experience Cloud site (community)
      schema:
        type: string
    StatusFilter:
      name: status
      in: query
      description: >-
        Filter sites by status. Valid values are Live, Inactive,
        DownForMaintenance, UnderConstruction.
      schema:
        type: string
        enum:
          - Live
          - Inactive
          - DownForMaintenance
          - UnderConstruction
  schemas:
    CommunityListResponse:
      type: object
      description: Response containing a list of Experience Cloud sites
      properties:
        communities:
          type: array
          description: List of Experience Cloud sites
          items:
            $ref: '#/components/schemas/Community'
        total:
          type: integer
          description: Total number of sites available
    Community:
      type: object
      description: Represents an Experience Cloud site (community)
      properties:
        allowChatterAccessWithoutLogin:
          type: boolean
          description: Whether guest users can access Chatter
        allowMembersToFlag:
          type: boolean
          description: Whether community members can flag content
        description:
          type: string
          description: Description of the Experience Cloud site
        id:
          type: string
          description: Unique identifier of the site
        invitationsEnabled:
          type: boolean
          description: Whether invitations are enabled for the site
        knowledgeableEnabled:
          type: boolean
          description: Whether the knowledgeable people feature is enabled
        loginUrl:
          type: string
          format: uri
          description: URL for the site login page
        memberVisibilityEnabled:
          type: boolean
          description: Whether members can see other members
        name:
          type: string
          description: Name of the Experience Cloud site
        nicknameDisplayEnabled:
          type: boolean
          description: Whether nicknames are displayed instead of full names
        privateMessagesEnabled:
          type: boolean
          description: Whether private messaging is enabled
        reputationEnabled:
          type: boolean
          description: Whether the reputation system is enabled
        sendWelcomeEmail:
          type: boolean
          description: Whether welcome emails are sent to new members
        siteAsContainerEnabled:
          type: boolean
          description: Whether the site-as-container feature is enabled
        siteUrl:
          type: string
          format: uri
          description: The URL of the Experience Cloud site
        status:
          type: string
          description: Current status of the site
          enum:
            - Live
            - Inactive
            - DownForMaintenance
            - UnderConstruction
        templateName:
          type: string
          description: Name of the template used for the site
        url:
          type: string
          format: uri
          description: API resource URL for this site
        urlPathPrefix:
          type: string
          description: URL path prefix for the site
    CreateCommunityInput:
      type: object
      description: Input for creating a new Experience Cloud site
      required:
        - name
        - templateName
        - urlPathPrefix
      properties:
        description:
          type: string
          description: Description for the new site
        name:
          type: string
          description: Name for the new site
        templateName:
          type: string
          description: Template to use for the site
        urlPathPrefix:
          type: string
          description: URL path prefix for the site
    UpdateCommunityInput:
      type: object
      description: Input for updating an Experience Cloud site
      properties:
        description:
          type: string
          description: Updated description for the site
        name:
          type: string
          description: Updated name for the site
        status:
          type: string
          description: Updated status for the site
          enum:
            - Live
            - Inactive
            - DownForMaintenance
    PublishStatus:
      type: object
      description: Status of a publish operation
      properties:
        id:
          type: string
          description: The ID of the publish operation
        status:
          type: string
          description: Status of the publish operation
    NavigationMenuItemCollection:
      type: object
      description: Collection of navigation menu items
      properties:
        menuItems:
          type: array
          description: List of navigation menu items
          items:
            $ref: '#/components/schemas/NavigationMenuItem'
        totalMenuItems:
          type: integer
          description: Total number of menu items
    NavigationMenuItem:
      type: object
      description: A navigation menu item in an Experience Cloud site
      properties:
        id:
          type: string
          description: Unique identifier of the menu item
        label:
          type: string
          description: Display label of the menu item
        menuItemType:
          type: string
          description: Type of the menu item
          enum:
            - ExternalLink
            - InternalLink
            - MenuLabel
            - NavigationalTopic
            - SalesforceObject
            - GlobalAction
        position:
          type: integer
          description: Display position order
        target:
          type: string
          description: Target URL or page reference
        targetPreferences:
          type: string
          description: Target opening behavior
        subMenu:
          type: array
          description: Nested submenu items
          items:
            $ref: '#/components/schemas/NavigationMenuItem'
    ThemeCollection:
      type: object
      description: Collection of site themes
      properties:
        themes:
          type: array
          description: List of available themes
          items:
            $ref: '#/components/schemas/Theme'
    Theme:
      type: object
      description: Theme configuration for an Experience Cloud site
      properties:
        id:
          type: string
          description: Unique identifier of the theme
        name:
          type: string
          description: Name of the theme
        themeType:
          type: string
          description: Type of the theme
        properties:
          type: object
          description: Theme properties including colors, fonts, and images
          additionalProperties:
            type: string
    ErrorResponse:
      type: object
      description: Standard Salesforce API error response
      properties:
        errorCode:
          type: string
          description: Salesforce error code
        message:
          type: string
          description: Human-readable error message
  responses:
    BadRequest:
      description: Bad request - invalid input parameters
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized - invalid or expired OAuth token
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: Forbidden - insufficient permissions
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ErrorResponse'