हमारे APIs के साथ अपनी वेबसाइट में लॉटरी परिणाम एकीकृत करें
डियर लॉटरी संबाद से सत्यापित लॉटरी परिणाम प्राप्त करें और उन्हें अपने प्लेटफ़ॉर्म पर आसानी से एकीकृत करें। सरल की-लेस (Keyless) PDF एम्बेड के लिए हमारा पब्लिक API चुनें, या संपूर्ण स्ट्रक्चर्ड JSON डेटा, डेटाबेस स्टोरेज और पूर्ण डिज़ाइन स्वतंत्रता के लिए हमारा प्राइवेट API चुनें।
अपने प्लेटफ़ॉर्म के लिए सही API चुनें
हम विभिन्न तकनीकी आवश्यकताओं और एकीकरण स्तरों के अनुसार दो विशिष्ट API सिस्टम प्रदान करते हैं।
पब्लिक PDF और मेटाडेटा API
वेबमास्टर्स, ब्लॉगर्स और क्षेत्रीय समाचार पोर्टल्स के लिए आदर्श जो प्रमाणीकरण की (API Key) या डोमेन अनुमोदन के बिना त्वरित एकीकरण चाहते हैं।
- ✓ API की की आवश्यकता नहीं: किसी भी सर्वर या ब्राउज़र से तुरंत सार्वजनिक एक्सेस।
- ✓ A4 PDF एम्बेड कोड: सीधे परिणाम पत्र प्रदर्शित करने के लिए रिस्पॉन्सिव iframe कोड।
- ✓ डायरेक्ट डाउनलोड लिंक: ड्रॉ आर्काइव के लिए आधिकारिक सत्यापित PDF डाउनलोड URL।
- ✓ कोई समाप्ति नहीं: उचित उपयोग दर सीमा (60 अनुरोध/मिनट) के तहत आजीवन की-लेस एक्सेस।
- ℹ नोट: केवल आधिकारिक PDF लिंक और मेटाडेटा प्रदान करता है। संरचित विजेता नंबर इसमें शामिल नहीं हैं।
डोमेन-आधारित स्ट्रक्चर्ड रिजल्ट्स API
वेबसाइट मालिकों, ऐप डेवलपर्स और सिंडिकेट्स के लिए डिज़ाइन किया गया जिन्हें मशीन-पठनीय विजेता नंबर, पुरस्कार विवरण और डेटाबेस स्टोरेज की आवश्यकता है।
- ✓ पूर्ण संरचित डेटा: सभी स्तरों (प्रथम, द्वितीय, तृतीय, चतुर्थ, पंचम और सांत्वना) के लिए पूर्ण विजेता नंबर ऐरे।
- ✓ स्वयं का डेटाबेस स्टोरेज: MySQL, PostgreSQL या Mongo में पूर्ण ड्रॉ रिकॉर्ड प्राप्त करें और सहेजें।
- ✓ कस्टम फ़्रंटएंड स्वतंत्रता: कस्टम HTML टेबल, नेटिव मोबाइल ऐप, या टेलीग्राम/व्हाट्सएप बॉट बनाएं।
-
✓
इंक्रीमेंटल सिंक्रोनाइज़ेशन: उच्च दक्षता वाले पोलिंग के लिए
updated_sinceद्वारा फ़िल्टर करें। - ✓ डोमेन और राज्य सुरक्षा: प्रतिक्रिया में सदस्यता मेटाडेटा के साथ पार्टनर डोमेन/सबडोमेन के आधार पर अधिकृत।
पब्लिक PDF और मेटाडेटा API डेवलपर गाइड
पब्लिक API एक की-लेस REST सेवा है जिसे वेबसाइट पर तत्काल एकीकरण के लिए डिज़ाइन किया गया है। यह आपको सक्रिय राज्यों की जानकारी प्राप्त करने, प्रकाशित लॉटरी ड्रॉ शेड्यूल खोजने, रिस्पॉन्सिव A4 PDF iframe एम्बेड कोड प्राप्त करने और आगंतुकों को आधिकारिक PDF डाउनलोड लिंक प्रदान करने की अनुमति देता है।
https://dearlotterysambad.live/api/v1/public
पब्लिक एंडपॉइंट्स संदर्भ
/api/v1/public/states
वर्तमान में सार्वजनिक परिणाम खोज के लिए अधिकृत राज्य लॉटरी की सूची लौटाता है।
{
"success": true,
"api_type": "public_pdf",
"data": [
{
"id": 1,
"name": "Sikkim",
"slug": "sikkim-lottery-result",
"code": "SK"
},
{
"id": 2,
"name": "Nagaland",
"slug": "nagaland-lottery-result",
"code": "NL"
}
]
}
/api/v1/public/results
iframe एम्बेड कोड और सत्यापित PDF डाउनलोड लिंक के साथ प्रकाशित लॉटरी ड्रॉ की पृष्ठबद्ध (Paginated) सूची प्राप्त करें।
| पैरामीटर | प्रकार | आवश्यकता | विवरण और उदाहरण |
|---|---|---|---|
| state | string | वैकल्पिक | राज्य स्लग (sikkim-lottery-result), कोड (SK), या ID। |
| date | string | वैकल्पिक | YYYY-MM-DD प्रारूप में सटीक ड्रॉ तिथि (जैसे 2026-11-03)। |
| from_date | string | वैकल्पिक | तिथि सीमा का प्रारंभ (YYYY-MM-DD)। |
| to_date | string | वैकल्पिक | तिथि सीमा का अंत (YYYY-MM-DD)। |
| time | string | वैकल्पिक | ड्रॉ समय फ़िल्टर (13:00, 18:00, 20:00)। |
| per_page | integer | वैकल्पिक | प्रति पृष्ठ परिणाम (1 से 50, डिफ़ॉल्ट: 10)। |
{
"success": true,
"api_type": "public_pdf",
"note": "Provides official PDF embed and download links only. Structured winning numbers and prize breakdowns are restricted.",
"data": [
{
"result_id": 1420,
"state_name": "Sikkim",
"state_code": "SK",
"lottery_name": "Dear Everest Morning",
"draw_date": "2026-11-03",
"draw_time": "13:00:00",
"draw_time_label": "01:00 PM",
"draw_number": "48",
"pdf_embed_url": "https://dearlotterysambad.live/results/embed-pdf/1420",
"pdf_download_url": "https://dearlotterysambad.live/results/download/1420",
"embed_iframe_code": "<iframe src=\"https://dearlotterysambad.live/results/embed-pdf/1420\" width=\"100%\" height=\"850\" frameborder=\"0\" title=\"Dear Lottery Sambad A4 Result\"></iframe>",
"published_at": "2026-11-03T07:35:00.000000Z"
}
],
"pagination": {
"current_page": 1,
"per_page": 10,
"total": 1,
"total_pages": 1,
"has_more": false
}
}
/api/v1/public/results/{id}
किसी विशिष्ट प्रकाशित लॉटरी परिणाम ID के लिए एम्बेड कोड और डायरेक्ट डाउनलोड लिंक प्राप्त करें।
पब्लिक API एकीकरण कोड उदाहरण
<!-- 1. Embed Verified A4 Result Preview Directly -->
<div class="lottery-pdf-container" style="max-width: 900px; margin: 0 auto;">
<h3>Today's Dear Lottery Official Result Sheet</h3>
<iframe
src="https://dearlotterysambad.live/results/embed-pdf/1420"
width="100%"
height="850"
frameborder="0"
title="Dear Lottery Sambad A4 Result"
style="border: 1px solid #e2e8f0; border-radius: 12px;">
</iframe>
<!-- 2. Direct Official PDF Download Button -->
<p style="margin-top: 12px;">
<a href="https://dearlotterysambad.live/results/download/1420"
target="_blank"
rel="noopener noreferrer"
style="background: #059669; color: #fff; padding: 10px 20px; border-radius: 8px; text-decoration: none; font-weight: bold;">
Download Official A4 Result PDF
</a>
</p>
</div>
async function loadLatestPublicResult(stateSlug = 'sikkim-lottery-result') {
const container = document.getElementById('lottery-results-target');
container.innerHTML = '<p class="loading">Loading latest verified result...</p>';
try {
const url = `https://dearlotterysambad.live/api/v1/public/results?state=${encodeURIComponent(stateSlug)}&per_page=1`;
const response = await fetch(url, {
headers: { 'Accept': 'application/json' }
});
if (!response.ok) {
throw new Error(`API Error: HTTP ${response.status}`);
}
const data = await response.json();
if (data.success && data.data.length > 0) {
const latest = data.data[0];
container.innerHTML = `
<div class="result-card">
<h4>${latest.lottery_name} (${latest.draw_time_label})</h4>
<p>Draw Date: ${latest.draw_date}</p>
<div class="embed-wrapper">
${latest.embed_iframe_code}
</div>
<a href="${latest.pdf_download_url}" class="download-btn" target="_blank">
Download Official Sheet
</a>
</div>
`;
} else {
container.innerHTML = '<p>No published results available for the requested state.</p>';
}
} catch (err) {
console.error('Failed to load lottery result:', err);
container.innerHTML = '<p class="error">Unable to load lottery result sheet. Please try again later.</p>';
}
}
// Call on page ready
document.addEventListener('DOMContentLoaded', () => loadLatestPublicResult('sikkim-lottery-result'));
<?php
$state = 'nagaland-lottery-result';
$apiUrl = 'https://dearlotterysambad.live/api/v1/public/results?state=' . urlencode($state) . '&per_page=1';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Accept: application/json',
'User-Agent: MyWebsiteBot/1.0'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200 && $response) {
$result = json_decode($response, true);
if (!empty($result['data'][0])) {
$draw = $result['data'][0];
echo "Latest Result: " . htmlspecialchars($draw['lottery_name']) . "\n";
echo "Download URL: " . htmlspecialchars($draw['pdf_download_url']) . "\n";
}
} else {
echo "API request failed with HTTP " . $httpCode;
}
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
public function fetchPublicLotterySheet(string $state = 'sikkim-lottery-result'): ?array
{
try {
$response = Http::timeout(8)
->acceptJson()
->get('https://dearlotterysambad.live/api/v1/public/results', [
'state' => $state,
'per_page' => 1,
]);
if ($response->successful() && $response->json('success')) {
return $response->json('data.0');
}
Log::warning('Public Lottery API returned non-success response', [
'status' => $response->status(),
'body' => $response->body()
]);
} catch (\Throwable $e) {
Log::error('Public Lottery API request failed: ' . $e->getMessage());
}
return null;
}
प्राइवेट लॉटरी परिणाम API – आपकी वेबसाइट पर पूर्ण नियंत्रण
प्राइवेट API को उन वेबसाइट मालिकों, ऐप डेवलपर्स और लॉटरी सिंडिकेट्स के लिए तैयार किया गया है जो अपना स्वतंत्र लॉटरी परिणाम प्लेटफ़ॉर्म बनाना चाहते हैं। प्रत्येक विजेता नंबर, रैंक टियर, टिकट सीरीज़, विजेता का नाम और ड्रॉ पहचानकर्ता युक्त मशीन-पठनीय संरचित JSON प्राप्त करें।
पार्टनर वेबसाइटों के लिए 10 मुख्य लाभ
अपने स्वयं के परिणाम लेआउट, कस्टम CSS, मोबाइल थीम और इंटरैक्टिव टिकट चेकर डिज़ाइन करें। आपको iframe विजेट या तीसरे पक्ष की ब्रांडिंग प्रदर्शित करने के लिए बाध्य नहीं किया जाता है।
आने वाले संरचित ड्रॉ डेटा को अपने MySQL, PostgreSQL, या Mongo डेटाबेस में सहेजें। एक बार संग्रहीत होने के बाद, आपके अपने सर्वर पर ऐतिहासिक रिकॉर्ड का स्थायी एक्सेस होता है।
मैन्युअल टाइपिंग या PDF OCR के बिना स्वचालित सर्वर क्रॉन जॉब्स के माध्यम से नए प्रकाशित परिणाम प्राप्त करें। सिंक्रोनाइज़ेशन शेड्यूल आपके कार्यान्वयन पर निर्भर करता है।
अपने बाज़ार के अनुसार अनुमतियाँ प्राप्त करें: एकल-राज्य एक्सेस (जैसे केवल सिक्किम या नागालैंड) या व्यापक मल्टी-स्टेट बंडल।
प्रत्येक API की स्वतंत्र रूप से एक अधिकृत रूट डोमेन या सबडोमेन (जैसे partner.com या lottery.partner.org) से जुड़ी होती है, जो सुरक्षित वातावरण सुनिश्चित करती है।
पूर्ण मशीन-पठनीय पुरस्कार स्तर: प्रथम पुरस्कार, सांत्वना, द्वितीय, तृतीय, चतुर्थ, पंचम, टिकट सीरीज़, विजेताओं के नाम, प्रथम पुरस्कार विक्रेता की जानकारी और सत्यापित समय।
किसी भी स्टैक (PHP, Node, Python, Go) में वेबसाइट बनाएं या नेटिव iOS/Android मोबाइल ऐप, SMS अलर्ट और नोटिफिकेशन चैनल संचालित करें।
सदस्यताएं दिनों की सटीक अवधि (जैसे 30, 90, 180, 365 दिन) के लिए कॉन्फ़िगर की जाती हैं। कोई अप्रत्याशित आवर्ती शुल्क या अनुबंध नहीं।
प्रत्येक सफल API रिस्पॉन्स में एक api_subscription ऑब्जेक्ट होता है जो शेष दिनों और समाप्ति तिथि को दर्शाता है, जिससे आपके एडमिन कंसोल में सक्रिय निगरानी संभव होती है।
सक्रिय सदस्यता का नवीनीकरण करते समय, नई वैधता आपकी वर्तमान समाप्ति तिथि से बढ़ा दी जाती है। आपकी API की अपरिवर्तित रहती है, जिससे आपकी लाइव साइट पर कोड अपडेट की आवश्यकता नहीं होती।
प्राइवेट API प्रमाणीकरण और तकनीकी संदर्भ
प्राइवेट API के सभी अनुरोधों के लिए वैध प्रमाणीकरण हेडर आवश्यक हैं और उन्हें आपके पंजीकृत डोमेन के विरुद्ध सत्यापित किया जाता है।
आपकी प्राइवेट API की (dls_dom_...) पूर्ण संरचित डेटा एक्सेस प्रदान करती है। अपनी प्राइवेट API की को ब्राउज़र-साइड JavaScript, HTML सोर्स कोड, मोबाइल क्लाइंट बाइनरी, या सार्वजनिक GitHub रिपॉजिटरी में कभी भी उजागर न करें। हमेशा अपने बैकएंड सर्वर या सर्वरलेस फ़ंक्शन से प्राइवेट API को कॉल करें, और अपनी की को एनवायरनमेंट वेरिएबल (LOTTERY_API_KEY) में सुरक्षित रखें।
आवश्यक अनुरोध हेडर
| हेडर | प्रारूप और मान | आवश्यकता |
|---|---|---|
| X-API-KEY | dls_dom_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
आवश्यक |
| Accept | application/json |
अनुशंसित |
* नोट: वैकल्पिक रूप से, प्रमाणीकरण गेटवे द्वारा Authorization: Bearer dls_dom_... भी समर्थित है।
प्राइवेट एंडपॉइंट्स संदर्भ
/api/v1/states
आपकी API की के लिए अधिकृत विशिष्ट लॉटरी राज्यों की सूची और आपकी वर्तमान सदस्यता वैधता मेटाडेटा लौटाता है।
{
"success": true,
"domain": "partner.com",
"api_subscription": {
"status": "active",
"activated_at": "2026-11-03T06:34:28.000000Z",
"expires_at": "2027-11-03T06:34:28.000000Z",
"validity_days": 365,
"remaining_days": 365
},
"data": [
{
"id": 1,
"name": "Sikkim",
"slug": "sikkim-lottery-result",
"code": "SK"
},
{
"id": 2,
"name": "Nagaland",
"slug": "nagaland-lottery-result",
"code": "NL"
}
]
}
/api/v1/results
पुरस्कार रैंकिंग, विजेता नंबर ऐरे और संशोधन समय सहित पूर्ण संरचित ड्रॉ रिकॉर्ड प्राप्त करें। updated_since के माध्यम से इंक्रीमेंटल सिंक का समर्थन करता है।
| पैरामीटर | प्रकार | विवरण और उद्देश्य |
|---|---|---|
| state | string | अधिकृत राज्य स्लग (sikkim-lottery-result), कोड (SK), या ID द्वारा फ़िल्टर करें। |
| date | string | सटीक ड्रॉ तिथि (<code class="text-xs font-mono">YYYY-MM-DD</code>)। |
| updated_since | ISO 8601 | इंक्रीमेंटल सिंक: टाइमस्टैम्प के बाद जोड़े या संशोधित किए गए परिणाम लौटाता है (जैसे 2026-11-03T12:00:00Z)। क्रॉन जॉब्स के लिए अत्यधिक अनुशंसित। |
| time | string | ड्रॉ समय फ़िल्टर (13:00, 18:00, 20:00)। |
| per_page | integer | प्रति पृष्ठ परिणाम (1 से 50, डिफ़ॉल्ट: 10)। |
{
"success": true,
"domain": "partner.com",
"api_subscription": {
"status": "active",
"activated_at": "2026-11-03T06:34:28.000000Z",
"expires_at": "2027-11-03T06:34:28.000000Z",
"validity_days": 365,
"remaining_days": 365
},
"data": [
{
"result_id": 1420,
"identity_key": "SK-2026-11-03-13:00:00-dear-everest-morning",
"state": {
"id": 1,
"name": "Sikkim",
"slug": "sikkim-lottery-result",
"code": "SK"
},
"lottery_name": "Dear Everest Morning",
"draw_date": "2026-11-03",
"draw_time": "13:00:00",
"draw_time_label": "01:00 PM",
"draw_number": "48",
"first_prize_sold_by": "Stockist: Lucky Agency, Siliguri",
"status": "published",
"original_pdf_url": "https://dearlotterysambad.live/results/download/1420",
"pdf_embed_url": "https://dearlotterysambad.live/results/embed-pdf/1420",
"prizes": [
{
"rank": "1",
"prize_name": "1st Prize",
"prize_amount": "₹1 Crore",
"winner_name": "Rahul Verma",
"series": "97K",
"winning_numbers": ["97K 95045"]
},
{
"rank": "2",
"prize_name": "Consolation Prize",
"prize_amount": "₹1,000",
"winner_name": null,
"series": null,
"winning_numbers": ["95045"]
},
{
"rank": "3",
"prize_name": "2nd Prize",
"prize_amount": "₹9,000",
"winner_name": null,
"series": null,
"winning_numbers": ["01234", "12345", "23456", "34567", "45678", "56789", "67890", "78901", "89012", "90123"]
},
{
"rank": "4",
"prize_name": "3rd Prize",
"prize_amount": "₹450",
"winner_name": null,
"series": null,
"winning_numbers": ["1122", "2233", "3344", "4455", "5566", "6677", "7788", "8899", "9900", "0011"]
},
{
"rank": "5",
"prize_name": "4th Prize",
"prize_amount": "₹250",
"winner_name": null,
"series": null,
"winning_numbers": ["1425", "3627", "4859", "6071", "7283", "8495", "9607", "0819", "2031", "3243"]
},
{
"rank": "6",
"prize_name": "5th Prize",
"prize_amount": "₹120",
"winner_name": null,
"series": null,
"winning_numbers": ["0145", "0278", "0389", "0491", "0512", "0623", "0734", "0845", "0956", "1067", "1178", "1289", "1390", "1401", "1512", "1623", "1734", "1845", "1956", "2067"]
}
],
"verified_at": "2026-11-03T07:35:00.000000Z",
"last_updated_at": "2026-11-03T07:35:00.000000Z"
}
],
"pagination": {
"current_page": 1,
"per_page": 10,
"total": 1,
"total_pages": 1,
"has_more": false
}
}
सदस्यता मेटाडेटा (api_subscription) फ़ील्ड्स
"active"
सक्रिय (active), समाप्त (expired), या निष्क्रिय (deactivated)।
ISO 8601
प्रारंभिक सक्रियण समय।
ISO 8601
सदस्यता समाप्ति समय।
365
कुल कॉन्फ़िगर किए गए सदस्यता दिन।
365
समाप्ति तक शेष पूर्ण दिन।
समाप्ति प्रबंधन (API_EXPIRED)
जब आपकी सदस्यता अपनी expires_at समय सीमा पार कर जाती है, तो प्रमाणीकरण मिडलवेयर तुरंत अनुरोध रोक देता है और एक HTTP 403 Forbidden स्टेटस लौटाता है:
{
"success": false,
"error": {
"code": "API_EXPIRED",
"message": "Your API subscription has expired. Please contact the administrator for renewal."
},
"data": {
"status": "expired",
"expired_at": "2026-10-29T06:34:09.000000Z"
}
}
डेवलपर सलाह: अपने बैकएंड कैच ब्लॉक में error.code === 'API_EXPIRED' की जांच करें। आप अन्य सुविधाओं को बाधित किए बिना नवीनीकरण शुरू करने के लिए अपने साइट प्रशासक को स्वचालित रूप से एक सूचना भेज सकते हैं।
पूर्ण एरर कोड संदर्भ
| HTTP स्टेटस | एरर कोड / कारण | विवरण और अनुशंसित कार्रवाई |
|---|---|---|
| 401 Unauthorized | API की गायब है | हेडर X-API-KEY गायब या खाली था। हेडर्स में की प्रदान करें। |
| 401 Unauthorized | अमान्य API की | API की किसी भी पंजीकृत पार्टनर रिकॉर्ड से मेल नहीं खाती। क्रेडेंशियल्स सत्यापित करें। |
| 403 Forbidden | API_KEY_DEACTIVATED | API की व्यवस्थापक द्वारा मैन्युअल रूप से ब्लॉक/निष्क्रिय की गई थी। समर्थन से संपर्क करें। |
| 403 Forbidden | API_EXPIRED | सदस्यता वैधता अवधि समाप्त हो गई है। नवीनीकरण के माध्यम से वैधता बढ़ाएं। |
| 403 Forbidden | राज्य अधिकृत नहीं है | आपकी की अनुरोधित राज्य के लिए अधिकृत नहीं है। राज्य जोड़ने के लिए एडमिन से संपर्क करें। |
| 404 Not Found | नहीं मिला (Not Found) | अनुरोधित परिणाम रिकॉर्ड या राज्य मौजूद नहीं है। |
| 429 Rate Limit | बहुत अधिक अनुरोध | 120 अनुरोध/मिनट से अधिक हो गए। स्थानीय कैशिंग (Redis/Memcached) लागू करें। |
प्राइवेट API एकीकरण कोड उदाहरण
<?php
// Load API key securely from environment variable
$apiKey = getenv('LOTTERY_API_KEY') ?: 'dls_dom_YOUR_ACTUAL_SECRET_KEY';
$state = 'sikkim-lottery-result';
$endpoint = 'https://dearlotterysambad.live/api/v1/results?' . http_build_query([
'state' => $state,
'per_page' => 1
]);
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $endpoint,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 15,
CURLOPT_HTTPHEADER => [
'X-API-KEY: ' . $apiKey,
'Accept: application/json',
'User-Agent: PartnerPortalSync/1.0'
]
]);
$raw = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$payload = json_decode($raw, true);
if ($httpCode === 200 && !empty($payload['success'])) {
$sub = $payload['api_subscription'];
echo "Subscription Active! Days Remaining: " . $sub['remaining_days'] . "\n";
foreach ($payload['data'] as $result) {
echo "Draw: {$result['lottery_name']} ({$result['draw_time_label']})\n";
echo "Identity Key: {$result['identity_key']}\n";
// Print 1st Prize
foreach ($result['prizes'] as $prize) {
if ($prize['rank'] === '1') {
echo "1st Prize ({$prize['prize_amount']}): " . implode(', ', $prize['winning_numbers']) . "\n";
}
}
}
} elseif ($httpCode === 403 && isset($payload['error']['code']) && $payload['error']['code'] === 'API_EXPIRED') {
echo "CRITICAL: API Subscription Expired on: " . $payload['data']['expired_at'] . "\n";
} else {
echo "API Request Failed with HTTP {$httpCode}: " . ($payload['error'] ?? 'Unknown Error') . "\n";
}
namespace App\Services;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
class DearLotteryApiService
{
protected string $baseUrl = 'https://dearlotterysambad.live/api/v1';
protected string $apiKey;
public function __construct()
{
$this->apiKey = config('services.dear_lottery.key');
}
/**
* Ingest latest structured results with incremental updated_since filter.
*/
public function syncResults(?string $updatedSince = null, string $state = 'sikkim-lottery-result'): ?array
{
$params = ['state' => $state, 'per_page' => 20];
if ($updatedSince) {
$params['updated_since'] = $updatedSince;
}
$response = Http::withHeaders([
'X-API-KEY' => $this->apiKey,
'Accept' => 'application/json',
])->timeout(12)->get("{$this->baseUrl}/results", $params);
if ($response->successful()) {
$data = $response->json();
// Log remaining subscription days for monitoring
$daysLeft = $data['api_subscription']['remaining_days'] ?? null;
if ($daysLeft !== null && $daysLeft <= 7) {
Log::warning("Dear Lottery API subscription expiring soon: {$daysLeft} days remaining.");
}
return $data['data'] ?? [];
}
if ($response->status() === 403 && $response->json('error.code') === 'API_EXPIRED') {
Log::alert('Dear Lottery API subscription has expired! Please renew immediately.');
}
return null;
}
}
import fetch from 'node-fetch';
const API_KEY = process.env.LOTTERY_API_KEY || 'dls_dom_YOUR_SECRET_KEY';
const API_URL = 'https://dearlotterysambad.live/api/v1/results?state=sikkim-lottery-result&per_page=1';
async function fetchStructuredResults() {
try {
const response = await fetch(API_URL, {
method: 'GET',
headers: {
'X-API-KEY': API_KEY,
'Accept': 'application/json'
}
});
const data = await response.json();
if (response.ok && data.success) {
console.log(`[OK] Domain: ${data.domain} | Days Left: ${data.api_subscription.remaining_days}`);
for (const result of data.data) {
console.log(`Draw: ${result.lottery_name} [${result.identity_key}]`);
for (const prize of result.prizes) {
console.log(` Tier ${prize.rank} (${prize.prize_name}): ${prize.winning_numbers.join(', ')}`);
}
}
} else if (response.status === 403 && data.error?.code === 'API_EXPIRED') {
console.error(`[EXPIRED] Subscription ended on ${data.data?.expired_at}`);
} else {
console.error(`[ERROR] HTTP ${response.status}:`, data.error);
}
} catch (err) {
console.error('Network failure connecting to Lottery API:', err);
}
}
fetchStructuredResults();
-- Suggested MySQL Schema for Partner Database Ingestion
CREATE TABLE partner_lottery_draws (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
identity_key VARCHAR(191) NOT NULL UNIQUE, -- e.g. "SK-2026-11-03-13:00:00-dear-everest-morning"
state_code VARCHAR(10) NOT NULL,
state_name VARCHAR(100) NOT NULL,
lottery_name VARCHAR(191) NOT NULL,
draw_date DATE NOT NULL,
draw_time TIME NOT NULL,
draw_number VARCHAR(50),
first_prize_sold_by VARCHAR(191),
pdf_embed_url TEXT,
original_pdf_url TEXT,
verified_at DATETIME,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
INDEX idx_draw_date (draw_date),
INDEX idx_state_code (state_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE partner_lottery_prizes (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
draw_id BIGINT UNSIGNED NOT NULL,
rank_order INT NOT NULL,
prize_name VARCHAR(100) NOT NULL,
prize_amount VARCHAR(100) NOT NULL,
winner_name VARCHAR(191),
winning_numbers JSON NOT NULL, -- Stored as JSON array: ["97K 95045"]
FOREIGN KEY (draw_id) REFERENCES partner_lottery_draws(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Ingestion Logic: Use identity_key to perform an idempotent UPDATE or INSERT (Upsert)
-- This ensures running your sync job repeatedly never creates duplicate rows!
प्राइवेट API सदस्यता प्लान
आपकी वेबसाइट के ट्रैफ़िक और राज्य कवरेज आवश्यकताओं के अनुसार पारदर्शी, लागत प्रभावी API लाइसेंसिंग।
* मूल्य अधिकृत राज्यों की संख्या (एकल-राज्य बनाम मल्टी-स्टेट बंडल), अपेक्षित अनुरोध संख्या और वैधता अवधि पर निर्भर करता है। अनुकूलित कोटेशन के लिए हमारे सत्यापन डेस्क से संपर्क करें।
एकल राज्यों (जैसे सिक्किम या नागालैंड) या केरल और मिज़ोरम सहित संपूर्ण अखिल भारतीय पैकेजों को अधिकृत करें।
अनुकूलित अवधि चुनें: 30 दिन, 90 दिन, 180 दिन, या 365 दिन (1 वर्ष)। वर्तमान समाप्ति तिथि को बनाए रखते हुए आसानी से नवीनीकरण करें।
कनेक्शन और स्कीमा मैपिंग को सत्यापित करने के लिए हमारी संपादकीय और एकीकरण इंजीनियरिंग टीम से सीधी सहायता।
क्या आप डियर लॉटरी संबाद API के साथ शुरुआत करने के लिए तैयार हैं?
हमारे संपर्क डेस्क के माध्यम से अपना डोमेन और एकीकरण आवश्यकताएं सबमिट करें। हम आपके अधिकृत API क्रेडेंशियल्स तैयार करेंगे।
अक्सर पूछे जाने वाले डेवलपर प्रश्न
हमारे लॉटरी API सिस्टम से संबंधित सामान्य तकनीकी और परिचालन संबंधी प्रश्न।
API अनुरोध दर सीमा क्या है?
पब्लिक PDF API प्रति IP पते पर 60 अनुरोध प्रति मिनट की अनुमति देता है। प्राइवेट स्ट्रक्चर्ड API प्रति API की 120 अनुरोध प्रति मिनट की अनुमति देता है। हम रिस्पॉन्स को स्थानीय रूप से 60 से 120 सेकंड के लिए कैश करने की सलाह देते हैं।
क्या मैं रूट डोमेन के स्थान पर सबडोमेन पंजीकृत कर सकता हूँ?
हाँ। हमारा डोमेन सामान्यीकरण इंजन रूट डोमेन (जैसे example.com) और समर्पित सबडोमेन (जैसे lottery.example.com) दोनों का स्वतंत्र रूप से समर्थन करता है।
API के माध्यम से ड्रॉ परिणाम कितनी जल्दी उपलब्ध होते हैं?
परिणाम हमारे संपादकीय डेस्क द्वारा सत्यापन के तुरंत बाद उपलब्ध होते हैं (आमतौर पर आधिकारिक राज्य ड्रॉ के कुछ ही मिनटों के भीतर: प्रतिदिन दोपहर 1:00 बजे, शाम 6:00 बजे और रात 8:00 बजे)।
मेरी प्राइवेट API की समाप्त होने पर क्या होता है?
अनुरोधों को code: "API_EXPIRED" के साथ HTTP 403 रिस्पॉन्स प्राप्त होगा। हमारे एडमिन डेस्क के माध्यम से नवीनीकरण करने पर आपकी मौजूदा की को बदले बिना एक्सेस तुरंत बहाल हो जाता है।