Reference
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
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
{
"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.