Kimlik Doğrulama Kılavuzu
API anahtarları, JWT token'ları ve OAuth 2.0 kullanarak Smart Money API ile kimlik doğrulama yapmayı öğrenin. Endüstri standartlarında kimlik doğrulama yöntemleri ve en iyi uygulamalarla entegrasyonlarınızı güvence altına alın.
Genel Bakış
Smart Money API, farklı kullanım senaryoları için çoklu kimlik doğrulama yöntemleri destekler. Entegrasyonunuza en uygun yöntemi seçin:
API Anahtarları (birincil): Anahtarınızı X-API-Key istek başlığında tüm REST API çağrıları için gönderin. Bu yöntem botlar ve sunucu-sunucu kullanımları için önerilir.
Oturum JWT (yedek): Tarayıcı/panel oturumları, bir oturum JWT ile Authorization: Bearerüzerinden kimlik doğrular ve 24 saat geçerlidir. Programatik istemciler X-API-Key.
OAuth 2.0: Çok kullanıcılı uygulamalar ve üçüncü parti entegrasyonları için kurumsal düzeyde kimlik doğrulama. Kullanıcılar uygulamanızın verilerine erişmesine izin verir.
Tüm API istekleri HTTPS üzerinden yapılmalıdır. Şifrelenmemiş HTTP istekleri reddedilir. Ayrıca, API anahtarlarını versiyon kontrol sistemlerine eklemeyin veya herkese açık şekilde paylaşmayın.
API Anahtarları
API anahtarları hesabınıza verilen benzersiz kimlik bilgileridir. Her anahtar tek bir izin ve kota setini temsil eder. Farklı uygulamalar veya ortamlar (geliştirme, hazırlık, üretim) için birden fazla anahtar oluşturabilirsiniz.
API Anahtarı Oluşturma
API anahtarlarını hesap konsolunuzdan oluşturun:
- Şuraya gidin: Smart Money Console
- Yan çubuktan "API Anahtarları"nı seçin
- "Yeni Anahtar Oluştur"a tıklayın
- Anahtar türünü seçin (Geliştirme, Hazırlık, Üretim)
- Oran sınırını ve özellikleri ayarlayın
- Anahtarı kopyalayın ve güvenli bir yerde saklayın
API anahtarınızı hemen kaydedin! Tekrar görüntüleyemezsiniz. Kaybederseniz yeni bir anahtar oluşturmanız gerekecektir.
Anahtar Formatı
API anahtarları standart bir formata sahiptir:
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z
sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f
sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b
Anahtar önekleri ortamı belirtir:
sk_live_ — Tam kota ile üretim anahtarları
sk_test_ — Azaltılmış kota ve geliştirme verileri ile test anahtarları
sk_dev_ — Sandbox verileri ile kişisel geliştirme anahtarları
X-API-Key Başlığı (birincil)
API anahtarınızı tüm API isteklerinde X-API-Key istek başlığında gönderin. Anahtarınızı asla bir URL'ye yerleştirmeyin.
HTTP Başlığı
GET /v1/whales/events HTTP/1.1
Host: api.smartmoneyapi.com
X-API-Key: sm_your_key
Content-Type: application/json
cURL Örneği
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \
-H "X-API-Key: sm_your_key" \
-H "Content-Type: application/json"
Python Örneği
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 Token Kimlik Doğrulama
Uzun ömürlü oturumlar ve sunucu arası iletişim için API anahtarınızı bir JWT token ile değiştirin. JWT token'lar 24 saat geçerlidir ve API anahtarınızı uygulama kodunuzda saklama ihtiyacını azaltır.
JWT Token Alma
Bir token almak için API anahtarınızı JWT endpoint'ine POST edin:
curl -X POST https://api.smartmoneyapi.com/auth/jwt \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m"
}'
JWT Yanıtı
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"expires_in": 86400,
"token_type": "Bearer"
}
JWT Token Kullanımı
JWT token'ını, API anahtarlarında olduğu gibi Authorization başlığında kullanın:
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, birden fazla kullanıcı hesabına erişmesi gereken uygulamalar içindir. Kullanıcılar, API anahtarlarını paylaşmadan uygulamanızın verilerine erişim izni verir.
OAuth 2.0 Akışı
Smart Money API, web uygulamaları için Authorization Code akışını destekler:
- Kullanıcı "Smart Money ile Bağlan" butonuna tıklar
- Tarayıcı yetkilendirme sayfasına yönlendirir
- Kullanıcı uygulamanıza izin verir
- Tarayıcı yetkilendirme kodu ile geri yönlendirir
- Backend'iniz kodu erişim token'ı ile değiştirir
- Artık kullanıcı adına verilerine erişebilirsiniz
Adım 1: Yetkilendirme İsteği
Kullanıcıyı yetkilendirme endpoint'ine yönlendirin:
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
Adım 2: Token Değişimi
Kullanıcı izin verdikten sonra, kodu bir erişim token'ı ile değiştirin:
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 Token Yanıtı
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "rt_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p",
"scope": "whale_positions funding_rates liquidations"
}
Güvenlik En İyi Uygulamaları
Anahtarları Güvenli Saklayın
API anahtarlarını asla versiyon kontrol sistemine eklemeyin, uygulamalarda sabit kodlamayın veya dokümantasyonda paylaşmayın. Ortam değişkenleri veya AWS Secrets Manager, HashiCorp Vault gibi güvenli anahtar yönetim servislerini kullanın.
Sadece HTTPS Kullanın
Tüm API istekleri HTTPS (TLS 1.2 veya üstü) kullanmalıdır. HTTP istekleri reddedilecektir. Bu, API anahtarınızın ve verilerinizin iletilirken şifrelenmesini sağlar.
Anahtar İzinlerini Sınırlandırın
Farklı uygulamalar ve ortamlar için ayrı API anahtarları oluşturun. Her anahtarın erişebileceği alanları sınırlamak için kapsamları kullanın. Geliştirme ortamlarında üretim anahtarlarını kullanmayın.
Anahtar Kullanımını İzleyin
Konsolunuzda düzenli olarak API kullanımını gözden geçirin. Olağandışı aktiviteler veya kota limitlerine yaklaşma durumları için uyarılar ayarlayın. Artık kullanmadığınız anahtarları silin.
Anahtar Döngüsü
API anahtarlarınızı düzenli olarak değiştirerek ele geçirilme riskini azaltın. Anahtarlarınızı her 90 günde bir değiştirmenizi öneririz:
- Konsolunuzda yeni bir API anahtarı oluşturun
- Uygulamalarınızı yeni anahtarı kullanacak şekilde güncelleyin
- Her şeyin doğru çalıştığını test edin
- Eski anahtarı konsolunuzdan silin
Kapsamlar & İzinler
API anahtarları oluştururken veya OAuth kullanırken, anahtarınızın hangi kaynaklara erişebileceğini belirtin:
| Kapsam |
Açıklama |
Seviye |
| whale_positions |
Balina cüzdan pozisyonlarını oku |
Trader+ |
| funding_rates |
Finansman oranı verilerini oku |
Free+ |
| liquidations |
Likidasyon beslemelerini oku |
Free+ |
| open_interest |
Açık pozisyon verilerini oku |
Trader+ |
| confirmation_scores |
AI onay puanlarını oku |
Pro+ |
| on_chain |
On-chain metrikleri oku |
Pro+ |
Kimlik Doğrulama Kod Örnekleri
Tam Python Entegrasyonu
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")
Yardıma mı ihtiyacınız var?
Kimlik doğrulama konusunda yardıma ihtiyacınız varsa API belgelerimizi inceleyin veya destekle iletişime geçin.
API Referansı
İlk API Anahtarınızı Oluşturun
Smart Money API ile başlayın. Hesabınızı oluşturun ve kimlik doğrulama bilgilerinizi dakikalar içinde oluşturun.
Konsola Git