---
title: "App capabilities"
locale: en
url: https://tlg.builera.app/en/docs/reference/rest/capabilities.list
verified: 2026-10-24
app_version: "2.0"
generated: true
---

# App capabilities

Start here: what this app can do on Telegram (capabilities with the actions and worker version behind each), product facts (free, no internal AI), limits, how contacts.check_exists answers, and your accounts with their machine's worker version. No Telegram call.

Start here: what this app can do on Telegram (capabilities with the actions and worker version behind each), product facts (free, no internal AI), limits, how contacts.check_exists answers, and your accounts with their machine's worker version. No Telegram call.

## Overview

| Name | Value |
| --- | --- |
| Code | `capabilities.list` |
| Scope needed | `accounts.read` |
| Risk | Read |
| May need confirmation | No |
| Runs as | Answers right away |
| Needs `Idempotency-Key` | No |
| Member roles allowed | `owner`, `manager`, `agent`, `viewer` |
| In the app | Settings → API & MCP → Capabilities |

## Input fields

This operation takes no fields.

## Example request

```bash
curl -X POST https://tlg.builera.app/api/public/v2/ops/capabilities.list \
  -H "Authorization: Bearer $TELEGRAM_AUTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

## Output fields (`data`)

| Field | Type | Required |
| --- | --- | --- |
| `platform` | `"telegram"` | Yes |
| `driver` | `"tg.user"` | Yes |
| `product` | `object` | Yes |
| `limits` | `object` | Yes |
| `contact_exists` | `object` | Yes |
| `verbs` | `object[]` | Yes |
| `accounts` | `object[]` | Yes |

## Example answer

```json
{
  "data": {
    "platform": "telegram",
    "driver": "tg.user",
    "product": {
      "free": true,
      "internal_ai": false,
      "operations": 1
    },
    "limits": {
      "max_text_chars": 4096,
      "album_size": [
        1,
        1
      ],
      "native_scheduling": true
    },
    "contact_exists": {
      "values": [
        "true",
        "false",
        "unknown"
      ],
      "note": "contacts.check_exists asks Telegram through the account's safety gate. A phone number that is hidden by privacy and one that is not on Telegram look the same, so phone checks answer unknown instead of false."
    },
    "verbs": [
      {
        "capability": "text",
        "actions": [
          {
            "action": "text",
            "since": "text"
          }
        ]
      }
    ],
    "accounts": [
      {
        "id": "00000000-0000-4000-8000-000000000000",
        "label": "text",
        "session_state": "active",
        "worker_version": "text"
      }
    ]
  }
}
```

## Using it over MCP

Tool `capabilities_list` is listed on the profiles: Real-time operations (`realtime`), Automation setup (`setup`), Discover (`prospecting`), Reports (`reports`), Administration (`admin`), Full (`full`). On other profiles, find it with `tools_search` and run it with `tools_run`.
