Salesforce Experience Cloud Managed Content API

Managed content retrieval and search

Documentation

📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.exp_cloud_apis.meta/exp_cloud_apis/
📖
Authentication
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_oauth_and_connected_apps.htm
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.communities_dev.meta/communities_dev/communities_dev_intro_before.htm
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/quickstart_dev_org.htm
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_cms.htm
📖
GettingStarted
https://developer.salesforce.com/docs/platform/cms/guide/cms-developer-guide.html
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.exp_cloud_lwr.meta/exp_cloud_lwr/template_overview.htm
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.graphql.meta/graphql/
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.graphql.meta/graphql/
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_managed_content_resources.htm
📖
GettingStarted
https://developer.salesforce.com/docs/platform/cms/guide/cms-dev-retrieve-cms-content-with-a-connected-app.html
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/connect_resources_cms_delivery_content.htm
📖
Documentation
https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_get_started.htm
📖
GettingStarted
https://developer.salesforce.com/docs/atlas.en-us.uiapi.meta/uiapi/ui_api_get_started.htm

Specifications

Other Resources

OpenAPI Specification

salesforce-experience-cloud-managed-content-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Salesforce Experience Cloud Salesforce CMS Connect Actions Managed Content API
  description: Manage content, channels, and media in Experience Cloud CMS. Supports creating, updating, and delivering managed content across channels for headless content delivery and site publishing. 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/connect/cms
  description: Salesforce Instance
  variables:
    instance:
      default: yourInstance
      description: Your Salesforce instance name or custom domain
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Managed Content
  description: Managed content retrieval and search
paths:
  /cms/delivery/channels/{channelId}/contents/query:
    get:
      operationId: queryChannelContent
      summary: Salesforce Experience Cloud Query Channel Content
      description: Returns published managed content versions for the specified delivery channel. Supports filtering by content type, language, and content keys. Used for headless content delivery to Experience Cloud sites and external applications.
      tags:
      - Managed Content
      parameters:
      - $ref: '#/components/parameters/ChannelId'
      - name: managedContentType
        in: query
        required: true
        description: The developer name of the managed content type to query (e.g., news, cms_image, cms_document)
        schema:
          type: string
      - name: language
        in: query
        description: Language code to filter content (e.g., en_US)
        schema:
          type: string
      - name: contentKeys
        in: query
        description: Comma-separated list of content keys to retrieve
        schema:
          type: string
      - name: managedContentIds
        in: query
        description: Comma-separated list of managed content IDs
        schema:
          type: string
      - name: topics
        in: query
        description: Comma-separated list of topic names to filter by
        schema:
          type: string
      - name: showAbsoluteUrl
        in: query
        description: Whether to return absolute URLs for media content
        schema:
          type: boolean
          default: false
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageParam'
      responses:
        '200':
          description: Successfully retrieved managed content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagedContentVersionCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /cms/delivery/channels/{channelId}/contents/search:
    get:
      operationId: searchChannelContent
      summary: Salesforce Experience Cloud Search Channel Content
      description: Searches published managed content in the specified delivery channel using a search term. Returns matching content with relevance scoring.
      tags:
      - Managed Content
      parameters:
      - $ref: '#/components/parameters/ChannelId'
      - name: q
        in: query
        required: true
        description: Search term to find matching content
        schema:
          type: string
      - name: managedContentType
        in: query
        description: Filter search results by content type
        schema:
          type: string
      - name: language
        in: query
        description: Language code to filter results
        schema:
          type: string
      - name: showAbsoluteUrl
        in: query
        description: Whether to return absolute URLs
        schema:
          type: boolean
          default: false
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageParam'
      responses:
        '200':
          description: Successfully searched managed content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagedContentVersionCollection'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /cms/delivery/channels/{channelId}/contents/{contentKeyOrId}:
    get:
      operationId: getChannelContentItem
      summary: Salesforce Experience Cloud Get a Content Item from Channel
      description: Returns a specific published managed content version from the specified delivery channel by content key or managed content ID.
      tags:
      - Managed Content
      parameters:
      - $ref: '#/components/parameters/ChannelId'
      - name: contentKeyOrId
        in: path
        required: true
        description: The content key or managed content ID
        schema:
          type: string
      - name: language
        in: query
        description: Language variant to retrieve
        schema:
          type: string
      - name: showAbsoluteUrl
        in: query
        description: Whether to return absolute URLs
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Successfully retrieved content item
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagedContentVersion'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /communities/{communityId}/managed-content/delivery:
    get:
      operationId: queryCommunityManagedContent
      summary: Salesforce Experience Cloud Query Community Managed Content
      description: Returns published managed content for the specified Experience Cloud site. Similar to channel-based delivery but scoped to a specific community context.
      tags:
      - Managed Content
      parameters:
      - name: communityId
        in: path
        required: true
        description: The ID of the Experience Cloud site
        schema:
          type: string
      - name: managedContentType
        in: query
        required: true
        description: Content type developer name to query
        schema:
          type: string
      - name: language
        in: query
        description: Language code to filter content
        schema:
          type: string
      - name: topics
        in: query
        description: Comma-separated list of topic names
        schema:
          type: string
      - name: showAbsoluteUrl
        in: query
        description: Whether to return absolute URLs
        schema:
          type: boolean
          default: false
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageParam'
      responses:
        '200':
          description: Successfully retrieved community managed content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagedContentVersionCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /communities/{communityId}/managed-content/delivery/search:
    get:
      operationId: searchCommunityManagedContent
      summary: Salesforce Experience Cloud Search Community Managed Content
      description: Searches published managed content within the specified Experience Cloud site using a search term.
      tags:
      - Managed Content
      parameters:
      - name: communityId
        in: path
        required: true
        description: The ID of the Experience Cloud site
        schema:
          type: string
      - name: q
        in: query
        required: true
        description: Search term
        schema:
          type: string
      - name: managedContentType
        in: query
        description: Filter by content type
        schema:
          type: string
      - name: language
        in: query
        description: Language code
        schema:
          type: string
      - $ref: '#/components/parameters/PageSize'
      - $ref: '#/components/parameters/PageParam'
      responses:
        '200':
          description: Successfully searched community content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagedContentVersionCollection'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    ManagedContentVersionCollection:
      type: object
      description: Collection of managed content versions
      properties:
        currentPageUrl:
          type: string
          format: uri
        items:
          type: array
          items:
            $ref: '#/components/schemas/ManagedContentVersion'
        managedContentTypes:
          type: object
          description: Map of content type developer names to labels
          additionalProperties:
            type: object
            properties:
              developerName:
                type: string
              label:
                type: string
        nextPageUrl:
          type: string
          format: uri
        total:
          type: integer
          description: Total number of matching items
        totalCount:
          type: integer
    ContentNode:
      type: object
      description: A content node representing a field value in managed content
      properties:
        altText:
          type: string
          description: Alternative text (for media nodes)
        contentKey:
          type: string
          description: Content key for referenced content
        fileName:
          type: string
          description: File name (for media nodes)
        mediaType:
          type: string
          description: Media type (for media nodes)
        mimeType:
          type: string
          description: MIME type (for media nodes)
        nodeType:
          type: string
          description: Type of content node
          enum:
          - Media
          - MediaSource
          - MultilineText
          - NameField
          - RichText
          - Text
          - Url
          - DateTime
        referenceId:
          type: string
          description: Reference ID for the content
        title:
          type: string
          description: Title of the node
        unauthenticatedUrl:
          type: string
          format: uri
          description: Public URL for unauthenticated access
        url:
          type: string
          format: uri
          description: URL value of the node
        value:
          type: string
          description: Text or value content of the node
    ManagedContentVersion:
      type: object
      description: A published managed content version
      properties:
        contentKey:
          type: string
          description: Unique content key
        contentNodes:
          type: object
          description: Map of field names to content nodes containing the content field values
          additionalProperties:
            $ref: '#/components/schemas/ContentNode'
        contentUrlName:
          type: string
          description: URL-friendly name for the content
        language:
          type: string
          description: Language code of this content version
        managedContentId:
          type: string
          description: Salesforce record ID of the managed content
        publishedDate:
          type: string
          format: date-time
          description: When this version was published
        title:
          type: string
          description: Title of the content
        type:
          type: string
          description: Content type developer name
        typeLabel:
          type: string
          description: Content type display label
        unauthenticatedUrl:
          type: string
          format: uri
          description: Public URL for unauthenticated access
    ErrorResponse:
      type: object
      description: Standard Salesforce API error response
      properties:
        errorCode:
          type: string
        message:
          type: string
  responses:
    Unauthorized:
      description: Unauthorized - invalid or expired OAuth token
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: Bad request - invalid input parameters
      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'
  parameters:
    PageParam:
      name: page
      in: query
      description: Page number to retrieve (0-indexed)
      schema:
        type: integer
        default: 0
    PageSize:
      name: pageSize
      in: query
      description: Number of items per page (default 25, max 250)
      schema:
        type: integer
        default: 25
        maximum: 250
    ChannelId:
      name: channelId
      in: path
      required: true
      description: The ID of the CMS delivery channel
      schema:
        type: string
  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
            content: Manage CMS content
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: OAuth2
      description: Bearer token obtained through OAuth 2.0 flow