Skip to content
भाषा: हिन्दी

डेवलपरों के लिए API

बिक्री और अपना डेटा LinkHarbor को भेजें

1 नवंबर 2026 को अपडेट किया गया 6 मिनट में पढ़ें

Sale callbacks से अपनी शॉप की बिक्री को लिंक क्लिक से जोड़ें, और “Custom (API)” से अपने टूल का लाइव डेटा अपने पेज पर भेजें।

LinkHarbor बाहर से भी डेटा स्वीकार करता है। दो मामलों के लिए अपने secrets वाले ख़ास एंडपॉइंट हैं – इनके लिए आपको API key की ज़रूरत नहीं: sale callbacks आपकी शॉप की बिक्री बताते हैं, ताकि आप अपने आँकड़ों में देख सकें कि किस लिंक से कमाई हुई। “Custom (API)” इंटीग्रेशन आपके अपने टूल का लाइव डेटा विजेट के रूप में आपके पेज पर लाता है और पुश नोटिफ़िकेशन शुरू कर सकता है।

Sale callbacks: बिक्री जोड़ना

क्लिक ID (lt_click_id), जोड़ना और रिपोर्टिंग आपस में कैसे जुड़े हैं, यह कन्वर्ज़न और बिक्री जोड़ना में बताया गया है; यहाँ आपको डेवलपरों के लिए सभी फ़ील्ड और जवाब मिलेंगे। संक्षेप में: जब LinkHarbor किसी गिने गए क्लिक को http या https लक्ष्य पर रीडायरेक्ट करता है, तो वह lt_click_id पैरामीटर जोड़ता है; आपकी शॉप इसे याद रखती है और ख़रीदारी के बाद वापस भेजती है।

Callback secret बनाएँ

“Callback secrets” कार्ड के साथ “Callback और API” पेज
Callback secrets आप “Callback और API” पेज पर बनाते हैं
  1. “Callback और API” खोलें
  2. “Callback secrets” कार्ड में “+ नया secret बनाएँ” पर क्लिक करें
  3. चाहें तो एक नाम दें, जैसे “शॉप callback”, और “secret बनाएँ” पर क्लिक करें
  4. Secret तुरंत कॉपी करें – यह सिर्फ़ एक बार दिखाया जाता है
कौन
मालिक और एडमिन, Creator Pro से। Creator Free में लिखा होता है “Callback secrets Creator Pro से उपलब्ध हैं।”
कितने
हर वर्कस्पेस में ज़्यादा से ज़्यादा 5 secrets, जैसे हर शॉप के लिए एक।
“बदलें”
नाम बदलें और स्थिति “सक्रिय” या “निष्क्रिय” पर सेट करें। निष्क्रिय secret के साथ API callbacks अस्वीकार करता है।
“↺ बदलें”
एक नया secret बनाता है; पुराना तुरंत काम करना बंद कर देता है।
“आख़िरी callback:”
दिखाता है कि secret आख़िरी बार सफलतापूर्वक कब इस्तेमाल हुआ।

Callback भेजें

POST /v1/callbacks/sale
curl -X POST https://dock.at-harbor.com/v1/callbacks/sale \
  -H "Content-Type: application/json" \
  -H "X-Callback-Secret: $LH_CALLBACK_SECRET" \
  -d '{
    "click_id": "3f1c2a9e-8d4b-4a51-9f0e-6b7c1d2e3f40",
    "order_id": "A-10023",
    "amount": "49.90",
    "currency": "EUR",
    "occurred_at": "2026-11-01T10:15:00Z"
  }'
# → {"ok":true,"conversion_id":123}
फ़ील्डज़रूरीमतलब
click_idहाँlt_click_id की वैल्यू (10–36 अक्षर)
order_idहाँआपका ऑर्डर नंबर (1–128 अक्षर); हर वर्कस्पेस में हर ऑर्डर नंबर सिर्फ़ एक बार गिना जाता है
amountहाँदशमलव संख्या के रूप में राशि, जैसे "49.90"; कोई नकारात्मक वैल्यू नहीं
currencyहाँतीन अक्षरों के कोड के रूप में मुद्रा, जैसे EUR; API छोटे अक्षरों को बदल देता है
occurred_atनहींख़रीदारी का समय (ISO 8601)
amount_base_minor, base_currency, fx_rateनहींसबसे छोटी इकाई में बदली गई राशि, बेस मुद्रा और विनिमय दर, अगर आप कई मुद्राओं में बेचते हैं
metaनहींआपका अपना अतिरिक्त डेटा एक सपाट ऑब्जेक्ट के रूप में: 1–64 अक्षरों वाली ज़्यादा से ज़्यादा 50 keys; वैल्यू टेक्स्ट (500 अक्षर तक), कोई संख्या, true/false या null होती हैं; नेस्ट किए गए ऑब्जेक्ट और सूचियाँ अस्वीकार होती हैं
workspace_idनहींआपकी वर्कस्पेस ID; इसके साथ API अज्ञात click_id को 403 की जगह 404 के रूप में बताता है
जवाबमतलब
200 {"ok":true,"conversion_id":…}बिक्री सहेजी गई – या यह order_id पहले से सहेजी गई थी (तब मौजूदा कन्वर्ज़न की ID)
403 forbiddenग़लत secret या सिग्नेचर, या अज्ञात click_id (workspace_id के बिना)
403 secret_inactiveSecret “निष्क्रिय” पर सेट है
404 not_foundअज्ञात click_id (सिर्फ़ workspace_id और वैध secret के साथ)
413 request_too_largeबॉडी 1 MB से बड़ी है
422 validation_failedकोई फ़ील्ड नहीं है या अमान्य है, जैसे meta में बहुत लंबी या नेस्ट की गई वैल्यू
429 rate_limitedआपके IP पते से प्रति मिनट 120 से ज़्यादा callbacks

वैकल्पिक सिग्नेचर

Secret के अलावा आप X-Callback-Signature हेडर भी भेज सकते हैं। इसमें sha256= और hex में raw बॉडी का HMAC-SHA256 सिग्नेचर होता है। Key ख़ुद secret नहीं, बल्कि बाइनरी रूप में उसका SHA-256 हैश है। अगर आप यह हेडर भेजते हैं, तो इसका सही होना ज़रूरी है – वरना callback अस्वीकार हो जाता है।

सिग्नेचर गिनें (PHP)
<?php
$body = json_encode($payload);
$key  = hash('sha256', getenv('LH_CALLBACK_SECRET'), true); // secret का बाइनरी हैश
$sig  = 'sha256=' . hash_hmac('sha256', $body, $key);
// हेडर: X-Callback-Secret और X-Callback-Signature: $sig, बॉडी: $body

बिक्री कहाँ दिखती है

बताई गई बिक्री आपके आँकड़ों में कन्वर्ज़न के रूप में दिखती है, देखें कन्वर्ज़न और बिक्री जोड़ना। API से आप इन्हें read:stats के साथ /v1/stats/…/conversions/breakdown के तहत पढ़ते हैं।

Custom (API): आपका अपना लाइव डेटा

“Custom (API)” इंटीग्रेशन से HTTP अनुरोध भेज सकने वाला कोई भी प्रोग्राम – गेम सर्वर प्लगइन, बॉट, cron स्क्रिप्ट – LinkHarbor को डेटा भेज सकता है। यह आपके पेज पर एक लाइव विजेट बन जाता है, और पुश नियम आपके फ़ॉलोअर्स को सूचित कर सकते हैं।

जोड़ें

  1. वर्कस्पेस में “इंटीग्रेशन” खोलें
  2. “Custom (API)” चुनें और एक नाम डालें
  3. जुड़ने के बाद डायलॉग “Ingest URL” और “Secret” (“Secret दिखाएँ” के साथ) दिखाता है
  4. दोनों को अपने टूल में सहेजें

इंटीग्रेशन Creator Pro से उपलब्ध हैं। Ingest URL और secret सिर्फ़ मालिक और एडमिन देख सकते हैं, बाद में इंटीग्रेशन के विवरण व्यू में भी। डिस्कनेक्ट करके फिर से जोड़ने पर नया secret बनता है। इंटीग्रेशन आम तौर पर कैसे जोड़ें, यह इंटीग्रेशन जोड़ें में बताया गया है।

डेटा भेजें

इवेंट और विजेट की स्थिति भेजें
curl -X POST "$INGEST_URL" \
  -H "Authorization: Bearer $INGEST_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "event": "player.joined",
    "event_id": "join-2026-11-01T20:01:02Z-steve",
    "data": { "player": "Steve" },
    "state": {
      "type": "game_server",
      "name": "Survival SMP",
      "online": true,
      "players_online": 3,
      "players_max": 20
    }
  }'
# → {"ok":true,"event_id":4711,"duplicate":false,"event_type":"player.joined"}
event
अपनी मर्ज़ी का इवेंट नाम, जैसे player.joined। यह छोटे अक्षरों में बदला जाता है और यही वह नाम है जिस पर पुश नियम प्रतिक्रिया देते हैं। event के बिना इवेंट का नाम state.updated होता है।
event_id
वैकल्पिक key, जो दोहरी प्रोसेसिंग रोकती है। अगर वही event_id फिर भेजी जाती है, तो LinkHarbor duplicate: true के साथ जवाब देता है और कुछ नहीं करता।
data
पुश टेक्स्ट के प्लेसहोल्डर के लिए वैल्यू, जैसे {player}। ज़्यादा से ज़्यादा 40 keys, सिर्फ़ सरल वैल्यू।
state
विजेट की पूरी स्थिति। यह पिछली स्थिति को पूरी तरह बदल देती है। type game_server (गेम सर्वर कार्ड) या status (स्टेटस कार्ड) होता है।

Authorization: Bearer की जगह आप secret X-LinkHarbor-Secret हेडर में भी भेज सकते हैं। हर IP पते से प्रति मिनट 120 कॉल की अनुमति है। चाहें तो आप बॉडी साइन करें: X-LinkHarbor-Signature हेडर में sha256= और secret को key बनाकर raw बॉडी का HMAC-SHA256 सिग्नेचर होता है। अगर आप इसे भेजते हैं, तो इसका सही होना ज़रूरी है।

जवाबमतलब
200 {"ok":true,…}इवेंट सहेजा गया, जानी-पहचानी event_id के लिए duplicate: true के साथ
400 invalid_jsonबॉडी कोई JSON ऑब्जेक्ट नहीं है
401 invalid_secretग़लत secret या अज्ञात ingest URL
401 signature_invalidX-LinkHarbor-Signature बॉडी से मेल नहीं खाता
413 request_too_largeबॉडी 64 KB से बड़ी है
422 validation_failedबॉडी में न event है न state
429 rate_limitedआपके IP पते से प्रति मिनट 120 से ज़्यादा कॉल

कुछ नहीं मिला?

हमें बताएँ कि आपको क्या चाहिए, और हमारी सपोर्ट टीम ख़ुद आपकी मदद करेगी।

सपोर्ट से संपर्क करें