Webhook

How your app hears about events: register an endpoint, pick the events, get each one delivered and signed.

Also for this capability: API · CLI · MCP · SDKs

How your app hears about events: register an endpoint, pick the events, get each one delivered and signed.

Base URLhttps://api.hanzo.ai
Operations8
AuthAuthorization: Bearer $HANZO_API_KEY

Specification

Specification pending — no HIP in hanzoai/hips declares capability: webhook yet. What this capability serves is below, from the API document; what it is — the store it owns, how it meters, what it publishes — is written as a HIP under HIP-0139.

Four surfaces

SurfaceReaches this capability asCoverage
RESTwebhook at its own prefix8 operations
CLIhanzo webhook …8 of 8
SDKWebhookApi in every published client8 methods
MCPtool webhook on https://api.hanzo.ai/v1/mcp7 operations, 1 under the document's own id — ask describe for the rest

Quickstart

export HANZO_API_KEY=sk-...   # console.hanzo.ai → API keys

Then the first call — a read that needs nothing but the key. GET /v1/webhook, operation get_webhook:

hanzo webhook list
import { Configuration, WebhookApi } from 'hanzoai';

const api = new WebhookApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getWebhook();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import WebhookApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = WebhookApi(client).get_webhook()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.WebhookAPI.GetWebhook(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, webhook_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = webhook_api::get_webhook(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.WebhookApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new WebhookApi(client).getWebhook();
curl https://api.hanzo.ai/v1/webhook \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches webhook through the webhook tool, which names its 7 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "list_webhooks"
         }
       }
     }'

Answers 200 with object — ok.

Endpoints

EndpointWhat it does
GET /v1/webhook/{id}/deliveriesReturns one endpoint's per-attempt delivery log, newest first — the record of what was sent, what the subscriber answered, and how long it took.
POST /v1/webhook/{id}/secretMints a NEW HMAC signing secret for the endpoint and answers the endpoint WITH it — the only other response besides create that ever carries a secret.
POST /v1/webhook/{id}/testSends ONE signed test event to the endpoint right now and answers the outcome inline, so the console can show whether the subscriber is reachable without waiting for real traffic.
GET /v1/webhook/{id}Returns one of the caller org's webhook endpoints with its 7-day delivery and failure counts, signing secret redacted.
PUT /v1/webhook/{id}Replaces the editable fields of one of the caller org's endpoints — url, events, status and description — and answers the stored row with its secret redacted.
DELETE /v1/webhook/{id}Removes one of the caller org's webhook endpoints and answers 204 with no body.
GET /v1/webhookReturns every webhook endpoint the caller's org has registered, newest first, each with its 7-day delivery and failure counts.
POST /v1/webhookRegisters a new webhook subscription for the caller's org and answers 201 with the endpoint INCLUDING its freshly minted signing secret.

All Hanzo APIs · Interactive reference

Was this page useful?