---
title: "Webhook: danh mục & giới hạn"
locale: vi
url: https://tlg.builera.app/docs/reference/rest/webhooks.capabilities
verified: 2026-10-24
app_version: "2.0"
generated: true
---

# Webhook: danh mục & giới hạn

Bắt đầu từ đây: mọi loại sự kiện (trạng thái, scope, tên gọi khác, bộ lọc áp dụng, payload mẫu, URL JSON schema), loại nào kết nối này đăng ký được ngay, giới hạn, lịch thử lại, thời gian lưu, định dạng chữ ký + phong bì và quy trình thiết lập khuyến nghị. Chạy được cả khi không có scope webhook (khi đó cho biết cần xin scope nào).

Bắt đầu từ đây: mọi loại sự kiện (trạng thái, scope, tên gọi khác, bộ lọc áp dụng, payload mẫu, URL JSON schema), loại nào kết nối này đăng ký được ngay, giới hạn, lịch thử lại, thời gian lưu, định dạng chữ ký + phong bì và quy trình thiết lập khuyến nghị. Chạy được cả khi không có scope webhook (khi đó cho biết cần xin scope nào).

## Thông tin

| Tên | Giá trị |
| --- | --- |
| Mã | `webhooks.capabilities` |
| Scope cần | `webhooks.read` |
| Mức | Chỉ đọc |
| Có thể cần xác nhận | Không |
| Kiểu chạy | Trả kết quả ngay |
| Cần `Idempotency-Key` | Không |
| Vai trò thành viên được phép | `owner`, `manager`, `agent` |
| Trong app | Cài đặt → Webhook |

## Trường vào

Thao tác không cần trường nào.

## Ví dụ gọi

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

## Trường ra (`data`)

| Trường | Kiểu | Bắt buộc |
| --- | --- | --- |
| `setup_flow` | `chữ[]` | Có |
| `hint` | `chữ` | Không |
| `ok` | `true` | Có |
| `types` | `đối tượng[]` | Có |
| `groups` | `đối tượng[]` | Có |
| `limits` | `đối tượng` | Có |
| `retry_schedule_ms` | `any[]` | Có |
| `max_attempts` | `6` | Có |
| `retention_days` | `đối tượng` | Có |
| `content_modes` | `any[]` | Có |
| `content_types` | `any[]` | Có |
| `rotation` | `đối tượng` | Có |
| `signature` | `chữ` | Có |
| `envelope` | `chữ` | Có |
| `owner` | `đối tượng` | Có |

## Ví dụ trả về

```json
{
  "data": {
    "setup_flow": [
      "text"
    ],
    "hint": "text",
    "ok": true,
    "types": [
      {
        "type": "text",
        "group": "campaigns",
        "label": "text",
        "description": "text",
        "status": "planned",
        "reason": "text",
        "scope": "accounts.read",
        "since": {
          "web": "text",
          "worker": "text"
        },
        "account_bound": true,
        "owner_only": true,
        "untrusted_fields": [
          "text"
        ],
        "filters": [
          "direction"
        ],
        "subscribable_now": true,
        "schema_url": "text",
        "sample": "text"
      }
    ],
    "groups": [
      {
        "group": "campaigns",
        "selector": "text",
        "label": "text"
      }
    ],
    "limits": {
      "per_connection": 10,
      "per_workspace": 50,
      "pending_per_webhook": 10000,
      "max_body_bytes": 1,
      "timeout_ms": 10000,
      "inflight_per_webhook": 4,
      "redeliver_max": 500,
      "replay_max": 10000,
      "replay_confirm_over": 1000,
      "replay_max_range_days": 7,
      "replay_lookback_days": 30,
      "rate_limits": {
        "testPerMinutePerHook": 10,
        "testPerHourPerWorkspace": 60,
        "urlWritesPerHourPerWorkspace": 30,
        "validatePerHourPerWorkspace": 60,
        "replaysRunningPerHook": 1,
        "replaysPerDayPerWorkspace": 5
      }
    },
    "retry_schedule_ms": [
      0,
      60000,
      300000,
      1800000,
      7200000,
      21600000
    ],
    "max_attempts": 6,
    "retention_days": {
      "events": 30,
      "delivered": 14,
      "dead": 30,
      "filtered": 3,
      "cancelled": 3,
      "replays": 30,
      "tests": 7
    },
    "content_modes": [
      "full",
      "thin",
      "none"
    ],
    "content_types": [
      "application/json",
      "application/cloudevents+json"
    ],
    "rotation": {
      "defaultOverlapHours": 24,
      "minHours": 1,
      "maxHours": 168,
      "maxActiveKeys": 2
    },
    "signature": "text",
    "envelope": "text",
    "owner": {
      "kind": "text",
      "connection_id": "00000000-0000-4000-8000-000000000000",
      "scopes": [
        "text"
      ],
      "account_ids": [
        "text"
      ]
    }
  }
}
```

## Dùng qua MCP

Tool `webhooks_capabilities` có tên sẵn trong profile: Đầy đủ (`full`). Ở profile khác, tìm bằng `tools_search` rồi chạy bằng `tools_run`.
