About this page · Updated 2026-11-05 16:07 UTC
What this page is: Webhook endpoints and their deliveries: every tool on the `webhooks` MCP server with its scope, inputs and an example call. A slice of the full MCP tool reference.
How far to trust this page: the build checked 0 names, paths, tools, scopes and error codes against the real product (0 do not match). Not yet reviewed claim by claim.
Updated 2026-11-05 16:07 UTCRecently updated pages
MCP tools: Webhooks
Webhook endpoints and their deliveries. This page is the slice of the full MCP tool reference for the webhooks server (the other servers are listed on the hosted servers page). The main server carries every tool, so these entries apply there too. Failures use the shape described in MCP errors.
motorical_whoami
Who am I (account, plan, grant). Who this connection is acting for: the account (id, owner email, name), its plan (name, status, hasSubscription), account.billing (price amount in minor units + currency + interval, trial end, current period end / next renewal date, cancelAtPeriodEnd and endsAt, this month's sends against the plan cap, and paymentMethod.status ok or failing; never invoices, receipts or card details; a field it cannot resolve is null with its reason under billing.unavailable) and, for an OAuth connection, the grant: the client, the scopes it holds, the Motor Blocks it covers, when it was granted, and canAdd (permissions it could still be given, with available:false where the plan does not allow it) plus addInDashboard, the page where the person adds them. Account-scoped: no Motor Block needed. grant is null when the call is not made over an OAuth grant. Over OAuth it needs no scope, so any connection can ask what it holds, and every server lists it. Use it instead of inferring scopes from the tool list.
| Property | Value |
|---|---|
| Needs scope | No scope: any OAuth connection can call it |
| Available on | Hosted servers: main, transactional, analytics, domains, sandbox, webhooks, motorBlocks, communications; the local server too |
| Acts on | The whole account (no Motor Block needed) |
| Not listed | Never |
| REST route | GET /api/public/v1/account/whoami |
| Behaviour | Read-only; safe to repeat |
| Input | Type | Required | Meaning |
|---|---|---|---|
motorBlockId | string (uuid) | No | Optional. This operation acts on the whole account, so a Motor Block is never needed; pass one only to record which block the call was made on behalf of. |
Returns the JSON of the REST route above.
Example arguments (placeholders in angle brackets, required inputs only):
{}
motorical_webhook_list
List webhook endpoints. List webhook endpoints registered on one Motor Block. Requires OAuth scope: read:webhooks (see motorical_whoami for what it allows).
| Property | Value |
|---|---|
| Needs scope | read:webhooks |
| Available on | Hosted servers: main, webhooks; the local server too |
| Acts on | One Motor Block (the motorBlockId input) |
| Not listed | When the connection does not hold the scope (the narrow servers hide it; the main server lists it marked "Needs permission") |
| REST route | GET /api/public/v1/motor-blocks/{id}/webhooks |
| Behaviour | Read-only; safe to repeat |
| Input | Type | Required | Meaning |
|---|---|---|---|
motorBlockId | string (uuid) | No | Required when the authorization covers more than one Motor Block |
Returns the JSON of the REST route above.
Example arguments (placeholders in angle brackets, required inputs only):
{}
motorical_webhook_create
Create webhook endpoint. Register a new webhook endpoint on one Motor Block. The response includes the full signing secret exactly once — store it immediately, it is only masked on every later read. Requires OAuth scope: manage:webhooks (see motorical_whoami for what it allows).
| Property | Value |
|---|---|
| Needs scope | manage:webhooks |
| Available on | Hosted servers: main, webhooks; the local server too |
| Acts on | One Motor Block (the motorBlockId input) |
| Not listed | When the connection does not hold the scope (the narrow servers hide it; the main server lists it marked "Needs permission") |
| REST route | POST /api/public/v1/motor-blocks/{id}/webhooks |
| Behaviour | Changes data |
| Input | Type | Required | Meaning |
|---|---|---|---|
motorBlockId | string (uuid) | No | Required when the authorization covers more than one Motor Block |
url | string | Yes | HTTPS endpoint that will receive webhook deliveries |
events | array of string | No | Event types to subscribe to; defaults to all event types when omitted |
idempotencyKey | string | No | Optional. Pass the same value on a retry to get the exact original response back, instead of a duplicate. |
Returns the JSON of the REST route above.
Example arguments (placeholders in angle brackets, required inputs only):
{"url":"<url>"}
motorical_webhook_update
Update webhook endpoint. Update a webhook endpoint's url, events, or enabled state. Only the fields you pass are changed. Requires OAuth scope: manage:webhooks (see motorical_whoami for what it allows).
| Property | Value |
|---|---|
| Needs scope | manage:webhooks |
| Available on | Hosted servers: main, webhooks; the local server too |
| Acts on | One Motor Block (the motorBlockId input) |
| Not listed | When the connection does not hold the scope (the narrow servers hide it; the main server lists it marked "Needs permission") |
| REST route | PUT /api/public/v1/motor-blocks/{id}/webhooks/{webhookId} |
| Behaviour | Changes data; safe to repeat |
| Input | Type | Required | Meaning |
|---|---|---|---|
motorBlockId | string (uuid) | No | Required when the authorization covers more than one Motor Block |
webhookId | string | Yes | The webhook endpoint id, from motorical_webhook_list or the create response |
url | string | No | - |
events | array of string | No | - |
enabled | boolean | No | - |
idempotencyKey | string | No | Optional. Pass the same value on a retry to get the exact original response back, instead of a duplicate. |
Returns the JSON of the REST route above.
Example arguments (placeholders in angle brackets, required inputs only):
{"webhookId":"<webhookId>"}
motorical_webhook_delete
Delete webhook endpoint. Delete a webhook endpoint. Requires OAuth scope: manage:webhooks (see motorical_whoami for what it allows).
| Property | Value |
|---|---|
| Needs scope | manage:webhooks |
| Available on | Hosted servers: main, webhooks; the local server too |
| Acts on | One Motor Block (the motorBlockId input) |
| Not listed | When the connection does not hold the scope (the narrow servers hide it; the main server lists it marked "Needs permission") |
| REST route | DELETE /api/public/v1/motor-blocks/{id}/webhooks/{webhookId} |
| Behaviour | Destructive: asks the person to confirm; safe to repeat |
| Input | Type | Required | Meaning |
|---|---|---|---|
motorBlockId | string (uuid) | No | Required when the authorization covers more than one Motor Block |
webhookId | string | Yes | The webhook endpoint id, from motorical_webhook_list or the create response |
confirm | boolean | No | Required: true. Confirms this destructive action. |
Returns the JSON of the REST route above.
Example arguments (placeholders in angle brackets, required inputs only):
{"webhookId":"<webhookId>"}
motorical_webhook_test
Send test webhook delivery. Send a synthetic test delivery to a webhook endpoint. Requires OAuth scope: manage:webhooks (see motorical_whoami for what it allows).
| Property | Value |
|---|---|
| Needs scope | manage:webhooks |
| Available on | Hosted servers: main, webhooks; the local server too |
| Acts on | One Motor Block (the motorBlockId input) |
| Not listed | When the connection does not hold the scope (the narrow servers hide it; the main server lists it marked "Needs permission") |
| REST route | POST /api/public/v1/motor-blocks/{id}/webhooks/{webhookId}/test |
| Behaviour | Changes data |
| Input | Type | Required | Meaning |
|---|---|---|---|
motorBlockId | string (uuid) | No | Required when the authorization covers more than one Motor Block |
webhookId | string | Yes | The webhook endpoint id, from motorical_webhook_list or the create response |
Returns the JSON of the REST route above.
Example arguments (placeholders in angle brackets, required inputs only):
{"webhookId":"<webhookId>"}
motorical_webhook_get_deliveries
Get webhook delivery attempts. Recent delivery attempts for one webhook endpoint. Requires OAuth scope: read:webhooks (see motorical_whoami for what it allows).
| Property | Value |
|---|---|
| Needs scope | read:webhooks |
| Available on | Hosted servers: main, webhooks; the local server too |
| Acts on | One Motor Block (the motorBlockId input) |
| Not listed | When the connection does not hold the scope (the narrow servers hide it; the main server lists it marked "Needs permission") |
| REST route | GET /api/public/v1/motor-blocks/{id}/webhooks/{webhookId}/deliveries |
| Behaviour | Read-only; safe to repeat |
| Input | Type | Required | Meaning |
|---|---|---|---|
motorBlockId | string (uuid) | No | Required when the authorization covers more than one Motor Block |
webhookId | string | Yes | The webhook endpoint id, from motorical_webhook_list or the create response |
limit | integer | No | Default 50, max 200 |
Returns the JSON of the REST route above.
Example arguments (placeholders in angle brackets, required inputs only):
{"webhookId":"<webhookId>"}
motorical_webhook_get_stats
Get webhook delivery stats. Delivery success/failure counts and average latency for one webhook endpoint over a time window. Requires OAuth scope: read:webhooks (see motorical_whoami for what it allows).
| Property | Value |
|---|---|
| Needs scope | read:webhooks |
| Available on | Hosted servers: main, webhooks; the local server too |
| Acts on | One Motor Block (the motorBlockId input) |
| Not listed | When the connection does not hold the scope (the narrow servers hide it; the main server lists it marked "Needs permission") |
| REST route | GET /api/public/v1/motor-blocks/{id}/webhooks/{webhookId}/stats |
| Behaviour | Read-only; safe to repeat |
| Input | Type | Required | Meaning |
|---|---|---|---|
motorBlockId | string (uuid) | No | Required when the authorization covers more than one Motor Block |
webhookId | string | Yes | The webhook endpoint id, from motorical_webhook_list or the create response |
hours | integer | No | Default 24, max 168 (7 days) |
Returns the JSON of the REST route above.
Example arguments (placeholders in angle brackets, required inputs only):
{"webhookId":"<webhookId>"}