---
title: "List Usable Connections For Engine"
method: GET
path: "/connections/usable"
tags: ["connections"]
---

# List Usable Connections For Engine

`GET /connections/usable`

## Request

- Base URL: `https://api.myaltimate.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.myaltimate.com/connections/usable`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Every connection the caller may use, with its secrets, for the MCP engine.

The caller's own connections plus those shared with them, each with its
decrypted config so the engine can connect. The UI reads
``GET /connections/?include_shared=true`` instead, which never carries a
teammate's secrets.

## Response `200`

Successful Response

- ConnectionListResponse
  - `connections` ConnectionInDB[], required
    - `name` string, required
    - `integration_id` string, required
    - `config` object, required
    - `id` integer, required
    - `user_id` integer, required
    - `is_valid` boolean, required
    - `last_validated_at` string, date-time, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, nullable
    - `privacy` 'private' | 'public' | 'restricted': Sharing modes for a workspace. Deliberately local rather than adding a member to the shared ``PrivacySetting``, which is imported by five resources (datamates, knowledge bases, notebooks, query bookmarks, custom skills). ``restricted`` is meaningless for the other four, and widening the shared enum would make it a legal value there. The two overlapping values keep identical strings, so rows written before this existed, and every cross-file read that compares against ``PrivacySetting.PUBLIC.value``, still work. Reviewers found this argument was made and then broken in the same diff: four ``CustomSkill`` schemas were swapped to this enum, which made ``restricted`` a legal value for a resource with no grant table behind it — ``_visible_to`` (``crud/custom_skills.py``) matches owner-or-public only, and ``custom_skills.privacy`` has no CHECK, so such a skill would persist and be permanently invisible to everyone but its creator. Custom skills are back on ``PrivacySetting``; keep them there until they implement sharing.
    - `is_owner` boolean
    - `unreadable_secret_fields` string[]
    - `owner` ConnectionOwner
      - `id` integer, required
      - `name` string, required
    - `shares` ConnectionShares
      - `user_ids` integer[], required
      - `team_ids` integer[], required

## Changes

- **2026-10-27** `883849803623`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/myaltimate/apis/fastapi/changes/connections/usable/get.md)

---

[API](https://skmtc.dev/myaltimate/apis/fastapi.md) - [All operations](https://skmtc.dev/myaltimate/apis/fastapi/llms.txt) - [OpenAPI document](https://skmtc.dev/myaltimate/apis/fastapi/revisions/6f0cdcf50d27?raw)
