Webhooks API
मेमोरी, चैट, और कार्य घटनाओं के लिए HTTP कॉलबैक पंजीकृत करें — डेटा बदलने पर सूचित हों।
Webhooks API
Webhooks आपको Synapse में घटनाएँ होने पर HTTP कॉलबैक प्राप्त करने की सुविधा देते हैं। बाहरी ऑटोमेशन ट्रिगर करने, सूचनाएँ भेजने, या अन्य सिस्टम्स में सिंक करने के लिए आदर्श।
एंडपॉइंट्स
POST /webhooks
नया webhook पंजीकृत करें।
curl -X POST https://synapse.schaefer.zone/webhooks \
-H "Authorization: Bearer YOUR_MIND_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://my-app.com/webhook",
"events": "memory.*",
"secret": "my-hmac-secret-min-8-chars"
}'प्रतिक्रिया:
{
"id": "wh_001",
"url": "https://my-app.com/webhook",
"events": ["memory.*"],
"enabled": true,
"created_at": "2026-06-27T..."
}GET /webhooks
वर्तमान mind के लिए सभी webhooks की सूची बनाएँ।
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/webhooksGET /webhooks/:id
एकल webhook प्राप्त करें।
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/webhooks/wh_001PUT /webhooks/:id
Webhook अपडेट करें (URL, events, secret, या enabled फ़्लैग)।
curl -X PUT https://synapse.schaefer.zone/webhooks/wh_001 \
-H "Authorization: Bearer YOUR_MIND_KEY" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'DELETE /webhooks/:id
Webhook हटाएँ।
curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/webhooks/wh_001घटना प्रकार
| पैटर्न | कब सक्रिय होता है |
|---|---|
memory.* |
कोई भी मेमोरी घटना |
memory.store |
नई मेमोरी स्टोर की गई |
memory.update |
मेमोरी अपडेट की गई |
memory.delete |
मेमोरी हटाई गई |
chat.* |
कोई भी चैट घटना |
chat.message_received |
मानव से नया संदेश |
task.* |
कोई भी कार्य घटना |
task.created |
नया कार्य बनाया गया |
task.completed |
कार्य पूर्ण चिह्नित किया गया |
* |
सभी घटनाएँ |
Webhook Payload
जब कोई घटना सक्रिय होती है, Synapse आपके URL पर POST करता है:
{
"event": "memory.store",
"timestamp": "2026-06-27T...",
"mind_id": "m_xyz789",
"data": {
"id": "mem_001",
"category": "fact",
"key": "user_name",
"content": "Michael Schäfer"
}
}हस्ताक्षर सत्यापन
यदि आप secret सेट करते हैं, तो Synapse प्रत्येक payload को HMAC-SHA256 के साथ हस्ताक्षरित करता है:
X-Synapse-Signature: sha256=<hex-hmac>अपने हैंडलर में सत्यापित करें:
import hmac, hashlib
def verify_signature(payload_body: bytes, signature: str, secret: str) -> bool:
expected = hmac.new(
secret.encode(),
payload_body,
hashlib.sha256
).hexdigest()
return hmac.compare_digest(f"sha256={expected}", signature)पैटर्न: रियल-टाइम सिंक
# Your webhook handler
@app.post("/webhook")
async def handle_webhook(request):
body = await request.body()
signature = request.headers.get("X-Synapse-Signature", "")
if not verify_signature(body, signature, WEBHOOK_SECRET):
return 401
event = json.loads(body)
if event["event"] == "memory.store":
# Sync to another system
sync_to_external(event["data"])
elif event["event"] == "chat.message_received":
# Trigger agent wake-up
notify_agent(event["data"])