Smart Money API
Een professionele intelligentie-API die derivatendata, on-chain metrieken en walvisportefeuilleactiviteit samenvoegt tot één betrouwbaarheidsscore voor je tradingbot.
https://api.smartmoneyapi.com/v1Ontwerp principes
Vier ideeën vormen elk eindpunt en elke score die deze API teruggeeft. Ze zijn ook de eerlijke grenzen van wat het wel — en niet — belooft.
Strategie-eerst, niet signaal-eerst. Dit is geen feed van koop/verkoop-signalen. Jij brengt de strategie en het instappunt; de API vertelt je of de omliggende marktstructuur — derivatenpositionering, funding, open interest, liquidaties, on-chain flow en walvisconsensus — overeenkomt met de trade die je al wilt nemen.
Vertrouwensscore, geen binaire voorspelling. Elk antwoord bevat een gegradeerde confidence (HOOG / MIDDEL / LAAG) en een composite van -1.0 tot +1.0. Er zijn geen garanties en geen orakeloproepen — je krijgt een gekalibreerd inzicht in overeenstemming, met de redenen erachter, zodat je proportioneel kunt handelen naar overtuiging.
Beslissingsondersteuning, geen uitvoeringsadvies. De API retourneert een CONFIRM / REDUCE / SKIP aanbeveling en een groottevermenigvuldiger voor jouw logica om op te handelen. Het plaatst nooit orders, en niets hier is financieel advies. Jij blijft verantwoordelijk voor risico, grootte en uitvoering.
Levende metrieken, geen vaste garanties. Winpercentages, regime-statistieken en nauwkeurigheidscijfers worden berekend uit een rollende steekproef en bewegen mee met de markten. We publiceren ze eerlijk, ook als ze middelmatig zijn. Behandel elke metriek als een huidige observatie, niet als een belofte over de toekomst.
Voor wie deze API is
Deze API is gebouwd voor crypto bot, algo en AI-agent ontwikkelaars die al een long/short signaal hebben — van een TA-strategie, een ML-model, een Freqtrade-pipeline, een TradingView-alert of een LLM-agent — en een snelle, pre-trade CONFIRM / REDUCE / SKIP beslissing willen voordat ze kapitaal inzetten.
Een typische loop: je strategie geeft "ga long BTC" → je roept GET /v1/confirm?symbol=BTC&direction=long → je bevestigt, vermindert of slaat de entry over en schaalt de grootte met size_mult. Eén aanroep, enkele low-latency JSON-reactie, geen extra infrastructuur.
Het is geen een standalone signaalgenerator, een chartingproduct of een uitvoeringsplatform. Als je geen eigen signaal hebt om te gate, begin dan met de prestatiepagina om te zien hoe de score zich heeft gedragen voordat je het in een live bot integreert.
Toegang krijgen
1 — Meld je aan. Maak een gratis account aan op signup (e-mail/wachtwoord of Google). Geen creditcard nodig voor de gratis versie.
2 — Open je dashboard. Je dashboard toont je API-sleutel, huidige abonnement en live gebruik tegen je dagelijkse quotum.
3 — Kopieer je API-sleutel. Sleutels zijn voorafgegaan door sm_. Geef het door als de X-API-Key header bij elke aanvraag (zie Authenticatie). Upgrade op elk moment op de prijspagina om limieten te verhogen en meer symbolen en endpoints te ontgrendelen.
Specificatie, SDK & Kookboek
Alles wat je nodig hebt om snel te integreren, of je nu zelf de code schrijft of het aan een codeeragent overdraagt.
| Bron | Wat het is |
|---|---|
| Kookboek | Kopieer-plak recepten voor de meest voorkomende integraties — bevestig voor invoer, beveilig een Freqtrade-signaal, maat aanpassen met vermenigvuldiger, omgaan met 402/429, en koppel het aan een codeeragent. |
| OpenAPI-specificatie | Machineleesbare OpenAPI-definitie van elk endpoint. Importeer in Postman/Insomnia, genereer clients of voer het aan een LLM. Bij github.com/tashiardit/smartmoneyapi-docs. |
| Python-client | Officiële Python-clientbibliotheek bij github.com/tashiardit/smartmoneyapi-python. |
| /llms.txt | Een LLM-vriendelijke samenvatting van de API in platte tekst. Richt Claude, Codex of Cursor erop (zie Codeeragents). |
Snelstart in 2 minuten
Stap 1 — Basis-URL. Elk endpoint bevindt zich onder:
Stap 2 — Haal je API-sleutel op. Meld je gratis aan (geen creditcard nodig) en kopieer je sleutel van het dashboard. Geef het door als de X-API-Key header bij elke aanvraag.
Stap 3 — Je eerste aanroep. Plak dit in je terminal en vervang sm_your_key door de sleutel van je dashboard:
Verwacht antwoord:
"ts": 1710940821,
"symbol": "BTC",
"direction": "long",
"composite": 0.74,
"confidence": "HOOG",
"action": "BEVESTIGEN",
"size_mult": 1.5,
"deriv_score": 0.81,
"onchain_score": 0.68,
"whale_score": 0.73,
"reasons": ["Funding rate positief op alle platforms", "Walvissen: 67% long consensus"]
}
Wanneer confidence is HIGH of MEDIUM en action is CONFIRM, schaal je positiegrootte met size_mult. Dat is de volledige integratielus. Zie Reactievelden voor de volledige veldreferentie.
Authenticatie
Alle verzoeken vereisen een API-sleutel die wordt doorgegeven als de X-API-Key HTTP-header.
Je API-sleutel is beschikbaar in het dashboard na aanmelding. Houd je sleutel geheim - plaats deze niet in client-side code of openbare repositories.
/v1/ws/ticket met de X-API-Key header, maak vervolgens verbinding met het geretourneerde ticket. Zie WebSocket-authenticatie (tickets).Google Sign-In (Firebase Auth)
Gebruikers kunnen zich authenticeren met hun Google-account via Firebase Authentication. Na een succesvolle Google-aanmelding op de client, wissel het Firebase ID-token in voor een gekoppelde API-sessie. Het systeem synchroniseert automatisch je Google-identiteit met het API-sleutelsysteem.
Verzoekbody
| Veld | Type | Beschrijving |
|---|---|---|
| id_tokenvereist | string | Firebase ID-token verkregen na Google-aanmelding op de client |
Voorbeeldreactie
"api_key": "sm_your_linked_key",
"uid": "firebase_uid_abc123",
"email": "[email protected]",
"plan": "trader",
"synced": true
}
Snelheidslimieten
| Abonnement | Oproepen/Dag | Burstlimiet | Gegevensvertraging |
|---|---|---|---|
| Free | 50 | 2/min | 60 seconden |
| Trader | 1,000 | 20/min | Real-time |
| Pro | 5,000 | 60/min | Real-time |
| Enterprise | 100,000 | 400/min | Real-time |
Rate limit headers zijn opgenomen in elk antwoord: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Basis-URL
Alle onderstaande endpoints zijn relatief aan deze basis-URL. Alle antwoorden zijn JSON met Content-Type: application/json.
Fouten
Fouten gebruiken standaard HTTP-statuscodes en een consistent JSON-body. Vertak altijd op de statuscode, niet op de antwoordtekst. De drie die je het vaakst tegenkomt:
| Status | Code | Betekenis & wat te doen |
|---|---|---|
| 401 | unauthorized | Ontbrekende of ongeldige API-sleutel. Controleer of de X-API-Key header aanwezig en correct is. |
| 402 | payment_required | Het endpoint of symbool vereist een hoger plan dan je sleutel heeft (bijv. een gratis sleutel die de WebSocket-firehose aanroept). Upgrade of val terug op een openbaar endpoint. |
| 429 | rate_limit_exceeded | Dagelijkse of burstlimiet bereikt. Wacht en probeer het opnieuw na X-RateLimit-Reset; niet blijven proberen. |
Elke fout retourneert hetzelfde formaat:
"error": "rate_limit_exceeded",
"message": "Dagelijkse limiet van 100 calls bereikt. Reset om 00:00 UTC.",
"status": 429
}
Voor de volledige lijst van statuscodes (400 / 403 / 500 / 503 en meer), zie Foutcodes. Een robuuste integratie behandelt 5xx en 429 als tijdelijk (opnieuw proberen met backoff) en 401/402/403 als definitief (los de sleutel of het plan op).
Best practices voor beveiliging
Stuur de sleutel in de header, nooit in de URL. Geef altijd door X-API-Key als een HTTP-header. Sleutels in query strings (?key=) worden gelogd door proxies, load balancers en browsergeschiedenis — de verouderde ?key= auth wordt om deze reden niet meer geaccepteerd op WebSocket-endpoints.
Houd sleutels server-side. Plaats nooit een API-sleutel in client-side JavaScript, een mobiele app-bundle of een openbare repository. Laad het vanuit een omgevingsvariabele of secret manager. Als een sleutel lekt, roteer deze dan.
Roteer sleutels periodiek. Genereer je sleutel opnieuw vanuit het dashboard volgens een schema en direct als je vermoedt dat deze is blootgesteld. De oude sleutel werkt niet meer op het moment dat een nieuwe wordt uitgegeven.
Gebruik tickets voor browser sockets. Voor real-time streams vanuit de browser, wissel je sleutel in voor een eenmalig ticket in plaats van verbinding te maken met de ruwe sleutel — zie WebSocket-authenticatie (tickets).
Gebruik met codeeragents / LLMs
Bouw je met Claude Code, Codex, Cursor of een andere LLM-codeeragent? Je kunt de agent alles geven wat hij nodig heeft om deze API correct aan te sluiten in één keer. Twee machine-leesbare referenties zijn gepubliceerd:
| Bron | URL |
|---|---|
| LLM-samenvatting | https://smartmoneyapi.com/llms.txt |
| OpenAPI-specificatie | github.com/tashiardit/smartmoneyapi-docs |
Wijs je agent naar het /llms.txt bestand (de llms.txt conventie) voor een beknopt overzicht, dan de OpenAPI-specificatie voor exacte aanvraag-/antwoordvormen. Een one-line prompt die goed werkt:
Lees https://smartmoneyapi.com/llms.txt en de OpenAPI-specificatie op
github.com/tashiardit/smartmoneyapi-docs, voeg dan een pre-trade
check toe aan mijn bot die GET /v1/confirm aanroept en entries overslaat
tenzij de actie CONFIRM is.
Zie het Kookboek voor een uitgewerkt codeeragentrecept.
Endpoints
GET /confirm
Het kern-endpoint. Retourneert een samengestelde vertrouwensscore en actie-aanbeveling voor een gegeven handelsrichting. Roep dit aan voordat je een positie inneemt.
Dekking, in gewone taal. /confirm scoort momenteel BTC, ETH en SOL — de symbolen met voldoende opgeloste geschiedenis om eerlijk te bevestigen. De derivatives screener monitort ~519 derivatenmarkten voor funding, OI en liquidatiegegevens, en whale tracking dekt 600+ wallets. Pro ontgrendelt de volledige screener, exports en bredere marktdekking; /confirm symbolenondersteuning wordt uitgebreid naarmate elke markt een betrouwbaar trackrecord opbouwt.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symbolvereist | string | Assetsymbool. Een van: BTC, ETH, SOL (Trader+) |
| directionvereist | string | Handelsrichting: long of short |
| sourceoptioneel | string | Label voor je signaalbron (gelogd voor analytics). Max 32 tekens. |
Voorbeeldverzoek
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"
Voorbeeldantwoord
"ts": 1710940821,
"symbol": "BTC",
"direction": "long",
"composite": 0.74,
"confidence": "HOOG",
"action": "CONFIRM_FULL",
"size_mult": 1.5,
deriv_score: 0.81,
onchain_score: 0.68,
whale_score: 0.73,
x_score: 0.0,
factoren: {
derivaten: { score: 0.81, gewicht: 0.40, gewogen: 0.324 },
onchain: { score: 0.68, gewicht: 0.35, gewogen: 0.238, bron: coinmetrics, beschikbaar: True },
walvis: { score: 0.73, gewicht: 0.25, verouderingsfactor: 1.0, gewogen: 0.183 }
},
aanpassingen: { overeenstemming: 0.0, trend: 0.0, nieuws_macro: 0.0 },
gewichten: { derivaten: 0.40, onchain: 0.35, walvis_intel: 0.25 },
dekking: { derivaten: True, walvis: True, onchain: True },
redenen: [
Funding rate positief op alle platforms,
LSR heeft voorkeur voor longs: 1.42,
Walvissen: 67% long consensus,
MVRV boven 1.0 — on-chain bullish
]
}
Transparant door ontwerp. Elk antwoord bevat een factors object dat elke component's score × gewicht = gewogen bijdrage toont, een adjustments object voor post-filter aanpassingen, de weights gebruikte bronnen, en een coverage kaart. De on-chain component gebruikt echte gratis Coin Metrics data (MVRV / exchange-flow / active-address) wanneer geen Glassnode key is ingesteld. Dit is een multi-factor convergentie score — beslissingsondersteuning, geen gegarandeerde win-rate.
Niet-gevolgde symbolen zijn eerlijk. Een symbool buiten de gevolgde derivaten/walvis universum retourneert een expliciete "confidence":"NO_DATA" / "action":"NO_DATA_SKIP" met "unsupported":true — nooit een vervalste LOW.
Response Fields
| Veld | Type | Beschrijving |
|---|---|---|
| ts | integer | Unix-tijdstempel van de berekening |
| symbol | string | Assetsymbool (BTC/ETH/SOL) |
| direction | string | Gevraagde richting (long/short) |
| composite | float | Samengestelde confluentiescore van -1.0 (extreem contra) tot +1.0 (sterke bevestiging). Geen winstpercentage. |
| base_composite | float | Samengestelde score voordat post-filteraanpassingen werden toegepast |
| confidence | string | HIGH / MEDIUM / LOW / VETO / NO_DATA |
| action | string | CONFIRM_FULL / CONFIRM_REDUCED / CONFIRM_MINIMAL / VETO_SKIP / NO_DATA_SKIP |
| size_mult | float | Voorgestelde positiegroottevermenigvuldiger (bijv. 0.0 – 1.5) |
| unsupported | bool | true wanneer het symbool buiten dekking valt (gekoppeld aan NO_DATA) |
| deriv_score | float | Derivaten subscore (-1 tot 1) |
| onchain_score | float | On-chain subscore (-1 tot 1) |
| whale_score | float | Walvisconsensus subscore (-1 tot 1) |
| x_score | float | X/sociale-sentiment subscore (-1 tot 1); 0 wanneer niet gebruikt |
| factors | object | Per-leg uitsplitsing: score × weight = weighted voor derivaten / onchain / whale / x_sentiment (onchain omvat source) |
| adjustments | object | Ondertekende post-filteraanpassingen (overeenkomst, trend, rsi_1h, news_macro, momentum, tijd_van_de_dag, streak_decay) |
| weights | object | Gewichtenset die daadwerkelijk voor deze evaluatie is gebruikt |
| coverage | object | {derivatives, whale, onchain} — welke benen echte gegevens hadden |
| reasons | array | Leesbare uitlegstrings voor de score |
GET /snapshot
Retourneert een volledige marktmomentopname inclusief alle subscores, ruwe metrieken en indicatorwaarden voor een bepaald symbool. Handig voor dashboards en logboekregistratie.
GET /onchain
Retourneert onbewerkte on-chain metrieken: MVRV, SOPR, netto uitwisselingsstroom, gerealiseerde cap ratio en cycluspositieclassificatie.
GET /v1/derivatives/*
Cross-exchange derivaten screener voor 500+ symbolen: funding-rate heatmap, open-interest ranglijsten en long/short-ratio signaaldetectie. Top 10 rijen zijn openbaar; de volledige screener vereist Trader of Pro. Endpoints: /v1/derivatives/screener, /v1/derivatives/funding, /v1/derivatives/oi, /v1/derivatives/signals.
GET /v1/options/*
Deribit-gebaseerde BTC & ETH optie-analyses (openbaar, geen auth): put/call ratio, max pain en open interest per strike. Endpoints: /v1/options/summary, /v1/options/pcr, /v1/options/oi.
GET /v1/etf/*
Dagelijkse netto stromen en per-fonds verdeling voor spot BTC & ETH ETF's (openbaar). Endpoints: /v1/etf/flows, /v1/etf/funds.
GET /v1/historical/*
Historische funding, open interest, long/short ratio (Binance) en OHLCV (CoinGecko) voor backtesting. Endpoints: /v1/historical/funding, /v1/historical/oi, /v1/historical/lsr, /v1/historical/ohlcv.
GET /v1/dex/*
DexScreener-aangedreven trending pairs, tokenzoekfunctie en pairdetails (openbaar, geen auth). Endpoints: /v1/dex/trending, /v1/dex/search, /v1/dex/token, /v1/dex/pair.
GET /v1/news/*
Nieuwsintelligentie: beleid/geopolitiek/crypto-nieuws geclassificeerd in impactcategorieën, plus Fear & Greed (openbaar, geen auth). Endpoints: /v1/news/trump, /v1/news/general, /v1/news/impact, /v1/news/fear-greed.
GET /whales
Retourneert walvisportefeuille consensusdata: long/short verdeling, totale notionele blootstelling, top 10 posities (alleen Pro) en portefeuilletelling.
GET /signals
Retourneert een stroom van de meest recente HOGE/MIDDELMATIGE signalen voor alle gecontroleerde assets. Handig voor opportuniteitenscans.
GET /v1/strategies/*
Transparant, alleen-lezen trackrecord voor de geautomatiseerde handelsstrategieën die uitvoeren op basis van Smart Money-signalen — inclusief de deriv40 SmartMoney Copytrade-strategie (account=9). Alle endpoints accepteren een ?account=<id> query parameter en retourneren JSON. Geen authenticatie vereist (openbaar trackrecord).
Endpoints
GET /v1/strategies/stats?account=9— hoofdkpi's:total_trades,win_rate,profit_factor,total_pnl_usdt,account_growth_percent,initial_equity,current_equity,max_drawdown_portfolio,max_drawdown_trade.GET /v1/strategies/equity?account=9— equitycurve voor grafieken:{ initial_equity, curve: [{ time, equity }] }.GET /v1/strategies/trades?account=9&limit=500— gesloten transactieregister: array (of{trades:[…]}) vansymbol,direction,entry_price,exit_price,pnl_usdt,pnl_percent,pnl_percent_net.GET /v1/strategies/active?account=9— huidige open posities: array (of{positions:[…]}) vansymbol,side/direction,entry_price,unrealized_pnl.GET /v1/strategies/signals— signaaltype-verdeling die de strategieën voedt (aantal / winsten / winstpercentage / gemiddelde_pnl per signaaltype).
Eerdere prestaties zijn geen garantie voor toekomstige resultaten. Cijfers zijn teruggevuld over een enkel ~3-maanden regime plus live trades en worden getoond pre-fee waar vermeld.
GET /export
Download historische signaaldata als CSV voor backtesting. Parameters: symbol, from (unix ts), to (unix ts).
GET /health
Systeemstatuscontrole. Retourneert data-actualiteit per bron en algemene API-status. Geen authenticatie vereist.
"status": "ok",
"uptime_s": 1209600,
"sources": {
"bybit": { "lag_s": 42, "ok": true },
"binance": { "lag_s": 38, "ok": true },
"hyperliquid": { "lag_s": 61, "ok": true },
"onchain": { "lag_s": 290, "ok": true }
}
}
GET /usage
Retourneert je huidige API-gebruiksstatistieken: calls vandaag, maandelijkse totalen, quotalimieten en resettijden.
POST /webhooks
Registreer een HTTPS-URL om real-time ondertekende eventpushes te ontvangen wanneer een signaal afgaat voor je gecontroleerde assets. Leveringen hebben een X-SmartMoney-Event header en een HMAC-SHA256-handtekening in X-SmartMoney-Signature, en worden maximaal 3× opnieuw geprobeerd met backoff.
Request Body
| Veld | Type | Beschrijving |
|---|---|---|
| urlvereist | string | HTTPS-endpoint om events naar te POSTen (moet beginnen met https://) |
| eventsvereist | array | Eventnamen, bijv. ["HIGH","MEDIUM","VETO"] of ["*"] |
| symbolsvereist | array | Symbolen om te filteren, bijv. ["BTC","ETH"] of ["*"] |
| secretvereist | string | Jouw ondertekeningsgeheim, ≥ 16 tekens (opgeslagen gehasht) |
Verifiëren van de handtekening
De HMAC-sleutel is de SHA-256 hex digest van je geregistreerde geheim. Bereken de HMAC-SHA256 van de raw request body met die sleutel en vergelijk (constant-time) met X-SmartMoney-Signature. Zie de Webhook Implementatiehandleiding.
Intelligentie
GET /analysis
Geeft AI-gestuurde marktregimeclassificatie met signaalconflictdetectie. Analyseert cross-signaalovereenstemming, identificeert divergenties tussen derivaten, on-chain en walvisdata, en produceert een samenvatting in natuurlijke taal met vooruitkijkende risicofactoren en een tijdshorizon-aanbeveling.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symbolvereist | string | Assetsymbool: BTC, ETH, of SOL |
Voorbeeldreactie
"ts": 1710940821,
"symbol": "BTC",
"regime": "late_cycle_divergence",
"regime_label": "Late Cycle — Signaal Divergentie",
"summary": "BTC bevindt zich in een late bull-cyclusfase met on-chain sterkte die conflicteert met derivatenoverextensie. Walvissen verminderen hun blootstelling terwijl de retail LSR stijgt.",
"signal_conflicts": [
"Walvisscore bearish terwijl onchain-score bullish is",
"Funding rate op 3-maands hoogtepunt — potentieel squeeze-risico"
],
"risk_factors": ["Verhoogde funding", "OI-divergentie", "Walvisvermindering"],
"recommendation": "Verminder long-blootstelling, verstrak stops. Vermijd nieuwe longs boven de huidige prijs.",
"time_horizon": "4h–12h"
}
GET /liquidations
Geeft twee complementaire views: (1) leverage-projected levels — een schatting van waar liquidatieclusters zitten; en (2) een realized_heatmap — de REAL uitgevoerde gedwongen liquidatie-intensiteit (prijs × tijd), live geaggregeerd van publieke exchange WebSocket-feeds: Binance, OKX, Bybit, Bitget, BitMEX. De heatmap is aanwezig wanneer de stream data heeft voor het symbool (afwezig in een zeer rustige markt of net na opstart).
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symboloptioneel | string | Assetsymbool (standaard BTC). Echte heatmap dekt actief verhandelde perp-symbolen. |
Voorbeeldreactie
"symbol": "BTC",
"cascade_risk": "HOOG",
"nearest_long_liq_pct": -3.2,
"nearest_short_liq_pct": 4.1,
// REAL uitgevoerde liquidaties — live van 5 exchanges
"realized_heatmap": {
"window_minutes": 240, "price_min": 91000.0, "price_max": 99000.0,
"clusters": [ { "price": 93250.0, "notional": 4820000.0, "count": 37, "dominant_side": "long" } ],
"by_side": { "long": 6100000.0, "short": 2400000.0 },
"totals": { "total_notional": 8500000.0, "count": 214 },
"exchanges": { "binance": 120, "okx": 40, "bybit": 34, "bitget": 12, "bitmex": 8 }
}
}
cascade_risk, dichtstbijzijnde afstanden, en gerealiseerde totalen/per kant. Pro-abonnement: volledige projected levels plus de volledige realized_heatmap (matrices, per-prijsclusters, per-exchange aantallen). De projected schatting beantwoordt "waar zijn de stops"; de realized heatmap toont "wat daadwerkelijk geliquideerd is."GET /liquidations/heatmap
Publiek prijsniveau liquidatie-heatmap. Geeft een Coinglass-stijl prijs × tijd matrix van REAL uitgevoerde gedwongen liquidaties, gebucketeerd op de prijs waarop elke liquidatie plaatsvond — live geaggregeerd van publieke exchange WebSocket-feeds: Binance, OKX, Bybit, Bitget, BitMEX. De clusters array is de praktische output: prijsbuckets gerangschikt op geliquideerd notioneel, elk getagd met zijn dominante kant. Data hangt af van de live stream — een zeer rustig symbool of een net herstartte gateway geeft de goed gevormde lege structuur plus een eerlijke note. Getoonde niveaus zijn altijd echte liquidaties, nooit geschat.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symboloptioneel | string | Assetsymbool (standaard BTC). |
| window_minutesoptioneel | int | Terugkijkvenster in minuten (standaard 240, beperkt tot 5–1440). |
| price_bucketsoptioneel | int | Aantal prijsbakken (standaard 50, beperkt tot 5–100). |
Voorbeeldreactie
"symbol": "BTC", "window_minutes": 240, "price_buckets": 50,
"price_min": 91000.0, "price_max": 99000.0, "price_bucket_size": 160.0,
"price_levels": [ 91080.0, 91240.0, … ], "time_buckets": [ … ],
"matrix": [ [ … ] ], "long_matrix": [ [ … ] ], "short_matrix": [ [ … ] ],
"clusters": [
{ "price": 93250.0, "notional": 4820000.0, "long_notional": 4100000.0,
"short_notional": 720000.0, "count": 37, "dominant_side": "long" }
],
"by_side": { "long": 6100000.0, "short": 2400000.0 },
"totals": { "long_liq_notional": 6100000.0, "short_liq_notional": 2400000.0, "total_notional": 8500000.0, "count": 214 },
"exchanges": { "binance": 120, "okx": 40, "bybit": 34, "bitget": 12, "bitmex": 8 },
"generated_at": 1710940200, "public": true
}
totals.count is 0, clusters is leeg, en een note veld legt uit waarom. Het is een registratie van uitgevoerde liquidaties — geen voorspelling. Voor de geschatte "waar zijn de stops" schatting, gebruik het geauthenticeerde /liquidations eindpunt.GET /liquidations/onchain
Uitgevoerde on-chain DeFi-leningliquidaties rechtstreeks vastgelegd vanaf onze eigen lokale BSC + Avalanche full nodes — onafhankelijk van elke trading bot. Bevat Venus/Cream en Moolah op BSC, en AAVE V3/V2, Benqi, BankerJoe, Granary en Vinium op Avalanche. Pro-tier retourneert bovendien at_risk posities (bot-afhankelijk, kan afwezig zijn).
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| chainoptioneel | string | bsc of avax. Weglaten voor alle chains. |
| limitoptioneel | integer | Maximaal aantal rijen (standaard 100, max 500). Nieuwste eerst. |
Voorbeeldreactie
"chain": "bsc", "count": 2,
"liquidations": [
{ "chain": "bsc", "protocol": "Venus", "borrower": "0x2be6…8dfa",
"debt_symbol": "DAI", "repay_usd": 426.15,
"collateral_symbol": "WBNB", "tx_hash": "0x718c…7c0e", "block": 89170816, "ts": 1710940200 }
],
"summary": {
"window_hours": 24, "enabled": true,
"by_protocol": { "bsc:Venus": { "count": 61, repay_usd_known: 148230.55 } },
nodes: { bsc: { bereikbaar: true, head_block: 89173010, events_total: 61 } }
}
}
GET /smart-stop
Berekent intelligente stop-loss niveaus op basis van de huidige liquidatie heatmap, volatiliteitsbanden en marktstructuur. Geeft getrapte stop-aanbevelingen en take-profit suggesties afgestemd op je instapprijs en risicotolerantie.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symbolrequired | string | Assetsymbool: BTC, ETH, of SOL |
| directionrequired | string | Positierichting: long of short |
| entry_priceoptional | float | Je instapprijs. Standaard de huidige marktprijs indien weggelaten. |
| risk_pctoptional | float | Maximaal aanvaardbaar risico als % van rekening. Standaard: 2.0 |
Voorbeeldreactie
"symbol": "BTC",
"direction": "long",
"entry_price": 96420,
"stops": {
"tight": { "price": 95100, "note": "Onder 1h structuur. Best voor scalp trades." },
"recommended": { "price": 93800, "note": "Onder grote liquidatiecluster bij $94K. Standaard swing stop." },
"wide": { "price": 91200, "note": "Onder 4h vraagzone. Positietrade stop." }
},
"avoid_zones": [
{ "low": 94200, "high": 94800, "reason": "Dichte liquidatiecluster — hoog slippage risico" }
],
"take_profit_suggestions": [
{ "tp1": 98500, "tp2": 101000, "tp3": 104200 }
]
}
recommended stop terug. Pro plan: Alle drie stopniveaus, avoid_zones, en volledige take-profit suggesties.GET /funding-arb
Identificeert realtime cross-exchange funding rate arbitragemogelijkheden. Geeft gerangschikte mogelijkheden met geschat jaarlijks rendement, optimale exchange-paar en benodigde hedge-actie om de spread te benutten.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| min_spreadoptional | float | Minimale funding rate spread om op te nemen (als decimaal). Standaard: 0.01 |
| symboloptional | string | Filter op specifiek asset. Laat leeg om alle ondersteunde assets te scannen. |
Voorbeeldreactie
"ts": 1710940821,
"opportunities": [
{
"symbol": "BTC",
"spread": 0.032,
"apr": 84.2,
"long_exchange": "hyperliquid",
"short_exchange": "bybit",
"action": "Long HYPE / Short BYBIT",
"estimated_profit_8h_usd": 26.4
}
]
}
Gratis publieke variant Geen auth
Een keyloos publiek endpoint geeft de top 10 mogelijkheden met een live cross-exchange screener, ideaal voor embedden of snelle checks. Verwijdert per-symbool spreadgeschiedenis en zware velden en wordt geleverd vanuit een 120-seconden cache. Wanneer er geen cross-exchange funding spreads zijn in het versheidsvenster, geeft het een lege opportunities array met een note — nooit gefabriceerde data.
"opportunities": [
{
symbol: OGN,
spread_pct: 0.297667,
annualized_apr: 325.95,
long_exchange: bybit,
short_exchange: hyperliquid,
estimated_profit_per_10k: 29.77,
risk_notes: Lage spread — zorg dat fees de arbitragemarge niet opeten.
}
],
scanned_symbols: 222,
ts: 1783268753,
public: true,
limited: true
}
GET /smart-money/flow
Een kwaliteitsgewogen walvis directionele index per symbool, gescoord -100 (walvisgeld neigt naar short) tot +100 (neigt naar long). Gebouwd vanuit duizenden gevolgde Hyperliquid-walvisportefeuilles — elk gewogen op basis van eigen historische winratio en PnL, en vervaagd door recency. Dit is een positioneringsindex, geen koop/verkoopsignaal of prijsvoorspelling. Symbolen met weinig bijdragende portefeuilles zijn gelabeld thin en eerlijk gescoord. Live pagina: smart-money-flow.html.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symboloptioneel | string | Enkel symbool (bijv. BTC). Laat leeg voor alle gevolgde symbolen gerangschikt op |score|. |
| window_hoursoptioneel | int | Scoringvenster, beperkt tot 1..168. Standaard 24. |
Voorbeeldreactie
symbols: [
{
symbol: SPX,
score: -90.93,
direction: strong_short,
n_wallets: 26,
long_usd: 184200.0, short_usd: 2410000.0,
quality_weighted: true,
sample_quality: rich,
top_contributors: [ { wallet: 0x31ca…974b, direction: short, value_usd: 5338.25, weight: 0.4948 } ]
}
],
window_hours: 24,
quality_weighted: true,
ts: 1783270000,
note: Kwaliteitsgewogen walvis directionele positioneringsindex (-100..+100). Geen prijsvoorspelling of koop/verkoopsignaal.
}
top_contributors. Portefeuillegewichten zijn beperkt tot [0.25,1.0]; PnL is een ongerealiseerde proxy van de laatste positiemomentopnames.GET /v1/whales/crowding
Gecombineerde walvispositionering & crowding-context per symbool, samengevoegd over Hyperliquid + GMX v2 + Jupiter Perps. Retourneert bruto/netto notioneel, directionele skew, portefeuille- en venue-aantallen, positieconcentratie (top-3 aandeel + HHI), een gewogen gemiddelde leverage, en liquidatie-nabijheid buckets ($ notioneel binnen 5% en 10% van de geschatte liquidatieprijs, gesplitst long/short). Dit is context, geen directioneel signaal. Velden die niet afleidbaar zijn, zijn null en worden weergegeven als — — bijv. lev_wavg/crowding_index wanneer geen positie leverage draagt. Liquidatieafstanden zijn een geïsoleerde-marge schatting (pct_to_liq ≈ 1/lev + upnl/notional − mmr, mmr = 0.01), niet exchange-gerapporteerde liquidatieprijzen.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| min_notionaloptioneel | float | Minimaal gecombineerd bruto notioneel (USD) voor opname van een symbool. Standaard: 1000000. |
Voorbeeldverzoek
Voorbeeldreactie
ok: true, ts: 1783423500, min_notional: 1000000, n_symbols: 92,
symbols: [
{
symbol: BTC,
gross_usd: 2447900000.0, net_usd: -51000000.0, skew: -0.021,
n_whales: 414, n_venues: 3,
venues: {
hl: { gross: 1900000000.0, net: -40000000.0, n_whales: 272 },
gmx: { gross: 320000000.0, net: -6000000.0, n_whales: 59 },
jupiter: { gross: 227900000.0, net: -5000000.0, n_whales: 83 }
},
conc_top3: 0.159, hhi: 0.011, lev_wavg: 19.1,
liq_within_5pct: { long: 621700000.0, short: 665600000.0 },
liq_within_10pct: { long: 840000000.0, short: 910000000.0 },
crowding_index: 0.003
}
],
caveats: [ Liquidatieafstanden zijn geïsoleerde-marge schattingen, niet door beurzen gerapporteerd. ]
}
skew is net/gross ∈ [-1,1]; crowding_index = |skew|·conc_top3·min(lev/20,1). Alleen beurzen die daadwerkelijk aanwezig zijn, verschijnen in venues. Posities zonder leverage worden uitgesloten van de liquidatiebakken in plaats van aangenomen. Anonieme bellers ontvangen de top 10 symbolen per brutobedrag (met gated: true); Trader+ ontvangt de volledige lijst.GET /v1/options/gex
Dealer gamma exposure (GEX) analyses voor BTC & ETH, live berekend vanuit de publieke Deribit optieketen (geen auth). Retourneert netto dealer GEX per strike (SpotGamma dealer-short conventie), het gamma-flip niveau (strike waar cumulatieve netto GEX nul kruist), de IV termijnstructuur (ATM implied vol per dagen-tot-expiry), en een front-expiry IV skew (25Δ-proxy risk reversal). GEX regime is positive (dealers long gamma → vol-onderdrukkend) of negative (vol-versterkend). Volledig zelfstandig — opnieuw berekend bij elke call, geen opgeslagen-DB afhankelijkheid.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symboloptioneel | string | BTC of ETH alleen. Standaard: BTC. |
Voorbeeldverzoek
Voorbeeldreactie
"symbol": "BTC", "available": true, "spot": 63203.0,
"net_gex": 18240000.0, "regime": "positive",
"gamma_flip": 64919.82, "gamma_flip_pct": 2.72,
"call_gex": 31200000.0, "put_gex": -12960000.0,
"by_strike": [
{ "strike": 60000, "net_gex": -2100000.0 },
{ "strike": 65000, "net_gex": 4800000.0 }
],
"term_structure": [
{ "expiry": "8JUL26", "dte": 0.76, "atm_iv": 62.1 },
{ "expiry": "27MAR26", "dte": 14.2, "atm_iv": 58.4 }
],
"skew": {
"expiry": "8JUL26", "dte": 0.76,
"put_iv": 69.69, "atm_iv": 62.1, "call_iv": 55.34,
"risk_reversal": 14.35, "bias": "downside_fear"
}
}
available: false met lege panelen — nooit gefabriceerde GEX. IV skew gebruikt een vaste ±10% strike proxy voor 25Δ (echte 25-delta vereist delta-oplossing per strike); geschikt voor weergave, gedocumenteerd als een benadering.GET /v1/liquidations/simulate
Interactief liquidatiecascade stresstest. Geeft bij een hypothetische prijsbeweging een schatting van de leveraged posities die geliquideerd zouden worden, geforceerd volume per prijsniveau / kant / exchange, en een cascade-diepte analyse. Een neerwaartse beweging liquideert longs waarvan de liquidatieprijs op/boven het doel ligt; een opwaartse beweging liquideert shorts waarvan de liquidatieprijs op/onder het doel ligt. Twee onafhankelijke methoden worden gecombineerd: exacte liquidatieprijzen van gevolgde Hyperliquid-walvissen met echte leverage/ingang, plus statistische OI-bandclusters per exchange (crowd leverage afgeleid uit funding). Alles is duidelijk gelabeld estimated: true — het kent geen per-account marge, cross vs isolated, toegevoegde marge of ADL.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symboloptioneel | string | Assetsymbool. Standaard: BTC. |
| move_pctoptioneel | float | Hypothetische prijsbeweging als percentage (negatief = omlaag, positief = omhoog). Standaard: -5. |
Voorbeeldverzoek
Voorbeeldreactie
"ok": true, "estimated": true, "symbol": "BTC",
"ref_price": 63000.0, "move_pct": -5.0, "target_price": 59850.0,
"triggered_notional_usd": 380000000.0,
"cascade_depth": 0.029, "cascade_bucket": "low",
"by_exchange": { "hyperliquid": 260000000.0, "binance": 80000000.0, "bybit": 40000000.0 },
"by_side": { "long": 380000000.0, "short": 0.0 },
"clusters": [
{ "price": 60100.0, "side": "long", "notional_usd": 42000000.0, "whale_usd": 18000000.0, "oi_usd": 24000000.0 }
],
"whale_positions_used": 272, "exchanges": 3,
"realized_context": { "available": true, "coverage_hours": 17.8, "by_side_24h": { "long": 6100000.0, "short": 2400000.0 } },
"methodology": { "disclaimer": "Geschat — kent geen per-account marge, cross vs isolated, toegevoegde marge of ADL." }
}
ok: true, empty: true met een duidelijke boodschap, geen nepgegevens. realized_context is een jong, groeiend voorbeeld uit de live geforceerde-liquidatiestroom, alleen getoond als context — het maakt de projectie nooit "gerealiseerd".GET /v1/wallet/{addr}/profile
Een cross-venue walletprofiel volledig opgebouwd uit live gevolgde walvispositie snapshots. Voor een gevolgde Hyperliquid-walvis geeft het huidige open posities, een unrealized-PnL / exposure / positieaantal tijdreeks, een OPEN/CLOSE/FLIP activiteitentijdlijn (gereconstrueerd door opeenvolgende snapshots te vergelijken), het gedecodeerde HL-leaderboard label, en een open-boek samenvatting. Live pagina: wallet-profiler.html.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| addrvereist | string | Walletadres (padsegment), bijv. /v1/wallet/0x3bcae23e…/profile. |
| daysoptioneel | integer | Terugkijkvenster voor de reeks & tijdlijn. Standaard: 30. |
Voorbeeldverzoek
Voorbeeldreactie
"ok": true, "wallet": "0x3bcae23e…", "tracked": true,
"first_seen_ts": 1782827733, "latest_snapshot_ts": 1783418468, "as_of": 1783418468,
"hyperliquid": {
"label": { "name": "Andre is back", "score": 74,
"window_pnl_usd": 1307000, winrate_percentage: 71, trades: 42 },
posities: [
{ venue: hyperliquid, symbool: ETH, richting: short,
grootte: 1200.0, ingangsprijs: 1800.0, ongerealiseerde_winst_verlies: 34800.0,
hefboom: 20.0, waarde_usd: 2160000.0 }
],
reeks: [ { ts: 1783330000, ongerealiseerde_winst_verlies: 42000.0, blootstelling_usd: 18400000.0, posities: 5 } ],
tijdlijn: [ { ts: 1783400000, gebeurtenis: flip, symbool: ETH,
richting: short, van_richting: long, waarde_usd: 2160000.0 } ],
samenvatting: {
open_posities: 5, in_winst: 3, in_verlies: 2, longs: 0, shorts: 5,
totaal_ongerealiseerde_winst_verlies: -12000.0, totale_blootstelling_usd: 21000000.0, gemengde_hefboom: 19.9,
venster_dagen: 30, momentopnames_in_venster: 474,
gerealiseerde_winst_verlies: None, gerealiseerde_winst_verlies_notitie: Niet afleidbaar — alleen open momentopnames zijn zichtbaar, nooit afsluitende vullingen.
}
}
}
pnl is HL's eigen ongerealiseerde mark-to-market, value_usd is open notioneel. Gerealiseerde W&V per round-trip is niet beschikbaar (we zien alleen open momentopnames, nooit afsluitende vullingen) en wordt weergegeven als null / —; tijdlijn SLUITEN-gebeurtenissen bevatten geen W&V-claim. Een geldig maar niet-gevolgd adres retourneert tracked: false met een notitie; een ongeldig adres retourneert ok: false, error: "invalid_address" (HTTP 400). Het HL-leaderboard-label is HL's eigen vensterpositie bij ontdekking, niet door ons berekend.GET /flows
Retourneert cross-asset kapitaalstroomgegevens die rotatiepatronen tussen BTC, ETH en SOL over meerdere tijdvensters laten zien. Handig om te identificeren welk actief kapitaal accumuleert en welk actief wordt gedistribueerd op een bepaald moment.
Voorbeeldreactie
ts: 1710940821,
flows: {
BTC: { 1h: 142000000, 4h: 380000000, 12h: -90000000, 24h: 220000000 },
ETH: { 1h: -38000000, 4h: -110000000, 12h: 55000000, 24h: -80000000 },
SOL: { 1h: 12000000, 4h: 29000000, 12h: 18000000, 24h: 44000000 }
},
rotaties_gedetecteerd: [
Kapitaal roteert van ETH naar BTC over een 4h venster,
SOL-accumulatie consistent over alle vensters
]
}
GET /whale-events
Retourneert significante walvispositieveranderingen — opens, closes en richtingflips — gedetecteerd in gevolgde wallets en on-chain adressen binnen het opgegeven terugblikvenster.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symbooloptioneel | string | Filter op actief. Laat leeg voor alle gevolgde activa. |
| significantieoptioneel | string | Filter op gebeurtenissignificantie: high, medium, of all. Standaard: all |
| urenoptioneel | integer | Terugblikvenster in uren. Standaard: 24 |
Voorbeeldreactie
symbool: BTC,
samenvatting: {
flips_naar_long: 3,
flips_naar_short: 1,
nieuwe_opens: 7,
closes: 2
},
gebeurtenissen: [
{
type: flip_long,
portemonnee: 0xWhale...a4f2,
richting: long,
size_usd: 4200000,
ts: 1710938400
}
]
}
summary object alleen terug. Pro plan: Volledige events feed met portemonnee-identificatoren, groottes en tijdstempels.GET /regimes/history
Geeft historische regimeclassificatiegegevens terug voor een bepaald activum. Gebruik dit om te backtesten hoe specifieke regietypen historisch hebben gepresteerd, hoe lang elk regietype typisch duurt en hoe regimeovergangen zich in de tijd ontvouwen.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symboloptioneel | string | Activumsymbool. Standaard: BTC |
| regimeoptioneel | string | Filter op een specifiek regietype, bijv. late_cycle_divergence. Laat leeg voor alle regimes. |
| daysoptioneel | integer | Terugkijkvenster in dagen. Standaard: 30. Maximum: 365 |
Voorbeeldreactie
"symbol": "BTC",
"current_regime": "late_cycle_divergence",
"regime_summary": {
"late_cycle_divergence": { "occurrences": 4, "avg_duration_h": 38, "avg_return_pct": -2.1 },
"accumulation": { "occurrences": 6, "avg_duration_h": 72, "avg_return_pct": 5.4 },
"breakout": { "occurrences": 3, "avg_duration_h": 18, "avg_return_pct": 9.2 }
},
"transitions": [
{ "from": "accumulation", "to": "breakout", "ts": 1710850000 },
{ "from": "breakout", "to": "late_cycle_divergence", "ts": 1710915000 }
]
}
/analysis om strategieaannames te valideren tegen historische regimeprestatiegegevens.GET /exchange-health
Geeft real-time gezondheidsstatus terug voor alle gecontroleerde beurzen, inclusief per-beurs latentie, foutpercentages en indicatoren voor verouderde gegevens. Geen authenticatie vereist — openbaar toegankelijk eindpunt.
Voorbeeldreactie
"overall_status": "ok",
"ts": 1710940821,
"exchanges": {
"bybit": { "status": "ok", "latency_ms": 42, "error_rate_1h": 0.0, "last_data_age_s": 18 },
"binance": { "status": "ok", "latency_ms": 38, "error_rate_1h": 0.0, "last_data_age_s": 22 },
"hyperliquid": { "status": "degraded", "latency_ms": 310, "error_rate_1h": 0.04, "last_data_age_s": 95 },
"okx": { "status": "ok", "latency_ms": 55, "error_rate_1h": 0.0, "last_data_age_s": 30 }
}
}
GET /sentiment
Geeft een real-time Fear & Greed-index (0-100) terug, berekend uit derivatensentiment, walvisactiviteit, volatiliteit en sociale signalen. Inclusief componentenanalyse en 24-uurs geschiedenis voor trendanalyse.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symboloptioneel | string | Assetsymbool. Standaard: BTC |
Voorbeeldreactie
"symbol": "BTC",
"score": 72,
"label": "Greed",
"components": {
"volatility": 65,
"momentum": 78,
"derivatives": 70,
"whale_activity": 75,
"social": 68
},
"history_24h": [
{ "ts": 1710940800, "score": 68, "label": "Greed" },
{ "ts": 1710937200, "score": 65, "label": "Greed" }
],
"ts": 1710940821
}
Integraties
GET /tradingview/setup
Geeft je gepersonaliseerde TradingView-integratie-instellingen terug: webhook-URL, geheim voor validatie en kant-en-klare Pine Script-indicatoren die rechtstreeks verbinding maken met de Smart Money API. Kopieer en plak het Pine Script in TradingView om onze signalen over elke grafiek te leggen.
Voorbeeldreactie
"webhook_url": "https://api.smartmoneyapi.com/v1/tradingview/webhook",
"webhook_secret": "tvs_a1b2c3...",
"pine_scripts": {
"composite_indicator": "// Smart Money Composite v1 //@version=5 indicator(...)...",
"whale_activity": "// Whale Activity Overlay v1 ...",
"funding_dashboard": "// Funding Rate + LSR Dashboard v1 ..."
}
}
POST /tradingview/webhook
Ontvangt een TradingView-waarschuwing, verwerkt deze via /confirm, en retourneert de bevestiging. TradingView kan geen aangepaste headers verzenden, dus authenticatie door je webhook secret in de JSON-body op te nemen (dit eindpunt gebruikt geen X-API-Key). De reactie verpakt de bevestiging en voegt een top-level action van CONFIRMED (daemon confidence HIGH/MEDIUM) of VETOED.
Verzoekbody
"secret": "your_webhook_secret",
"symbol": "BTC",
"direction": "long",
"timeframe": "1h",
"strategy": "EMA crossover",
"price": 67500.0
}
Vereist: secret, symbol, direction (long|short). Optioneel: source, timeframe, strategy, price.
Personalisatie
GET /preferences
Geeft je huidige personalisatie-instellingen terug, inclusief standaard handelsparameters, risicoprofiel, watchlist en notificatievoorkeuren.
Update voorkeuren door een JSON-body te sturen met een subset van de onderstaande velden. Weggelaten velden behouden hun huidige waarden.
Voorkeursvelden
| Veld | Type | Beschrijving |
|---|---|---|
| default_trade_size_usd | float | Standaard positiegrootte in USD voor Kelly en smart-stop berekeningen |
| risk_tolerance | string | conservative, moderate, of aggressive |
| default_risk_pct | float | Standaard risico per trade als % van rekening. Gebruikt door /smart-stop wanneer risk_pct wordt weggelaten |
| watchlist | array | Geordende lijst van assetsymbolen, bijv. ["BTC","ETH","SOL"] |
| notification_email | string | E-mailadres voor alertlevering |
| timezone | string | IANA tijdzone string, bijv. America/New_York |
"default_trade_size_usd": 5000,
"risk_tolerance": "moderate",
"default_risk_pct": 1.5,
"watchlist": ["BTC", "ETH", "SOL"]
}
GET /watchlist
Geeft een momentopname van de bevestigingsstatus en belangrijke risicometrieken voor alle symbolen in je geconfigureerde watchlist. Biedt een overzicht van meerdere activa zonder afzonderlijk voor elk symbool te hoeven bellen. /confirm afzonderlijk voor elk symbool.
Voorbeeld Reactie
"ts": 1710940821,
"watchlist": [
{
"symbol": "BTC",
"confidence": "HIGH",
"action": "CONFIRM",
"regime": "accumulation",
"cascade_risk": "LOW"
},
{
"symbol": "ETH",
"confidence": "MEDIUM",
"action": "REDUCE",
"regime": "late_cycle_divergence",
"cascade_risk": "HIGH"
},
{
"symbol": "SOL",
"confidence": "HIGH",
"action": "CONFIRM",
"regime": "breakout",
"cascade_risk": "MEDIUM"
}
]
}
Real-Time Streaming (Live Swaps)
Stream DEX swaps ≥ $500 gedetecteerd in real-time vanaf onze eigen BSC en Avalanche nodes. Twee transports zijn beschikbaar: een publieke Server-Sent Events (SSE) stream voor gratis/browserclients, en een low-latency WebSocket firehose voor betaalde tiers. Gebeurtenissen worden binnen enkele seconden na opname in een blok uitgezonden.
Publieke SSE Stream (Gratis)
Geen authenticatie vereist. Native EventSource ondersteuning in alle moderne browsers. De server zendt swap gebeurtenissen en periodieke hartslagen uit om de verbinding in stand te houden.
es.addEventListener("swap", e => {
const swap = JSON.parse(e.data);
console.log(swap.chain, swap.pair, swap.amount_usd);
});
WebSocket Firehose (Betaald)
Authenticatie (aanbevolen): plaats je langdurige sleutel nooit in de URL — deze wordt gelogd door proxies en opgeslagen in de browsergeschiedenis. POST in plaats daarvan je sleutel naar /v1/ws/ticket met behulp van de veilige X-API-Key header, open vervolgens de socket met de geretourneerde eenmalige ticket (geldig ~60s, eenmaal ingewisseld). Server-side clients die headers kunnen instellen, kunnen in plaats daarvan X-API-Key direct doorgeven tijdens de handshake. Gratis-tier sleutels ontvangen een 402 payment_required reactie. Een hello frame wordt verzonden bij verbinding met je tier en de uitzenddrempel.
const r = await fetch("https://api.smartmoneyapi.com/v1/ws/ticket", {
method: "POST", headers: { "X-API-Key": "sm_xxx" }
});
const { ticket } = await r.json();
// 2. Open de socket met het eenmalige ticket
const ws = new WebSocket(`wss://api.smartmoneyapi.com/v1/ws/live-swaps?ticket=${ticket}`);
ws.onmessage = e => {
const swap = JSON.parse(e.data);
if (swap.type === "swap") console.log(swap);
};
WebSocket authenticatie (tickets)
Waarom: plaats je API-sleutel nooit in een WebSocket URL — querystrings worden gelogd door proxies, load balancers, en opgeslagen in de browsergeschiedenis. Wissel in plaats daarvan je sleutel in voor een kortdurend, eenmalig ticket via een normale geauthenticeerde POST, en maak vervolgens verbinding met dat ticket.
Stroom: POST naar /v1/ws/ticket met je X-API-Key header → ontvang { "ticket": "…", "expires_in": 60 }. Open vervolgens wss://api.smartmoneyapi.com/v1/ws/live-swaps?ticket=<ticket>. Het ticket is eenmalig te gebruiken en verloopt over ~60 seconden. Server-side clients die request headers kunnen instellen, kunnen in plaats daarvan X-API-Key direct doorgeven tijdens de WebSocket-handshake — geen ticket nodig.
Genereert een eenmalig ticket voor een geauthenticeerde WebSocket-handshake. Authenticeer met de X-API-Key header (uw sleutel verlaat nooit de request headers). Het geretourneerde ticket kan eenmaal worden ingewisseld op /v1/ws/live-swaps voordat het verloopt.
"https://api.smartmoneyapi.com/v1/ws/ticket"
Voorbeeldreactie
"ticket": "wst_9f3c1a8e4b2d…",
"expires_in": 60
}
Reactievelden
| Veld | Type | Beschrijving |
|---|---|---|
| ticket | string | Eenmalig token om toe te voegen als ?ticket= in de WebSocket-URL. Eenmaal ingewisseld, daarna ongeldig. |
| expires_in | number | Seconden tot het ticket verloopt (~60). Genereer een nieuw ticket per verbindingspoging. |
Let op: de verouderde ?key= query-param-authenticatie is niet langer geaccepteerd op WebSocket-endpoints om veiligheidsredenen. Gebruik een ticket (browserclients) of de X-API-Key handshake-header (server-side clients).
REST Snapshot
Retourneert de laatste N uitgezonden swaps uit de rolling buffer. Handig voor eerste weergave op dashboards voordat de streamverbinding opent. Ook beschikbaar: /v1/live-swaps/status voor broadcaster-statistieken.
Event Schema
| Veld | Type | Beschrijving |
|---|---|---|
| chain | string | bsc of avalanche |
| dex | string | Router naam (bijv. pancakeswap_v2, traderjoe) of unknown_dex |
| swapper | string | Volledig 0x-adres van de wallet die de swap uitvoerde |
| swapper_short | string | Afgekorte vorm voor weergave (bijv. 0xb300…028d) |
| swapper_url | string | Directe link naar de swapper op de block explorer van de chain |
| tx_hash | string | Transactiehash |
| explorer_url | string | Directe link naar de transactie op BscScan / Snowtrace |
| token_in | string | Symbool van de verkochte token (bijv. USDT) |
| token_out | string | Symbool van de gekochte token |
| amount_usd | number | USD-waarde van de swap (minimum: $500) |
| pair | string | Opgemaakt paarlabel (bijv. USDT → USDC) |
| block | number | Bloknummer waar de swap is gemined |
| timestamp | number | Unix epoch seconden |
| significance | string | low / medium / high / critical gebaseerd op USD-grootte |
| seq | number | Monotoon broadcast-volgnummer — gebruik voor gap-detectie |
POST /alerts/conditions
Maak aangepaste alertregels aan die worden geactiveerd wanneer een opgegeven metriek een drempelwaarde overschrijdt. Alerts worden afgeleverd via webhook, e-mail of het dashboardmeldingenfeed, afhankelijk van uw voorkeuren.
Retourneert een lijst van al uw geconfigureerde alertcondities met hun IDs, definities en huidige status.
Verwijdert permanent een alertconditie op basis van zijn ID.
Retourneert recente alerttriggergebeurtenissen met tijdstempels, overeenkomende condities en de metriekwaarde op het moment van activering.
Alert aanmaken — Request Body
| Veld | Type | Beschrijving |
|---|---|---|
| namevereist | string | Menselijk leesbaar label voor deze waarschuwing (max 64 tekens) |
| metricrequired | string | De metriek om te monitoren. Zie de beschikbare metrieken tabel hieronder. |
| symboloptional | string | Asset context. Vereist voor symbol-gebonden metrieken zoals funding_rate. |
| operatorrequired | string | Vergelijkingsoperator: gt, lt, eq, crosses_above, crosses_below |
| thresholdrequired | float | Numerieke waarde om de metriek tegen te vergelijken |
| deliveryoptional | string | Leveringskanaal, bijv. telegram (standaard) of webhook |
| cooldown_minutesoptional | integer | Minimale minuten tussen her-triggers (standaard 60) |
De live lijst van geldige metrieken en operatoren wordt geretourneerd door GET /v1/alerts/conditions als available_metrics en available_operators.
Beschikbare Metrieken
| Metric | Beschrijving |
|---|---|
| funding_rate | Huidige funding rate voor symbol (als decimaal) |
| global_lsr | Globale long/short ratio voor symbol |
| long_pct | Percentage van accounts net long voor symbol |
| top_trader_lsr | Top-trader long/short ratio voor symbol |
| taker_ratio | Taker buy/sell ratio voor symbol |
| mvrv | Market Value to Realized Value ratio (BTC/ETH) |
| sopr | Spent Output Profit Ratio (BTC/ETH) |
| exchange_net_flow | On-chain exchange net-flow signaal |
| accumulation | On-chain accumulatie signaal |
| whale_long_pct | Percentage van gevolgde whale wallets met long posities voor symbol |
| whale_n_wallets | Aantal gevolgde whale wallets met een positie in symbol |
| composite_long | Composiet score voor symbol bevraagd in long richting |
| composite_short | Composiet score voor symbol bevraagd in short richting |
| funding_spread | Cross-venue funding spread voor symbol |
"name": "BTC funding rate spike",
"metric": "funding_rate",
"symbol": "BTC",
"operator": "gt",
"threshold": 0.05
}
GET /kelly
Retourneert Kelly Criterion positiegrootte aanbevelingen gekalibreerd op historische signaalprestaties voor het gegeven symbol, betrouwbaarheidsniveau en richting. Grondt positiegrootte in empirische winpercentages om over-leveraging te voorkomen.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symbolrequired | string | Asset symbol: BTC, ETH, of SOL |
| confidenceoptional | string | Signaal betrouwbaarheidsniveau om te modelleren: HIGH, MEDIUM, of LOW. Standaard: HIGH |
| directionoptional | string | Handelsrichting: long of short. Standaard: long |
| account_sizeoptional | float | Accountgrootte in USD voor berekening suggested_size_usd. Standaard: 10000 |
Voorbeeld Reactie
"symbol": "BTC",
"confidence": "HIGH",
"direction": "long",
"win_rate": 0.68,
"avg_reward_risk_ratio": 2.1,
"kelly_fraction": 0.36,
"half_kelly": 0.18,
"suggested_size_usd": 1800,
"samples": 142,
"note": "Half-Kelly aanbevolen voor live trading om rekening te houden met schattingsfouten."
}
GET /performance
Geeft historische nauwkeurigheidsstatistieken terug voor signalen uitgegeven door de API, uitgesplitst naar betrouwbaarheidsniveau. Handig om de betrouwbaarheid van signalen te begrijpen voordat kapitaal wordt ingezet.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| symboloptioneel | string | Filter op asset. Laat leeg voor geaggregeerde statistieken over alle symbolen. |
| daysoptioneel | integer | Terugkijkvenster in dagen. Standaard: 30 |
Voorbeeld Reactie
"symbol": "BTC",
"period_days": 30,
"by_confidence": {
"HIGH": { "win_rate": 0.71, "samples": 58, "avg_return_pct": 3.4 },
"MEDIUM": { "win_rate": 0.54, "samples": 84, "avg_return_pct": 1.2 }
}
}
Stats & Signals
GET /v1/stats
Site-brede eerlijke prestatiestatistieken afkomstig van smart_money_confirm distinct-call uitkomsten. Geeft win rates terug op HIGH en MEDIUM betrouwbaarheidsniveaus, algehele nauwkeurigheid, winstfactor en een uitsplitsing per symbool. Alle cijfers zijn in-sample over het scoringsvenster; raadpleeg calibration.html voor context en forward-holdout methodologie.
Voorbeeld Reactie
"high_winrate": 0.714,
"high_winrate_n": 14,
"medium_winrate": 0.530,
"medium_winrate_n": 34,
"overall_accuracy": 0.613,
"overall_accuracy_n": 48,
"profit_factor": 1.77,
"avg_win_pct": 4.2,
"winrate_horizon": "24h",
"winrate_basis": "distinct confirm calls, 24h resolved outcomes",
"winrate_by_symbol": {
"BTC": { "win_rate": 0.68, "n": 22 },
"ETH": { "win_rate": 0.55, "n": 18 },
"SOL": { "win_rate": 0.60, "n": 8 }
},
"forward_holdout": {
"win_rate": 0.59,
"high_win_rate": 0.70,
"high_n": 10,
"is_distinct_from_insample": false
}
}
forward_holdout object is het enige nummer dat is opgebouwd uit data die de scorer nog nooit heeft gezien — zie het groeien in de loop van de tijd. Zie calibration.html voor de volledige methodologie en de in-sample / forward-test grens.GET /v1/signals/performance
Signaal uitkomsttracking over meerdere resolutiehorizonten (4h, 12h, 24h, 72h). Geeft hit rates per horizon terug, totale signaalaantallen en een uitsplitsing naar signaaltype.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| daysoptioneel | integer | Terugkijkvenster in dagen. Standaard: 30 |
| signal_typeoptioneel | string | Filter op type, bijv. smart_money_confirm of regime_flip. Laat leeg voor alle typen. |
| symboloptioneel | string | Filter op assetsymbool, bijv. BTC. Laat leeg voor aggregatie over alle symbolen. |
Voorbeeld Reactie
"signal_type": "smart_money_confirm",
"symbol": "BTC",
"days": 30,
"total_signals": 48,
horizons: {
4h: { trefferspercentage: 0.65, opgelost: 46 },
12h: { trefferspercentage: 0.61, opgelost: 44 },
24h: { trefferspercentage: 0.58, opgelost: 40 },
72h: { trefferspercentage: 0.54, opgelost: 32 }
},
type_breakdown: {
smart_money_confirm: { aantal: 35, hit_rate_24h: 0.61 },
regime_flip: { aantal: 13, hit_rate_24h: 0.47 }
}
}
GET /v1/signals/recent
Feed van recent gepubliceerde HOOG en MEDIUM signalen voor alle gevolgde symbolen. Elk item bevat het signaaltype, betrouwbaarheidsniveau, richting en oplossingsstatus waar beschikbaar.
Voorbeeldreactie
signals: [
{
id: 1042,
symbol: BTC,
direction: long,
signal_type: smart_money_confirm,
confidence: HIGH,
composite: 0.74,
ts: 1710940821,
resolved: true,
outcome_24h: win
}
],
count: 50
}
GET /v1/signals/{id}/outcome
Opgeloste uitkomst voor een enkel signaal op basis van zijn numerieke ID. Geeft treffer/mis op elk resolutiehorizon (4h, 12h, 24h, 72h) samen met de prijs bij signaaltijd en bij resolutie.
Parameters
| Parameter | Type | Beschrijving |
|---|---|---|
| idrequired | integer | Signaal-ID (padsegment), bijv. /v1/signals/1042/outcome |
Voorbeeldreactie
id: 1042,
symbol: BTC,
direction: long,
confidence: HIGH,
entry_price: 63200.0,
ts: 1710940821,
outcomes: {
4h: { result: win, price: 64100.0, pct: 1.41 },
12h: { result: win, price: 65200.0, pct: 3.16 },
24h: { result: win, price: 65800.0, pct: 4.11 },
72h: { result: pending, price: null, pct: null }
}
}
GET /v1/confirm-winrate
Bevestigingssignaal winstpercentage-overzicht voor de eigen API-sleutel van de geauthenticeerde gebruiker. Geeft distinct-call winstpercentages per betrouwbaarheidsniveau, winstfactor en per-symboolcijfers. Vereist een geldige X-API-Key header.
Voorbeeldverzoek
"https://api.smartmoneyapi.com/v1/confirm-winrate"
Voorbeeldreactie
high_winrate: 0.714,
high_n: 14,
medium_winrate: 0.530,
medium_n: 34,
overall_accuracy: 0.613,
overall_n: 48,
profit_factor: 1.77,
winrate_horizon: 24h,
by_symbol: {
BTC: { win_rate: 0.68, n: 22 },
ETH: { win_rate: 0.55, n: 18 }
}
}
Shadow Gate
Een onveranderlijk, alleen-toevoegen persoonlijk beslissingenregister. Dien uw handelsbeslissingen in voor of na uitvoering; het systeem berekent een confirm score tegen de Smart Money engine en voegt een permanente rij toe. Gebruik het om een eerlijk, getimestampd trackrecord op te bouden van hoe goed het API-signaal overeenkwam met uw eigen entries — volledig onafhankelijk van de globale win-rate pool. Free en Trader tier responses hebben evidence fields verwijderd; Pro retourneert de volledige breakdown. Een tier delay is van toepassing op Free tier data.
Dien een beslissing in. Idempotent op de Idempotency-Key request header — het opnieuw indienen van dezelfde key retourneert de bestaande rij zonder een duplicaat te creëren. Het systeem roept onmiddellijk de confirm engine aan en voegt het resultaat toe als een onveranderlijke registerrij.
Request Body
| Field | Type | Description |
|---|---|---|
| symbolrequired | string | Asset symbool, bv. BTC |
| siderequired | string | Handelsrichting: long of short |
| strategy_idoptional | string | Door de aanroeper gedefinieerde strategielabel (max 64 karakters). Wordt opgeslagen zoals ingevoerd voor groepering en filtering. |
Example Request
-H "X-API-Key: sm_your_key" \
-H "Idempotency-Key: my-signal-20260701-001" \
-H "Content-Type: application/json" \
-d '{"symbol":"BTC","side":"long","strategy_id":"ema_crossover"}' \
"https://api.smartmoneyapi.com/v1/shadow-gate/decisions"
Example Response
"id": 318,
"symbol": "BTC",
"side": "long",
"strategy_id": "ema_crossover",
"decision": "CONFIRM",
"confidence": "HIGH",
"composite": 0.74,
"size_mult": 1.5,
"ts": 1710940821,
"resolved": false
}
factors / adjustments evidence fields weg. Pro retourneert de volledige confirm breakdown. Een tier delay is van toepassing op Free — de rij wordt direct geschreven, maar de confirm score kan gecachte data tot 60 seconden oud reflecteren.Lijst uw eigen shadow-gate beslissingen op, nieuwste eerst. Eigenaar-gebonden — alleen beslissingen ingediend door uw API key worden geretourneerd.
Parameters
| Parameter | Type | Description |
|---|---|---|
| limitoptional | integer | Maximum aantal rijen om terug te geven. Standaard: 50, max: 200 |
| cursoroptional | string | Ondoorzichtige paginatie cursor van een vorige response's next_cursor veld. Laat leeg voor de eerste pagina. |
Example Response
"decisions": [
{ "id": 318, "symbol": "BTC", "side": "long", "decision": "CONFIRM", "confidence": "HIGH", "composite": 0.74, "size_mult": 1.5, "ts": 1710940821, "resolved": false },
{ "id": 317, "symbol": "ETH", "side": short, beslissing: SKIP, vertrouwen: LOW, samengesteld: -0.12, size_mult: 0.0, ts: 1710937000, opgelost: True }
],
aantal: 2,
next_cursor: None
}
Enkele beslissing op ID, inclusief het volledige bewijs voor Pro-tier. Reacties voor Free- en Trader-tier hebben factors en adjustments verwijderd. Retourneert 403 als de beslissing bij een andere API-sleutel hoort.
Voorbeeldreactie (Pro)
id: 318,
symbol: BTC,
side: long,
strategy_id: ema_crossover,
beslissing: CONFIRM,
vertrouwen: HIGH,
samengesteld: 0.74,
size_mult: 1.5,
factoren: {
derivaten: { score: 0.81, gewicht: 0.40, gewogen: 0.324 },
onchain: { score: 0.68, gewicht: 0.35, gewogen: 0.238 },
whale: { score: 0.73, gewicht: 0.25, gewogen: 0.183 }
},
ts: 1710940821,
opgelost: False,
uitkomst: None
}
Handmatig de uitkomst van een beslissing oplossen. Roep dit aan na het sluiten van de trade om het eindresultaat vast te leggen in het grootboek. Eenmaal opgelost is de rij onveranderbaar en kan niet meer worden aangepast.
Verzoek Body
| Veld | Type | Beschrijving |
|---|---|---|
| uitkomstvereist | string | Trade-uitkomst: win of loss |
| exit_priceoptioneel | float | Sluitprijs voor de trade. Opgeslagen als referentie; gebruikt om P&L % te berekenen indien opgegeven. |
| pnl_pctoptioneel | float | Gerealiseerde P&L als percentage van de positiegrootte, bijv. 3.5 of -1.2 |
Voorbeeldreactie
id: 318,
opgelost: True,
uitkomst: win,
exit_price: 65800.0,
pnl_pct: 4.1,
resolved_at: 1711027200
}
Foutcodes
| Status | Code | Beschrijving |
|---|---|---|
| 400 | invalid_params | Ontbrekende of ongeldige queryparameters |
| 401 | unauthorized | Ontbrekende of ongeldige API-sleutel |
| 403 | plan_restriction | Endpoint niet beschikbaar op je huidige abonnement |
| 429 | rate_limit_exceeded | Dagelijkse of burstlimiet bereikt |
| 500 | internal_error | Serverfout — controleer /health voor de bronstatus |
| 503 | data_stale | Gegevensbron niet beschikbaar; geretourneerd met laatst bekende gegevens |
Codevoorbeelden
Python
r = requests.get(
"https://api.smartmoneyapi.com/v1/confirm",
params={"symbol": "BTC", "direction": "long"},
headers={X-API-Key: sm_your_key}
)
data = r.json()
print(data["confidence"]) # HIGH / MEDIUM
print(data["size_mult"]) # 1.5 / 1.0
API_KEY = "sm_your_key"
BASE_URL = "https://api.smartmoneyapi.com/v1"
def confirm_trade(symbol, direction):
resp = requests.get(
f"{BASE_URL}/confirm",
params={"symbol": symbol, "direction": direction},
headers={"X-API-Key": API_KEY},
timeout=5
)
resp.raise_for_status()
return resp.json()
# In je trading loop:
signal = confirm_trade("BTC", "long")
if signal["confidence"] not in ["HIGH", "MEDIUM"]:
print("Overslaan — onvoldoende vertrouwen")
else:
size = base_size * signal["size_mult"]
place_order(symbol, direction, size)
JavaScript / Node.js
async function confirmTrade(symbol, direction) {
const params = new URLSearchParams({ symbol, direction });
const res = await fetch(
`https://api.smartmoneyapi.com/v1/confirm?${params}`,
{ headers: { 'X-API-Key': API_KEY } }
);
if (!resok) throw new Error(`API error: ${resstatus}`);
return res.json();
}
// Gebruik
confirmTrade('BTC', 'long').then(data => {
console.log(data.confidence, data.size_mult);
});
cURL
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"
# Haal walvisdata op
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/whales?symbol=BTC"
# Controleer gebruik
curl -X GET \
-H X-API-Key: sm_your_key \
https://api.smartmoneyapi.com/v1/usage
Freqtrade-integratie
Voeg Smart Money-bevestiging toe aan elke Freqtrade-strategie door de confirm_trade_entry methode te overschrijven.
from freqtrade.strategy import IStrategy
class SmartMoneyStrategy(IStrategy):
SM_API_KEY = "sm_your_key"
SM_BASE = "https://api.smartmoneyapi.com/v1"
def confirm_trade_entry(self, pair, order_type,
amount, rate, time_in_force,
current_time, entry_tag, **kwargs):
symbol = pair.split("/")[0]
if symbol not in ["BTC", "ETH", "SOL"]:
return True # Overslaan voor niet-ondersteunde
try:
r = requests.get(
f"{self.SM_BASE}/confirm",
params={"symbol": symbol, "direction": "long"},
headers={"X-API-Key": self.SM_API_KEY},
timeout=3
).json()
return r.get("confidence") in ["HIGH", "MEDIUM"]
except:
return True # Faal open bij API-fout
CCXT + Smart Money
exchange = ccxt.bybit({
"apiKey": "YOUR_BYBIT_KEY",
"secret": "YOUR_BYBIT_SECRET"
})
SM_KEY = "sm_your_key"
def smart_trade(symbol, side, amount):
# Controleer eerst bevestiging
conf = requests.get(
"https://api.smartmoneyapi.com/v1/confirm",
params={"symbol": symbol, "direction": side},
headers={"X-API-Key": SM_KEY}
).json()
if conf["confidence"] not in ["HIGH", "MEDIUM"]:
print(f"Overslaan {symbol} {side} — onvoldoende vertrouwen.")
return None
adj_amount = amount * conf["size_mult"]
order = exchange.create_market_order(
f"{symbol}/USDT", side, adj_amount
)
print(f"Order geplaatst: {adj_amount} {symbol} {side}")
return order
Bekijk de API-statuspagina voor real-time statusinformatie, of gebruik ons contactformulier.