Smart Money API
En professionell intelligens-API som sammanför derivatdata, on-chain-mått och valletaktivitet från valar till ett enda konfidenspoäng för din handelsbot.
https://api.smartmoneyapi.com/v1Designprinciper
Fyra idéer formar varje slutpunkt och varje poäng som detta API returnerar. De är också de ärliga gränserna för vad det gör — och inte gör — lovar.
Strategiförst, inte signalförst. Detta är inte en köp/sälj-signalfeed. Du tar med strategin och inträdet; API:t berättar om den omgivande marknadsstrukturen — derivatpositionering, finansiering, öppen ränta, likvideringar, on-chain-flöde och valkonsensus — håller med om handeln du redan vill göra.
Konfidenspoäng, inte binär förutsägelse. Varje svar bär en graderad confidence (HÖG / MEDEL / LÅG) och en composite från -1.0 till +1.0. Det finns inga garantier och inga orakelsamtal — du får en kalibrerad läsning på överensstämmelse, med skälen bakom, så du kan anpassa storleken efter övertygelse.
Beslutsstöd, inte exekveringsråd. API:t returnerar en CONFIRM / REDUCE / SKIP-rekommendation och en storleksmultiplikator för din logik att agera på. Det placerar aldrig order, och inget här är finansiell rådgivning. Du är fortfarande ansvarig för risk, storlek och exekvering.
Levande mått, inte fasta garantier. Vinstprocent, regimstatistik och noggrannhetssiffror beräknas från ett rullande urval och rör sig när marknaderna rör sig. Vi publicerar dem ärligt, inklusive när de är mediokra. Behandla varje mått som en aktuell observation, inte ett löfte om framtiden.
Vem detta API är för
Detta API är byggt för kryptobot-, algo- och AI-agentutvecklare som redan har en lång/kort-signal — från en TA-strategi, en ML-modell, en Freqtrade-pipeline, ett TradingView-alarm eller en LLM-agent — och vill ha ett snabbt, före-handel CONFIRM / REDUCE / SKIP beslut innan kapital förbinds.
En typisk loop: din strategi skickar "gå lång BTC" → du anropar GET /v1/confirm?symbol=BTC&direction=long → du bekräftar, minskar eller hoppar över inträdet och skalar storleken efter size_mult. Ett samtal, ett enda låglatens-JSON-svar, ingen extra infrastruktur.
Det är inte en fristående signalgenerator, ett diagramprodukt eller en exekveringsplats. Om du inte har någon egen signal att gate:a, börja med prestandasidan för att se hur poängen har betett sig innan du kopplar in den i en live-bot.
Få tillgång
1 — Registrera dig. Skapa ett gratis konto på signup (e-post/lösenord eller Google). Inget kreditkort krävs för den fria nivån.
2 — Öppna din instrumentpanel. Din instrumentpanel visar din API-nyckel, nuvarande plan och live-användning mot din dagliga kvot.
3 — Kopiera din API-nyckel. Nycklar är prefixade sm_. Skicka den som X-API-Key header på varje förfrågan (se Autentisering). Uppgradera när som helst på prissida för att höja gränser och låsa upp fler symboler och slutpunkter.
Spec, SDK & Kokbok
Allt du behöver för att integrera snabbt, oavsett om du skriver koden själv eller överlåter det till en kodningsagent.
| Resurs | Vad det är |
|---|---|
| Kokbok | Kopiera-klistra-in-recept för de vanligaste integrationerna — bekräfta före inträde, filtrera en Freqtrade-signal, storlek efter multiplikator, hantera 402/429, och koppla det till en kodningsagent. |
| OpenAPI-specifikation | Maskinläsbar OpenAPI-definition av varje slutpunkt. Importera till Postman/Insomnia, generera klienter, eller mata en LLM. På github.com/tashiardit/smartmoneyapi-docs. |
| Python-klient | Officiellt Python-klientbibliotek på github.com/tashiardit/smartmoneyapi-python. |
| /llms.txt | En LLM-vänlig sammanfattning av API:et i vanlig text. Rikta Claude, Codex eller Cursor mot den (se Kodningsagenter). |
Snabbstart på 2 minuter
Steg 1 — Bas-URL. Varje slutpunkt finns under:
Steg 2 — Hämta din API-nyckel. Registrera dig gratis (inget kreditkort krävs) och kopiera din nyckel från instrumentpanelen. Skicka den som X-API-Key rubrik vid varje förfrågan.
Steg 3 — Ditt första anrop. Klistra in detta i din terminal och ersätt sm_your_key med nyckeln från din instrumentpanel:
Förväntat svar:
"ts": 1710940821,
"symbol": "BTC",
"direction": "long",
"composite": 0.74,
"confidence": "HIGH",
"action": "CONFIRM",
"size_mult": 1.5,
"deriv_score": 0.81,
"onchain_score": 0.68,
"whale_score": 0.73,
"reasons": ["Finansieringsränta positiv över alla plattformar", "Valar: 67% lång konsensus"]
}
När confidence är HIGH eller MEDIUM och action är CONFIRM, skala din positionsstorlek med size_mult. Det är hela integrationsloopen. Se Svarsfält för den fullständiga fältreferensen.
Autentisering
Alla förfrågningar kräver en API-nyckel skickad som X-API-Key HTTP-rubrik.
Din API-nyckel finns tillgänglig från instrumentpanelen efter registrering. Håll din nyckel hemlig — exponera den inte i klientsidig kod eller offentliga förvar.
/v1/ws/ticket med X-API-Key rubrik, anslut sedan med den returnerade biljetten. Se WebSocket-autentisering (biljetter).Google-inloggning (Firebase Auth)
Användare kan autentisera med sitt Google-konto via Firebase Authentication. Efter en lyckad Google-inloggning på klienten, byt Firebase ID-token mot en länkad API-session. Systemet synkroniserar automatiskt din Google-identitet med API-nyckelsystemet.
Förfrågningskropp
| Fält | Typ | Beskrivning |
|---|---|---|
| id_tokenobligatorisk | sträng | Firebase ID-token erhållen efter Google-inloggning på klienten |
Exempelsvar
"api_key": "sm_your_linked_key",
"uid": "firebase_uid_abc123",
"email": "[email protected]",
"plan": "trader",
"synced": true
}
Frekvensbegränsningar
| Plan | Anrop/Dag | Burstgräns | Datafördröjning |
|---|---|---|---|
| Gratis | 50 | 2/min | 60 sekunder |
| Handlare | 1,000 | 20/min | Realtid |
| Pro | 5,000 | 60/min | Real-time |
| Enterprise | 100,000 | 400/min | Real-time |
Rate limit headers är inkluderade i varje svar: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Base URL
Alla endpoints nedan är relativa till denna bas-URL. Alla svar är JSON med Content-Type: application/json.
Fel
Fel använder standard HTTP-statuskoder och en konsekvent JSON-body. Förgrening ska alltid ske baserat på statuskoden, inte på svarstexten. De tre du kommer att stöta på oftast:
| Status | Kod | Betydelse & vad du ska göra |
|---|---|---|
| 401 | unauthorized | Saknad eller ogiltig API-nyckel. Kontrollera att X-API-Key header är närvarande och korrekt. |
| 402 | payment_required | Endpunkten eller symbolen kräver en högre plan än din nyckel har (t.ex. en gratis nyckel som anropar WebSocket firehose). Uppgradera eller fall tillbaka till en offentlig endpoint. |
| 429 | rate_limit_exceeded | Daglig eller burst-gräns nådd. Backa av och försök igen efter X-RateLimit-Reset; hamra inte. |
Varje fel returnerar samma form:
"error": "rate_limit_exceeded",
"message": "Daglig gräns på 100 anrop nådd. Återställs vid 00:00 UTC.",
"status": 429
}
För den fullständiga listan av statuskoder (400 / 403 / 500 / 503 och mer), se Felkoder. En robust integration behandlar 5xx och 429 som tillfälliga (försök igen med backoff) och 401/402/403 som terminala (fixa nyckeln eller planen).
Säkerhetsbästa praxis
Skicka nyckeln i headern, aldrig i URL:en. Skicka alltid X-API-Key som en HTTP-header. Nycklar i frågesträngar (?key=) loggas av proxyservrar, lastbalanserare och webbläsarhistorik — den gamla ?key= auth accepteras inte längre på WebSocket-endpoints av just denna anledning.
Håll nycklar på serversidan. Bädda aldrig in en API-nyckel i klient-sida JavaScript, en mobilapp-paket eller ett offentligt repository. Ladda den från en miljövariabel eller hemlighetshanterare. Om en nyckel läcker, rotera den.
Rotera nycklar periodvis. Generera om din nyckel från dashboard enligt schema och omedelbart om du misstänker exponering. Den gamla nyckeln slutar fungera när en ny utfärdas.
Använd biljetter för webbläsarsockets. För realtidsströmmar från webbläsaren, byt ut din nyckel mot en engångsbiljett istället för att ansluta med den råa nyckeln — se WebSocket-autentisering (biljetter).
Användning med kodningsagenter / LLM
Bygger du med Claude Code, Codex, Cursor eller någon LLM-kodningsagent? Du kan ge agenten allt den behöver för att koppla upp denna API korrekt på en gång. Två maskinläsbara referenser publiceras:
| Resurs | URL |
|---|---|
| LLM-sammanfattning | https://smartmoneyapi.com/llms.txt |
| OpenAPI-specifikation | github.com/tashiardit/smartmoneyapi-docs |
Peka din agent på /llms.txt filen (enligt llms.txt-konvention) för en koncis översikt, sedan OpenAPI-specifikationen för exakta request/response-former. En enrads-prompt som fungerar bra:
Läs https://smartmoneyapi.com/llms.txt och OpenAPI-specifikationen på
github.com/tashiardit/smartmoneyapi-docs, lägg sedan till en förhandskontroll
i min bot som anropar GET /v1/confirm och hoppar över poster
om inte action är CONFIRM.
Se Cookbook för ett färdigt kodningsagent-recept.
Endpoints
GET /confirm
Kärnendpointen. Returnerar ett sammansatt konfidensbetyg och handelsrekommendation för en given handelsriktning. Anropa detta innan du går in i någon position.
Täckning, enkelt uttryckt. /confirm bedömer för närvarande BTC, ETH och SOL — symbolerna med tillräckligt upplöst historik för att bekräfta ärligt. Derivatavsökaren övervakar separat ~519 derivatmarknader för finansiering, OI och likvidationsdata, och valsspårning täcker 600+ plånböcker. Pro låser upp hela avsökaren, exporter och bredare marknadstäckning; /confirm symbolstöd utökas när varje marknad samlar på sig en pålitlig historik.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolobligatorisk | sträng | Tillgångssymbol. En av: BTC, ETH, SOL (Trader+) |
| riktningobligatorisk | sträng | Handelsriktning: long eller short |
| källavalfri | sträng | Etikett för din signal-källa (loggas för analys). Max 32 tecken. |
Exempel Request
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"
Exempel Response
"ts": 1710940821,
"symbol": "BTC",
"riktning": "long",
"composite": 0.74,
"confidence": "HIGH",
"action": "CONFIRM_FULL",
"size_mult": 1.5,
deriv_score: 0.81,
onchain_score: 0.68,
whale_score: 0.73,
x_score: 0.0,
faktorer: {
derivat: { poäng: 0.81, vikt: 0.40, viktad: 0.324 },
onchain: { poäng: 0.68, vikt: 0.35, viktad: 0.238, källa: coinmetrics, tillgänglig: True },
val: { poäng: 0.73, vikt: 0.25, föråldringsfaktor: 1.0, viktad: 0.183 }
},
justeringar: { överensstämmelse: 0.0, trend: 0.0, nyheter_makro: 0.0 },
vikter: { derivat: 0.40, onchain: 0.35, val_intel: 0.25 },
täckning: { derivat: True, val: True, onchain: True },
skäl: [
Finansieringsränta positiv över alla plattformar,
LSR gynnar långa positioner: 1.42,
Valar: 67% lång konsensus,
MVRV över 1.0 — on-chain haussig
]
}
Transparent av design. Varje svar innehåller ett factors objekt som visar varje delkomponents poäng × vikt = viktad bidrag, ett adjustments objekt för efterfiltreringsjusteringar, de weights använda, och en coverage karta. On-chain-delen använder verkliga gratis Coin Metrics-data (MVRV / exchange-flow / active-address) när ingen Glassnode-nyckel är inställd. Detta är en multifaktoriell samverkan poäng — beslutsstöd, inte en garanterad vinstfrekvens.
Ospårade symboler är ärliga. En symbol utanför den spårade derivat/val-universum returnerar ett explicit "confidence":"NO_DATA" / "action":"NO_DATA_SKIP" med "unsupported":true — aldrig en fabricerad LOW.
Svarsfält
| Fält | Typ | Beskrivning |
|---|---|---|
| ts | heltal | Unix-tidsstämpel för beräkningen |
| symbol | sträng | Tillgångssymbol (BTC/ETH/SOL) |
| riktning | sträng | Begärd riktning (lång/kort) |
| sammansatt | flyttal | Sammansatt samverkanspoäng från -1.0 (extrema mot) till +1.0 (stark bekräftelse). Inte en vinstfrekvens. |
| bas_sammansatt | flyttal | Sammansatt innan efterfiltreringsjusteringar tillämpades |
| konfidens | sträng | HIGH / MEDIUM / LOW / VETO / NO_DATA |
| åtgärd | sträng | CONFIRM_FULL / CONFIRM_REDUCED / CONFIRM_MINIMAL / VETO_SKIP / NO_DATA_SKIP |
| storlek_mult | flyttal | Föreslagen positionsstorleksmultiplikator (t.ex. 0.0 – 1.5) |
| ostödd | boolesk | true när symbolen ligger utanför täckningen (parat med NO_DATA) |
| deriv_score | flyttal | Derivat underpoäng (-1 till 1) |
| onchain_score | flyttal | On-chain underpoäng (-1 till 1) |
| whale_score | flyttal | Valkonsensus underpoäng (-1 till 1) |
| x_score | flyttal | X/social-sentiment underpoäng (-1 till 1); 0 när oanvänd |
| faktorer | objekt | Uppdelning per delkomponent: score × weight = weighted för derivat / onchain / val / x_sentiment (onchain inkluderar source) |
| justeringar | objekt | Signerade efterfiltreringsjusteringar (överensstämmelse, trend, rsi_1h, news_macro, momentum, time_of_day, streak_decay) |
| vikter | objekt | Viktuppsättning faktiskt använd för denna utvärdering |
| täckning | objekt | {derivatives, whale, onchain} — vilka delkomponenter som hade verkliga data |
| skäl | array | Lättlästa förklarande strängar för poängen |
GET /snapshot
Returnerar en fullständig marknadsöversikt inklusive alla underpoäng, råvärden och indikatorvärden för en given symbol. Användbart för instrumentpaneler och loggning.
GET /onchain
Returnerar råa on-chain-mått: MVRV, SOPR, nettoflöde på börser, realiserat kapitalförhållande och cykelpositionsklassificering.
GET /v1/derivatives/*
Skärm för derivat över flera börser för 500+ symboler: heatmap för finansieringsränta, ranking för öppet intresse och signaldetektering för lång/kort-förhållande. Topp 10 rader är publika; hela skärmen kräver Trader eller Pro. Endpoints: /v1/derivatives/screener, /v1/derivatives/funding, /v1/derivatives/oi, /v1/derivatives/signals.
GET /v1/options/*
Deribit-säkerställd BTC & ETH-optionsanalys (publik, ingen auth): put/call-förhållande, max smärta och öppet intresse per strike. Endpoints: /v1/options/summary, /v1/options/pcr, /v1/options/oi.
GET /v1/etf/*
Dagliga nettoflöden och per-fond-uppdelning för spot BTC & ETH ETF (publik). Endpoints: /v1/etf/flows, /v1/etf/funds.
GET /v1/historical/*
Historisk finansiering, öppet intresse, lång/kort-förhållande (Binance) och OHLCV (CoinGecko) för backtesting. Endpoints: /v1/historical/funding, /v1/historical/oi, /v1/historical/lsr, /v1/historical/ohlcv.
GET /v1/dex/*
DexScreener-drivna trendande par, tokensökning och pardetaljer (publik, ingen auth). Endpoints: /v1/dex/trending, /v1/dex/search, /v1/dex/token, /v1/dex/pair.
GET /v1/news/*
Nyhetsintelligens: policy/geopolitiska/krypto-nyheter klassificerade efter påverkan, plus Fear & Greed (publik, ingen auth). Endpoints: /v1/news/trump, /v1/news/general, /v1/news/impact, /v1/news/fear-greed.
GET /whales
Returnerar konsensusdata för valletthavare: lång/kort-fördelning, total nominell exponering, topp 10 positioner (endast Pro) och antal plånböcker.
GET /signals
Returnerar en ström av de senaste HIGH/MEDIUM-signalerna över alla övervakade tillgångar. Användbart för möjlighetssökning.
GET /v1/strategies/*
Transparent, skrivskyddad historik för de automatiserade handelsstrategier som körs på Smart Money-signaler — inklusive deriv40 SmartMoney Copytrade-strategi (account=9). Alla endpoints tar en ?account=<id> query-parameter och returnerar JSON. Ingen autentisering krävs (publik historik).
Endpoints
GET /v1/strategies/stats?account=9— huvudmått: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— equity-kurva för diagram:{ initial_equity, curve: [{ time, equity }] }.GET /v1/strategies/trades?account=9&limit=500— stängd handelsbok: array (eller{trades:[…]}) avsymbol,direction,entry_price,exit_price,pnl_usdt,pnl_percent,pnl_percent_net.GET /v1/strategies/active?account=9— för närvarande öppna positioner: array (eller{positions:[…]}) avsymbol,side/direction,entry_price,unrealized_pnl.GET /v1/strategies/signals— signaltypsuppdelning som matar strategierna (antal / vinster / vinstprocent / genomsnittlig pnl per signaltyp).
Tidigare resultat är inte en indikation på framtida resultat. Siffrorna är tillbakafyllda över ett enda ~3-månadersregime plus liveaffärer och visas före avgifter där noterat.
GET /export
Ladda ner historisk signaldata som CSV för backtesting. Parametrar: symbol, from (unix ts), to (unix ts).
GET /health
Systemhälsokontroll. Returnerar datanyhet för varje källa och övergripande API-status. Ingen autentisering krävs.
"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
Returnerar din nuvarande API-användningsstatistik: anrop idag, månatliga totaler, kvotgränser och återställningstider.
POST /webhooks
Registrera en HTTPS-URL för att få realtidssignerade händelsesändningar när en signal utlöses över dina övervakade tillgångar. Leveranser har en X-SmartMoney-Event header och en HMAC-SHA256-signatur i X-SmartMoney-Signature, och försöker upp till 3× med backoff.
Begärandekropp
| Fält | Typ | Beskrivning |
|---|---|---|
| urlkrävs | sträng | HTTPS-endpoint att POSTA händelser till (måste börja med https://) |
| eventskrävs | array | Händelsenamn, t.ex. ["HIGH","MEDIUM","VETO"] eller ["*"] |
| symbolskrävs | array | Symboler att filtrera, t.ex. ["BTC","ETH"] eller ["*"] |
| secretkrävs | sträng | Din signeringshemlighet, ≥ 16 tecken (lagrad hashad) |
Verifiera signaturen
HMAC-nyckeln är SHA-256-hex-digesten av din registrerade hemlighet. Beräkna HMAC-SHA256 för råa begärandekroppen med den nyckeln och jämför (konstant tid) mot X-SmartMoney-SignatureSe Webhook-implementeringsguide.
Intelligens
GET /analysis
Returnerar AI-driven marknadsregimklassificering med signalkonfliktdetektering. Analyserar överensstämmelse mellan korssignaler, identifierar divergenser mellan derivat, on-chain och valdata, och producerar en sammanfattning på naturligt språk med framåtblickande riskfaktorer och en tidshorisontbaserad rekommendation.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolobligatorisk | sträng | Tillgångssymbol: BTC, ETH, eller SOL |
Exempelsvar
"ts": 1710940821,
"symbol": "BTC",
"regime": "late_cycle_divergence",
"regime_label": "Sen cykel — Signaldivergens",
"summary": "BTC befinner sig i en sen bullcykelfas med on-chain-styrka som står i konflikt med derivatöversträckning. Valar minskar exponering medan detaljhandelns LSR stiger.",
"signal_conflicts": [
"Valpoäng björnaraktig medan onchain-poäng tjurar",
"Finansieringsgrad på 3-månaders hög — potentiell squeeze-risk"
],
"risk_factors": ["Förhöjd finansiering", "OI-divergens", "Valreduktion"],
"recommendation": "Minska lång exponering, skärp stopp. Undvik nya långpositioner över nuvarande pris.",
"time_horizon": "4h–12h"
}
GET /liquidations
Returnerar två kompletterande vyer: (1) hävstångsprojicerad levels — en uppskattning av var likvidationskluster sitter; och (2) en realized_heatmap — den REAL utförd tvångslikvidationsintensitet (pris × tid), aggregerad live från publika börsers WebSocket-flöden: Binance, OKX, Bybit, Bitget, BitMEX. Värmekartan visas när strömmen har data för symbolen (frånvarande i en mycket lugn marknad eller precis efter start).
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | sträng | Tillgångssymbol (standard BTC). Real värmekarta täcker aktivt handlade perp-symboler. |
Exempelsvar
"symbol": "BTC",
"cascade_risk": "HÖG",
"nearest_long_liq_pct": -3.2,
"nearest_short_liq_pct": 4.1,
// REAL utförda likvidationer — live från 5 börser
"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, närmaste avstånd och realiserade totaler/per sida. Pro-plan: fullt projicerad levels plus det fulla realized_heatmap (matriser, per-priskluster, per-börsantal). Den projicerade uppskattningen svarar på "var är stoppen"; den realiserade värmekartan visar "vad som faktiskt blev likviderat".GET /liquidations/heatmap
Offentlig prisnivålikvidationsvärmekarta. Returnerar en Coinglass-stil pris × tid-matris av REAL utförda tvångslikvidationer, grupperade efter priset där varje likvidering skedde — aggregerad live från publika börsers WebSocket-flöden: Binance, OKX, Bybit, Bitget, BitMEX. Den clusters array är det praktiska utdata: prisgrupper rangordnade efter likviderat nominellt värde, varje märkt med sin dominerande sida. Data beror på den live-strömmen — en mycket tyst symbol eller en nyligen omstartad gateway returnerar den välformade tomma strukturen plus en ärlig note. Nivåer som visas är endast verkliga likvidationer, aldrig uppskattade.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | string | Tillgångssymbol (standard BTC). |
| window_minutesvalfri | int | Tillbakablickande fönster i minuter (standard 240, begränsat till 5–1440). |
| price_bucketsvalfri | int | Antal priskorgar (standard 50, begränsat till 5–100). |
Exempelsvar
"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 är 0, clusters är tom, och ett note fält förklarar varför. Det är en registrering av utförda likvidationer — inte en förutsägelse. För den projicerade "var finns stopp-loss"-uppskattningen, använd den autentiserade /liquidations slutpunkten.GET /liquidations/onchain
Utförda on-chain DeFi-lånlikvidationer fångade direkt från våra egna lokala BSC + Avalanche fullnoder — oberoende av någon handelsbot. Omfattar Venus/Cream och Moolah på BSC, och AAVE V3/V2, Benqi, BankerJoe, Granary och Vinium på Avalanche. Pro-nivån returnerar dessutom at_risk positioner (botberoende, kan saknas).
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| chainvalfri | string | bsc eller avax. Utelämna för alla kedjor. |
| limitvalfri | integer | Max antal rader (standard 100, max 500). Nyaste först. |
Exempelsvar
"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, återbetala_usd_känd: 148230.55 } },
noder: { bsc: { tillgänglig: true, huvudblock: 89173010, händelser_totalt: 61 } }
}
}
GET /smart-stop
Beräknar intelligenta stop-loss-nivåer baserat på den aktuella likvidationsvärmekartan, volatilitetsband och marknadsstruktur. Returnerar graderade stop-rekommendationer och take-profit-förslag anpassade till din inträdespris och risktolerans.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolrequired | string | Tillgångssymbol: BTC, ETH, eller SOL |
| directionrequired | string | Positionsriktning: long eller short |
| entry_priceoptional | float | Ditt inträdespris. Standard är aktuellt marknadspris om utelämnat. |
| risk_pctoptional | float | Maximalt acceptabelt risk som % av kontot. Standard: 2.0 |
Exempelsvar
"symbol": "BTC",
"direction": "long",
"entry_price": 96420,
"stops": {
"tight": { "price": 95100, "note": "Under 1h-struktur. Bäst för scalp." },
"recommended": { "price": 93800, "note": "Under större likvidationskluster vid $94K. Standard swing stop." },
"wide": { "price": 91200, "note": "Under 4h-efterfrågezon. Position trade stop." }
},
"avoid_zones": [
{ "low": 94200, "high": 94800, "reason": "Tätt likvidationskluster — hög slippagerisk" }
],
"take_profit_suggestions": [
{ "tp1": 98500, "tp2": 101000, "tp3": 104200 }
]
}
recommended stop. Pro-plan: Alla tre stop-nivåer, avoid_zones, och fullständiga take-profit-förslag.GET /funding-arb
Identifierar möjligheter till cross-exchange funding rate-arbitrage i realtid. Returnerar rankade möjligheter med beräknad årlig avkastning, optimal börspar och den nödvändiga hedge-åtgärden för att fånga spridningen.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| min_spreadoptional | float | Minsta funding rate-spridning att inkludera (som decimal). Standard: 0.01 |
| symboloptional | string | Filtrera till en specifik tillgång. Utelämna för att skanna alla stödda tillgångar. |
Exempelsvar
"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 offentlig variant No auth
En no-key offentlig slutpunkt returnerar topp 10 möjligheter med en live cross-exchange-screener, idealisk för inbäddning eller snabba kontroller. Den utelämnar per-symbol spridningshistorik och tunga fält och serveras från en 120-sekunders cache. När inga cross-exchange funding-spridningar existerar i färskhetsfönstret returnerar den en tom opportunities array med en note — aldrig fabricerad 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: Låg spridning — se till att avgifter inte äter upp arbitragemarginalen.
}
],
scanned_symbols: 222,
ts: 1783268753,
public: True,
limited: True
}
GET /smart-money/flow
En kvalitetsviktad val riktningsindex per symbol, poängsatt -100 (valpengar lutar kort) till +100 (lutar lång). Byggd från tusentals spårade Hyperliquid-valplånböcker — varje viktad efter sin historiska vinstprocent och PnL och minskad efter senaste aktivitet. Detta är ett positionsindex, inte en köp-/försäljningssignal eller prisförutsägelse. Symboler med få bidragande plånböcker märks thin och poängsätts ärligt. Live sida: smart-money-flow.html.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | sträng | Enskild symbol (t.ex. BTC). Utelämna för att få alla spårade symboler rankade efter |poäng|. |
| window_hoursvalfri | heltal | Poängsättningsfönster, begränsat till 1..168. Standard 24. |
Exempelsvar
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: Kvalitetsviktat val riktningspositionsindex (-100..+100). Inte en prisförutsägelse eller köp-/försäljningssignal.
}
top_contributors. Plånboksvikter är begränsade till [0.25,1.0]; PnL är en orealiserad proxy från de senaste positionsögonblicksbilderna.GET /v1/whales/crowding
Kombinerad valpositionering & trängselkontext per symbol, sammanslagen över Hyperliquid + GMX v2 + Jupiter Perps. Returnerar brutto/netto notional, riktningsskevhet, plånbok & platsantal, positionskoncentration (topp-3 andel + HHI), en viktad genomsnittlig hävstång, och likvidationsnärhetsbucketar ($ notional inom 5% och 10% av sitt beräknade likvidationspris, uppdelat lång/kort). Detta är kontext, inte en riktningssignal. Fält som inte kan härledas är null och renderas som — — t.ex. lev_wavg/crowding_index när ingen position har hävstång. Likvidationsavstånd är en isolerad marginaluppskattning (pct_to_liq ≈ 1/lev + upnl/notional − mmr, mmr = 0.01), inte börsrapporterade likvidationspriser.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| min_notionalvalfri | float | Minsta kombinerade brutto notional (USD) för att en symbol ska inkluderas. Standard: 1000000. |
Exempelförfrågan
Exempelsvar
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: [ Likvidationsavstånd är beräknade med isolerad marginal, inte rapporterade av börsen. ]
}
skew är net/gross ∈ [-1,1]; crowding_index = |skew|·conc_top3·min(lev/20,1). Endera platser som faktiskt finns med visas i venues. Positioner utan hävstång exkluderas från likvidationsbucklarna snarare än antagna. Anonyma anropare får topp 10 symboler efter brutto (med gated: true); Trader+ får hela listan.GET /v1/options/gex
Dealer gammaexponering (GEX) analys för BTC & ETH, beräknat live från den offentliga Deribit-optionskedjan (ingen auth). Returnerar nettohandlarens GEX per strike (SpotGamma-handlaren-kort konvention), gamma-flip-nivån (strike där kumulativ netto GEX korsar noll), IV-termstrukturen (ATM implicerad vol per dagar-till-utgång), och en front-expiry IV-skew (25Δ-proxy risk reversal). GEX-regim är positive (handlare lång gamma → volymdämpande) eller negative (volymförstärkande). Helt självständig — omberäknas vid varje anrop, ingen lagrad DB-beroende.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | sträng | BTC eller ETH endast. Standard: BTC. |
Exempelbegäran
Exempelsvar
"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 med tomma paneler — aldrig fabricerad GEX. IV-skew använder en fast ±10% strike-proxy för 25Δ (sann 25-delta kräver lösning av delta per strike); tillräcklig för visning, dokumenterad som en approximation.GET /v1/liquidations/simulate
Interaktiv likvidationskaskad stress-testGivet en hypotetisk prisförändring, returnerar den uppskattade hävstångspositioner som skulle bli likviderade, tvingad volym per prisnivå / sida / börs, och en kaskaddjup-läsning. En nedåtgående rörelse likviderar långa positioner vars likvidationspris ligger på/över målet; en uppåtgående rörelse likviderar korta positioner vars likvidationspris ligger på/under det. Två oberoende metoder slås samman: exakta likvidationspriser från spårade Hyperliquid-valars verkliga hävstång/inträde, plus statistiska OI-band-kluster per börs (crowd-hävstång härledd från finansiering). Allt är tydligt märkt estimated: true — den kan inte veta per-konto marginal, cross vs isolated, tillagd marginal, eller ADL.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | sträng | Tillgångssymbol. Standard: BTC. |
| move_pctvalfri | float | Hypotetisk prisförändring i procent (negativ = ner, positiv = upp). Standard: -5. |
Exempel Request
Exempel Response
"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": "Uppskattat — kan inte veta per-konto marginal, cross vs isolated, tillagd marginal, eller ADL." }
}
ok: true, empty: true med ett klartextmeddelande, inte falska staplar. realized_context är ett ungt, växande urval från den live likvidationsströmmen, visas endast som kontext — det gör aldrig projektionen "realiserad."GET /v1/wallet/{addr}/profile
En cross-venue plånboksprofil byggd helt från live spårade-val-positioner. För en spårad Hyperliquid-val, returnerar nuvarande öppna positioner, en oreali-serad-PnL / exponering / positionsantal tidsserie, en OPEN/CLOSE/FLIP aktivitets-tidslinje (rekonstruerad genom att diffa på varandra följande ögonblicksbilder), den avkodade HL-leaderboard-etiketten, och en öppen-bok-sammanfattning. Live sida: wallet-profiler.html.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| addrobligatorisk | sträng | Plånboksadress (path segment), t.ex. /v1/wallet/0x3bcae23e…/profile. |
| daysvalfri | heltal | Tillbakablickande fönster för serien & tidslinjen. Standard: 30. |
Exempel Request
Exempel Response
"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, vinstprocent: 71, affärer: 42 },
positioner: [
{ handelsplats: hyperliquid, symbol: ETH, riktning: kort,
storlek: 1200.0, inträdespris: 1800.0, orealiserad vinst/förlust: 34800.0,
hävstång: 20.0, värde_usd: 2160000.0 }
],
serie: [ { ts: 1783330000, orealiserad vinst/förlust: 42000.0, exponering_usd: 18400000.0, positioner: 5 } ],
tidslinje: [ { ts: 1783400000, händelse: vändning, symbol: ETH,
riktning: kort, från_riktning: lång, värde_usd: 2160000.0 } ],
sammanfattning: {
öppna_positioner: 5, i_vinst: 3, i_förlust: 2, långa: 0, korta: 5,
total_orealiserad_vinst/förlust: -12000.0, total_exponering_usd: 21000000.0, blandad_hävstång: 19.9,
fönster_dagar: 30, ögonblicksbilder_i_fönster: 474,
realiserad_vinst/förlust: None, realiserad_vinst/förlust_notering: Inte härledbar — endast öppna ögonblicksbilder ses, aldrig avslutande utfyllnader.
}
}
}
pnl är HL:s egna orealiserade mark-to-market, value_usd är öppen nominell. Realiserad vinst/förlust per rundtur är inte tillgänglig (vi ser bara öppna ögonblicksbilder, aldrig avslutande utfyllnader) och visas som null / —; tidslinje AVSLUT-händelser innehåller inget vinst/förlust-påstående. En giltig men ospårad adress returnerar tracked: false med en notering; en ogiltig adress returnerar ok: false, error: "invalid_address" (HTTP 400). HL-leaderboard-etiketten är HL:s egna fönsterställning vid upptäckt, inte beräknad av oss.GET /flows
Returnerar tvär-asset kapitalflödesdata som visar rotationsmönster mellan BTC, ETH och SOL över flera tidsfönster. Användbart för att identifiera vilken asset som samlar kapital och vilken som distribueras vid en given tidpunkt.
Exempelsvar
ts: 1710940821,
flöden: {
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 }
},
rotationer_upptäckta: [
Kapital roterar från ETH till BTC över 4h-fönster,
SOL-ackumulation konsekvent över alla fönster
]
}
GET /whale-events
Returnerar betydande förändringar i valpositioner — öppningar, stängningar och riktningsvändningar — upptäckta över spårade plånböcker och on-chain-adresser inom det angivna tillbakablicksfönstret.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | sträng | Filtrera efter asset. Utelämna för alla övervakade assets. |
| signifikansvalfri | sträng | Filtrera efter händelsens signifikans: high, medium, eller all. Standard: all |
| timmarvalfri | heltal | Tillbakablicksfönster i timmar. Standard: 24 |
Exempelsvar
symbol: BTC,
sammanfattning: {
vändningar_till_lång: 3,
vändningar_till_kort: 1,
nya_öppningar: 7,
stängningar: 2
},
händelser: [
{
typ: flippa_lång,
plånbok: 0xWhale...a4f2,
riktning: lång,
storlek_usd: 4200000,
tidstämpel: 1710938400
}
]
}
summary endast objektet. Pro-plan: Fullständig events flöde med plånboksidentifierare, storlekar och tidstämplar.GET /regimes/history
Returnerar historisk regimklassificeringsdata för en given tillgång. Använd detta för att backtesta hur specifika regimtyper har presterat historiskt, hur länge varje regimtyp typiskt varar och hur regimövergångar utvecklas över tid.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | sträng | Tillgångssymbol. Standard: BTC |
| regimvalfri | sträng | Filtrera till en specifik regimtyp, t.ex. late_cycle_divergence. Utelämna för alla regimer. |
| dagarvalfri | heltal | Tillbakablickfönster i dagar. Standard: 30. Maximalt: 365 |
Exempelsvar
"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 för att validera strategiantaganden mot historisk regimprestandadata.GET /exchange-health
Returnerar realtidshälsostatus för alla övervakade börser inklusive latens per börs, felhastigheter och indikatorer för dataålder. Ingen autentisering krävs – offentligt tillgänglig slutpunkt.
Exempelsvar
"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": "försämrad", "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
Returnerar ett realtidsindex för rädsla och girighet (0-100) beräknat från derivatsentiment, valaktivitet, volatilitet och sociala signaler. Inkluderar komponentuppdelning och 24-timmarshistorik för trendanalys.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | string | Tillgångssymbol. Standard: BTC |
Exempelsvar
"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
}
Integrationer
GET /tradingview/setup
Returnerar din personliga TradingView-integrationsinställning: webhook-URL, hemlighet för validering och färdiga Pine Script-indikatorer som ansluter direkt till Smart Money API. Kopiera och klistra in Pine Script i TradingView för att överlägga våra signaler på vilken graf som helst.
Exempelsvar
"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
Tar emot en TradingView-avisering, kör den genom /confirm, och returnerar bekräftelsen. TradingView kan inte skicka anpassade rubriker, så autentisera genom att inkludera din webhook secret i JSON-brödtexten (denna slutpunkt använder inte X-API-Key). Svaret omsluter bekräftelsen och lägger till en toppnivå action av CONFIRMED (daemon confidence HIGH/MEDIUM) eller VETOED.
Begäran Brödtext
"secret": "your_webhook_secret",
"symbol": "BTC",
"direction": "long",
"timeframe": "1h",
"strategy": "EMA crossover",
"price": 67500.0
}
Krävs: secret, symbol, direction (long|short). Valfritt: source, timeframe, strategy, price.
Personalisering
GET /preferences
Returnerar dina nuvarande personaliseringsinställningar inklusive standardhandelsparametrar, riskprofil, bevakningslista och notifieringsinställningar.
Uppdatera inställningar genom att skicka en JSON-brödtext med valfri delmängd av fälten nedan. Utelämnade fält behåller sina nuvarande värden.
Inställningsfält
| Fält | Typ | Beskrivning |
|---|---|---|
| default_trade_size_usd | float | Standardpositionsstorlek i USD för Kelly och smart-stop-beräkningar |
| risk_tolerance | string | conservative, moderate, eller aggressive |
| default_risk_pct | float | Standardrisk per handel som % av kontot. Används av /smart-stop när risk_pct utelämnas |
| watchlist | array | Ordnad lista över tillgångssymboler, t.ex. ["BTC","ETH","SOL"] |
| notification_email | string | E-postadress för leverans av aviseringar |
| timezone | string | IANA-tidszonsträng, t.ex. America/New_York |
"default_trade_size_usd": 5000,
"risk_tolerance": "moderate",
"default_risk_pct": 1.5,
"watchlist": ["BTC", "ETH", "SOL"]
}
GET /watchlist
Returnerar en ögonblicksbild av bekräftelsestatus och nyckelriskmetriker för alla symboler i din konfigurerade bevakningslista. Ger en översikt över flera tillgångar utan att behöva anropa /confirm varje symbol separat.
Exempelsvar
"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"
}
]
}
Realtidsströmning (Live Swaps)
Strömma DEX-swappar ≥ $500 upptäckta i realtid från våra egna BSC- och Avalanche-noder. Två transportmetoder finns tillgängliga: en publik Server-Sent Events (SSE)-ström för gratis-/webbläsarklienter och en låglatens WebSocket-firehose för betalda nivåer. Händelser sänds ut inom sekunder efter inkludering i ett block.
Publik SSE-ström (Gratis)
Ingen autentisering krävs. Inbyggt EventSource stöd i alla moderna webbläsare. Servern skickar ut swap händelser och periodiska hjärtslag för att hålla anslutningen vid liv.
es.addEventListener("swap", e => {
const swap = JSON.parse(e.data);
console.log(swap.chain, swap.pair, swap.amount_usd);
});
WebSocket Firehose (Betalad)
Autentisering (rekommenderas): placera aldrig din långlivade nyckel i URL:en — den loggas av proxyservrar och sparas i webbläsarhistorik. POST:a istället din nyckel till /v1/ws/ticket använd den säkra X-API-Key rubriken, öppna sedan socketen med den tillfälliga ticket (giltig ~60s, används en gång). Serverklienter som kan sätta rubriker kan istället skicka X-API-Key direkt vid handskakningen. Nycklar på gratisnivå får ett 402 payment_required svar. En hello ram skickas vid anslutning med din nivå och sändningströskeln.
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. Öppna socketen med den engångsbiljetten
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-autentisering (biljetter)
Varför: placera aldrig din API-nyckel i en WebSocket-URL — frågesträngar loggas av proxyservrar, lastbalanserare och sparas i webbläsarhistorik. Byt istället ut din nyckel mot en tillfällig, engångs- biljett via en normal autentiserad POST, och anslut sedan med den biljetten.
Flöde: POST:a till /v1/ws/ticket med din X-API-Key rubrik → ta emot { "ticket": "…", "expires_in": 60 }. Öppna sedan wss://api.smartmoneyapi.com/v1/ws/live-swaps?ticket=<ticket>Biljetten är engångsbruk och går ut om ~60 sekunderServer-sidiga klienter som kan ställa in begärandehuvuden kan istället skicka X-API-Key direkt på WebSocket-handskakningen — ingen biljett behövs.
Skapar en engångsbiljett för en autentiserad WebSocket-handskakning. Autentisera med X-API-Key huvudet (din nyckel lämnar aldrig begärandehuvudena). Den returnerade biljetten kan inlösas en gång på /v1/ws/live-swaps innan den går ut.
"https://api.smartmoneyapi.com/v1/ws/ticket"
Exempelsvar
"ticket": "wst_9f3c1a8e4b2d…",
"expires_in": 60
}
Svarsfält
| Fält | Typ | Beskrivning |
|---|---|---|
| ticket | string | Engångstoken att lägga till som ?ticket= på WebSocket-URL:en. Inlöst en gång, sedan ogiltig. |
| expires_in | number | Sekunder tills biljetten går ut (~60). Skapa en ny biljett vid varje anslutningsförsök. |
Obs: den äldre ?key= query-param-autentiseringen är inte längre accepterad på WebSocket-slutpunkter av säkerhetsskäl. Använd en biljett (webbläsarklienter) eller X-API-Key handskakningshuvudet (server-sidiga klienter).
REST-ögonblicksbild
Returnerar de senaste N utsända swapparna från den rullande bufferten. Användbart för första målningsritning på instrumentpaneler innan strömanslutningen öppnas. Även tillgängligt: /v1/live-swaps/status för sändarstatistik.
Händelseschema
| Fält | Typ | Beskrivning |
|---|---|---|
| chain | string | bsc eller avalanche |
| dex | string | Routernamn (t.ex. pancakeswap_v2, traderjoe) eller unknown_dex |
| swapper | string | Fullständig 0x-adress för plånboken som utförde swappen |
| swapper_short | string | Förkortad form för visning (t.ex. 0xb300…028d) |
| swapper_url | string | Direktlänk till swappern på kedjans blockutforskare |
| tx_hash | string | Transaktionshash |
| explorer_url | string | Direktlänk till transaktionen på BscScan / Snowtrace |
| token_in | string | Symbol för det sålda tokenet (t.ex. USDT) |
| token_out | string | Symbol för det köpta tokenet |
| amount_usd | number | USD-värde för swappen (minimum: $500) |
| pair | string | Formaterad parbeteckning (t.ex. USDT → USDC) |
| block | number | Blocknummer där swappen gruvdes |
| timestamp | number | Unix-epoksekunder |
| significance | string | low / medium / high / critical baserat på USD-storlek |
| seq | number | Monotonisk sändningssekvensnummer — använd för gapdetektering |
POST /alerts/conditions
Skapa anpassade varningsregler som utlöses när en specificerad måttgräns överskrids. Varningar levereras via webhook, e-post eller instrumentpanelsmeddelandeflödet beroende på dina inställningar.
Returnerar en lista över alla dina konfigurerade varningsvillkor med deras ID:n, definitioner och aktuell status.
Tar permanent bort ett varningsvillkor med dess ID.
Returnerar senaste varningsutlösande händelser med tidsstämplar, matchade villkor och måttvärdet vid utlösningstillfället.
Skapa Varning — Begärandekropp
| Fält | Typ | Beskrivning |
|---|---|---|
| namerequired | string | Mänskligt läsbar etikett för denna varning (max 64 tecken) |
| metricrequired | string | Mätvärdet att övervaka. Se tabellen över tillgängliga mätvärden nedan. |
| symboloptional | string | Tillgångskontext. Krävs för symbolbegränsade mätvärden såsom funding_rate. |
| operatorrequired | string | Jämförelseoperator: gt, lt, eq, crosses_above, crosses_below |
| thresholdrequired | float | Numeriskt värde att jämföra mätvärdet mot |
| deliveryoptional | string | Leveranskanal, t.ex. telegram (default) eller webhook |
| cooldown_minutesoptional | integer | Minsta minuter mellan omutlösningar (standard 60) |
Den levande listan över giltiga mätvärden och operatorer returneras av GET /v1/alerts/conditions as available_metrics and available_operators.
Tillgängliga Mätvärden
| Mätvärde | Beskrivning |
|---|---|
| funding_rate | Aktuell finansieringsränta för symbol (som decimal) |
| global_lsr | Global lång/kort-kvot för symbol |
| long_pct | Procentandel av konton med nettolångposition för symbol |
| top_trader_lsr | Topphandlares lång/kort-kvot för symbol |
| taker_ratio | Taker köp/försäljningskvot för symbol |
| mvrv | Marknadsvärde till realiserat värde-kvot (BTC/ETH) |
| sopr | Spenderad utdatavinstkvot (BTC/ETH) |
| exchange_net_flow | On-chain nettoflödessignal för börs |
| accumulation | On-chain ackumuleringssignal |
| whale_long_pct | Procentandel av spårade valletthållare med långpositioner för symbol |
| whale_n_wallets | Antal spårade valletthållare med en position i symbol |
| composite_long | Sammansatt poäng för symbol som efterfrågas i lång riktning |
| composite_short | Sammansatt poäng för symbol som efterfrågas i kort riktning |
| funding_spread | Tvärbörsfinansieringsspridning för symbol |
"name": "BTC finansieringsränta spike",
"metric": "funding_rate",
"symbol": "BTC",
"operator": "gt",
"threshold": 0.05
}
GET /kelly
Returnerar Kelly Criterions positionsstorleksrekommendationer kalibrerade till historisk signalprestanda för given symbol, konfidensnivå och riktning. Grundar positionsstorlek i empiriska vinstprocent för att undvika överbelåning.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolrequired | string | Tillgångssymbol: BTC, ETH, eller SOL |
| confidenceoptional | string | Signalkonfidensnivå att modellera: HIGH, MEDIUM, eller LOW. Standard: HIGH |
| directionoptional | string | Handelsriktning: long eller short. Standard: long |
| account_sizeoptional | float | Kontostorlek i USD för beräkning av suggested_size_usd. Standard: 10000 |
Exempelsvar
"symbol": "BTC",
"confidence": "HÖG",
"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": "Halv-Kelly rekommenderas för livehandel för att ta hänsyn till uppskattningsfel."
}
GET /performance
Returnerar historisk noggrannhetsstatistik för signaler utfärdade av API:et, uppdelat efter konfidensnivå. Användbart för att förstå signalers tillförlitlighet innan kapital binds.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| symbolvalfri | string | Filtrera efter tillgång. Utelämna för aggregerad statistik över alla symboler. |
| daysvalfri | integer | Tillbakablickande fönster i dagar. Standard: 30 |
Exempelsvar
"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 }
}
}
Statistik & Signaler
GET /v1/stats
Hedersstatistik för hela webbplatsen hämtad från smart_money_confirm distinkta bekräftelseutfall. Returnerar vinstprocent vid HIGH och MEDIUM konfidensnivåer, övergripande noggrannhet, profitfaktor och en uppdelning per symbol. Alla siffror är in-sample under bedömningsfönstret; se calibration.html för kontext och metodologi för framåt-hålltest.
Exempelsvar
"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": "distinkta bekräftelseutfall, 24h lösta utfall",
"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 objekt är det enda talet som samlats på data som bedömaren aldrig har sett – se det växa över tid. Se calibration.html för fullständig metodologi och gränsen mellan in-sample och framåt-test.GET /v1/signals/performance
Spårning av signalutfall över flera upplösningshorisonter (4h, 12h, 24h, 72h). Returnerar träffprocent per horisont, totalt antal signaler och en uppdelning efter signaltyp.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| daysvalfri | integer | Tillbakablickande fönster i dagar. Standard: 30 |
| signal_typevalfri | string | Filtrera efter typ, t.ex. smart_money_confirm eller regime_flip. Utelämna för alla typer. |
| symbolvalfri | string | Filtrera efter tillgångssymbol, t.ex. BTC. Utelämna för aggregerat över alla symboler. |
Exempelsvar
"signal_type": "smart_money_confirm",
"symbol": "BTC",
"days": 30,
"total_signals": 48,
horisonter: {
4h: { träffsäkerhet: 0.65, löst: 46 },
12h: { träffsäkerhet: 0.61, löst: 44 },
24h: { träffsäkerhet: 0.58, löst: 40 },
72h: { träffsäkerhet: 0.54, löst: 32 }
},
typuppdelning: {
smart_money_confirm: { antal: 35, träffsäkerhet_24h: 0.61 },
regimbyte: { antal: 13, träffsäkerhet_24h: 0.47 }
}
}
GET /v1/signals/recent
Flöde av nyligen publicerade HIGH- och MEDIUM-signaler över alla övervakade symboler. Varje post inkluderar signaltyp, konfidensnivå, riktning och lösningsstatus där tillgänglig.
Exempelsvar
signaler: [
{
id: 1042,
symbol: BTC,
riktning: long,
signaltyp: smart_money_confirm,
konfidens: HIGH,
komposit: 0.74,
ts: 1710940821,
löst: true,
utfall_24h: vinst
}
],
antal: 50
}
GET /v1/signals/{id}/utfall
Löst utfall för en enskild signal via dess numeriska ID. Returnerar träff/miss vid varje lösningshorisont (4h, 12h, 24h, 72h) tillsammans med priset vid signaltid och vid lösning.
Parametrar
| Parameter | Typ | Beskrivning |
|---|---|---|
| idobligatorisk | heltal | Signal-ID (sökvägssegment), t.ex. /v1/signals/1042/outcome |
Exempelsvar
id: 1042,
symbol: BTC,
riktning: long,
konfidens: HIGH,
inträdespris: 63200.0,
ts: 1710940821,
utfall: {
4h: { resultat: vinst, pris: 64100.0, pct: 1.41 },
12h: { resultat: vinst, pris: 65200.0, pct: 3.16 },
24h: { resultat: vinst, pris: 65800.0, pct: 4.11 },
72h: { resultat: avvaktar, pris: null, pct: null }
}
}
GET /v1/confirm-winrate
Bekräfta-signal vinstprocentuppdelning för den autentiserade användarens egen API-nyckel. Returnerar distinkta-samtal vinstprocent vid varje konfidensnivå, vinstfaktor och per-symbol siffror. Kräver en giltig X-API-Key header.
Exempelbegäran
"https://api.smartmoneyapi.com/v1/confirm-winrate"
Exempelsvar
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
En oföränderlig, endast tilläggande personlig beslutsbokföring. Skicka in dina handelsbeslut före eller efter att du har utfört dem; systemet beräknar en confirm-poäng mot Smart Money-motorn och lägger till en permanent rad. Använd den för att bygga en ärlig, tidsstämplad historik över hur väl API:ets signal stämde överens med dina egna entrys — helt oberoende av den globala vinstprocentpoolen. Free- och Trader-nivåers svar har bevisfält borttagna; Pro returnerar hela uppdelningen. En nivåfördröjning gäller för Free-nivådata.
Skicka in ett beslut. Idempotent på Idempotency-Key request header — att skicka in samma nyckel igen returnerar den befintliga raden utan att skapa en dubblett. Systemet anropar omedelbart confirm-motorn och lägger till resultatet som en oföränderlig bokföringsrad.
Request Body
| Fält | Typ | Beskrivning |
|---|---|---|
| symbolrequired | string | Tillgångssymbol, t.ex. BTC |
| siderequired | string | Handelsriktning: long or short |
| strategy_idoptional | string | Anropardefinierat strategimärke (max 64 tecken). Lagras som det är för gruppering och filtrering. |
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 bevisfälten. Pro returnerar hela confirm-uppdelningen. En nivåfördröjning gäller för Free — raden skrivs omedelbart men confirm-poängen kan reflektera cachad data upp till 60 sekunder gammal.Lista dina egna shadow-gate-beslut, nyaste först. Ägarbegränsad — endast beslut skickade in av din API-nyckel returneras.
Parameters
| Parameter | Typ | Beskrivning |
|---|---|---|
| limitoptional | integer | Maximalt antal rader att returnera. Standard: 50, max: 200 |
| cursoroptional | string | Ogenomskinlig pagineringsmarkör från ett tidigare svar next_cursor fält. Utelämna för första sidan. |
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": kort, beslut: SKIP, tillförlitlighet: LOW, sammansatt: -0.12, size_mult: 0.0, ts: 1710937000, löst: True }
],
antal: 2,
next_cursor: None
}
Enskilt beslut via ID, inklusive fullständig bekräftelsebevis för Pro-nivån. Svar för Free och Trader-nivån har factors och adjustments borttagen. Returnerar 403 om beslutet tillhör en annan API-nyckel.
Exempelsvar (Pro)
id: 318,
symbol: BTC,
sida: lång,
strategi_id: ema_crossover,
beslut: CONFIRM,
tillförlitlighet: HIGH,
sammansatt: 0.74,
size_mult: 1.5,
faktorer: {
derivat: { poäng: 0.81, vikt: 0.40, viktad: 0.324 },
onchain: { poäng: 0.68, vikt: 0.35, viktad: 0.238 },
val: { poäng: 0.73, vikt: 0.25, viktad: 0.183 }
},
ts: 1710940821,
löst: False,
utfall: None
}
Lös ett beslut manuellt. Anropa detta efter att du stängt handeln för att registrera det slutgiltiga resultatet mot transaktionsposten. När det är löst är posten oföränderlig och kan inte ändras igen.
Förfrågans Body
| Fält | Typ | Beskrivning |
|---|---|---|
| utfallobligatorisk | sträng | Handelsutfall: win eller loss |
| exit_pricevalfri | float | Utgångspris för handeln. Lagras som referens; används för att beräkna P&L % om angivet. |
| pnl_pctvalfri | float | Realiserad P&L som en procentandel av positionsstorleken, t.ex. 3.5 eller -1.2 |
Exempelsvar
id: 318,
löst: True,
utfall: vinst,
exit_price: 65800.0,
pnl_pct: 4.1,
resolved_at: 1711027200
}
Felkoder
| Status | Kod | Beskrivning |
|---|---|---|
| 400 | invalid_params | Saknade eller ogiltiga frågeparametrar |
| 401 | unauthorized | Saknad eller ogiltig API-nyckel |
| 403 | plan_restriction | Slutpunkt inte tillgänglig på din nuvarande plan |
| 429 | rate_limit_exceeded | Daglig eller burst-gräns uppnådd |
| 500 | internal_error | Serverfel — kontrollera /health för källstatus |
| 503 | data_stale | Datakälla otillgänglig; returneras med senast kända data |
Kodexempel
Python
r = requests.get(
"https://api.smartmoneyapi.com/v1/confirm",
params={"symbol": "BTC", "direction": "lång"},
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()
# I din handelsloop:
signal = confirm_trade(BTC, long)
if signal[confidence] not in [HIGH, MEDIUM]:
print(Skipping — otillräcklig säkerhet)
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-fel: ${resstatus}`);
return res.json();
}
// Användning
confirmTrade('BTC', 'long').then(data => {
console.log(dataconfidence, datasize_mult);
});
cURL
curl -X GET \
-H X-API-Key: sm_your_key \
https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long
# Hämta valdata
curl -X GET \
-H X-API-Key: sm_your_key \
https://api.smartmoneyapi.com/v1/whales?symbol=BTC
# Kontrollera användning
curl -X GET \
-H X-API-Key: sm_your_key \
https://api.smartmoneyapi.com/v1/usage
Freqtrade-integrering
Lägg till Smart Money-bekräftelse till vilken Freqtrade-strategi som helst genom att åsidosätta confirm_trade_entry metoden.
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 # Hoppa över kontroll för ej stödda
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 # Misslyckas öppet vid API-fel
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):
# Kontrollera bekräftelse först
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"Skipping {symbol} {side} — otillräcklig tillförlitlighet.")
return None
adj_amount = amount * conf["size_mult"]
order = exchange.create_market_order(
f"{symbol}/USDT", side, adj_amount
)
print(f"Order placerad: {adj_amount} {symbol} {side}")
return order
Kolla in API-statusidan för realtidsinformation om hälsotillstånd, eller använd vårt kontaktformulär.