Průvodce autentizací
Naučte se, jak se autentizovat pomocí Smart Money API využitím API klíčů, JWT tokenů a OAuth 2.0. Zabezpečte své integrace pomocí standardních autentizačních metod a osvědčených postupů.
Přehled
Smart Money API podporuje více autentizačních metod pro různé případy použití. Vyberte metodu, která nejlépe vyhovuje vaší integraci:
API klíče (primární): Odešlete svůj klíč v X-API-Key hlavičce požadavku pro všechna REST API volání. Toto je doporučená metoda pro boty a server-to-server použití.
Session JWT (záložní): Prohlížeč/dashboardové session se autentizují pomocí session JWT přes Authorization: Bearer, platný 24 hodin. Programoví klienti by měli preferovat X-API-Key.
OAuth 2.0: Podniková autentizace pro víceuživatelské aplikace a integrace třetích stran. Uživatelé autorizují vaši aplikaci pro přístup k jejich datům.
Všechny API požadavky musí být prováděny přes HTTPS. Nešifrované HTTP požadavky budou odmítnuty. Dále nikdy neukládejte API klíče do verzovacího systému ani je nesdílejte veřejně.
API klíče
API klíče jsou unikátní přihlašovací údaje vydané pro váš účet. Každý klíč reprezentuje jednu sadu oprávnění a kvót. Můžete generovat více klíčů pro různé aplikace nebo prostředí (vývoj, staging, produkce).
Generování API klíče
Generujte API klíče z vaší konzole účtu:
- Přejděte do Smart Money Console
- V postranním panelu vyberte "API klíče"
- Klikněte na "Generovat nový klíč"
- Zvolte typ klíče (Vývoj, Staging, Produkce)
- Nastavte limit rychlosti a funkce
- Zkopírujte a uložte klíč bezpečně
Uložte si API klíč okamžitě! Nebudete ho moci znovu zobrazit. Pokud ho ztratíte, budete muset vygenerovat nový klíč.
Formát klíče
API klíče následují standardní formát:
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z
sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f
sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b
Předpony klíčů označují prostředí:
sk_live_ — Produkční klíče s plnou kvótou
sk_test_ — Testovací klíče se sníženou kvótou a vývojovými daty
sk_dev_ — Osobní vývojové klíče se sandbox daty
X-API-Key hlavička (primární)
Odešlete svůj API klíč v X-API-Key hlavičce požadavku pro všechna API volání. Nikdy neumisťujte klíč do URL.
HTTP hlavička
GET /v1/whales/events HTTP/1.1
Host: api.smartmoneyapi.com
X-API-Key: sm_your_key
Content-Type: application/json
cURL příklad
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \
-H "X-API-Key: sm_your_key" \
-H "Content-Type: application/json"
Python příklad
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 autentizace
Pro dlouhodobé session a server-to-server komunikaci vyměňte svůj API klíč za JWT token. JWT tokeny platí 24 hodin a snižují potřebu ukládání API klíče v aplikaci.
Získání JWT tokenu
POSTem odešlete svůj API klíč na JWT endpoint pro získání tokenu:
curl -X POST https://api.smartmoneyapi.com/auth/jwt \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m"
}'
JWT odpověď
{
"success": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"expires_in": 86400,
"token_type": "Bearer"
}
Použití JWT tokenu
Použijte JWT token v Authorization hlavičce stejně jako API klíče:
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 je pro aplikace, které potřebují přístup k více uživatelským účtům. Uživatelé udělí vaší aplikaci oprávnění k přístupu k jejich datům bez sdílení jejich API klíčů.
OAuth 2.0 tok
Smart Money API podporuje Authorization Code tok pro webové aplikace:
- Uživatel klikne na tlačítko "Připojit se Smart Money"
- Prohlížeč přesměruje na autorizační stránku
- Uživatel udělí oprávnění vaší aplikaci
- Prohlížeč přesměruje zpět s autorizačním kódem
- Vaše backendová část vymění kód za přístupový token
- Nyní můžete přistupovat k uživatelským datům jejich jménem
Krok 1: Autorizační požadavek
Přesměrujte uživatele na autorizační endpoint:
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
Krok 2: Výměna tokenu
Poté, co uživatel udělí oprávnění, vyměňte kód za přístupový token:
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 odpověď tokenu
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "rt_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p",
"scope": "whale_positions funding_rates liquidations"
}
Bezpečnostní doporučení
Ukládejte klíče bezpečně
Nikdy neukládejte API klíče do verzovacího systému, nehardcodujte je v aplikacích ani je nesdílejte v dokumentaci. Používejte proměnné prostředí nebo bezpečné služby pro správu klíčů jako AWS Secrets Manager, HashiCorp Vault nebo podobné.
Používejte pouze HTTPS
Všechny API požadavky musí používat HTTPS (TLS 1.2 nebo vyšší). HTTP požadavky budou odmítnuty. Toto zajišťuje, že váš API klíč a data jsou šifrována při přenosu.
Omezte oprávnění klíčů
Vytvářejte samostatné API klíče pro různé aplikace a prostředí. Používejte rozsahy pro omezení toho, co každý klíč může přistupovat. Nepoužívejte produkční klíče ve vývoji.
Sledujte využití klíčů
Pravidelně kontrolujte využití API ve vaší konzoli. Nastavte upozornění na neobvyklou aktivitu nebo blížící se limity kvót. Odstraňujte klíče, které již nepoužíváte.
Rotace klíčů
Pravidelně rotujte své API klíče pro snížení rizika kompromitace. Doporučujeme rotovat klíče každých 90 dní:
- Vygenerujte nový API klíč ve vaší konzoli
- Aktualizujte své aplikace, aby používaly nový klíč
- Otestujte, zda vše funguje správně
- Odstraňte starý klíč z vaší konzole
Rozsahy a oprávnění
Při vytváření API klíčů nebo používání OAuth specifikujte, ke kterým zdrojům má váš klíč přístup:
| Rozsah |
Popis |
Úroveň |
| whale_positions |
Čtení pozic velrybích peněženek |
Trader+ |
| funding_rates |
Čtení dat o funding rate |
Free+ |
| liquidations |
Čtení feedů o likvidacích |
Free+ |
| open_interest |
Čtení dat o open interest |
Trader+ |
| confirmation_scores |
Čtení AI confirmation scores |
Pro+ |
| on_chain |
Čtení on-chain metrik |
Pro+ |
Příklady autentizačních kódů
Kompletní integrace v Pythonu
import requests
from typing import Optional, Dict
from datetime import datetime, timedelta
class SmartMoneyAuth:
"""Zpracovává všechny metody autentizace pro 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:
"""Získání nebo obnovení JWT tokenu"""
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:
"""Získání hlaviček pro Bearer token"""
return {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json"
}
def headers_jwt(self) -> Dict:
"""Získání hlaviček pro JWT"""
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:
"""Vytvoření autentizovaného požadavku"""
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()
# Použití
auth = SmartMoneyAuth("sk_live_abc123xyz789")
# Metoda Bearer token
whales = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT")
# Metoda JWT (automatické obnovování)
whales_jwt = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT", use_jwt=True)
print(f"Nalezeno {whales['data']['total']} velrybích pozic")
Potřebujete pomoc?
Projděte si naši dokumentaci API nebo kontaktujte podporu, pokud potřebujete pomoc s autentizací.
Reference API
Vygenerujte svůj první API klíč
Začněte se Smart Money API. Vytvořte si účet a vygenerujte autentizační údaje během několika minut.
Přejít do konzole