---
title: "Get Integration Catalog"
method: GET
path: "/api/integrations/catalog"
tags: ["integrations"]
---

# Get Integration Catalog

`GET /api/integrations/catalog`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/integrations/catalog`
- Auth: none declared

Browse installable integrations in the catalog. mode='installed' limits the list to what this
identity already has; mode='discover' shows what it could add. query, category, capability,
trust, family, attention and featured are facets over that set, and page/size bound the result.
Returns catalog entries, NOT integration publications - to list the templates you have published,
use list_integration_templates, which takes scope='mine'.

## Query parameters

- `mode` 'installed' | 'discover', nullable
- `query` string, nullable
- `category` string, nullable
- `capability` string, nullable
- `attention` boolean, nullable
- `featured` boolean, nullable
- `trust` string, nullable
- `family` string, nullable
- `page` integer
- `size` integer

## Headers

- `x-impersonate-identity-id` string, nullable

## Response `200`

Successful Response

- CatalogItemOut[]
  - `definition_id` string, uuid, nullable, required
  - `slug` string, required
  - `name` string, required
  - `category` string, nullable
  - `family_key` string, nullable
  - `capabilities` string[]
  - `featured` boolean
  - `publisher_trust` string, required
  - `vendor` string, nullable
  - `description` string, nullable
  - `icon_url` string, nullable
  - `catalog_key` string, required
  - `publication_id` string, uuid, nullable
  - `publication_series_id` string, uuid, nullable
  - `publication_version` integer, nullable
  - `installed_publication_version` integer, nullable
  - `update_available` boolean
  - `installed` boolean, required
  - `installed_library_ids` string[]
  - `installation_id` string, uuid, nullable
  - `selected_installation_id` string, uuid, nullable
  - `installation_count` integer
  - `installation_ambiguous` boolean
  - `installations` InstallationSummaryOut[]
    - `installation_id` string, uuid, required
    - `definition_id` string, uuid, required
    - `library_id` string, uuid, required
    - `library_name` string, required
    - `library_role` string, required
    - `state` string, required
    - `installed_publication_version` integer, nullable
    - `allowed_actions` CatalogActionId[]
  - `aggregate_state` 'setup_needed' | 'verifying' | 'connected' | 'partially_connected' | 'needs_attention' | 'disabled' | 'error': The single row-level state, computed from a definition's facet states.
  - `facets` FacetStatusOut[]
    - `direction` 'provides_tools' | 'uses_mind' | 'feeds_mind', required: The capability direction a facet reports on.
    - `state` 'setup_needed' | 'verifying' | 'connected' | 'stale' | 'needs_reauthorization' | 'disabled' | 'error' | 'unsupported', required: One capability direction's status, as a handler reports it.
    - `reason_code` string, nullable
    - `reason_text` string, nullable
    - `evidence_at` string, date-time, nullable
    - `allowed_actions` CatalogActionId[]
  - `connection_summaries` ConnectionSummaryOut[]
    - `ref` string, required
    - `label` string, required
    - `state` 'setup_needed' | 'verifying' | 'connected' | 'stale' | 'needs_reauthorization' | 'disabled' | 'error' | 'unsupported', required: One capability direction's status, as a handler reports it.
    - `scope` string, nullable
    - `evidence_at` string, date-time, nullable
    - `personal` boolean
    - `actions` CatalogActionId[]
    - `capture_connection_id` string, uuid, nullable
  - `connection_count` integer
  - `connection_noun` 'account' | 'agent' | 'environment' | 'server': User-facing noun for one separately manageable connection.
  - `setup` SetupOut: What the viewer must do to configure this installation (from ``SetupDescriptor``). Carries the concrete setup CONTENT the retired hard-coded connect UI held as frontend constants, so no client hard-codes an app list again: the thinqOS MCP ``server_url``, the primary-Mind ``behavior_prompt`` (+ its note), the client ``prerequisite``, the typed ``steps``, and a ``docs_url``. Every field is publishable; none ever carries credential material.
    - `kind` string, required
    - `current_step` string, nullable
    - `steps` SetupStepOut[]
      - `id` string, required
      - `label` string, required
      - `instructions` string[]
      - `copy_value` string, nullable
      - `copy_label` string, nullable
      - `action` 'connect' | 'reconnect' | 'disconnect' | 'verify' | 'configure' | 'mint_observer_key' | 'enable' | 'disable' | 'remove_from_library': Closed wire vocabulary for actions the generic UI may render.
    - `instructions` string, nullable
    - `server_url` string, nullable
    - `behavior_prompt` string, nullable
    - `behavior_prompt_note` string, nullable
    - `prerequisite` string, nullable
    - `docs_url` string, nullable
  - `attention_reasons` AttentionReasonOut[]
    - `code` string, required
    - `text` string, required
  - `viewer_setup_state` string, nullable
  - `viewer_setup_step` string, nullable
  - `connected_for_viewer` boolean
  - `allowed_actions` CatalogActionId[]
  - `error` string, nullable
  - `family_peer_installations` FamilyPeerInstallationOut[]
    - `definition_id` string, uuid, required
    - `name` string, required
    - `library_id` string, uuid, required
    - `library_name` string, required
    - `connection_noun` 'account' | 'agent' | 'environment' | 'server', required: User-facing noun for one separately manageable connection.
  - `generated_at` string, date-time, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thinqos/apis/thinqos-api.md) · [All operations](https://skmtc.dev/thinqos/apis/thinqos-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thinqos/apis/thinqos-api/revisions/ce2c2ce318b1?raw)
