API संदर्भ

Tenant API का उपयोग करके enuchat को अपने सिस्टम में एकीकृत करें। बातचीत प्रबंधित करें, संदेश भेजें, और प्रोग्रामेटिक रूप से बिलिंग डेटा तक पहुंचें।

प्रमाणीकरण

सभी API अनुरोधों को X-Api-Key हेडर में भेजी गई API कुंजी का उपयोग करके प्रमाणित किया जाता है।

अपनी API कुंजी प्राप्त करना

  1. अपने डैशबोर्ड में सेटिंग्स → API कुंजियां पर जाएं
  2. API कुंजी बनाएं पर क्लिक करें और इसे एक नाम दें
  3. कुंजी को तुरंत कॉपी करें — यह केवल एक बार दिखाई गई है
  4. इसे सुरक्षित रूप से स्टोर करें (एनवायरनमेंट वेरिएबल, सीक्रेट मैनेजर)

अनुरोध करना

प्रत्येक अनुरोध में कुंजी शामिल करें:

curl -H "X-Api-Key: tak_your_key_here" \
     https://api.enuchat.com/api/v1/tenant-api/widgets

सभी प्रतिक्रियाएं JSON हैं। सफल प्रतिक्रियाओं में data फ़ील्ड होती है। त्रुटियों में code और message के साथ एक error फ़ील्ड होती है।

सुरक्षा: API कुंजियां हमारे डेटाबेस में हैश (SHA-256) की जाती हैं। हम कभी भी कच्ची कुंजी स्टोर नहीं करते। अपनी कुंजी को एक पासवर्ड की तरह व्यवहार करें — इसे कोड में कमिट न करें या सार्वजनिक रूप से साझा न करें।

बेस URL

https://api.enuchat.com/api/v1/tenant-api

नीचे दिए गए सभी एंडपॉइंट इस बेस URL के सापेक्ष हैं।

एंडपॉइंट

GET /widgets

अपने खाते के लिए सभी विजेट सूचीबद्ध करें।

प्रतिक्रिया

{'{'}
  "data": [
{'{'}
      "id": "019d19c6-7e0b-...",
      "name": "Main Website Chat",
      "isActive": true,
      "aiEnabled": true,
      "translationEnabled": true,
      "primaryColor": "#2563eb",
      "position": "bottom-right"
    }
  ]
}

GET /conversations

सबसे हाल के संदेश के अनुसार क्रमबद्ध बातचीत सूचीबद्ध करें।

क्वेरी पैरामीटर

पैरामीटरप्रकारविवरण
statusstringस्थिति के अनुसार फ़िल्टर करें: open, pending, closed
widgetIdstringविजेट UUID द्वारा फ़िल्टर करें
limitintegerअधिकतम परिणाम (डिफ़ॉल्ट 20, अधिकतम 100)
offsetintegerN परिणाम छोड़ें

उदाहरण

curl -H "X-Api-Key: tak_..." \
     "https://api.enuchat.com/api/v1/tenant-api/conversations?status=open&limit=10"

प्रतिक्रिया

{'{'}
  "data": [
{'{'}
      "id": "019d6724-000e-...",
      "widgetId": "019d19c6-7e0b-...",
      "visitorId": "v-abc123",
      "visitorName": "John",
      "visitorEmail": "john{'@'}example.com",
      "visitorLanguage": "en",
      "status": "open",
      "assignedTo": null,
      "lastMessageAt": "2026-04-11T14:30:00+00:00",
      "startedAt": "2026-04-11T14:25:00+00:00"
    }
  ]
}

GET /conversations/{'{'}id}

सभी संदेशों के साथ एक बातचीत प्राप्त करें।

क्वेरी पैरामीटर

पैरामीटरप्रकारविवरण
limitintegerअधिकतम संदेश (डिफ़ॉल्ट 50, अधिकतम 200)

प्रतिक्रिया

{'{'}
  "data": {'{'}
    "id": "019d6724-000e-...",
    "visitorLanguage": "en",
    "status": "open",
    "messages": [
{'{'}
        "id": "019d6724-1234-...",
        "role": "visitor",
        "content": "Hello, how much does it cost?",
        "contentLanguage": "en",
        "translatedContent": "Cześć, ile to kosztuje?",
        "translatedLanguage": "pl",
        "isAutoReply": false,
        "createdAt": "2026-04-11T14:25:30+00:00"
      },
{'{'}
        "id": "019d6724-5678-...",
        "role": "ai",
        "content": "Our plans start at €19/month...",
        "isAutoReply": true,
        "createdAt": "2026-04-11T14:25:32+00:00"
      }
    ]
  }
}

POST /conversations/{'{'}id}/messages

एक बातचीत में एक संदेश भेजें। संदेश चैट विजेट के माध्यम से आगंतुक को रीयल-टाइम में वितरित किया जाएगा।

अनुरोध बॉडी

{'{'}
  "content": "Thanks for reaching out! We'll process your request.",
  "role": "system"
}
फ़ील्डप्रकारविवरण
contentstringआवश्यक। संदेश पाठ।
rolestringsystem (डिफ़ॉल्ट) या operator

प्रतिक्रिया (201 Created)

{'{'}
  "data": {'{'}
    "id": "019d6725-abcd-...",
    "role": "system",
    "content": "Thanks for reaching out!",
    "createdAt": "2026-04-11T14:35:00+00:00"
  }
}

PATCH /conversations/{'{'}id}

एक बातचीत की स्थिति या असाइनमेंट अपडेट करें।

अनुरोध बॉडी

{'{'}
  "status": "closed"
}
फ़ील्डप्रकारविवरण
statusstringopen, pending, या closed
assignedTostring|nullअसाइन करने के लिए ऑपरेटर UUID, या अनअसाइन करने के लिए null

GET /billing/balance

अपनी वर्तमान योजना और क्रेडिट शेष प्राप्त करें।

प्रतिक्रिया

{'{'}
  "data": {'{'}
    "plan": "pro",
    "creditBalance": 4500000,
    "totalCreditsAdded": 10000000
  }
}

त्रुटि हैंडलिंग

त्रुटियां JSON बॉडी के साथ एक गैर-2xx स्थिति कोड लौटाती हैं:

{'{'}
  "error": {'{'}
    "code": "NOT_FOUND",
    "message": "Conversation not found."
  }
}
HTTP स्थितिअर्थ
401अमान्य, समाप्त, या अनुपलब्ध API कुंजी
400अमान्य अनुरोध बॉडी या पैरामीटर
404संसाधन नहीं मिला (या किसी अन्य टेनेंट से संबंधित है)
500सर्वर त्रुटि

सामान्य उपयोग के मामले

CRM एकीकरण

नई बातचीत के लिए पोल करें और आगंतुक डेटा (नाम, ईमेल, भाषा) को अपने CRM में सिंक करें। एक बाहरी संदर्भ के रूप में बातचीत ID का उपयोग करें।

स्वचालित फ़ॉलो-अप

एक बातचीत बंद होने के बाद, API के माध्यम से एक फ़ॉलो-अप संदेश भेजें: „चैट के लिए धन्यवाद! क्या कुछ और है जिसमें हम मदद कर सकते हैं?"

Webhook विकल्प

जब तक आउटगोइंग webhooks उपलब्ध नहीं हैं, नए संदेशों या स्थिति परिवर्तनों का पता लगाने के लिए समय-समय पर बातचीत एंडपॉइंट पर पोल करें।

थोक संचालन

7 दिनों से अधिक पुरानी सभी बातचीत बंद करें, बाहरी तर्क के आधार पर ऑपरेटरों को बातचीत असाइन करें, या विश्लेषण के लिए बातचीत इतिहास निर्यात करें।

दर सीमाएं

API प्रति API कुंजी 60 अनुरोध प्रति मिनट तक की अनुमति देता है। यदि आप इस सीमा को पार करते हैं, तो आपको 429 Too Many Requests प्रतिक्रिया मिलेगी। प्रतीक्षा करें और घातीय बैकऑफ के साथ पुनः प्रयास करें।

एकीकृत करने के लिए तैयार हैं?

अपना मुफ़्त खाता बनाएं और मिनटों में एक API कुंजी उत्पन्न करें।

निःशुल्क शुरू करें