मुख्य सामग्री पर जाएँ
s.id Logo
डेवलपर प्लेटफ़ॉर्म

Webhooks

आपके HTTPS endpoint पर रियल-टाइम event डिलीवरी।

अवलोकन

Dashboard → Developer → Webhooks में एक सार्वजनिक HTTPS endpoint रजिस्टर करें। जब कोई subscribed event होता है तो s.id आपके URL पर signed JSON payload POST करेगा। विफल deliveries (non-2xx या timeout) को अधिकतम 3 बार, 0 सेकंड, 5 सेकंड और 30 सेकंड की देरी के साथ फिर से कोशिश की जाती है।

POST

JSON डिलीवरी

10s

प्रतिक्रिया समय-सीमा

2xx

सफल प्रतिक्रिया

पुनः प्रयास और सुरक्षा नीति

  • विफल इवेंट को 0, 5 और 30 सेकंड के अंतराल के साथ कुल तीन बार तक प्रयास मिलता है।
  • लगातार पाँच विफल इवेंट के बाद webhook अपने आप निष्क्रिय हो जाता है।
  • JSON को पार्स करने से पहले सटीक raw request body के विरुद्ध हस्ताक्षर सत्यापित करें।

उपलब्ध events

उपलब्ध Events

link.created

नया लिंक बनने पर सक्रिय होता है

link.updated

लिंक का URL या शीर्षक बदलने पर सक्रिय होता है

link.archived

लिंक संग्रहित होने पर सक्रिय होता है

link.clicked

हर रीडायरेक्ट पर सक्रिय होता है (प्रति क्लिक इवेंट)

microsite.published

Microsite प्रकाशित होने पर सक्रिय होता है

qr.scanned

QR कोड स्कैन होने पर सक्रिय होता है

Payload संरचना

प्रत्येक webhook POST में event name, संबंधित resource और UTC timestamp के साथ JSON body होती है।

application/json
{
  "event": "link.created",
  "link": {
    "id": 123,
    "short": "mylink",
    "short_url": "https://s.id/mylink",
    "long_url": "https://example.com/long-url",
    "title": "My Link",
    "created": "2026-06-22T10:00:00Z"
  },
  "timestamp": "2026-06-22T10:00:00Z"
}

डिलीवरी हेडर

X-SID-Event
इवेंट का नाम
X-SID-Signature
sha256=<hmac-hex> हस्ताक्षर
X-SID-Delivery-ID
विशिष्ट डिलीवरी पहचानकर्ता
User-Agent
s.id-Webhooks/1.0

Signatures सत्यापित करना

प्रत्येक delivery में X-SID-Signature: sha256=<hex> header शामिल है। अपने webhook secret का उपयोग करके raw request body का HMAC-SHA256 compute करें और timing-safe equality से compare करें।

event प्रोसेस करने से पहले हमेशा signature सत्यापित करें। HMAC verify किए बिना payload पर कभी भरोसा न करें।
Node.js
const crypto = require('node:crypto');

function verifySignature(secret, rawBody, sigHeader) {
  if (typeof sigHeader !== 'string' || !sigHeader.startsWith('sha256=')) {
    return false;
  }

  const expected = 'sha256=' +
    crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  const receivedBuffer = Buffer.from(sigHeader, 'utf8');
  const expectedBuffer = Buffer.from(expected, 'utf8');

  return receivedBuffer.length === expectedBuffer.length &&
    crypto.timingSafeEqual(receivedBuffer, expectedBuffer);
}
Go
func verifySignature(secret, body []byte, sig string) bool {
  mac := hmac.New(sha256.New, secret)
  mac.Write(body)
  expected := "sha256=" + hex.EncodeToString(mac.Sum(nil))
  return hmac.Equal([]byte(sig), []byte(expected))
}

सेटअप

  1. 1

    Dashboard → Developer → Webhooks पर जाएं और Add Webhook क्लिक करें।

  2. 2

    अपना HTTPS endpoint URL दर्ज करें और जिन events को subscribe करना चाहते हैं उन्हें चुनें।

  3. 3

    Webhook secret कॉपी करें, यह केवल एक बार दिखाया जाता है।

  4. 4

    अपने server में, processing से पहले X-SID-Signature header सत्यापित करें।

  5. 5

    10 सेकंड के भीतर HTTP 2xx लौटाएं। विफल deliveries को अधिकतम 3 बार retry किया जाता है; लगातार 5 विफल deliveries के बाद webhook स्वतः निष्क्रिय हो जाता है।

Webhook जोड़ें

बनाना शुरू करने के लिए तैयार हैं?

मिनटों में API key बनाएं। मुफ़्त tier शामिल, कोई क्रेडिट कार्ड आवश्यक नहीं।

अपनी API key पाएं