> ## Documentation Index
> Fetch the complete documentation index at: https://ayrshare.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks Overview

> Events पर अपडेट प्राप्त करने के लिए webhooks रजिस्टर करने के लिए Webhook API Endpoints

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

## Webhook क्या है?

एक Webhook आपको सूचित करने की अनुमति देता है जब कुछ सिस्टम *actions* आपके द्वारा प्रदान किए गए URL पर एक कॉल के माध्यम से होते हैं। Webhooks को "URL Callbacks" या "HTTP push calls" के रूप में भी जाना जाता है। आपके URL को SSL का उपयोग करना चाहिए और HTTPS से शुरू होना चाहिए।

<Card title="Webhook Actions" icon="link" href="/apis/webhooks/actions" horizontal>
  webhooks के लिए उपलब्ध actions देखें।
</Card>

### Ayrshare Webhooks को समझना

Webhooks को विशिष्ट action द्वारा वर्गीकृत किया जाता है और *Primary Profile या User Profile स्तर पर रजिस्टर किया जाता है*। Primary या User Profiles के लिए कोई भी अपडेट पहले User Profile के लिए रजिस्टर किए गए Webhook पर भेजा जाता है। यदि User Profile के पास एक रजिस्टर किया गया Webhook नहीं है, तो अपडेट Primary Profile के रजिस्टर किए गए Webhook पर भेजा जाएगा।

उदाहरण के लिए:

<ul class="custom-bullets">
  <li>
    यदि एक User Profile के पास एक रजिस्टर किया गया Social Action Webhook है और TikTok को unlink करता है,
    तो User Profile के लिए रजिस्टर किया गया Social Action Webhook URL कॉल किया जाएगा। Primary Profile webhook *कॉल नहीं किया जाएगा*।
  </li>

  <li>
    यदि एक User Profile TikTok को unlink करता है और *उसके पास* एक रजिस्टर किया गया Social
    Action Webhook *नहीं है*, लेकिन Primary Profile के पास एक रजिस्टर किया गया Webhook है, तो
    Primary Profile के लिए रजिस्टर किया गया Social Action Webhook URL कॉल किया जाएगा।
  </li>
</ul>

### एक Webhook रजिस्टर करें

POST [`/hook/webhook`](/apis/webhooks/register) endpoint को एक endpoint URL और action प्रकार प्रदान करके एक Webhook रजिस्टर करें। जब action होता है तो प्रदान किए गए URL पर एक `HTTP POST` message भेजा जाएगा।
उदाहरण के लिए, scheduled पोस्ट की स्थिति की सूचना पाने के लिए एक URL रजिस्टर करें।

Webhook endpoint URL को redirects का उपयोग नहीं करना चाहिए और यह अंतिम गंतव्य URL होना चाहिए।

यदि आप केवल Primary Profile webhook रजिस्टर करते हैं, तो User Profiles स्वचालित रूप से Primary Profile webhook को inherit करेंगे।
प्रत्येक User Profile के लिए एक अद्वितीय webhook के लिए, आपको प्रत्येक User Profile के लिए एक webhook रजिस्टर करना होगा।

<Note>
  आपके Webhook को `HTTP POST` प्राप्त करने के बाद, आपके सर्वर को कॉल को सफल के रूप में चिह्नित करने के लिए
  `200` की HTTP स्थिति के साथ प्रतिक्रिया **देनी चाहिए**। यदि आपका सर्वर 10 सेकंड के भीतर प्रतिक्रिया नहीं देता है,
  तो एक `503` response रिकॉर्ड किया जाएगा।
</Note>

आप Developer Dashboard में भी webhooks रजिस्टर कर सकते हैं।

### Webhook Retries

यदि आपके सर्वर से HTTP response `200-299` सफलता रेंज में नहीं है, तो सिस्टम स्वचालित रूप से Webhook कॉल को दो और बार पुनः प्रयास करेगा। पहला पुनःप्रयास 5 सेकंड के बाद होगा और दूसरा पुनःप्रयास 30 सेकंड बाद होगा। पुनःप्रयासों में समान `hookId` होगा और उन्हें प्रयासित पुनःप्रयासों के रूप में चिह्नित किया जाएगा।

## Webhook Security

आप HMAC authentication को एक HTTP request के रूप में सेट करके अतिरिक्त सुरक्षा जोड़ना चुन सकते हैं। यह अक्सर replay attacks को रोकने के लिए किया जाता है। Ayrshare message की body को hash करने के लिए [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) का उपयोग करता है और इसे तथा UNIX timestamp को POST के header में शामिल करता है।

```bash theme={"system"}
X-Authorization-Timestamp : <Unix Timestamp In Seconds>
X-Authorization-Content-SHA256 : <HashedContent>
```

[अपने webhook को रजिस्टर करते समय](/apis/webhooks/register) सेट की गई एक secret key के आधार पर, आप header X-Authorization-Content-SHA256 की तुलना POST body के SHA256 hash के साथ करके पोस्ट को validate कर सकते हैं। Secret key सभी webhook actions में उपयोग की जाती है, इसलिए एक action के लिए इसे सेट करने से सभी actions के लिए secret बदल जाएगा।

## Webhook Logs

Ayrshare Dashboard में, आप [active webhooks](https://app.ayrshare.com/webhooks) देख सकते हैं, भेजे गए Webhook का विवरण, आपके सर्वर की response status देख सकते हैं, और रजिस्टर किए गए URL पर Webhook को पुनः भेज सकते हैं।
उस प्रोफ़ाइल के Webhook logs देखने के लिए एक विशेष User Profile पर स्विच करें।

### HTTP Response Codes

पहला कॉलम Webhook से एक सफल HTTP response ✔️ (200, 300) या एक विफल response ✖️ (400, 500) को इंगित करता है।

उस प्रोफ़ाइल के Webhook logs देखने के लिए एक विशेष user profile पर स्विच करें।

### Error Rate

सबसे हाल की 1,000 पोस्ट का "Error Rate" डैशबोर्ड के भीतर Actions और Webhook Logs दोनों पेजों पर देखा जा सकता है। आपके सर्वर से 400-500 का कोई भी webhook response एक error माना जाता है।
