---
title: "Webhooks: catalog & limits"
locale: en
url: https://tlg.builera.app/en/docs/reference/rest/webhooks.capabilities
verified: 2026-10-24
app_version: "2.0"
generated: true
---

# Webhooks: catalog & limits

Start here: every event type (status, scope, aliases, filters that apply, sample payload, JSON schema URL), which ones this connection can subscribe to right now, limits, retry schedule, retention, signature + envelope format and the recommended setup flow. Works even without webhook scopes (then says which scope to ask for).

Start here: every event type (status, scope, aliases, filters that apply, sample payload, JSON schema URL), which ones this connection can subscribe to right now, limits, retry schedule, retention, signature + envelope format and the recommended setup flow. Works even without webhook scopes (then says which scope to ask for).

## Overview

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

## Input fields

This operation takes no fields.

## Example request

```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 '{}'
```

## Output fields (`data`)

| Field | Type | Required |
| --- | --- | --- |
| `setup_flow` | `text[]` | Yes |
| `hint` | `text` | No |
| `ok` | `true` | Yes |
| `types` | `object[]` | Yes |
| `groups` | `object[]` | Yes |
| `limits` | `object` | Yes |
| `retry_schedule_ms` | `any[]` | Yes |
| `max_attempts` | `6` | Yes |
| `retention_days` | `object` | Yes |
| `content_modes` | `any[]` | Yes |
| `content_types` | `any[]` | Yes |
| `rotation` | `object` | Yes |
| `signature` | `text` | Yes |
| `envelope` | `text` | Yes |
| `owner` | `object` | Yes |

## Example answer

```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"
      ]
    }
  }
}
```

## Using it over MCP

Tool `webhooks_capabilities` is listed on the profiles: Full (`full`). On other profiles, find it with `tools_search` and run it with `tools_run`.
