openapi: 3.1.0 info: title: Salesforce Experience Cloud Salesforce CMS Managed Content API description: >- Retrieve and search published managed content versions for Experience Cloud sites. Provides endpoints for querying managed content delivery channels and searching content across workspaces. 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 description: Salesforce Instance variables: instance: default: yourInstance description: Your Salesforce instance name or custom domain security: - oauth2: [] - bearerAuth: [] tags: - name: Delivery Channels description: Managed content delivery channel operations - name: Managed Content description: Managed content retrieval and search paths: /cms/delivery/channels: get: operationId: listDeliveryChannels summary: Salesforce Experience Cloud List CMS Delivery Channels description: >- Returns a list of managed content delivery channels available to the context user. Channels are destinations where content is published for delivery to Experience Cloud sites or external applications. tags: - Delivery Channels parameters: - $ref: '#/components/parameters/PageSize' - $ref: '#/components/parameters/PageParam' responses: '200': description: Successfully retrieved delivery channels content: application/json: schema: $ref: '#/components/schemas/DeliveryChannelCollection' '401': $ref: '#/components/responses/Unauthorized' /cms/delivery/channels/{channelId}: get: operationId: getDeliveryChannel summary: Salesforce Experience Cloud Get a Delivery Channel description: >- Returns details about a specific managed content delivery channel including its name, type, and available content types. tags: - Delivery Channels parameters: - $ref: '#/components/parameters/ChannelId' responses: '200': description: Successfully retrieved delivery channel content: application/json: schema: $ref: '#/components/schemas/DeliveryChannel' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /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: 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 bearerAuth: type: http scheme: bearer bearerFormat: OAuth2 description: Bearer token obtained through OAuth 2.0 flow parameters: ChannelId: name: channelId in: path required: true description: The ID of the CMS delivery channel schema: type: string PageSize: name: pageSize in: query description: Number of items per page (default 25, max 250) schema: type: integer default: 25 maximum: 250 PageParam: name: page in: query description: Page number to retrieve (0-indexed) schema: type: integer default: 0 schemas: DeliveryChannelCollection: type: object description: Collection of delivery channels properties: channels: type: array items: $ref: '#/components/schemas/DeliveryChannel' currentPageUrl: type: string format: uri nextPageUrl: type: string format: uri totalCount: type: integer DeliveryChannel: type: object description: A managed content delivery channel properties: channelId: type: string description: Unique identifier for the channel channelName: type: string description: Display name of the channel channelType: type: string description: Type of channel enum: - ExperienceCloudSite - CustomChannel domain: type: string description: Domain associated with the channel isDomainLocked: type: boolean description: Whether the domain is locked isSearchable: type: boolean description: Whether content is searchable 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 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 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 ErrorResponse: type: object description: Standard Salesforce API error response properties: errorCode: type: string message: type: string 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' NotFound: description: Resource not found content: application/json: schema: type: array items: $ref: '#/components/schemas/ErrorResponse'