डेवलपर और REST API
अपने ऐप, CRM या SMS सिस्टम से hi4.in शॉर्ट लिंक बनाएं, अपडेट करें और ट्रैक करें। एक API key, सीधा JSON, curl के साथ काम करे।
तीन स्टेप में आपका पहला शॉर्ट लिंक
API की बनाएं
Dashboard → API keys। key को तुरंत कॉपी कर लें: यह सिर्फ़ एक बार दिखाई जाती है।
Key कैसे बनाएंAPI कॉल करें
key को X-API-Key हेडर में भेजें। GET /test से शुरू करें, फिर एक लिंक बनाएं।
curl -X POST https://hi4.in/api/v1/links \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"long_url": "https://example.com/diwali-sale",
"title": "Diwali sale",
"custom_slug": "diwali-sale"
}'{
"success": true,
"data": {
"id": "1234",
"slug": "diwali-sale",
"short_url": "https://hi4.in/u/diwali-sale",
"long_url": "https://example.com/diwali-sale",
"title": "Diwali sale",
"expires_at": null,
"created_at": "2026-10-22 16:05:10"
}
}रिस्पॉन्स से slug पढ़ें। अगर custom_slug गलत है या पहले से इस्तेमाल हो रहा है, तो API फ़ेल होने की जगह एक रैंडम slug इस्तेमाल करता है।
एक हेडर में एक key
- हर कॉल में अपनी key को X-API-Key हेडर में भेजें। सिर्फ़ /test, /health और /docs बिना key के काम करते हैं।
- key सिर्फ़ एक बार दिखाई जाती है। हम इसका सिर्फ़ एक फ़िंगरप्रिंट (hash) स्टोर करते हैं, इसलिए हम इसे दोबारा नहीं दिखा सकते — खो जाने पर एक नई key बनाएं।
- बनाते समय आप key को एक एक्सपायरी डेट दे सकते हैं, और कभी भी key डिलीट कर सकते हैं।
- key को अपने सर्वर पर रखें। इन्हें किसी वेबसाइट, मोबाइल ऐप या पब्लिक कोड में कभी न डालें।
- हर कॉल आपके अकाउंट की hourly limit में गिनी जाती है। इसे GET /stats से चेक करें।
# Every request carries your key
curl https://hi4.in/api/v1/links \
-H "X-API-Key: YOUR_API_KEY"
# No key or a wrong key: HTTP 401
{
"error": "API key required"
} # No key needed: check you can reach the API
curl https://hi4.in/api/v1/test
{
"success": true,
"message": "API is working",
"timestamp": "2026-10-22T16:04:52+05:30"
} एंडपॉइंट
सभी पाथ https://hi4.in/api/v1 के सापेक्ष हैं। रिक्वेस्ट और रिस्पॉन्स JSON में होते हैं।
-
POST
/linksएक शॉर्ट लिंक बनाएं API key -
GET
/linksअपने लिंक की लिस्ट देखें, सबसे नए पहले (page, limit अधिकतम 100) API key -
GET
/links/{id}एक लिंक, उसके क्लिक एनालिटिक्स के साथ API key -
PUT
/links/{id}टाइटल, डेस्टिनेशन, एक्सपायरी या विज़िबिलिटी बदलें API key -
DELETE
/links/{id}एक लिंक डिलीट करें API key -
GET
/links/{id}/analyticsक्लिक का सारांश, टॉप लोकेशन और डिवाइस API key -
GET
/domainsआपके कस्टम डोमेन जल्द आ रहा हैAPI key -
POST
/domainsअपने अकाउंट में एक कस्टम डोमेन जोड़ें जल्द आ रहा हैAPI key -
GET
/statsआपकी hourly request limit और कितनी बची है API key -
GET
/testदेखें कि API तक पहुंचा जा सकता है या नहीं कोई key नहीं -
GET
/healthसर्विस हेल्थ चेक कोई key नहीं -
GET
/docsइन एंडपॉइंट की मशीन-रीडेबल लिस्ट कोई key नहीं
उदाहरण
सबसे नए पहले। limit अधिकतम 100 है; लूप करने के लिए pagination.pages इस्तेमाल करें।
curl "https://hi4.in/api/v1/links?page=1&limit=20" \
-H "X-API-Key: YOUR_API_KEY"{
"success": true,
"data": [
{
"id": 1234,
"slug": "diwali-sale",
"long_url": "https://example.com/diwali-sale",
"title": "Diwali sale",
"total_clicks": 42,
"last_click": "2026-10-21 18:30:12",
"short_url": "https://hi4.in/u/diwali-sale"
}
],
"pagination": { "page": 1, "limit": 20, "total": 57, "pages": 3 }
}स्टोर किया हुआ लिंक और एक एनालिटिक्स ऑब्जेक्ट लौटाता है (नीचे /analytics जैसा ही आकार)।
curl https://hi4.in/api/v1/links/1234 \
-H "X-API-Key: YOUR_API_KEY"{
"success": true,
"data": {
"id": 1234,
"slug": "diwali-sale",
"long_url": "https://example.com/diwali-sale",
"short_url": "https://hi4.in/u/diwali-sale",
"analytics": { "summary": {}, "geographic": [], "devices": [] }
}
}सिर्फ़ वही फ़ील्ड भेजें जिन्हें आप बदलना चाहते हैं। रिस्पॉन्स में पूरा, अपडेट किया हुआ लिंक मिलता है।
curl -X PUT https://hi4.in/api/v1/links/1234 \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"long_url": "https://example.com/new-offer",
"expires_at": "2026-12-31T23:59:59+05:30"
}'{
"success": true,
"data": {
"id": 1234,
"slug": "diwali-sale",
"long_url": "https://example.com/new-offer",
"expires_at": "2026-12-31 23:59:59",
"short_url": "https://hi4.in/u/diwali-sale"
}
}स्थायी: शॉर्ट लिंक काम करना बंद कर देता है, प्रिंट किए हुए QR कोड पर भी।
curl -X DELETE https://hi4.in/api/v1/links/1234 \
-H "X-API-Key: YOUR_API_KEY"{
"success": true,
"message": "Link deleted successfully"
}unique_clicks नेटवर्क एड्रेस के आधार पर अलग-अलग विज़िटर गिनता है। geographic और devices टॉप 10 रो लिस्ट करते हैं।
curl https://hi4.in/api/v1/links/1234/analytics \
-H "X-API-Key: YOUR_API_KEY"{
"success": true,
"data": {
"summary": {
"total_clicks": 42,
"unique_clicks": 31,
"active_days": 6,
"first_click": "2026-10-15 10:02:41",
"last_click": "2026-10-21 18:30:12"
},
"geographic": [
{ "country": "India", "city": "Pune", "clicks": 12 }
],
"devices": [
{ "device_type": "mobile", "browser": "Chrome", "clicks": 30 }
]
}
}जल्द आ रहा है: आप अपने अकाउंट में एक डोमेन जोड़ सकते हैं, पर उसे कनेक्ट करना (DNS और SSL) अभी ऑटोमेटेड नहीं है, इसलिए डोमेन वेरिफ़ाई होने तक short_url hi4.in पर ही रहता है।
curl https://hi4.in/api/v1/domains \
-H "X-API-Key: YOUR_API_KEY"
curl -X POST https://hi4.in/api/v1/domains \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"domain_name": "go.yourbrand.in"}'{
"success": true,
"data": {
"id": 7,
"domain_name": "go.yourbrand.in",
"verification_token": "…",
"verified": 0
}
}rate_limit आपकी hourly limit है; hourly_requests पिछले एक घंटे की कॉल गिनता है।
curl https://hi4.in/api/v1/stats \
-H "X-API-Key: YOUR_API_KEY"// example values
{
"success": true,
"data": {
"rate_limit": 1000,
"hourly_requests": 12,
"remaining_requests": 988
}
}क्या भेजना है और बदले में क्या मिलेगा
एक लिंक बनाएं — POST /links
| फ़ील्ड | प्रकार | ज़रूरी | यह क्या करता है |
|---|---|---|---|
long_url | string (URL) | ज़रूरी | डेस्टिनेशन। https:// के साथ एक पूरा एड्रेस। |
title | string | ज़रूरी नहीं | आपके डैशबोर्ड और रिपोर्ट के लिए एक लेबल। |
custom_slug | string | ज़रूरी नहीं | 3–50 अक्षर, नंबर या हाइफ़न। अगर यह गलत है, रिज़र्व्ड है या पहले से इस्तेमाल हो रहा है, तो इसकी जगह एक रैंडम slug इस्तेमाल होती है — हमेशा रिस्पॉन्स से slug पढ़ें। |
password | string | ज़रूरी नहीं | विज़िटर को आगे भेजे जाने से पहले यह पासवर्ड डालना होगा। |
expires_at | string (ISO 8601) | ज़रूरी नहीं | इस समय के बाद लिंक काम करना बंद कर देता है। एक टाइम ज़ोन शामिल करें, जैसे 2026-12-31T23:59:59+05:30। |
domain_id | integer | ज़रूरी नहीं | GET /domains से आपके अपने डोमेन में से एक। डोमेन वेरिफ़ाई होने तक, short_url hi4.in पर ही रहता है। |
एक लिंक अपडेट करें — PUT /links/{id}
| फ़ील्ड | प्रकार | यह क्या करता है |
|---|---|---|
title | string | नया लेबल। |
long_url | string (URL) | नई डेस्टिनेशन। शॉर्ट लिंक और कोई भी प्रिंट किया हुआ QR कोड काम करता रहता है। |
expires_at | string (ISO 8601) | नई एक्सपायरी। एक्सपायरी हटाने के लिए एक खाली string "" भेजें। |
is_public | boolean | लिंक को पब्लिक (true) या प्राइवेट (false) के रूप में मार्क करता है। |
रिस्पॉन्स में लिंक ऑब्जेक्ट
| फ़ील्ड | प्रकार | नोट |
|---|---|---|
id | integer | इसे /links/{id} के साथ इस्तेमाल करें। create रिस्पॉन्स में यह एक string के रूप में आता है। |
slug | string | डोमेन के बाद का हिस्सा। यह custom_slug से अलग हो सकता है (ऊपर देखें)। |
short_url | string | शेयर करने के लिए तैयार लिंक, जैसे https://hi4.in/u/diwali-sale। hi4.in/diwali-sale भी वही लिंक खोलता है। |
long_url | string | यह लिंक विज़िटर को कहाँ भेजता है। |
title | string | आपका लेबल। |
expires_at | string या null | लिंक कब काम करना बंद करता है। |
created_at | string | लिंक कब बनाया गया था। |
total_clicks, last_click | integer, string | GET /links के रिज़ल्ट में जोड़ा गया। |
analytics | object | GET /links/{id} में जोड़ा गया: summary, geographic और devices। |
GET /links हर लिंक की स्टोर की हुई हर फ़ील्ड लौटाता है, साथ में total_clicks, last_click और short_url। लिस्ट रिस्पॉन्स में pagination भी शामिल होता है: page, limit, total और pages।
जब कुछ गलत हो जाए
एरर सामान्य HTTP स्टेटस कोड और एक एरर मैसेज वाली JSON बॉडी का इस्तेमाल करते हैं।
{
"error": "message"
} हर अकाउंट की एक hourly request limit होती है, और आपकी key से की गई कॉल उसमें गिनी जाती हैं। GET /stats आपकी limit और कितनी कॉल बची हैं, दिखाता है।
| HTTP | मतलब | उदाहरण बॉडी |
|---|---|---|
| 400 | Bad request बॉडी वैलिड JSON नहीं है, long_url मिसिंग है, या कोई URL या डोमेन नाम गलत फ़ॉर्मेट में है। |
{"error": "long_url is required"} |
| 401 | Unauthorised X-API-Key हेडर मिसिंग है, गलत है या key एक्सपायर हो गई है। |
{"error": "Invalid API key"} |
| 403 | Forbidden domain_id किसी और का है या मौजूद नहीं है। |
{"error": "Invalid domain or access denied"} |
| 404 | Not found लिंक ID मौजूद नहीं है या आपकी नहीं है। अनजान पाथ भी 404 लौटाते हैं। |
{"error": "Link not found"} |
| 409 | Conflict वह कस्टम डोमेन पहले से रजिस्टर्ड है। |
{"error": "Domain is already taken"} |
| 429 | Too many requests आप अपनी hourly request limit तक पहुंच गए हैं। इंतज़ार करें, फिर back-off के साथ फिर से कोशिश करें। |
{"error": "Rate limit exceeded"} |
| 500 | Server error हमारी तरफ़ से कुछ गलत हो गया। बाद में फिर से कोशिश करें; अगर ऐसा होता ही रहे तो हमें बताएं। |
{"error": "Failed to create link"} |
कोई ऐप लिखे बिना सैकड़ों लिंक
किसी पूरे कैंपेन, कैटलॉग या SMS लिस्ट के लिए लिंक बना रहे हैं? अपने डैशबोर्ड में बल्क टूल इस्तेमाल करें, या API से किसी फ़ाइल पर लूप चलाएं।
डैशबोर्ड में बल्क टूल
- 100 तक लिंक पेस्ट करें, एक लाइन में एक, या एक .txt फ़ाइल अपलोड करें
- पूरे बैच के लिए ज़रूरी नहीं वाला नाम प्रीफ़िक्स और एक्सपायरी
- नए शॉर्ट लिंक को एक CSV फ़ाइल के रूप में डाउनलोड करें
API के साथ बल्क
हर रो के लिए एक बार POST /links कॉल करें। अपनी hourly limit के अंदर रहें और हर रिस्पॉन्स से slug सेव करें।
Shell# links.csv has two columns: url,title (no header row)
while IFS=, read -r url title; do
curl -s -X POST https://hi4.in/api/v1/links \
-H "X-API-Key: $HI4_KEY" \
-H "Content-Type: application/json" \
-d "{\"long_url\": \"$url\", \"title\": \"$title\"}"
echo
done < links.csv असली प्रोजेक्ट के लिए, JSON को एक सही लाइब्रेरी से बनाएं, जिससे कोट्स या कॉमा वाले टाइटल सुरक्षित तरीके से हैंडल हो सकें।
वे इंटीग्रेशन जिन पर हम काम कर रहे हैं
इनमें से अभी कोई भी उपलब्ध नहीं है। हमें बताएं आपको कौन-सा चाहिए, तैयार होने पर हम आपको बता देंगे।
जब आपका इंटीग्रेशन तैयार हो तो पता चल जाए
लॉन्च होने पर एक ईमेल। मांगे बिना कोई न्यूज़लेटर नहीं।
SMS के लिए कुछ बना रहे हैं? SMS लिंक देखें
सिर्फ़ कुछ लिंक चाहिए? फ़्री टूल को किसी API की ज़रूरत नहीं
डेवलपर के सवाल
किन प्लान में API शामिल है?
हमारी प्लान तुलना के अनुसार, REST API और बल्क टूल प्रो और बिज़नेस प्लान का हिस्सा हैं। हर प्लान में क्या-क्या मिलता है, यह देखने के लिए प्राइसिंग पेज देखें।
मैं ऑथेंटिकेट कैसे करूं?
हर रिक्वेस्ट के साथ अपनी API key को X-API-Key हेडर में भेजें। आज API में कोई OAuth या लॉगिन फ़्लो नहीं है, इसलिए key को अपने सर्वर पर रखें।
मेरे लिंक को मेरे मांगे हुए slug की जगह अलग slug क्यों मिला?
अगर custom_slug 3 अक्षर से छोटा है, अक्षर, नंबर और हाइफ़न के अलावा कुछ और इस्तेमाल करता है, एक रिज़र्व्ड शब्द है या पहले से इस्तेमाल हो रहा है, तो API चुपचाप एक रैंडम slug इस्तेमाल करता है। हमेशा रिस्पॉन्स से slug और short_url पढ़ें।
API से बने शॉर्ट लिंक कैसे दिखते हैं?
रिस्पॉन्स लिंक को https://hi4.in/u/{slug} के रूप में लौटाते हैं। छोटा https://hi4.in/{slug} भी वही लिंक खोलता है, इसलिए आप कोई भी इस्तेमाल कर सकते हैं।
क्या कोई रेट लिमिट है?
हां। हर अकाउंट की एक hourly request limit होती है। GET /stats आपकी limit और कितनी कॉल बची हैं दिखाता है; लिमिट से ऊपर जाने पर API HTTP 429 के साथ जवाब देता है।
क्या कोई sandbox या टेस्ट मोड है?
अभी नहीं। अपना कनेक्शन चेक करने के लिए GET /test इस्तेमाल करें, टेस्ट लिंक को "test" जैसा टाइटल दें, और बाद में उन्हें डिलीट कर दें।
क्या आपके पास webhooks, SDK या Zapier है?
अभी नहीं — ये रोडमैप पर हैं। API सीधा HTTPS पर JSON है, इसलिए किसी भी भाषा का HTTP क्लाइंट काम करता है।
क्या मुझे कुछ लिंक बनाने के लिए API की ज़रूरत है?
नहीं। hi4.in के फ़्री टूल बिना किसी key या कोड के ब्राउज़र में शॉर्ट लिंक, WhatsApp लिंक और QR कोड बना देते हैं।
कहीं फंस गए? हमें लिखें कॉन्टैक्ट पेज से, अपनी भेजी हुई रिक्वेस्ट और मिले हुए रिस्पॉन्स के साथ (पहले अपनी key हटा दें)।
hi4.in पर बनाएं
फ़्री अकाउंट, कार्ड की ज़रूरत नहीं। डैशबोर्ड से अपनी API key बनाएं और मिनटों में अपना पहला लिंक बनाएं।