---
title: "List all available integrations"
method: GET
path: "/integrations/catalog"
tags: ["Integration Catalog"]
---

# List all available integrations

`GET /integrations/catalog`

Returns metadata for all supported integrations including field specifications, data types, and onboarding documentation.

## Response `200`

Successful Response

- ListIntegrationCatalogResponse — Response for listing all available integrations. Attributes: integrations: List of all integration catalog entries
  - `integrations` IntegrationCatalogEntry[], required
    - `type` 'anthropic' | 'openai' | 'gradient_ai' | 'datadog' | 'elasticsearch' | 'prometheus' | 'mimir' | 'victoria_metrics' | 'grafana' | 'appdynamics' | 'servicenow' | 'github' | 'gitlab' | 'thousandeyes' | 'linear' | 'notion' | 'loki' | 'opensearch' | 'splunk' | 'gcp' | 'motherduck' | 'confluence' | 'coralogix' | 'firehydrant' | 'slack' | 'teams' | 'jira' | 'kubernetes' | 'traversal_webhook' | 'traversal_api_key' | 'incident_io' | 'sentry' | 'tempo' | 'alexandria' | 'honeycomb' | 'alertmanager' | 'emim' | 'trailblazer' | 'dynatrace' | 'cribl' | 'mcp' | 'aws_cli' | 'artifactory' | 'spinnaker' | 'amex_webex_captions' | 'deptracker' | 'do_service_catalog' | 'cloudwatch', required — Canonical integration platform types. Represents the platform or system where data originates from. Used to determine appropriate connectors, authentication, and API clients.
    - `display_name` string, required — Human-readable name
    - `description` string, required — Brief description
    - `category` 'telemetry_data' | 'developer_tools' | 'productivity' | 'mcp_servers', required — Category of integration for UI organization.
    - `icon_url` string, nullable — Icon URL
    - `enabled_data_types` IntegrationDataType[] — Supported data types
    - `instance_description` IntegrationFieldSpec — Specification for a single integration configuration field. Attributes: field_name: The field name as it appears in the API payload display_name: Human-readable label for the field description: Help text describing the field's purpose input_type: Type of input control to render required: Whether the field is required within its field group placeholder: Optional placeholder text for the input select_options: Options for SELECT input type default_value: Default value for HIDDEN fields (e.g., discriminator values) oauth_url: OAuth authorization URL for OAUTH_BUTTON input type oauth_button_text: Custom button text for OAUTH_BUTTON input type oauth_callback_route: Frontend route for OAuth callback (e.g., /integrations/github/callback) oauth_response_field: OAuth response field to extract (e.g., installation_id) setup_helper_markdown: Markdown text rendered alongside this field to guide users through obtaining its value (e.g., steps to generate an API key). download_endpoint: DOWNLOADABLE_FILE only. Backend path the frontend fetches to download the pre-rendered file. download_filename: DOWNLOADABLE_FILE only. Suggested filename for the download.
      - `field_name` string, required — Field name in API payload
      - `display_name` string, required — Human-readable label
      - `description` string, required — Help text for the field
      - `input_type` 'text' | 'password' | 'url' | 'select' | 'multi_text' | 'multi_url' | 'oauth_button' | 'checkbox' | 'key_value' | 'hidden' | 'downloadable_file', required — Input type for integration configuration fields. Used by frontend to render appropriate input controls. Attributes: TEXT: Single-line text input for a single value (e.g., username). PASSWORD: Masked input for secrets (e.g., API keys, passwords). URL: Single URL input with URL validation (e.g., "https://api.example.com"). SELECT: Dropdown selection from predefined options. MULTI_TEXT: Multi-entry text input for lists of values. Each entry is added individually rather than as comma-separated text. The field value is stored as a list. Example: repositories field ["org/repo1", "org/repo2"]. MULTI_URL: Multi-entry URL input for lists of URLs. Similar to MULTI_TEXT but with URL validation. Example: hosts field for Elasticsearch/OpenSearch. OAUTH_BUTTON: Button that triggers an OAuth flow for authentication. Two sub-flavors: - Static-URL (``oauth_url``): legacy GitHub-style full-page redirect. - Dynamic-URL (``oauth_start_endpoint``): for MCP and other flows where the authorization URL is minted server-side after discovery + Dynamic Client Registration. The frontend POSTs the caller-supplied body to ``oauth_start_endpoint``, opens the returned ``authorization_url`` in a popup, and stores the ``pending_integration_id`` on the field for the form to submit. CHECKBOX: Boolean checkbox for opt-in flags. The field value is stored as a bool. Use ``default_value="true"`` / ``"false"`` to set the initial checked state. KEY_VALUE: Repeatable key/value editor. HIDDEN: Hidden field for discriminator values or internal configuration. DOWNLOADABLE_FILE: Read-only helper that renders a "Download" control instead of an editable input. Carries no user-entered value; the frontend downloads a pre-rendered file (named ``download_filename``) from ``download_endpoint``.
      - `required` boolean — Whether field is required
      - `placeholder` string, nullable — Placeholder text
      - `select_options` string[], nullable — Options for select inputs
      - `default_value` string, nullable — Default value for HIDDEN fields (e.g., discriminator values)
      - `oauth_url` string, nullable — OAuth authorization URL for OAUTH_BUTTON type
      - `oauth_button_text` string, nullable — Custom button text for OAUTH_BUTTON type
      - `oauth_callback_route` string, nullable — Frontend route for OAuth callback (e.g., /integrations/github/callback)
      - `oauth_response_field` string, nullable — OAuth response field to extract (e.g., installation_id)
      - `oauth_start_endpoint` string, nullable — Backend path for dynamic-URL OAuth flows. When set, the frontend POSTs the caller-supplied body to this endpoint and opens the returned ``authorization_url`` in a popup. Mutually exclusive with ``oauth_url``.
      - `oauth_consume_endpoint` string, nullable — Backend path the frontend POSTs to once the popup reports success to finalize the pending OAuth flow into a real integration. The body carries the ``pending_integration_id`` plus the instance name, description, and any catalog fields the form collected.
      - `setup_helper_markdown` string, nullable — Markdown rendered next to this field explaining how to obtain its value (e.g., steps to create an API key).
      - `download_endpoint` string, nullable — DOWNLOADABLE_FILE type: backend path to download the pre-rendered file
      - `download_filename` string, nullable — DOWNLOADABLE_FILE type: suggested filename for the download
    - `field_sections` IntegrationFieldSection[], required — Form sections and fields
      - `section_id` string, required — Unique identifier for the section
      - `display_name` string, required — Human-readable section name
      - `description` string, required — Help text for the section
      - `one_of_field_groups` IntegrationFieldGroup[], required — Field group options - user must complete exactly one
        - `group_id` string, required — Unique identifier for the group
        - `display_name` string, required — Human-readable group name
        - `description` string, required — Help text for the group
        - `fields` IntegrationFieldSpec[], required — Fields in this group
          - `field_name` string, required — Field name in API payload
          - `display_name` string, required — Human-readable label
          - `description` string, required — Help text for the field
          - `input_type` 'text' | 'password' | 'url' | 'select' | 'multi_text' | 'multi_url' | 'oauth_button' | 'checkbox' | 'key_value' | 'hidden' | 'downloadable_file', required — Input type for integration configuration fields. Used by frontend to render appropriate input controls. Attributes: TEXT: Single-line text input for a single value (e.g., username). PASSWORD: Masked input for secrets (e.g., API keys, passwords). URL: Single URL input with URL validation (e.g., "https://api.example.com"). SELECT: Dropdown selection from predefined options. MULTI_TEXT: Multi-entry text input for lists of values. Each entry is added individually rather than as comma-separated text. The field value is stored as a list. Example: repositories field ["org/repo1", "org/repo2"]. MULTI_URL: Multi-entry URL input for lists of URLs. Similar to MULTI_TEXT but with URL validation. Example: hosts field for Elasticsearch/OpenSearch. OAUTH_BUTTON: Button that triggers an OAuth flow for authentication. Two sub-flavors: - Static-URL (``oauth_url``): legacy GitHub-style full-page redirect. - Dynamic-URL (``oauth_start_endpoint``): for MCP and other flows where the authorization URL is minted server-side after discovery + Dynamic Client Registration. The frontend POSTs the caller-supplied body to ``oauth_start_endpoint``, opens the returned ``authorization_url`` in a popup, and stores the ``pending_integration_id`` on the field for the form to submit. CHECKBOX: Boolean checkbox for opt-in flags. The field value is stored as a bool. Use ``default_value="true"`` / ``"false"`` to set the initial checked state. KEY_VALUE: Repeatable key/value editor. HIDDEN: Hidden field for discriminator values or internal configuration. DOWNLOADABLE_FILE: Read-only helper that renders a "Download" control instead of an editable input. Carries no user-entered value; the frontend downloads a pre-rendered file (named ``download_filename``) from ``download_endpoint``.
          - `required` boolean — Whether field is required
          - `placeholder` string, nullable — Placeholder text
          - `select_options` string[], nullable — Options for select inputs
          - `default_value` string, nullable — Default value for HIDDEN fields (e.g., discriminator values)
          - `oauth_url` string, nullable — OAuth authorization URL for OAUTH_BUTTON type
          - `oauth_button_text` string, nullable — Custom button text for OAUTH_BUTTON type
          - `oauth_callback_route` string, nullable — Frontend route for OAuth callback (e.g., /integrations/github/callback)
          - `oauth_response_field` string, nullable — OAuth response field to extract (e.g., installation_id)
          - `oauth_start_endpoint` string, nullable — Backend path for dynamic-URL OAuth flows. When set, the frontend POSTs the caller-supplied body to this endpoint and opens the returned ``authorization_url`` in a popup. Mutually exclusive with ``oauth_url``.
          - `oauth_consume_endpoint` string, nullable — Backend path the frontend POSTs to once the popup reports success to finalize the pending OAuth flow into a real integration. The body carries the ``pending_integration_id`` plus the instance name, description, and any catalog fields the form collected.
          - `setup_helper_markdown` string, nullable — Markdown rendered next to this field explaining how to obtain its value (e.g., steps to create an API key).
          - `download_endpoint` string, nullable — DOWNLOADABLE_FILE type: backend path to download the pre-rendered file
          - `download_filename` string, nullable — DOWNLOADABLE_FILE type: suggested filename for the download
      - `is_optional` boolean — Whether section is optional
    - `documentation_url` string, nullable — External documentation URL for this integration type, surfaced as the "View documentation" link in the setup form.
    - `supports_multiple_instances` boolean — Whether users can create multiple instances (e.g., multiple webhooks)

---

[API](https://skmtc.net/traversal/apis/fastapi.md) · [All operations](https://skmtc.net/traversal/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/traversal/fastapi/revisions/2134ebffd1ef/schema)
