# List integrated accounts

> Source: https://truto.one/docs/api-reference/admin/integrated-accounts/list/

`GET /integrated-account`

Resource: **Integrated accounts**

## Query parameters

- **`tenant_id`** _(string)_
  The ID of the tenant you want to filter the integrated accounts by.
- **`is_sandbox`** _(boolean)_
  Whether the integrated account is in sandbox mode or not. Sandbox integrated accounts do not allow any "write" operations.
- **`integration.name`** _(string)_
  The name of the integration you want to filter the integrated accounts by.
- **`features.super_query`** _(string)_
  Filter the integrated accounts by the ones using SuperQuery. The value will be the SuperQuery region.
  Allowed: `apac`, `wnam`
- **`status`** _(string)_
  Filter the integrated accounts by status.
  Allowed: `active`, `connecting`, `post_install_error`, `validation_error`, `needs_reauth`
- **`created_at`** _(string)_
  Filter the integrated accounts by the date and time when they were created.
- **`updated_at`** _(string)_
  Filter the integrated accounts by the date and time when they were last updated.

## Response body

- **`results`** _(array<object>)_
  - **`id`** _(string)_
    The ID of the integrated account.
  - **`tenant_id`** _(string)_
    The ID of the tenant.
  - **`environment_integration_id`** _(string)_
    The ID of the environment integration (installed integration).
  - **`context`** _(object)_
    The context of the integrated account. You can find these in the `Variables` section of an integrated account in the Truto UI.
  - **`status`** _(string)_
    Status of the integrated account. - `active` - Everything is fine and the account should work - `connecting` - Post install and validation steps are being run - `post_install_error` - There was an error while running post install steps - `validation_error` - There was an error while running validation steps - `needs_reauth` - There was an error while refreshing the credentials in case of OAuth authentication or the credentials are no longer valid in other authentication methods. The integrated account needs to be reauthorized.
    Allowed: `active`, `connecting`, `post_install_error`, `validation_error`, `needs_reauth`
  - **`last_error`** _(string)_
    The last error that occurred while running the post install or validation steps.
  - **`last_action_result`** _(object)_
    The results of the post install and validation steps that ran on the integrated account.
  - **`created_at`** _(string)_
    The date and time when the integrated account was created.
  - **`updated_at`** _(string)_
    The date and time when the integrated account was last updated.
  - **`is_sandbox`** _(boolean)_
    Whether the integrated account is in sandbox mode or not. Sandbox integrated accounts do not allow any "write" operations.
  - **`authentication_method`** _(string)_
    Type of authentication used.
    Allowed: `oauth2`, `api_key`, `oauth2_client_credentials`, `keka_oauth`
  - **`region`** _(string)_
    The region where the integrated account is placed.
    Allowed: `wnam`, `enam`, `apac`, `eu`
  - **`environment_id`** _(string)_
    The ID of the environment this integrated account belongs to.
  - **`integration`** _(object)_
    - **`id`** _(string)_
      The ID of the integration.
    - **`name`** _(string)_
      The name of the integration.
    - **`category`** _(string)_
      The category of the integration.
    - **`is_beta`** _(boolean)_
      Whether the integration is in beta or not. Beta integrations might not have been tested completely and are not recommended for production environments.
    - **`config`** _(object)_
      The configuration object defining the underlying API of the integration.
      - **`base_url`** _(string)_
        Default base URL prepended to every resource method's `path`.
      - **`label`** _(string)_
        Human-readable name shown in the Truto Dashboard and Link UI.
      - **`logo`** _(string)_
        URL to the integration logo (square, recommended 256x256).
      - **`icon`** _(string)_
        URL to a smaller monochrome icon used in catalog listings.
      - **`headers`** _(object)_
        Default HTTP headers merged into every outbound request. Values may be templated with JSONata placeholders.
      - **`query`** _(object)_
        Default query-string params merged into every outbound request.
      - **`query_array_format`** _(string)_
        Allowed: `comma`, `brackets`, `indices`, `repeat`
      - **`actions`** _(object)_
        Named integration actions. Reserved keys (`post_install`, `post_connect_user_form`, `refresh_token`, `validation`) hook into specific platform lifecycle events; custom names are callable from the proxy/sync runtime.
      - **`credentials`** _(object)_
        Either a single credential definition (when the integration only supports one auth format) or a map keyed by auth format (when an integration supports multiple, e.g. `api_key` and `oauth2`). For multi-format integrations, the customer picks one in the Link UI.
      - **`authorization`** _(object)_
        How Truto applies the resolved credential to outbound HTTP requests. The `format` discriminator selects which `config` shape applies. All string values support Truto placeholders (`{{path}}`) resolved against the runtime context. Common placeholder roots: `{{api_key}}` for fields collected at connect time, `{{oauth.token.access_token}}` for OAuth2 access tokens, `{{environment_variables.MY_KEY}}` for env-vars set at the environment-integration level.
      - **`pagination`** _(object)_
        Pagination strategy for an integration or a single resource method. The `format` discriminator selects which `config` shape applies.
      - **`rate_limit`** _(object)_
        How Truto detects and reacts to upstream rate-limiting. All fields are JSONata expressions evaluated against the upstream response.
      - **`resources`** _(object)_
        Resource → method tree (e.g. `resources.users.list`). The inner key is one of the canonical methods (`list`, `get`, `create`, `update`, `delete`) or a custom method name. Each method definition matches `IntegrationResourceMethod`.
      - **`tool_tags`** _(object)_
        Optional tag arrays per resource, surfaced via the Truto MCP tools listing.
      - **`webhook`** _(object)_
        How Truto receives and verifies inbound webhooks for this integration. **Not** to be confused with `WebhookSchema` elsewhere in this spec, which describes Truto's _outbound_ webhook delivered to your application.
      - **`error_expression`** _(string)_
        Integration-wide JSONata expression evaluated on every response. Use to detect errors in successful (2xx) responses, normalize error messages, or transform "errors" with `< 400` status into successful responses. Overridden by per-method `IntegrationResourceMethod.error_expression` when set. Input: `IntegrationErrorExpressionContext`. Output: `IntegrationErrorExpressionResult` — return `null`/`undefined` to indicate "no error", or a `{ status, message?, headers?, metadata?, result? }` object.
    - **`team_id`** _(string)_
      The ID of the team that owns this integration.
    - **`sharing`** _(string)_
      The sharing policy of the integration.
      Allowed: `allow`, `ask`, `deny`
    - **`created_at`** _(string)_
      The date and time when the integration was created.
    - **`updated_at`** _(string)_
      The date and time when the integration was last updated.
  - **`object_store_context_fields`** _(array<string>)_
    The list of context fields that are stored in the object store.
- **`next_cursor`** _(string)_
- **`limit`** _(number)_

## Code examples

### curl

```bash
curl -X GET 'https://api.truto.one/integrated-account' \
  -H 'Authorization: Bearer <your_api_token>' \
  -H 'Content-Type: application/json'
```

### JavaScript

```javascript
const response = await fetch('https://api.truto.one/integrated-account', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer <your_api_token>',
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
console.log(data);
```

### Python

```python
import requests

url = "https://api.truto.one/integrated-account"
headers = {
    "Authorization": "Bearer <your_api_token>",
    "Content-Type": "application/json",
}
params = {
}

response = requests.get(url, headers=headers, params=params)
print(response.json())
```

### Truto TS SDK

```typescript
import Truto from '@truto/truto-ts-sdk';

const truto = new Truto({
  token: '<your_api_token>',
});

for await (const item of truto.integratedAccount.list()) {
  console.log(item);
}
```

### Truto Python SDK

```python
import asyncio
from truto_python_sdk import TrutoApi

truto_api = TrutoApi(token="<your_api_token>")

async def main():
    async for item in truto_api.integrated_accounts.list():
        print(item)

asyncio.run(main())
```
