> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kataven.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Python SDK — integrations

> Python SDK reference for Kataven third-party integrations — Stripe, Shopify, Slack with encrypted credentials.

`IntegrationsClient` is reachable on every Kataven client as `client.integrations`. Each method maps to one HTTP endpoint on the [Hub API](/api-reference/introduction); links to the underlying spec entry are inline below.

Third-party integrations bundle a set of tools + required credentials (encrypted via Secret Encryptor). Install once per account.

## Methods at a glance

| Method      | HTTP                                                        | Summary                       |
| ----------- | ----------------------------------------------------------- | ----------------------------- |
| `list`      | `GET /api/integrations`                                     | List third-party integrations |
| `get`       | `GET /api/integrations/{integration_id_or_name}`            | Get a single integration      |
| `install`   | `POST /api/integrations/{integration_id_or_name}/install`   | Install an integration        |
| `uninstall` | `POST /api/integrations/{integration_id_or_name}/uninstall` | Uninstall an integration      |

## Reference

### `client.integrations.list(...)`

List third-party integrations

**HTTP** — `GET /api/integrations` · [API reference →](/api-reference/introduction#tag/Integrations/operation/getApiIntegrations)

```python theme={null}
    def list(self, category: Optional[str] = None, status: Optional[str] = None) -> Dict[str, Any]:
```

Returns the catalog of third-party integrations (Stripe, Shopify, ...) for this tenant. Includes per-category counts.

### `client.integrations.get(...)`

Get a single integration

**HTTP** — `GET /api/integrations/{id}` · [API reference →](/api-reference/introduction#tag/Integrations/operation/getApiIntegrationsById)

```python theme={null}
    def get(self, integration_id_or_name: str) -> Dict[str, Any]:
```

### `client.integrations.install(...)`

Install an integration

**HTTP** — `POST /api/integrations/{id}/install` · [API reference →](/api-reference/introduction#tag/Integrations/operation/postApiIntegrationsByIdInstall)

```python theme={null}
    def install(
        self,
        integration_id_or_name: str,
        params: Optional[Dict[str, str]] = None,
        secrets: Optional[Dict[str, str]] = None,
    ) -> Dict[str, Any]:
```

Stores params (plaintext) and secrets (encrypted) supplied by the caller, then flips the integration row's status to 'installed'. Empty body installs without params.

### `client.integrations.uninstall(...)`

Uninstall an integration

**HTTP** — `POST /api/integrations/{id}/uninstall` · [API reference →](/api-reference/introduction#tag/Integrations/operation/postApiIntegrationsByIdUninstall)

```python theme={null}
    def uninstall(self, integration_id_or_name: str) -> Dict[str, Any]:
```

Flips status back to 'available' and clears installed\_at. Stored params/secrets are NOT purged.
