Autentiseringsguide

Lär dig hur du autentiserar med Smart Money API med hjälp av API-nycklar, JWT-tokens och OAuth 2.0. Säkra dina integrationer med branschstandarder för autentisering och bästa praxis.

Översikt

Smart Money API stöder flera autentiseringsmetoder för olika användningsfall. Välj den metod som bäst passar din integration:

API-nycklar (primär): Skicka din nyckel i X-API-Key begärandehuvud för alla REST API-anrop. Detta är den rekommenderade metoden för botar och server-till-server-användning.
Session JWT (reserv): Webbläsar-/dashboard-sessioner autentiseras med en session JWT via Authorization: Bearer, giltig i 24 timmar. Programmatiska klienter bör föredra X-API-Key.
OAuth 2.0: Företagsgrad av autentisering för applikationer med flera användare och tredjepartsintegrationer. Användare ger din app tillgång till deras data.
Alla API-förfrågningar måste göras över HTTPS. Okrypterade HTTP-förfrågningar kommer att avvisas. Dessutom, lägg aldrig API-nycklar i versionskontroll eller dela dem offentligt.

API-nycklar

API-nycklar är unika autentiseringsuppgifter som utfärdas till ditt konto. Varje nyckel representerar en enda uppsättning behörigheter och kvoter. Du kan generera flera nycklar för olika applikationer eller miljöer (utveckling, staging, produktion).

Generera en API-nyckel

Generera API-nycklar från ditt kontokonsol:

  1. Navigera till Smart Money Console
  2. Välj "API-nycklar" från sidofältet
  3. Klicka på "Generera ny nyckel"
  4. Välj nyckeltyp (Utveckling, Staging, Produktion)
  5. Ställ in hastighetsbegränsning och funktioner
  6. Kopiera och spara nyckeln säkert
Spara din API-nyckel omedelbart! Du kommer inte att kunna se den igen. Om du tappar bort den måste du generera en ny nyckel.

Nyckelformat

API-nycklar följer ett standardformat:

Nyckelformat
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b

Nyckelprefix indikerar miljö:

sk_live_ — Produktionsnycklar med full kvot
sk_test_ — Testnycklar med reducerad kvot och utvecklingsdata
sk_dev_ — Personliga utvecklingsnycklar med sandlådedata

X-API-Key Header (primär)

Skicka din API-nyckel i X-API-Key begärandehuvud för alla API-förfrågningar. Placera aldrig din nyckel i en URL.

HTTP Header

HTTP
GET /v1/whales/events HTTP/1.1 Host: api.smartmoneyapi.com X-API-Key: sm_your_key Content-Type: application/json

cURL Exempel

Shell
curl -X GET https://api.smartmoneyapi.com/v1/whales/events \ -H "X-API-Key: sm_your_key" \ -H "Content-Type: application/json"

Python Exempel

Python
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 Autentisering

För långvariga sessioner och server-till-server-kommunikation, byt ut din API-nyckel mot en JWT-token. JWT-tokens varar i 24 timmar och minskar behovet av att lagra din API-nyckel i applikationskod.

Hämta en JWT-token

POSTa din API-nyckel till JWT-slutpunkten för att få en token:

cURL
curl -X POST https://api.smartmoneyapi.com/auth/jwt \ -H "Content-Type: application/json" \ -d '{ "api_key": "sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m" }'

JWT Svar

JSON
{ "success": true, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c", "expires_in": 86400, "token_type": "Bearer" }

Använda JWT-token

Använd JWT-token i Authorization-huvudet precis som API-nycklar:

Python
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): # Kontrollera om aktuell token fortfarande är giltig if self.token and self.token_expires > datetime.now(): return self.token # Hämta ny 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) # Användning 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 är för applikationer som behöver komma åt flera användarkonton. Användare ger din applikation tillstånd att komma åt deras data utan att dela sina API-nycklar.

OAuth 2.0 Flöde

Smart Money API stöder Authorization Code-flödet för webbapplikationer:

  1. Användaren klickar på "Anslut med Smart Money"-knappen
  2. Webbläsaren omdirigerar till auktoriseringssidan
  3. Användaren ger tillstånd till din applikation
  4. Webbläsaren omdirigerar tillbaka med en auktoriseringskod
  5. Din backend byter kod mot en åtkomsttoken
  6. Du kan nu komma åt användardata på deras vägnar

Steg 1: Auktoriseringsförfrågan

Omdirigera användaren till auktoriseringsslutpunkten:

URL
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

Steg 2: Tokenutbyte

Efter att användaren har gett tillstånd, byt koden mot en åtkomsttoken:

cURL
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 Svar

JSON
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "rt_1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p", "scope": "whale_positions funding_rates liquidations" }

Säkerhetsbästa praxis

Lagra nycklar säkert

Lagra aldrig API-nycklar i versionskontroll, hårdkoda dem i applikationer eller dela dem i dokumentation. Använd miljövariabler eller säkra nyckelhanteringstjänster som AWS Secrets Manager, HashiCorp Vault eller liknande.

Använd endast HTTPS

Alla API-förfrågningar måste använda HTTPS (TLS 1.2 eller högre). HTTP-förfrågningar kommer att avvisas. Detta säkerställer att din API-nyckel och data är krypterade under överföring.

Begränsa nyckelbehörigheter

Skapa separata API-nycklar för olika applikationer och miljöer. Använd scope för att begränsa vad varje nyckel kan komma åt. Använd inte produktionsnycklar i utveckling.

Övervaka nyckelanvändning

Granska regelbundet API-användning i ditt konsol. Ställ in aviseringar för ovanlig aktivitet eller kvoter som närmar sig gränser. Ta bort nycklar du inte längre använder.

Nyckelrotation

Rotera regelbundet dina API-nycklar för att minska risken för kompromettering. Vi rekommenderar att du roterar nycklar var 90:e dag:

  1. Generera en ny API-nyckel i ditt konsol
  2. Uppdatera dina applikationer för att använda den nya nyckeln
  3. Testa att allt fungerar korrekt
  4. Ta bort den gamla nyckeln från din konsol

Omfattningar & Behörigheter

När du skapar API-nycklar eller använder OAuth, ange vilka resurser din nyckel kan komma åt:

Omfattning Beskrivning Nivå
whale_positions Läs valplatser för stora plånböcker Trader+
funding_rates Läs finansieringsräntedata Free+
liquidations Läs likvidationsflöden Free+
open_interest Läs öppen intressedata Trader+
confirmation_scores Läs AI-bekräftelsepoäng Pro+
on_chain Läs on-chain-mått Pro+

Autentiseringskodexempel

Komplett Python-integration

Python
import requests from typing import Optional, Dict from datetime import datetime, timedelta class SmartMoneyAuth: """Hanterar alla autentiseringsmetoder för 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: """Hämta eller uppdatera 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: """Hämta headers för Bearer-token-autentisering""" return { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } def headers_jwt(self) -> Dict: """Hämta headers för JWT-autentisering""" 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: """Gör en autentiserad förfrågan""" 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() # Användning auth = SmartMoneyAuth("sk_live_abc123xyz789") # Bearer-tokenmetoden whales = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT") # JWT-metod (automatisk uppdatering) whales_jwt = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT", use_jwt=True) print(f"Hittade {whales['data']['total']} valpositioner")

Behöver du hjälp?

Granska vår API-dokumentation eller kontakta supporten om du behöver hjälp med autentisering.

API-referens

Skapa din första API-nyckel

Kom igång med Smart Money API. Skapa ditt konto och generera autentiseringsuppgifter på några minuter.

Gå till konsolen
Börja gratis — 200 anrop/dag, inget kort behövs

Få live-data om valflöden, finansiering, öppet intresse och on-chain-data från 3 börser via ett API. Gratis nivå, inget kreditkort, uppgradera när som helst.

Börja gratis →
Testa den levande API-konsolen → (inget konto behövs)
Få din API-nyckel på 30 sekunder

Redo att bygga? Hämta en gratis API-nyckel (200 anrop/dag, inget kort behövs) och börja hämta live-data om valar, finansiering och on-chain-data.

Hämta din API-nyckel →