---
title: "List provider capabilities and permitted Agent connections without credentials"
method: GET
path: "/workspaces/{workspaceId}/agents/{agentId}/integrations"
tags: ["Agents"]
---

# List provider capabilities and permitted Agent connections without credentials

`GET /workspaces/{workspaceId}/agents/{agentId}/integrations`

## Request

- Base URL: `https://app.communicate.so/api/v1`
- URL: `https://app.communicate.so/api/v1/workspaces/{workspaceId}/agents/{agentId}/integrations`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Secure-better-auth.session_token`
  - API key in cookie `better-auth.session_token`

Use an explicitly scoped user-bound account bearer credential or an application session. Scope grants are intersected with live membership, role, tenant isolation, agent access and plan limits; a credential does not grant an owner role. Invitation acceptance requires the verified recipient email.

## Path parameters

- `workspaceId` string, required
- `agentId` string, required

## Response `200`

List provider capabilities and permitted Agent connections without credentials

- ListIntegrationsResponse
  - `canEdit` boolean, required
  - `catalog` object[], required
    - `key` 'cal' | 'calendly' | 'shopify', required
    - `label` string, required
    - `releaseState` 'stable' | 'beta'
    - `setupHref` '/dashboard/settings/shopify'
    - `auth` object, required
      - `type` 'api_key' | 'personal_access_token' | 'managed_installation', required
      - `label` string, required
      - `oauth` boolean, required
    - `capabilities` object[], required
      - `key` string, required
      - `toolName` string, required
      - `description` string, required
      - `inputSchema` object, required
      - `confirmation` object
        - `required` boolean, required
        - `message` string
  - `integrations` object[], required
    - `id` string, required
    - `connectionId` string, required
    - `providerKey` 'cal' | 'calendly', required
    - `providerLabel` string, required
    - `authType` 'oauth2' | 'api_key' | 'personal_access_token', required
    - `enabled` boolean, required
    - `capabilityKeys` string[], required
    - `config` object, required
    - `connectionStatus` 'pending' | 'active' | 'error' | 'revoked', required
    - `displayName` string, nullable, required
    - `externalAccountId` string, nullable, required
    - `lastErrorCode` string, nullable, required
    - `connectedAt` string, date-time, nullable, required
    - `createdAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required
  - `shopifyBindings` object[]
    - `installationId` string, required
    - `shop` string, required
    - `connectionStatus` 'active' | 'error', required

## Other responses

- `401`: Missing, invalid, expired or revoked account credential or application session.
- `402`: Plan entitlement, capacity or credits do not allow this operation.
- `403`: Required account scope, live verified identity, membership or role permission is missing.
- `404`: Workspace or addressed resource is not visible to this member.
- `409`: Support handle, source URL or pending transfer conflicts with this operation.
- `422`: Website URL or extraction source is not supported.
- `429`: Agent request or website crawl rate limit exceeded.
- `500`: Unexpected server failure.
- `503`: Authorization service temporarily unavailable.

---

[API](https://skmtc.dev/communicate/apis/communicate-public-rest-api-2.md) · [All operations](https://skmtc.dev/communicate/apis/communicate-public-rest-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/communicate/apis/communicate-public-rest-api-2/revisions/db6be3d36733?raw)
