Authenticatiehandleiding

Leer hoe u zich kunt authenticeren met Smart Money API met behulp van API-sleutels, JWT-tokens en OAuth 2.0. Beveilig uw integraties met industristandaard authenticatiemethoden en best practices.

Overzicht

De Smart Money API ondersteunt meerdere authenticatiemethoden voor verschillende use cases. Kies de methode die het beste past bij uw integratie:

API-sleutels (primair): Verstuur uw sleutel in de X-API-Key request header voor alle REST API-aanroepen. Dit is de aanbevolen methode voor bots en server-to-server gebruik.
Sessie-JWT (fallback): Browser/dashboard-sessies authenticeren met een sessie-JWT via Authorization: Bearer, geldig voor 24 uur. Programmatische clients moeten voorkeur geven aan X-API-Key.
OAuth 2.0: Enterprise-grade authenticatie voor multi-user applicaties en integraties van derden. Gebruikers geven uw app toestemming om toegang te krijgen tot hun gegevens.
Alle API-verzoeken moeten via HTTPS worden gedaan. Onversleutelde HTTP-verzoeken worden geweigerd. Plaats bovendien nooit API-sleutels in versiebeheer of deel ze publiekelijk.

API-sleutels

API-sleutels zijn unieke inloggegevens die aan uw account zijn uitgegeven. Elke sleutel vertegenwoordigt een enkele set machtigingen en quota. U kunt meerdere sleutels genereren voor verschillende applicaties of omgevingen (ontwikkeling, staging, productie).

Een API-sleutel genereren

Genereer API-sleutels vanuit uw accountconsole:

  1. Navigeer naar Smart Money Console
  2. Selecteer "API-sleutels" in de zijbalk
  3. Klik op "Nieuwe sleutel genereren"
  4. Kies het sleuteltype (Ontwikkeling, Staging, Productie)
  5. Stel snelheidslimiet en functies in
  6. Kopieer en bewaar de sleutel veilig
Sla uw API-sleutel direct op! U kunt deze niet meer inzien. Als u deze verliest, moet u een nieuwe sleutel genereren.

Sleutelformaat

API-sleutels volgen een standaardformaat:

Sleutelformaat
sk_live_4e3e4d0f1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z sk_test_8f4g5h6i7j8k9l0m1n2o3p4q5r6s7t8u9v0w1x2y3z4a5b6c7d8e9f sk_dev_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6a7b

Sleutelvoorvoegsels geven de omgeving aan:

sk_live_ — Productiesleutels met volledige quota
sk_test_ — Testsleutels met verminderde quota en ontwikkelingsgegevens
sk_dev_ — Persoonlijke ontwikkelingssleutels met sandbox-gegevens

X-API-Key Header (primair)

Verstuur uw API-sleutel in de X-API-Key request header voor alle API-verzoeken. Plaats uw sleutel nooit in een 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 Voorbeeld

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

Python Voorbeeld

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 Authenticatie

Voor langdurige sessies en server-to-server communicatie kunt u uw API-sleutel inwisselen voor een JWT-token. JWT-tokens zijn 24 uur geldig en verminderen de noodzaak om uw API-sleutel in applicatiecode op te slaan.

Een JWT-token verkrijgen

POST uw API-sleutel naar het JWT-eindpunt om een token te krijgen:

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

JWT Reactie

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

JWT-token gebruiken

Gebruik het JWT-token in de Authorization-header, net zoals API-sleutels:

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): # Controleer of het huidige token nog geldig is if self.token and self.token_expires > datetime.now(): return self.token # Vraag een nieuw token aan 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) # Gebruik 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 is voor applicaties die toegang nodig hebben tot meerdere gebruikersaccounts. Gebruikers geven uw applicatie toestemming om toegang te krijgen tot hun gegevens zonder hun API-sleutels te delen.

OAuth 2.0 Flow

Smart Money API ondersteunt de Authorization Code flow voor webapplicaties:

  1. Gebruiker klikt op "Verbinden met Smart Money" knop
  2. Browser leidt door naar autorisatiepagina
  3. Gebruiker geeft toestemming aan uw applicatie
  4. Browser leidt terug met autorisatiecode
  5. Uw backend wisselt code in voor toegangstoken
  6. U kunt nu namens de gebruiker toegang krijgen tot gegevens

Stap 1: Autorisatieverzoek

Leid de gebruiker door naar het autorisatie-eindpunt:

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

Stap 2: Tokenuitwisseling

Nadat de gebruiker toestemming heeft gegeven, wissel de code in voor een toegangstoken:

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 Reactie

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

Beveiligingsbest practices

Sleutels veilig opslaan

Plaats API-sleutels nooit in versiebeheer, hardcodeer ze niet in applicaties of deel ze in documentatie. Gebruik omgevingsvariabelen of veilige sleutelbeheerdiensten zoals AWS Secrets Manager, HashiCorp Vault of vergelijkbaar.

Gebruik alleen HTTPS

Alle API-verzoeken moeten HTTPS (TLS 1.2 of hoger) gebruiken. HTTP-verzoeken worden geweigerd. Dit zorgt ervoor dat uw API-sleutel en gegevens versleuteld worden tijdens transport.

Beperk sleutelmachtigingen

Maak aparte API-sleutels voor verschillende applicaties en omgevingen. Gebruik scopes om te beperken wat elke sleutel kan benaderen. Gebruik geen productiesleutels in ontwikkeling.

Houd sleutelgebruik in de gaten

Controleer regelmatig het API-gebruik in uw console. Stel waarschuwingen in voor ongebruikelijke activiteit of quota die de limieten naderen. Verwijder sleutels die u niet meer gebruikt.

Sleutelrotatie

Roteer uw API-sleutels regelmatig om het risico op compromittering te verminderen. Wij raden aan om sleutels elke 90 dagen te roteren:

  1. Genereer een nieuwe API-sleutel in uw console
  2. Werk je applicaties bij om de nieuwe sleutel te gebruiken
  3. Test of alles correct werkt
  4. Verwijder de oude sleutel uit je console

Bereiken & Machtigingen

Wanneer je API-sleutels aanmaakt of OAuth gebruikt, specificeer dan welke bronnen je sleutel kan benaderen:

Bereik Beschrijving Niveau
whale_positions Lees walvisportefeuilleposities Trader+
funding_rates Lees financieringspercentagegegevens Gratis+
liquidations Lees liquidatiefeeds Gratis+
open_interest Lees open interest-gegevens Trader+
confirmation_scores Lees AI-bevestigingsscores Pro+
on_chain Lees on-chain metrieken Pro+

Authenticatiecodevoorbeelden

Volledige Python-integratie

Python
import requests from typing import Optional, Dict from datetime import datetime, timedelta class SmartMoneyAuth: """Handelt alle authenticatiemethoden voor 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: """Haal of vernieuw 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: """Haal headers voor Bearer-tokenauthenticatie""" return { "Authorization": f"Bearer {self.api_key}", "Content-Type": "application/json" } def headers_jwt(self) -> Dict: """Haal headers voor JWT-authenticatie""" 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: """Doe een geauthenticeerd verzoek""" 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() # Gebruik auth = SmartMoneyAuth("sk_live_abc123xyz789") # Bearer-tokenmethode whales = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT") # JWT-methode (automatisch vernieuwend) whales_jwt = auth.request("GET", "/v1/whales/events?symbol=BTCUSDT", use_jwt=True) print(f"Gevonden {whales['data']['total']} walvisposities")

Hulp nodig?

Bekijk onze API-documentatie of neem contact op met ondersteuning als je hulp nodig hebt bij authenticatie.

API-referentie

Genereer je eerste API-sleutel

Begin met Smart Money API. Maak je account aan en genereer authenticatiegegevens binnen enkele minuten.

Ga naar Console
Start gratis — 200 calls/dag, geen kaart nodig

Krijg live walvisstroom, financiering, open interest en on-chain gegevens van 3 beurzen via één API. Gratis tier, geen creditcard, upgrade op elk moment.

Start gratis →
Probeer de live API-console → (geen account nodig)
Krijg je API-sleutel in 30 seconden

Klaar om te bouwen? Pak een gratis API-sleutel (200 calls/dag, geen kaart nodig) en begin met het ophalen van live walvis-, financierings- en on-chain gegevens.

Krijg je API-sleutel →