Webhook एंडपॉइंट्स
एंडपॉइंट-आधारित webhook प्रणाली तुम्हाला प्रत्येक संस्थेसाठी अनेक गंतव्ये नोंदवू देते, प्रत्येकाचे स्वतःचे secret, स्वतःची स्थिती आणि इव्हेंट प्रकारांच्या उपसंचासाठी स्वतःचे subscription असते. सर्व नवीन integrations साठी हे शिफारस केलेले मॉडेल आहे.
जुन्या सिंगल-URL webhook शी तुलना करा, जे backward compatibility साठी ठेवले आहे, पण प्रत्येक संस्थेसाठी फक्त एकच URL समर्थित करते.
एंडपॉइंट्स
| पद्धत | पथ | आवश्यक भूमिका | वर्णन |
|---|---|---|---|
GET | /v1/developer/webhook-endpoints | admin+ | एंडपॉइंट्सची यादी |
POST | /v1/developer/webhook-endpoints | admin+ | एंडपॉइंट तयार करा |
PATCH | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | लेबल / URL / इव्हेंट्स / स्थिती अपडेट करा |
DELETE | /v1/developer/webhook-endpoints/{endpoint_id} | admin+ | एंडपॉइंट हटवा |
POST | /v1/developer/webhook-endpoints/{endpoint_id}/test | admin+ | स्वाक्षरीत चाचणी वितरण पाठवा |
एंडपॉइंट ऑब्जेक्ट
{
"id": "c4d5e6f7-...",
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
"status": "active",
"secret_hint": "a1b2…9f0e",
"created_at": "2026-04-20T18:24:10.113Z",
"updated_at": "2026-04-20T18:24:10.113Z"
}
| फील्ड | प्रकार | वर्णन |
|---|---|---|
id | UUID | एंडपॉइंट id |
label | string | प्रदर्शन नाव, 1–120 वर्ण |
url | string | HTTPS URL; विकासासाठी http://localhost अनुमत आहे |
events | स्ट्रिंगचा अॅरे | सदस्यता घेतलेले इव्हेंट प्रकार (वैध मूल्ये पहा). रिकामा अॅरे सर्व इव्हेंट्ससाठी सदस्यता घेतो |
status | string | active, disabled (स्वहस्ते थांबवलेले), किंवा failing (एखादे वितरण एकही 2xx न मिळता त्याचे 24 तासांचे पुनर्प्रयत्न वेळापत्रक संपवते तेव्हा स्वयंचलितपणे सेट होते) |
secret_hint | string | स्वाक्षरी secret मधील पहिले 4 आणि शेवटचे 4 वर्ण, दीर्घविरामासह (a1b2…9f0e) — पूर्ण मूल्य उघड न करता तुम्ही स्थानिकरित्या जतन केलेल्या secret शी संदर्भ जुळवण्यासाठी पुरेसे |
created_at, updated_at | timestamp |
वैध इव्हेंट प्रकार
events हे या अचूक संचाविरुद्ध वैध केले जाते — सूचीबाहेरील मूल्ये
400 परत करतात. प्रत्येक प्रकाराच्या payload स्वरूपासाठी इव्हेंट्स कॅटलॉग पहा.
telephony.incoming,telephony.complete,telephony.toolweb.incoming,web.complete,web.toolcall.gradedissue.reportedtest-call.completedalert.triggered
एंडपॉइंट स्थिती
active— वितरणे सामान्यपणे प्रवाहित होतात.disabled—PATCHद्वारे स्वहस्ते थांबवलेले. कोणत्याही विनंत्या पाठवल्या जात नाहीत. आम्हीdisabledएंडपॉइंटची स्थिती कधीही बदलत नाही; ती पुन्हाactiveवर करणे नेहमी तुमचा निर्णय आहे.failing— एंडपॉइंटकडे जाणारे वितरण एकही 2xx न मिळता त्याचे संपूर्ण पुनर्प्रयत्न वेळापत्रक (24 तासांत 8 प्रयत्न) संपवते तेव्हा स्वयंचलितपणे सेट होते. अयशस्वी एंडपॉइंटला पुढील कोणतीही ट्रॅफिक मिळत नाही. एंडपॉइंट दुरुस्त झाल्यावर, त्याची स्थितीPATCHकरून पुन्हाactiveकरा; ज्या वितरणांचे पुनर्प्रयत्न वेळापत्रक अद्याप संपलेले नाही ते जिथे थांबले होते तिथून पुन्हा सुरू होतात.
एंडपॉइंट्सची यादी
curl https://api.thunderphone.com/v1/developer/webhook-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
एंडपॉइंट ऑब्जेक्ट्सचा अॅरे परत करते.
एंडपॉइंट तयार करा
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"]
}'
result = requests.post(
"https://api.thunderphone.com/v1/developer/webhook-endpoints",
headers={"Authorization": "Bearer sk_live_YOUR_API_KEY"},
json={
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
},
).json()
secret = result["secret"]
endpoint_id = result["id"]
विनंती फील्ड
| फील्ड | प्रकार | आवश्यक | वर्णन |
|---|---|---|---|
label | स्ट्रिंग | होय | 1–120 वर्ण |
url | स्ट्रिंग | होय | HTTPS URL (http फक्त localhost / 127.0.0.1 साठी अनुमत आहे) |
events | अॅरे | नाही | रिक्त/वगळल्यास सर्व इव्हेंटचे सबस्क्रिप्शन होते. वैध इव्हेंट प्रकार मध्ये सूचीबद्ध मूल्ये वापरणे आवश्यक आहे; डुप्लिकेट काढून टाकले जातात |
एंडपॉइंट ऑब्जेक्ट सोबत 201 Created परत करते आणि
अतिरिक्त शीर्ष-स्तरीय secret फील्डमध्ये रॉ साइनिंग की समाविष्ट असते — एक
48-वर्णांची हेक्स स्ट्रिंग:
{
"id": "c4d5e6f7-…",
"label": "Production — Call events",
"url": "https://example.com/thunderphone/hook",
"events": ["telephony.incoming", "telephony.complete"],
"status": "active",
"secret_hint": "a1b2…9f0e",
"created_at": "2026-04-20T18:24:10.113Z",
"updated_at": "2026-04-20T18:24:10.113Z",
"secret": "a1b2c37e08d94f5b16a2c8d90e7f3a4b5c6d7e8f90a19f0e"
}
एंडपॉइंट अपडेट करा
curl -X PATCH https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"label": "Production — Call + Grade events",
"events": ["telephony.incoming", "telephony.complete", "call.graded"]
}'
| फील्ड | प्रकार | वर्णन |
|---|---|---|
label | स्ट्रिंग | |
url | स्ट्रिंग | |
events | अॅरे | |
status | स्ट्रिंग | active किंवा disabled. सर्व्हरने failing म्हणून चिन्हांकित केलेला एंडपॉइंट पुन्हा सक्षम करण्यासाठी active सेट करा |
अपडेट केलेल्या एंडपॉइंट ऑब्जेक्टसह 200 OK परत करते.
चाचणी वितरण पाठवा
कॅनॉनिकल JSON सिरिअलायझेशन,
X-ThunderPhone-Signature, वितरण रेकॉर्डिंग आणि रिट्राय नोंदीसह, सामान्य
वितरण पाइपलाइन वापरून एका एंडपॉइंटला सिंथेटिक webhook.test इव्हेंट पाठवा.
चाचणी निवडलेल्या एंडपॉइंटच्या events फिल्टरकडे दुर्लक्ष करून त्यालाच लक्ष्य करते.
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-.../test \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
एंडपॉइंटला यासारखा एन्व्हलप प्राप्त होतो:
{
"data": {
"message": "ThunderPhone webhook test",
"sent_at": "2026-07-17T20:12:34.567890+00:00"
},
"event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
"type": "webhook.test"
}
गंतव्याने त्रुटी परत केली तरीही API पहिल्या प्रयत्नानंतर 200 OK परत करते.
वितरण परिणामासाठी success, status, response_code, आणि error
तपासा:
{
"success": true,
"event_id": "2ad6507c-7d19-4498-9b2d-7e8f944ab5a1",
"event_type": "webhook.test",
"status": "delivered",
"response_code": 204,
"error": ""
}
webhook.test सिंथेटिक आहे आणि एंडपॉइंटच्या events
सबस्क्रिप्शनमध्ये जोडता येत नाही. पहिला प्रयत्न अयशस्वी झाल्यास, वितरण सामान्य
इव्हेंट वितरणांप्रमाणेच रिट्राय वेळापत्रकाचे अनुसरण करते.
एंडपॉइंट हटवा
curl -X DELETE https://api.thunderphone.com/v1/developer/webhook-endpoints/c4d5e6f7-... \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"
204 No Content परत करते. URL वर वितरण तात्काळ थांबते;
प्रगतीतील पुनर्प्रयत्न रद्द केले जातात.