Use the CMS Search endpoints in Connect API to search for content in your marketing content workspace.
Step 1: Get a Workspace ID
First, find the ID of the content workspace or folder that you want to search. If you know the workspace ID, skip this step. Otherwise, retrieve a list of workspaces by issuing a GET request to the /services/data/{apiVersion}/connect/cms/spaces endpoint.
GET /services/data/{apiVersion}/connect/cms/spaces HTTP/1.1
Host: {subdomain}.my.salesforce.com
Authorization: Bearer YOUR_BEARER_TOKEN
If the request is successful, the response includes a list of workspaces.
{
"spaces": [
{
"apiName": "MCN_Workspace",
"id": "0ZuQZ0000004YSv0AM",
"name": "MCN Workspace",
"spaceType": {
"apiName": "marketing"
}
}
]
}
Copy the id value of the workspace to use in your search query.
Step 2: Search for Content
Issue a GET request to the /services/data/{apiVersion}/connect/cms/items/search endpoint. The request can include the query parameters listed in this table.
| Query Parameter | Data Type | Description |
|---|---|---|
contentSpaceOrFolderIds |
string | Required. The ID of the workspace or folder to search. |
contentTypeFQN |
string | The fully qualified name of a content type to filter by in the search. |
languages |
string | A locale code for filtering the results. Provide a locale code, such as en_CA or es_MX, or specify All to retrieve all languages. |
page |
int | The page number of results to return. The first page of results is page 0. |
pageSize |
int | The number of results to return per page. The maximum value is 250. The default value is 25. |
queryTerm |
string | The search term. Use * as a wildcard to return all content. |
scope |
string | The search scope. Use All to search across all fields, or TitleOnly to search titles only. |
Include the workspace ID in the contentSpaceOrFolderIds query parameter.
GET /services/data/{apiVersion}/connect/cms/items/search?queryTerm=*&scope=All&pageSize=250&contentSpaceOrFolderIds=0ZuQZ0000004YSv0AM HTTP/1.1
Host: {subdomain}.my.salesforce.com
Authorization: Bearer YOUR_BEARER_TOKEN
If the request is successful, the response includes a list of content items.
{
"count": 49,
"currentPageUri": "/services/data/v68.0/connect/cms/items/search?page=0&pageSize=250",
"nextPageUri": "/services/data/v68.0/connect/cms/items/search?page=1&pageSize=250",
"items": [
{
"id": "9PsQZ00000072oH0AQ",
"contentKey": "MCNUSLTYAES5CLRKYWXFUXDXW2BM",
"title": "Email_20260323_145319",
"status": "Draft",
"contentType": {
"developerName": "sfdc_cms__email",
"label": "Email"
},
"managedContentId": "20YQZ0000007G3F2AU",
"managedContentSpaceId": "0ZuQZ0000003xWc0AI"
}
]
}
The response includes the properties in this table.
| Property | Data Type | Description |
|---|---|---|
count |
int | The total number of results for the query. |
currentPageUri |
string | The address of the current page of results |
nextPageUri |
string | The address of the next page of results, if one exists. |
items |
int | An array of content items that match the search criteria. |
Each content item includes a contentKey that you can use to retrieve the full content details.
Filter Search Results
You can filter search results by content type or language.
Filter by Content Type
To return only emails or email templates, include the contentTypeFQN query parameter. This example returns only content with the content type sfdc_cms__email.
GET /services/data/{apiVersion}/connect/cms/items/search?queryTerm=*&scope=All&pageSize=250&contentSpaceOrFolderIds=0ZuQZ0000004YSv0AM&contentTypeFQN=sfdc_cms__email HTTP/1.1
Host: {subdomain}.my.salesforce.com
Authorization: Bearer YOUR_BEARER_TOKEN
Filter by Language
To return content in a specific language, include the languages query parameter. This example returns only items with the en_US locale code.
GET /services/data/{apiVersion}/connect/cms/items/search?queryTerm=*&scope=All&pageSize=250&contentSpaceOrFolderIds=0ZuQZ0000004YSv0AM&languages=en_US HTTP/1.1
Host: {subdomain}.my.salesforce.com
Authorization: Bearer YOUR_BEARER_TOKEN
See Also
- API Reference: Search CMS Content