Skip to content

Search Knowledge Hub content (Preview)

Request

Search across Knowledge Hub content of all supported types in a single call: articles, content snippets, external content (webpages), file source content (uploaded documents), and internal articles.

Articles are returned as a single item per article, with their per-locale article_content variants nested under contents[]. Other content types are returned as flat objects with type, id, and title.

Requires the read_content OAuth scope. Set Intercom-Version: Preview.

Security
bearerAuth
Query
querystring, <= 500 characters

A free-text search term matched against the title and body of each content item. When omitted, returns the most recent content items. Keep it to 500 characters or fewer. The API doesn't currently reject longer values.

Example:query=getting started
pageinteger, >= 1

The page number to retrieve, starting at 1. Values above 5001 return a 400 parameter_invalid error.

Default:1
Example:page=1
per_pageinteger, [ 1 .. 50 ]

The number of items to return per page (1 to 50).

Default:10
Example:per_page=10
statesArray of strings

Filter by publication state. Accepts a comma-separated list or repeated params.

Items Enum:"published""draft"
Example:states=published,draft
localesArray of strings

Filter by locale codes (e.g. en, fr, de). Accepts a comma-separated list or repeated params.

Example:locales=en,fr
tag_idsArray of integers

Filter by tag IDs. Pairs with tag_operator to control match semantics. Accepts a comma-separated list or repeated params.

Example:tag_ids=1,2,3
tag_operatorstring

Match operator paired with tag_ids. IN returns content matching any of the given tags; NIN excludes content matching any of them.

Enum:"IN""NIN"
Example:tag_operator=IN
any_tag_idsArray of integers

Filter by tag IDs using OR semantics — returns content matching any of the given tags. Alternative to tag_ids + tag_operator. Accepts a comma-separated list or repeated params.

Example:any_tag_ids=1,2,3
folder_idsArray of integers

Filter by folder IDs. Must be sent together with folder_entity_type. Accepts a comma-separated list or repeated params.

Example:folder_ids=10,20
folder_entity_typestring

Required when folder_ids is provided. Identifies the entity type the folder IDs refer to.

Value:"folder"
Example:folder_entity_type=folder
content_typesArray of strings

Restrict the search to specific content types. When provided, this REPLACES the default content type set rather than filtering on top of it. Accepts a comma-separated list or repeated params.

Items Enum:"snippet""external_content""file_source_content""internal_article""article"
Example:content_types=article,snippet
copilot_statestring

Filter by whether the content is enabled for Copilot.

Enum:"on""off"
Example:copilot_state=on
fin_service_statestring

Filter by whether the content is enabled for Fin AI Agent (customer-facing service).

Enum:"on""off"
Example:fin_service_state=on
fin_sales_statestring

Filter by whether the content is enabled for Fin Sales Agent.

Enum:"on""off"
Example:fin_sales_state=on
created_by_idsArray of integers

Filter by the admin IDs that created the content. Accepts a comma-separated list or repeated params.

Example:created_by_ids=991267464,991267465
last_updated_by_idsArray of integers

Filter by the admin IDs that last updated the content. Accepts a comma-separated list or repeated params.

Example:last_updated_by_ids=991267464,991267465
created_at_afterinteger

Return content created at or after this time. Unix epoch seconds.

Example:created_at_after=1677253093
created_at_beforeinteger

Return content created at or before this time. Unix epoch seconds.

Example:created_at_before=1677861493
updated_at_afterinteger

Return content last updated at or after this time. Unix epoch seconds.

Example:updated_at_after=1677253093
updated_at_beforeinteger

Return content last updated at or before this time. Unix epoch seconds.

Example:updated_at_before=1677861493
Headers
Intercom-Versionstring(intercom_version_preview)

Preview Intercom API version. Used for closed beta endpoints or other features under managed availability.

Default:"Preview"
Value:"Preview"
Example:Preview
curl -i -X GET \
  'https://api.intercom.io/content/search?query=getting%20started&page=1&per_page=10&states=published%2Cdraft&locales=en%2Cfr&tag_ids=1%2C2%2C3&tag_operator=IN&any_tag_ids=1%2C2%2C3&folder_ids=10%2C20&folder_entity_type=folder&content_types=article%2Csnippet&copilot_state=on&fin_service_state=on&fin_sales_state=on&created_by_ids=991267464%2C991267465&last_updated_by_ids=991267464%2C991267465&created_at_after=1677253093&created_at_before=1677861493&updated_at_after=1677253093&updated_at_before=1677861493' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Intercom-Version: Preview'

Responses

Search successful

Bodyapplication/json
typestringrequired
Example:"list"
total_countintegerrequired

Total number of matching content items across all pages.

Example:2
pagesobjectrequired
Example:
{ "type": "pages", "page": 1, "per_page": 10, "total_pages": 1 }
dataArray of objectsrequired

An array of content items. Each item has a type, id, and title. Items with type: article additionally carry a contents[] array of per-locale article_content variants.

Example:
[ { "type": "article", "id": "55", "title": "Getting started with Intercom", "contents": [ … ] }, { "type": "content_snippet", "id": "200", "title": "Refund policy snippet" } ]
Response
{ "type": "list", "total_count": 2, "pages": { "type": "pages", "page": 1, "per_page": 10, "total_pages": 1 }, "data": [ { … }, { … } ] }