From 6c802190e9ac0f7d2f26016615d955778c0993b6 Mon Sep 17 00:00:00 2001 From: kilian-tennyson Date: Wed, 10 Jun 2026 16:25:59 +0100 Subject: [PATCH] Document Tier 1 + Tier 2 content/search filter params (Preview) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds 17 new query parameters to GET /content/search in the Preview spec to match the filters the monolith controller already accepts. Tier 1 — companion to intercom/intercom#520626: states, locales, tag_ids, tag_operator, any_tag_ids, folder_ids, folder_entity_type Tier 2 — companion to intercom/intercom#521153: content_types, copilot_state, fin_service_state, fin_sales_state, created_by_ids, last_updated_by_ids, created_at_after, created_at_before, updated_at_after, updated_at_before Both tiers ship the Knowledge Hub UI filter parity to the public API (tracking: intercom/intercom#510966). Documenting them together avoids splitting the natural review unit. Conventions: - Array params use style: form, explode: false (CSV). Controller also accepts repeated form; descriptions note both are supported. - Unix epoch params use type: integer (matches the activity-logs search request-body precedent and the order's explicit directive). - 'on'/'off' enum values are quoted to avoid YAML 1.1 boolean coercion. - content_types description calls out that providing it REPLACES the default content type set rather than filtering on top. Surgical edit: only descriptions/0/api.intercom.io.yaml, 192 insertions, 0 deletions. Developer-docs sync is a separate follow-up. --- descriptions/0/api.intercom.io.yaml | 192 ++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index bbd9ddf..deea6a0 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -8590,6 +8590,198 @@ paths: default: 10 minimum: 1 maximum: 50 + - name: states + in: query + required: false + description: Filter by publication state. Accepts a comma-separated list + or repeated params. + example: published,draft + schema: + type: array + items: + type: string + enum: + - published + - draft + style: form + explode: false + - name: locales + in: query + required: false + description: Filter by locale codes (e.g. `en`, `fr`, `de`). Accepts a + comma-separated list or repeated params. + example: en,fr + schema: + type: array + items: + type: string + style: form + explode: false + - name: tag_ids + in: query + required: false + description: Filter by tag IDs. Pairs with `tag_operator` to control match + semantics. Accepts a comma-separated list or repeated params. + example: 1,2,3 + schema: + type: array + items: + type: integer + style: form + explode: false + - name: tag_operator + in: query + required: false + description: Match operator paired with `tag_ids`. `IN` returns content + matching any of the given tags; `NIN` excludes content matching any + of them. + example: IN + schema: + type: string + enum: + - IN + - NIN + - name: any_tag_ids + in: query + required: false + description: 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: 1,2,3 + schema: + type: array + items: + type: integer + style: form + explode: false + - name: folder_ids + in: query + required: false + description: Filter by folder IDs. Must be sent together with + `folder_entity_type`. Accepts a comma-separated list or repeated params. + example: 10,20 + schema: + type: array + items: + type: integer + style: form + explode: false + - name: folder_entity_type + in: query + required: false + description: Required when `folder_ids` is provided. Identifies the entity + type the folder IDs refer to. + example: folder + schema: + type: string + enum: + - folder + - name: content_types + in: query + required: false + description: 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. + example: article,snippet + schema: + type: array + items: + type: string + enum: + - snippet + - external_content + - file_source_content + - internal_article + - article + style: form + explode: false + - name: copilot_state + in: query + required: false + description: Filter by whether the content is enabled for Copilot. + example: 'on' + schema: + type: string + enum: + - 'on' + - 'off' + - name: fin_service_state + in: query + required: false + description: Filter by whether the content is enabled for Fin AI Agent + (customer-facing service). + example: 'on' + schema: + type: string + enum: + - 'on' + - 'off' + - name: fin_sales_state + in: query + required: false + description: Filter by whether the content is enabled for Fin Sales Agent. + example: 'on' + schema: + type: string + enum: + - 'on' + - 'off' + - name: created_by_ids + in: query + required: false + description: Filter by the admin IDs that created the content. Accepts a + comma-separated list or repeated params. + example: 991267464,991267465 + schema: + type: array + items: + type: integer + style: form + explode: false + - name: last_updated_by_ids + in: query + required: false + description: Filter by the admin IDs that last updated the content. + Accepts a comma-separated list or repeated params. + example: 991267464,991267465 + schema: + type: array + items: + type: integer + style: form + explode: false + - name: created_at_after + in: query + required: false + description: Return content created at or after this time. Unix epoch + seconds. + example: 1677253093 + schema: + type: integer + - name: created_at_before + in: query + required: false + description: Return content created at or before this time. Unix epoch + seconds. + example: 1677861493 + schema: + type: integer + - name: updated_at_after + in: query + required: false + description: Return content last updated at or after this time. Unix + epoch seconds. + example: 1677253093 + schema: + type: integer + - name: updated_at_before + in: query + required: false + description: Return content last updated at or before this time. Unix + epoch seconds. + example: 1677861493 + schema: + type: integer tags: - Content operationId: searchContent