Agent-readable docs index: /docs/llms.txt. Full docs in one file: /docs/llms-full.txt. Download /docs/docs.zip to grep all markdown files locally.

Register a webhook endpoint

/v1/webhooksPOST
https only; internal hosts are rejected. The signing secret is returned once. Deliveries carry X-Kaibo-Signature: t=<unix>,v1=<hex hmac-sha256 of "<t>.<raw body>">, are retried after 1m, 5m, 30m, 2h and 12h, never follow redirects, and contain ids only (fetch content with the API). Needs an admin key.
Authorization
bearer *Bearer <token>
API key of the form kaibo_<id>.<secret>. Scopes: read, write, read_write, forget, admin.
Request Bodyapplication/jsonrequired
url *string
Min length: 1Max length: 2048
events?"memory.created" | "memory.superseded" | "memory.forgotten"[]
Min items: 1Max items: 3
Response
201 · Success
id *string
Min length: 1Max length: 128
projectId *string
Min length: 1Max length: 128
url *string
events *"memory.created" | "memory.superseded" | "memory.forgotten"[]
createdAt *string (date-time)
secret *string
400 · Invalid request
error *object
Show properties
code *"unauthenticated" | "forbidden" | "not_found" | "invalid_request" | "conflict" | "idempotency_mismatch" | "payload_too_large" | "rate_limited" | "internal"
message *string
requestId *string
details?object
401 · Missing, malformed, revoked or expired key
error *object
Show properties
code *"unauthenticated" | "forbidden" | "not_found" | "invalid_request" | "conflict" | "idempotency_mismatch" | "payload_too_large" | "rate_limited" | "internal"
message *string
requestId *string
details?object
403 · The key lacks the required scope
error *object
Show properties
code *"unauthenticated" | "forbidden" | "not_found" | "invalid_request" | "conflict" | "idempotency_mismatch" | "payload_too_large" | "rate_limited" | "internal"
message *string
requestId *string
details?object
429 · Rate limited. See Retry-After
error *object
Show properties
code *"unauthenticated" | "forbidden" | "not_found" | "invalid_request" | "conflict" | "idempotency_mismatch" | "payload_too_large" | "rate_limited" | "internal"
message *string
requestId *string
details?object
Request example
curl -X POST "/v1/webhooks" \ -H "Authorization: Bearer <token>" \ -H "Content-Type: application/json" \ -d '{ "url": "string", "events": [ "memory.created" ] }'