## List application connectors

`GET /v1/applications/:id/connectors`

Returns the company's published connectors, the application's access state for each of them, and their read tools. Call it before an access request to get the connector code and the current state.

## Parameters

| Parameter | Type | Required | Description |
|----------|-----|:-----:|----------|
| `id` (path) | string | yes | Application card ID. Get it from: [`GET /v1/applications`](/docs/applications/list) |

## Examples

### curl — personal key

```bash
curl https://vibecode.bitrix24.com/v1/applications/APPLICATION_ID/connectors \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth application

```bash
curl https://vibecode.bitrix24.com/v1/applications/APPLICATION_ID/connectors \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — personal key

```javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/applications/APPLICATION_ID/connectors', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log(data.map((connector) => `${connector.slug}: ${connector.appState}`))
```

### JavaScript — OAuth application

```javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/applications/APPLICATION_ID/connectors', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { success, data } = await res.json()
console.log(data.map((connector) => `${connector.slug}: ${connector.appState}`))
```

## Response fields

| Field | Type | Description |
|------|-----|----------|
| `success` | boolean | Always `true` on success |
| `data` | array | Company connectors |
| `data[].slug` | string | Connector code. Required for an [access request](/docs/applications/connectors/access-request) |
| `data[].title` | string | Connector title |
| `data[].iconUrl` | string / null | Icon URL; `null` for a connector from the company catalog |
| `data[].appState` | string | Application access state: `DISABLED_ON_PORTAL`, `NOT_CONNECTED`, `CONNECTION_BROKEN`, `NO_GRANT`, `GRANT_PENDING`, `GRANT_DENIED`, `GRANT_REVOKED`, `EXPOSURE_WIDENED` or `AVAILABLE` |
| `data[].readTools` | array | Connector read tools |
| `data[].readTools[].name` | string | Tool name |
| `data[].readTools[].title` | string | Tool title |
| `data[].readTools[].description` | string | Tool description |
| `data[].readTools[].inputSchema` | object | JSON Schema of the tool arguments |
| `data[].exposure.linkAccess` | string | Current link access of the application: `OFF`, `VIBECODE_AUTH`, `PUBLIC` |
| `data[].exposure.externalApiEnabled` | boolean | Whether the application's external API is enabled |

## Response example

```json
{
  "success": true,
  "data": [
    {
      "slug": "orders",
      "title": "Orders",
      "iconUrl": "https://vibecode.bitrix24.com/api/connectors/orders/icon",
      "appState": "GRANT_PENDING",
      "readTools": [],
      "exposure": {
        "linkAccess": "OFF",
        "externalApiEnabled": false
      }
    }
  ]
}
```

## Error response example

404 — the application does not exist, the caller has no permission to manage it, or connectors for applications are disabled for the Bitrix24 account:

```json
{
  "success": false,
  "error": {
    "code": "APPLICATION_NOT_FOUND",
    "message": "APPLICATION_NOT_FOUND"
  }
}
```

## Errors

| HTTP | Code | Description |
|------|-----|----------|
| 404 | `APPLICATION_NOT_FOUND` | The application does not exist, is unavailable, is on a different server than the key, or connectors for applications are disabled for the portal |
| 403 | `EXTERNAL_COLLABORATOR_KEY_SERVER_MISMATCH` | The external collaborator's key and the application are not bound to the same server |
| 403 | `EXTERNAL_COLLABORATOR_NOT_A_MEMBER` | The external developer's membership was revoked or has expired |
| 403 | `PORTAL_COLLABORATOR_NOT_A_MEMBER` | The user is no longer a member of the server's development team |
| 401 | `INVALID_API_KEY` | Invalid key |
| 401 | `MISSING_API_KEY` | `X-Api-Key` was not passed |

Full list of common API errors — [Errors](/docs/errors).

## See also

- [Application connectors](/docs/applications/connectors)
- [Request access to a connector](/docs/applications/connectors/access-request)
- [Application secrets](/docs/applications/app-secrets)
- [Application card](/docs/applications/get)
