प्रमाणीकरण गाइड
सीखें कि कैसे API कुंजी, JWT टोकन, और OAuth 2.0 का उपयोग करके Smart Money API के साथ प्रमाणीकरण करें। उद्योग-मानक प्रमाणीकरण विधियों और सर्वोत्तम प्रथाओं के साथ अपने एकीकरण को सुरक्षित करें।
अवलोकन
Smart Money API विभिन्न उपयोग मामलों के लिए कई प्रमाणीकरण विधियों का समर्थन करता है। अपने एकीकरण के लिए सबसे उपयुक्त विधि चुनें:
API कुंजी (प्राथमिक): अपनी कुंजी को X-API-Key अनुरोध हेडर में सभी REST API कॉल के लिए भेजें। यह बॉट्स और सर्वर-टू-सर्वर उपयोग के लिए अनुशंसित विधि है।
सत्र JWT (फॉलबैक): ब्राउज़र/डैशबोर्ड सत्र एक सत्र JWT के माध्यम से प्रमाणीकरण करते हैं Authorization: Bearer, जो 24 घंटे के लिए मान्य होता है। प्रोग्रामेटिक क्लाइंट्स को X-API-Key.
OAuth 2.0: मल्टी-यूज़र एप्लिकेशन और तृतीय-पक्ष एकीकरण के लिए एंटरप्राइज़-ग्रेड प्रमाणीकरण। उपयोगकर्ता आपके ऐप को उनके डेटा तक पहुंचने की अनुमति देते हैं।
सभी API अनुरोध HTTPS पर किए जाने चाहिए। अनएन्क्रिप्टेड HTTP अनुरोध अस्वीकार कर दिए जाएंगे। इसके अलावा, कभी भी API कुंजी को वर्जन कंट्रोल में कमिट न करें या उन्हें सार्वजनिक रूप से साझा न करें।
API कुंजी
API कुंजी आपके खाते के लिए जारी की गई अद्वितीय क्रेडेंशियल हैं। प्रत्येक कुंजी एकल अनुमति और कोटा सेट का प्रतिनिधित्व करती है। आप विभिन्न एप्लिकेशन या वातावरण (विकास, स्टेजिंग, प्रोडक्शन) के लिए कई कुंजी उत्पन्न कर सकते हैं।
API कुंजी उत्पन्न करना
अपने खाते कंसोल से API कुंजी उत्पन्न करें:
- नेविगेट करें Smart Money Console
- साइडबार से "API कुंजी" चुनें
- "नई कुंजी उत्पन्न करें" पर क्लिक करें
- कुंजी प्रकार चुनें (विकास, स्टेजिंग, प्रोडक्शन)
- दर सीमा और सुविधाएं सेट करें
- कुंजी को सुरक्षित रूप से कॉपी और स्टोर करें
अपनी API कुंजी को तुरंत सहेजें! आप इसे फिर से देखने में सक्षम नहीं होंगे। यदि आप इसे खो देते हैं, तो आपको एक नई कुंजी उत्पन्न करनी होगी।
कुंजी प्रारूप
API कुंजी एक मानक प्रारूप का पालन करती हैं:
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z
sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f
sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b
कुंजी उपसर्ग वातावरण को इंगित करते हैं:
sk_live_ — पूर्ण कोटा के साथ प्रोडक्शन कुंजी
sk_test_ — कम कोटा और विकास डेटा के साथ परीक्षण कुंजी
sk_dev_ — सैंडबॉक्स डेटा के साथ व्यक्तिगत विकास कुंजी
X-API-Key हेडर (प्राथमिक)
अपनी API कुंजी को X-API-Key अनुरोध हेडर में सभी API अनुरोधों के लिए भेजें। कभी भी अपनी कुंजी को URL में न रखें।
HTTP हेडर
GET /v1/whales/events HTTP/1.1
Host: api.smartmoneyapi.com
X-API-Key: sm_your_key
Content-Type: application/json
cURL उदाहरण
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \
-H "X-API-Key: sm_your_key" \
-H "Content-Type: application/json"
पायथन उदाहरण
import requests
api_key = "sm_your_key"
headers = {
"X-API-Key": api_key,
"Content-Type": "application/json"
}
response = requests.get(
"https://api.smartmoneyapi.com/v1/whales/events",
headers=headers
)
data = response.json()
JWT टोकन प्रमाणीकरण
लंबे समय तक चलने वाले सत्र और सर्वर-टू-सर्वर संचार के लिए, अपनी API कुंजी को JWT टोकन के लिए एक्सचेंज करें। JWT टोकन 24 घंटे तक चलते हैं और एप्लिकेशन कोड में अपनी API कुंजी को स्टोर करने की आवश्यकता को कम करते हैं।
JWT टोकन प्राप्त करना
JWT एंडपॉइंट पर अपनी API कुंजी को POST करें टोकन प्राप्त करने के लिए:
curl -X POST https://api.smartmoneyapi.com/auth/jwt \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m"
}'
JWT प्रतिक्रिया
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"expires_in": 86400,
"token_type": "Bearer"
}
JWT टोकन का उपयोग करना
JWT टोकन का उपयोग Authorization हेडर में API कुंजी की तरह करें:
import requests
import json
from datetime import datetime, timedelta
class JWTAuth:
def __init__(self, api_key):
self.api_key = api_key
self.token = None
self.token_expires = None
def get_valid_token(self):
# Check if current token is still valid
if self.token and self.token_expires > datetime.now():
return self.token
# Get new token
response = requests.post(
"https://api.smartmoneyapi.com/auth/jwt",
json={"api_key": self.api_key}
)
data = response.json()
self.token = data["token"]
self.token_expires = datetime.now() + timedelta(seconds=data["expires_in"])
return self.token
def request(self, method, url, **kwargs):
token = self.get_valid_token()
headers = kwargs.get("headers", {})
headers["Authorization"] = f"Bearer {token}"
kwargs["headers"] = headers
return requests.request(method, url, **kwargs)
# Usage
auth = JWTAuth("sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m")
response = auth.request(
"GET",
"https://api.smartmoneyapi.com/v1/whales/events"
)
print(response.json())
OAuth 2.0
OAuth 2.0 उन एप्लिकेशन के लिए है जिन्हें कई उपयोगकर्ता खातों तक पहुंच की आवश्यकता होती है। उपयोगकर्ता आपके एप्लिकेशन को उनके डेटा तक पहुंचने की अनुमति देते हैं बिना अपनी API कुंजी साझा किए।
OAuth 2.0 फ्लो
Smart Money API वेब एप्लिकेशन के लिए Authorization Code फ्लो का समर्थन करता है:
- उपयोगकर्ता "Smart Money के साथ कनेक्ट करें" बटन पर क्लिक करता है
- ब्राउज़र अधिकारीकरण पेज पर रीडायरेक्ट करता है
- उपयोगकर्ता आपके एप्लिकेशन को अनुमति देता है
- ब्राउज़र अधिकारीकरण कोड के साथ वापस रीडायरेक्ट करता है
- आपका बैकएंड कोड को एक्सेस टोकन के लिए एक्सचेंज करता है
- अब आप उपयोगकर्ता के डेटा तक उनकी ओर से पहुंच सकते हैं
चरण 1: अधिकारीकरण अनुरोध
उपयोगकर्ता को अधिकारीकरण एंडपॉइंट पर रीडायरेक्ट करें:
https://auth.smartmoneyapi.com/authorize?
client_id=YOUR_CLIENT_ID&
redirect_uri=https://yourapp.com/callback&
response_type=code&
scope=whale_positions+funding_rates+liquidations&
state=random_state_string
चरण 2: टोकन एक्सचेंज
उपयोगकर्ता द्वारा अनुमति देने के बाद, कोड को एक्सेस टोकन के लिए एक्सचेंज करें:
curl -X POST https://auth.smartmoneyapi.com/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code&code=AUTH_CODE&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&redirect_uri=https://yourapp.com/callback"
OAuth टोकन प्रतिक्रिया
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "rt_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p",
"scope": "whale_positions funding_rates liquidations"
}
सुरक्षा सर्वोत्तम प्रथाएं
कुंजी को सुरक्षित रूप से स्टोर करें
कभी भी API कुंजी को वर्जन कंट्रोल में कमिट न करें, उन्हें एप्लिकेशन में हार्डकोड न करें या डॉक्यूमेंटेशन में साझा न करें। पर्यावरण चर या सुरक्षित कुंजी प्रबंधन सेवाएं जैसे AWS Secrets Manager, HashiCorp Vault, या इसी तरह का उपयोग करें।
केवल HTTPS का उपयोग करें
सभी API अनुरोध HTTPS (TLS 1.2 या उच्चतर) का उपयोग करने चाहिए। HTTP अनुरोध अस्वीकार कर दिए जाएंगे। यह सुनिश्चित करता है कि आपकी API कुंजी और डेटा ट्रांजिट में एन्क्रिप्टेड हैं।
कुंजी अनुमतियाँ सीमित करें
विभिन्न एप्लिकेशन और वातावरण के लिए अलग-अलग API कुंजी बनाएं। प्रत्येक कुंजी तक पहुंच को सीमित करने के लिए स्कोप का उपयोग करें। विकास में प्रोडक्शन कुंजी का उपयोग न करें।
कुंजी उपयोग की निगरानी करें
नियमित रूप से अपने कंसोल में API उपयोग की समीक्षा करें। असामान्य गतिविधि या कोटा सीमा के निकट आने के लिए अलर्ट सेट करें। उन कुंजी को हटा दें जिनका आप अब उपयोग नहीं कर रहे हैं।
कुंजी रोटेशन
समझौता के जोखिम को कम करने के लिए नियमित रूप से अपनी API कुंजी को रोटेट करें। हम हर 90 दिनों में कुंजी रोटेशन की सलाह देते हैं:
- अपने कंसोल में एक नई API कुंजी उत्पन्न करें
- अपने एप्लिकेशन को नए की का उपयोग करने के लिए अपडेट करें
- टेस्ट करें कि सब कुछ सही तरीके से काम करता है
- अपने कंसोल से पुराने की को डिलीट करें
स्कोप्स और परमिशन्स
API की बनाते समय या OAuth का उपयोग करते समय, निर्दिष्ट करें कि आपका की किन संसाधनों तक पहुंच सकता है:
| स्कोप |
विवरण |
टियर |
| whale_positions |
व्हेल वॉलेट पोजीशन पढ़ें |
Trader+ |
| funding_rates |
फंडिंग रेट डेटा पढ़ें |
Free+ |
| liquidations |
लिक्विडेशन फीड्स पढ़ें |
Free+ |
| open_interest |
ओपन इंटरेस्ट डेटा पढ़ें |
Trader+ |
| confirmation_scores |
AI कन्फर्मेशन स्कोर पढ़ें |
Pro+ |
| on_chain |
ऑन-चेन मेट्रिक्स पढ़ें |
Pro+ |
ऑथेंटिकेशन कोड उदाहरण
पूरा पाइथन इंटीग्रेशन
import requests
from typing import Optional, Dict
from datetime import datetime, timedelta
class SmartMoneyAuth:
"""Handles all authentication methods for Smart Money API"""
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = "https://api.smartmoneyapi.com"
self.jwt_token = None
self.jwt_expires = None
def get_jwt_token(self) -> str:
"""Get or refresh JWT token"""
if self.jwt_token and self.jwt_expires > datetime.now():
return self.jwt_token
response = requests.post(
f"{self.base_url}/auth/jwt",
json={"api_key": self.api_key}
)
data = response.json()
self.jwt_token = data["token"]
self.jwt_expires = datetime.now() + timedelta(seconds=data["expires_in"] - 300)
return self.jwt_token
def headers_bearer(self) -> Dict:
"""Get headers for Bearer token auth"""
return {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
def headers_jwt(self) -> Dict:
"""Get headers for JWT auth"""
token = self.get_jwt_token()
return {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
def request(self, method: str, endpoint: str, use_jwt: bool = False, **kwargs) -> Dict:
"""Make authenticated request"""
headers = self.headers_jwt() if use_jwt else self.headers_bearer()
response = requests.request(
method,
f"{self.base_url}{endpoint}",
headers=headers,
**kwargs
)
return response.json()
# Usage
auth = SmartMoneyAuth("sk_live_abc123xyz789")
# Bearer token method
whales = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT")
# JWT method (auto-refreshing)
whales_jwt = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT", use_jwt=True)
print(f"Found {whales['data']['total']} whale positions")
मदद चाहिए?
ऑथेंटिकेशन में सहायता के लिए हमारा API डॉक्युमेंटेशन देखें या सपोर्ट से संपर्क करें।
API रेफरेंस
अपना पहला API की जनरेट करें
Smart Money API के साथ शुरुआत करें। मिनटों में अपना अकाउंट बनाएं और ऑथेंटिकेशन क्रेडेंशियल्स जनरेट करें।
कंसोल पर जाएं