Smart Money API
Un API de inteligență de grad profesional care agregă date derivate, metrici on-chain și activitatea portofelelor de balenă într-un singur scor de încredere pentru botul tău de tranzacționare.
https://api.smartmoneyapi.com/v1Principii de design
Patru idei modelează fiecare endpoint și fiecare scor returnat de acest API. Ele reprezintă și limitele oneste ale ceea ce promite — și nu promite.
Strategie înainte de semnal. Acesta nu este un flux de semnale de cumpărare/vânzare. Tu aduci strategia și intrarea; API-ul îți spune dacă structura pieței din jur — poziționarea derivatelor, finanțarea, interesul deschis, lichidări, fluxul on-chain și consensul balenelor — este de acord cu tranzacția pe care vrei deja să o faci.
Scor de încredere, nu predicție binară. Fiecare răspuns conține o evaluare confidence (HIGH / MEDIUM / LOW) și un composite de la -1.0 la +1.0. Nu există garanții și nici apeluri oracol — primești o evaluare calibrată a acordului, cu motivele din spate, astfel încât să poți dimensiona proporțional cu convingerea.
Suport pentru decizie, nu sfat de execuție. API-ul returnează o recomandare CONFIRM / REDUCE / SKIP și un multiplicator de mărime pentru logica ta pe care să acționeze. Nu plasează niciodată comenzi, și nimic de aici nu este sfat financiar. Tu rămâi responsabil pentru risc, dimensionare și execuție.
Metrici vii, nu garanții fixe. Ratele de succes, statisticile de regim și cifrele de acuratețe sunt calculate dintr-un eșantion rulant și se modifică pe măsură ce piețele se mișcă. Le publicăm cinstit, inclusiv când sunt mediocre. Tratează fiecare metrică ca pe o observație curentă, nu ca pe o promisiune despre viitor.
Cine este destinat acestui API
Acest API este construit pentru dezvoltatorii de roboți de crypto, algoritmi și agenți AI care au deja un semnal de cumpărare/vânzare — dintr-o strategie de analiză tehnică, un model de machine learning, o conductă Freqtrade, o alertă TradingView sau un agent LLM — și doresc o decizie rapidă, pre-tranzacționare CONFIRMĂ / REDU / RENUNȚĂ înainte de a angaja capitalul.
O buclă tipică: strategia ta emite "go long BTC" → apelezi GET /v1/confirm?symbol=BTC&direction=long → confirmi, reduci sau renunți la intrare și ajustezi mărimea prin size_mult. Un singur apel, un răspuns JSON cu latență redusă, fără infrastructură suplimentară.
Acesta este nu un generator de semnale independent, un produs de charting sau o platformă de execuție. Dacă nu ai propriul semnal de filtrat, începe cu pagina de performanță pentru a vedea cum s-a comportat scorul înainte de a-l integra într-un bot live.
Obținerea accesului
1 — Înregistrare. Creează un cont gratuit la signup (email/parolă sau Google). Card de credit nu este necesar pentru nivelul gratuit.
2 — Deschide panoul de control. Panoul tău de control afișează cheia ta API, planul curent și utilizarea în timp real față de cota ta zilnică.
3 — Copiază cheia ta API. Cheile sunt prefixate sm_. Transmite-o ca X-API-Key header la fiecare solicitare (vezi Autentificare). Poți face upgrade oricând pe pagină de prețuri pentru a crește limitele și a debloca mai multe simboluri și endpoint-uri.
Spec, SDK & Ghid de rețete
Tot ce ai nevoie pentru a te integra rapid, indiferent dacă scrii codul singur sau îl dai unui agent de codare.
| Resursă | Ce este |
|---|---|
| Ghid de rețete | Rețete de copiat și lipit pentru cele mai comune integrări — confirmă înainte de intrare, controlează un semnal Freqtrade, dimensionează după multiplicator, gestionează 402/429 și conectează-l la un agent de codare. |
| Specificație OpenAPI | Definiție OpenAPI, citibilă de mașină, pentru fiecare endpoint. Importă în Postman/Insomnia, generează clienți sau alimentează un LLM. La github.com/tashiardit/smartmoneyapi-docs. |
| Client Python | Librăria oficială Python client la github.com/tashiardit/smartmoneyapi-python. |
| /llms.txt | Un rezumat al API-ului în format text, prietenos pentru LLM. Direcționează Claude, Codex sau Cursor către el (vezi Agenți de Codare). |
Pornire rapidă în 2 minute
Pasul 1 — URL de bază. Fiecare endpoint se află sub:
Pasul 2 — Obține cheia ta API. Înregistrează-te gratuit (fără card de credit necesar) și copiază cheia ta din panoul de control. Transmite-o ca X-API-Key antet la fiecare cerere.
Pasul 3 — Prima ta apelare. Lipește asta în terminalul tău și înlocuiește sm_your_key cu cheia din panoul tău de control:
Răspuns așteptat:
"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": ["Rata de finanțare pozitivă pe toate platformele", "Balene: 67% consens long"]
}
Când confidence este HIGH sau MEDIUM și action este CONFIRM, ajustează dimensiunea poziției cu size_mult. Acesta este întregul ciclu de integrare. Vezi Câmpuri de Răspuns pentru referința completă a câmpurilor.
Autentificare
Toate cererile necesită o cheie API transmisă ca X-API-Key antet HTTP.
Cheia ta API este disponibilă din panoul de control după înregistrare. Păstrează cheia secretă — nu o expune în codul client sau în depozite publice.
/v1/ws/ticket cu X-API-Key antetul, apoi conectează-te cu biletul primit. Vezi Autentificare WebSocket (bilete).Autentificare Google (Firebase Auth)
Utilizatorii se pot autentifica folosind contul Google prin Firebase Authentication. După o autentificare reușită pe client, schimbă token-ul Firebase ID pentru o sesiune API asociată. Sistemul sincronizează automat identitatea Google cu sistemul de chei API.
Corpul Cererii
| Câmp | Tip | Descriere |
|---|---|---|
| id_tokenobligatoriu | șir de caractere | Token Firebase ID obținut după autentificarea Google pe client |
Exemplu de Răspuns
"api_key": "sm_your_linked_key",
"uid": "firebase_uid_abc123",
"email": "[email protected]",
"plan": "trader",
"synced": true
}
Limite de Rata
| Plan | Apeluri/Zi | Limită de Explozie | Întârziere Date |
|---|---|---|---|
| Free | 50 | 2/min | 60 secunde |
| Trader | 1,000 | 20/min | În timp real |
| Pro | 5,000 | 60/min | Timp real |
| Enterprise | 100,000 | 400/min | Timp real |
Limitele de rată sunt incluse în fiecare răspuns: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
URL de bază
Toate endpoint-urile de mai jos sunt relative la acest URL de bază. Toate răspunsurile sunt în format JSON. Content-Type: application/json.
Erori
Erorile folosesc coduri de stare HTTP standard și un corp JSON consistent. Luați întotdeauna decizii bazate pe codul de stare, nu pe textul răspunsului. Cele mai frecvente întâlnite sunt:
| Stare | Cod | Semnificație & ce să faci |
|---|---|---|
| 401 | neautorizat | Lipsește sau este invalid cheia API. Verificați dacă X-API-Key antetul este prezent și corect. |
| 402 | plată_necesară | Endpoint-ul sau simbolul necesită un plan superior față de cel asociat cheii dumneavoastră (de exemplu, o cheie gratuită care apelează WebSocket firehose). Upgrade sau reveniți la un endpoint public. |
| 429 | limita_rată_depășită | Limita zilnică sau de explozie a fost atinsă. Reduceți viteza și încercați din nou după X-RateLimit-Reset; nu încercați repetat. |
Fiecare eroare returnează același format:
"error": "rate_limit_exceeded",
"message": "Limita zilnică de 50 de apeluri a fost atinsă. Se resetează la 00:00 UTC.",
"status": 429
}
Pentru lista completă a codurilor de stare (400 / 403 / 500 / 503 și altele), consultați Coduri de eroare. O integrare robustă tratează erorile 5xx și 429 ca temporare (reîncercați cu backoff) și 401/402/403 ca terminale (remediați cheia sau planul).
Practici de securitate recomandate
Trimiteți cheia în antet, niciodată în URL. Transmiteți întotdeauna X-API-Key ca antet HTTP. Cheile din parametrii de interogare (?key=) sunt înregistrate de proxy-uri, balanțe de încărcare și istoricul browserului — autentificarea ?key= nu mai este acceptată pe endpoint-urile WebSocket din acest motiv.
Păstrați cheile pe partea de server. Nu încorporați niciodată o cheie API în JavaScript pe partea de client, într-un pachet de aplicații mobile sau într-un depozit public. Încărcați-o dintr-o variabilă de mediu sau dintr-un manager de secrete. Dacă o cheie este expusă, înlocuiți-o.
Rotați cheile periodic. Regenerați cheia din panoul de control conform unui program și imediat dacă suspectați expunerea. Cheia veche încetează să funcționeze în momentul în care una nouă este emisă.
Utilizați bilete pentru socket-uri în browser. Pentru fluxuri în timp real din browser, schimbați cheia pentru un bilet de unică folosință în loc să vă conectați cu cheia brută — consultați Autentificare WebSocket (bilete).
Utilizarea cu agenți de codare / LLM-uri
Lucrați cu Claude Code, Codex, Cursor sau orice agent LLM de codare? Puteți furniza agentului tot ce are nevoie pentru a conecta corect acest API dintr-o singură mișcare. Sunt publicate două referințe machine-readable:
| Resursă | URL |
|---|---|
| Rezumat LLM | https://smartmoneyapi.com/llms.txt |
| Specificație OpenAPI | github.com/tashiardit/smartmoneyapi-docs |
Indicați agentului către /llms.txt fișierul (convenția llms.txt) pentru o prezentare concisă, apoi specificația OpenAPI pentru formele exacte de request/răspuns. Un prompt pe o singură linie care funcționează bine:
Citiți https://smartmoneyapi.com/llms.txt și specificația OpenAPI la
github.com/tashiardit/smartmoneyapi-docs, apoi adăugați o verificare
pre-trade în botul meu care apelează GET /v1/confirm și omite intrările
dacă acțiunea nu este CONFIRM.
Consultați Ghidul practic pentru o rețetă detaliată pentru agenții de codare.
Endpoint-uri
GET /confirm
Endpoint-ul principal. Returnează un scor de încredere compozit și o recomandare de acțiune pentru o anumită direcție de tranzacționare. Apelați acest endpoint înainte de a intra în orice poziție.
Acoperire, în termeni simpli. /confirm în prezent evaluează BTC, ETH și SOL — simbolurile cu suficiente date istorice rezolvate pentru a confirma în mod sincer. Screen-erul de derivate monitorizează separat ~519 piețe de derivate pentru date de finanțare, OI și lichidări, iar urmărirea balenelor acoperă peste 600 de portofele. Pro deblochează screen-erul complet, exporturile și o acoperire mai largă a pieței; /confirm suportul pentru simboluri este extins pe măsură ce fiecare piață acumulează un istoric fiabil.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| simbolobligatoriu | șir de caractere | Simbolul activului. Unul dintre: BTC, ETH, SOL (Trader+) |
| direcțieobligatoriu | șir de caractere | Direcția tranzacției: long sau short |
| sursăopțional | șir de caractere | Etichetă pentru sursa semnalului (înregistrată pentru analize). Maxim 32 de caractere. |
Exemplu de cerere
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"
Exemplu de răspuns
"ts": 1710940821,
"symbol": "BTC",
"direction": "long",
"composite": 0.74,
"confidence": "HIGH",
"action": "CONFIRM_FULL",
"size_mult": 1.5,
scor_derivate: 0.81,
scor_onchain: 0.68,
scor_whale: 0.73,
scor_x: 0.0,
factori: {
derivate: { scor: 0.81, pondere: 0.40, ponderat: 0.324 },
onchain: { scor: 0.68, pondere: 0.35, ponderat: 0.238, sursă: coinmetrics, disponibil: True },
whale: { scor: 0.73, pondere: 0.25, factor_întârziere: 1.0, ponderat: 0.183 }
},
ajustări: { acord: 0.0, trend: 0.0, știri_macro: 0.0 },
ponderări: { derivate: 0.40, onchain: 0.35, whale_intel: 0.25 },
acoperire: { derivate: True, balenă: True, onchain: True },
motive: [
Rata de finanțare pozitivă pe toate platformele,
LSR favorizează pozițiile lungi: 1.42,
Balenelor: 67% consens long,
MVRV peste 1.0 — indiciu bullish on-chain
]
}
Transparent prin design. Fiecare răspuns conține un factors obiect care arată scorul fiecărei componente scor × pondere = contribuție ponderată, un adjustments obiect pentru ajustări post-filtru, weights utilizat și o coverage hartă. Componenta on-chain folosește date reale gratuite de la Coin Metrics (MVRV / flux-pe-exchange / adrese-active) când nu este setată o cheie Glassnode. Acesta este un scor de confluență multifactorială — suport pentru decizii, nu o rată de succes garantată.
Simbolurile netrackuite sunt tratate corect. Un simbol în afara universului de derivate/balene returnează un "confidence":"NO_DATA" / "action":"NO_DATA_SKIP" explicit "unsupported":true — niciodată un LOW.
Câmpuri de Răspuns
| Câmp | Tip | Descriere |
|---|---|---|
| ts | întreg | Timestamp Unix al calculului |
| simbol | șir de caractere | Simbolul activului (BTC/ETH/SOL) |
| direcție | șir de caractere | Direcția solicitată (long/short) |
| compozit | float | Scor compozit de confluență de la -1.0 (extrem contra) la +1.0 (confirmare puternică). Nu este o rată de câștig. |
| base_composite | float | Compozit înainte de aplicarea ajustărilor post-filtru |
| încredere | șir de caractere | HIGH / MEDIUM / LOW / VETO / NO_DATA |
| acțiune | șir de caractere | CONFIRM_FULL / CONFIRM_REDUCED / CONFIRM_MINIMAL / VETO_SKIP / NO_DATA_SKIP |
| size_mult | float | Multiplicator sugerat pentru dimensiunea poziției (de ex. 0.0 – 1.5) |
| nesuportat | bool | true când simbolul este în afara acoperirii (asociat cu NO_DATA) |
| deriv_score | float | Sub-scor de derivate (-1 la 1) |
| onchain_score | float | Sub-scor on-chain (-1 la 1) |
| whale_score | float | Sub-scor de consens al balenelor (-1 la 1) |
| x_score | float | Sub-scor X/sentiment social (-1 la 1); 0 când neutilizat |
| factori | obiect | Detalii pe componente: score × weight = weighted pentru derivate / onchain / balene / x_sentiment (onchain include source) |
| ajustări | obiect | Ajustări semnate post-filtru (acord, tendință, rsi_1h, news_macro, impuls, ora_zilei, descreștere_streak) |
| ponderile | obiect | Setul de ponderi utilizat efectiv pentru această evaluare |
| acoperire | obiect | {derivatives, whale, onchain} — care componente au avut date reale |
| motive | matrice | Explicații umanizabile pentru scor |
GET /snapshot
Returnează o imagine completă a pieței, inclusiv toate sub-scorurile, metricile brute și valorile indicatorilor pentru un simbol dat. Util pentru panouri de control și înregistrări.
GET /onchain
Returnează metrici brute on-chain: MVRV, SOPR, flux net pe exchange, raportul de capitalizare realizată și clasificarea poziției în ciclu.
GET /v1/derivatives/*
Screener pentru derivate pe multiple exchange-uri, peste 500+ simboluri: harta ratelor de funding, clasament open-interest și detectarea semnalelor long/short-ratio. Primele 10 rânduri sunt publice; screenerul complet necesită Trader sau Pro. Endpoint-uri: /v1/derivatives/screener, /v1/derivatives/funding, /v1/derivatives/oi, /v1/derivatives/signals.
GET /v1/options/*
Analize pentru opțiuni BTC & ETH de la Deribit (publice, fără autentificare): raport put/call, max pain și open interest pe strike. Endpoint-uri: /v1/options/summary, /v1/options/pcr, /v1/options/oi.
GET /v1/etf/*
Fluxuri nete zilnice pentru ETF-urile BTC & ETH și detalii pe fond (publice). Endpoint-uri: /v1/etf/flows, /v1/etf/funds.
GET /v1/historical/*
Date istorice: funding, open interest, raport long/short (Binance) și OHLCV (CoinGecko) pentru backtesting. Endpoint-uri: /v1/historical/funding, /v1/historical/oi, /v1/historical/lsr, /v1/historical/ohlcv.
GET /v1/dex/*
Perechi trending, căutare token-uri și detalii perechi alimentate de DexScreener (publice, fără autentificare). Endpoint-uri: /v1/dex/trending, /v1/dex/search, /v1/dex/token, /v1/dex/pair.
GET /v1/news/*
Inteligență știri: știri de politică/geopolitică/crypto clasificate pe categorii de impact, plus Fear & Greed (publice, fără autentificare). Endpoint-uri: /v1/news/trump, /v1/news/general, /v1/news/impact, /v1/news/fear-greed.
GET /whales
Returnează date de consens pentru portofelele whale-urilor: divizare long/short, expunere notională totală, top 10 poziții (doar Pro) și număr de portofele.
GET /signals
Returnează un flux al celor mai recente semnale HIGH/MEDIUM pentru toate activele monitorizate. Util pentru scanarea oportunităților.
GET /v1/strategies/*
Istoric transparent, read-only pentru strategiile de trading automate care execută pe baza semnalelor Smart Money — inclusiv deriv40 Strategia SmartMoney Copytrade (account=9). Toate endpoint-urile acceptă un parametru ?account=<id> și returnează JSON. Nu este necesară autentificarea (istoric public).
Endpoint-uri
GET /v1/strategies/stats?account=9— metrici principale: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— curbă de equity pentru grafice:{ initial_equity, curve: [{ time, equity }] }.GET /v1/strategies/trades?account=9&limit=500— registru tranzacții închise: array (sau{trades:[…]}) desymbol,direction,entry_price,exit_price,pnl_usdt,pnl_percent,pnl_percent_net.GET /v1/strategies/active?account=9— poziții deschise curent: array (sau{positions:[…]}) desymbol,side/direction,entry_price,unrealized_pnl.GET /v1/strategies/signals— detaliere pe tipuri de semnale care alimentează strategiile (număr / victorii / rata_win / avg_pnl pe tip de semnal).
Performanțele trecute nu sunt indicatoare pentru rezultate viitoare. Cifrele sunt completate retrospectiv pe o singură perioadă de ~3 luni plus tranzacții live și sunt afișate pre-taxă unde menționat.
GET /export
Descarcă date istorice de semnale în format CSV pentru backtesting. Parametri: symbol, from (unix ts), to (unix ts).
GET /health
Verificare stare sistem. Returnează actualitatea datelor pentru fiecare sursă și statusul general al API-ului. Nu este necesară autentificarea.
"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
Returnează statisticile curente de utilizare API: apeluri astăzi, totaluri lunare, limite de cotă și timpi de resetare.
POST /webhooks
Înregistrează un URL HTTPS pentru a primi notificări în timp real semnate atunci când un semnal este declanșat pe activele monitorizate. Livrările includ un header X-SmartMoney-Event și o semnătură HMAC-SHA256 în X-SmartMoney-Signature, cu încercări de redare de până la 3× cu backoff.
Corp Cerere
| Câmp | Tip | Descriere |
|---|---|---|
| urlrequired | string | Endpoint HTTPS către care se trimit evenimentele (trebuie să înceapă cu https://) |
| eventsrequired | array | Nume evenimente, de ex. ["HIGH","MEDIUM","VETO"] sau ["*"] |
| symbolsrequired | array | Simboluri pentru filtrare, de ex. ["BTC","ETH"] sau ["*"] |
| secretrequired | string | Secretul tău de semnare, ≥ 16 caractere (stocat hash) |
Verificarea semnăturii
Cheia HMAC este digestul SHA-256 hex al secretului tău înregistrat. Calculează HMAC-SHA256 al corpului brut al cererii cu acea cheie și compară (constant-time) cu X-SmartMoney-Signature. Vezi Ghidul de implementare Webhook.
Inteligență
GET /analysis
Returnează o clasificare a regimului de piață bazată pe inteligență artificială, cu detectarea conflictelor de semnale. Analizează acordul între semnale, identifică divergențele între datele din derivate, on-chain și ale balenelor, și produce un rezumat în limbaj natural cu factori de risc prospectivi și o recomandare pe orizont de timp.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symbolobligatoriu | string | Simbolul activului: BTC, ETH, sau SOL |
Exemplu de răspuns
"ts": 1710940821,
"symbol": "BTC",
"regime": "late_cycle_divergence",
"regime_label": "Late Cycle — Signal Divergence",
"summary": "BTC se află într-o fază târzie de ciclu bullish, cu putere on-chain în conflict cu supraextinderea derivatelor. Balenele reduc expunerea în timp ce LSR-ul retail crește.",
"signal_conflicts": [
"Scorul balenelor bearish în timp ce scorul onchain bullish",
"Rata de finanțare la maximul de 3 luni — risc potențial de squeeze"
],
"risk_factors": ["Finanțare ridicată", "Divergență OI", "Reducere balene"],
"recommendation": "Reduceți expunerea long, strângeți stop-urile. Evitați noi poziții long peste prețul curent.",
"time_horizon": "4h–12h"
}
GET /liquidations
Returnează două perspective complementare: (1) proiectate pe levier levels — o estimare a unde se află clusterele de lichidare; și (2) un realized_heatmap — REAL executate intensitatea lichidărilor forțate (preț × timp), agregată în timp real din fluxurile WebSocket ale burselor publice: Binance, OKX, Bybit, Bitget, BitMEX. Harta termică este prezentă când fluxul are date pentru simbol (absent într-o piață foarte calmă sau imediat după pornire).
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symbolopțional | string | Simbolul activului (implicit BTC). Harta termică reală acoperă simbolurile perp tranzacționate activ. |
Exemplu de răspuns
"symbol": "BTC",
"cascade_risk": "HIGH",
"nearest_long_liq_pct": -3.2,
"nearest_short_liq_pct": 4.1,
// Lichidări REAL executate — în timp real de la 5 burse
"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, distanțele cele mai apropiate și totalurile realizate/pe parte. Planul Pro: proiecție completă levels plus întregul realized_heatmap (matrice, clustere pe preț, numărări pe bursă). Estimarea proiectată răspunde la "unde sunt stop-urile"; harta termică realizată arată "ce s-a lichidat efectiv."GET /liquidations/heatmap
Public hartă termică a lichidărilor pe nivel de preț. Returnează o matrice de tip Coinglass cu preț × timp a REAL executate lichidări forțate, grupate după prețul la care fiecare lichidare a fost înregistrată — agregată în timp real din fluxurile WebSocket ale burselor publice: Binance, OKX, Bybit, Bitget, BitMEX. Tabloul clusters este rezultatul practic: găleți de preț clasificate după valoarea lichidată, fiecare etichetată cu partea dominantă. Datele depind de fluxul live — un simbol foarte liniștit sau un gateway recent repornit returnează structura goală bine formatată plus un note. Nivelurile afișate sunt întotdeauna lichidări reale, niciodată estimate.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symboloptional | string | Simbolul activului (implicit BTC). |
| window_minutesoptional | int | Fereastra de timp în minute (implicit 240, limitată la 5–1440). |
| price_bucketsoptional | int | Numărul de găleți de preț (implicit 50, limitată la 5–100). |
Exemplu de răspuns
"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 este 0, clusters este gol, iar un note câmp explică de ce. Este o înregistrare a lichidărilor executate — nu o predicție. Pentru estimarea proiectată "unde sunt stop-urile", utilizați endpoint-ul autentificat /liquidations endpoint.GET /liquidations/onchain
Executate lichidări on-chain DeFi capturate direct de la nodurile noastre locale BSC + Avalanche full nodes — independent de orice bot de tranzacționare. Acoperă Venus/Cream și Moolah pe BSC, și AAVE V3/V2, Benqi, BankerJoe, Granary și Vinium pe Avalanche. Nivelul Pro returnează în plus at_risk poziții (dependente de bot, pot fi absente).
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| chainoptional | string | bsc sau avax. Omiteți pentru toate chain-urile. |
| limitoptional | integer | Numărul maxim de rânduri (implicit 100, maxim 500). Cele mai noi primele. |
Exemplu de răspuns
"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, rambursare_usd_cunoscut: 148230.55 } },
noduri: { bsc: { accesibil: true, head_block: 89173010, events_total: 61 } }
}
}
GET /smart-stop
Calculează niveluri inteligente de stop-loss bazate pe harta actuală de lichidare, benzile de volatilitate și structura pieței. Returnează recomandări de stop nivelate și sugestii de take-profit calibrate la prețul de intrare și toleranța la risc.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symbolobligatoriu | string | Simbolul activului: BTC, ETH, sau SOL |
| directionobligatoriu | string | Direcția poziției: long sau short |
| entry_priceopțional | float | Prețul tău de intrare. Implicit: prețul curent de piață dacă este omis. |
| risk_pctopțional | float | Riscul maxim acceptabil ca % din cont. Implicit: 2.0 |
Exemplu de răspuns
symbol: BTC,
direction: long,
entry_price: 96420,
stops: {
tight: { price: 95100, note: Sub structura de 1h. Ideal pentru scalp. },
recommended: { price: 93800, note: Sub clusterul major de lichidare la $94K. Stop standard pentru swing. },
wide: { price: 91200, note: Sub zona de cerere de 4h. Stop pentru poziții lungi. }
},
avoid_zones: [
{ low: 94200, high: 94800, reason: Cluster dens de lichidare — risc ridicat de slippage }
],
take_profit_suggestions: [
{ tp1: 98500, tp2: 101000, tp3: 104200 }
]
}
recommended stop-ul recomandat. Planul Pro: Toate cele trei niveluri de stop, avoid_zones, și sugestii complete de take-profit.GET /funding-arb
Identifică oportunități de arbitraj a ratei de funding în timp real pe diferite exchange-uri. Returnează oportunități clasificate cu randament anualizat estimat, perechea optimă de exchange și acțiunea necesară pentru a capta spreadul.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| min_spreadopțional | float | Spreadul minim al ratei de funding de inclus (ca decimal). Implicit: 0.01 |
| symbolopțional | string | Filtrează după un anumit activ. Lasă necompletat pentru a scana toate activele suportate. |
Exemplu de răspuns
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
}
]
}
Variantă publică gratuită Fără autentificare
Un endpoint public fără cheie returnează primele 10 oportunități cu un screener live cross-exchange, ideal pentru embed sau verificări rapide. Elimină istoricul de spread per simbol și câmpurile grele și este servit dintr-un cache de 120 de secunde. Când nu există spreaduri de funding cross-exchange în fereastra de actualizare, returnează un opportunities array gol cu un note — niciodată date fabricate.
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: Spread mic — asigurați-vă că taxele nu consumă marja de arbitraj.
}
],
scanned_symbols: 222,
ts: 1783268753,
public: True,
limited: True
}
GET /smart-money/flow
Un index direcțional ponderat calitativ al balenelor pe simbol, punctat -100 (banii balenelor înclinându-se spre scurt) până la +100 (înclinându-se spre lung). Construit din mii de portofele de balene Hyperliquid urmărite — fiecare ponderat după rata sa istorică de câștig și PnL și amortizat după recență. Acesta este un index de poziționare, nu un semnal de cumpărare/vânzare sau o predicție de preț. Simbolurile cu puține portofele contribuitoare sunt etichetate thin și punctate corect. Pagină live: smart-money-flow.html.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symbolopțional | string | Un singur simbol (de ex. BTC). Omiteți pentru a obține toate simbolurile urmărite clasate după |scor|. |
| window_hoursopțional | int | Fereastra de punctaj, limitată la 1..168. Implicit 24. |
Exemplu de Răspuns
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: bogat,
top_contributors: [ { wallet: 0x31ca…974b, direction: short, value_usd: 5338.25, weight: 0.4948 } ]
}
],
window_hours: 24,
quality_weighted: True,
ts: 1783270000,
note: Index de poziționare direcțională ponderat calitativ al balenelor (-100..+100). Nu este o predicție de preț sau un semnal de cumpărare/vânzare.
}
top_contributors. Greutățile portofelelor sunt limitate la [0.25,1.0]; PnL este un proxy nerealizat din cele mai recente instantanee de poziție.GET /v1/whales/crowding
Combinate context de poziționare și aglomerare a balenelor pe simbol, fuzionate între Hyperliquid + GMX v2 + Jupiter Perps. Returnează notional brut/net, înclinare direcțională, număr de portofele și locuri, concentrație de poziție (cota top-3 + HHI), o medie ponderată a levierului și găleți de proximitate la lichidare ($ notional situat în 5% și 10% din prețul său estimat de lichidare, împărțit lung/scurt). Acesta este context, nu un semnal direcțional. Câmpurile care nu pot fi derivate sunt null și sunt redate ca — — de ex. lev_wavg/crowding_index când nicio poziție nu poartă levier. Distanțele de lichidare sunt o estimare de marjă izolată (pct_to_liq ≈ 1/lev + upnl/notional − mmr, mmr = 0.01), nu prețuri de lichidare raportate de schimb.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| min_notionalopțional | float | Notional brut combinat minim (USD) pentru ca un simbol să fie inclus. Implicit: 1000000. |
Exemplu de Cerere
Exemplu de Răspuns
ok: True, ts: 1783423500, min_notional: 1000000, n_symbols: 92,
simboluri: [
{
simbol: BTC,
gross_usd: 2447900000.0, net_usd: -51000000.0, skew: -0.021,
n_whales: 414, n_venues: 3,
platforme: {
hl: { brut: 1900000000.0, net: -40000000.0, n_whales: 272 },
gmx: { brut: 320000000.0, net: -6000000.0, n_whales: 59 },
jupiter: { brut: 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
}
],
avertismente: [ Distanțele de lichidare sunt estimări pe marjă izolată, nu raportate de exchange. ]
}
skew este net/gross ∈ [-1,1]; crowding_index = |skew|·conc_top3·min(lev/20,1). Doar platformele prezente efectiv apar în venues. Pozițiile fără levier sunt excluse din gălețile de lichidare în loc să fie presupuse. Apelanții anonimi primesc primele 10 simboluri după volum brut (cu gated: true); Trader+ primesc lista completă.GET /v1/options/gex
Dealer gamma exposure (GEX) analytics pentru BTC & ETH, calculat în timp real din lanțul public de opțiuni Deribit (fără autentificare). Returnează GEX net dealer pe strike (convenția SpotGamma dealer-short), nivelul gamma-flip (strike unde GEX net cumulat trece de zero), structura termenului IV (volatilitatea implicită ATM pe zile până la expirare) și un IV skew (risk reversal proxy 25Δ). Regimul GEX este positive (dealers long gamma → suprima volatilitatea) sau negative (amplifică volatilitatea). Complet autonom — recalculat la fiecare apel, fără dependență de baza de date stocată.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| simbolopțional | string | BTC sau ETH doar. Implicit: BTC. |
Exemplu Cerere
Exemplu Răspuns
"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 cu panouri goale — niciodată GEX fabricat. IV skew folosește un strike proxy fix de ±10% pentru 25Δ (adevăratul 25-delta necesită rezolvarea deltei pe strike); adecvat pentru afișare, documentat ca o aproximare.GET /v1/liquidations/simulate
Interactiv test de stres în cascadă de lichidare. Pentru o mișcare ipotetică a prețului, returnează pozițiile cu levier care ar fi lichidate, volumul forțat pe nivel de preț / parte / schimb, și o analiză a adâncimii cascadei. O mișcare descendentă lichidează long al căror preț de lichidare se află la/peste țintă; o mișcare ascendentă lichidează short al căror preț de lichidare se află la/sub ea. Două metode independente sunt combinate: prețuri exacte de lichidare de la balenele Hyperliquid urmărite cu real levier/intrare, plus clustere statistice de bandă OI pe schimb (levierul mulțimii dedus din funding). Totul este etichetat clar estimated: true — nu poate cunoaște marja pe cont, cross vs isolated, marja adăugată sau ADL.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symboloptional | string | Simbolul activului. Implicit: BTC. |
| move_pctoptional | float | Mișcarea ipotetică a prețului ca procent (negativ = jos, pozitiv = sus). Implicit: -5. |
Exemplu de cerere
Exemplu de răspuns
"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": "Estimat — nu poate cunoaște marja pe cont, cross vs isolated, marja adăugată sau ADL." }
}
ok: true, empty: true cu un mesaj simplu, nu bare false. realized_context este un eșantion tânăr, în creștere din fluxul live de lichidare forțată, afișat doar ca context — nu face niciodată proiecția "realizată."GET /v1/wallet/{addr}/profile
Un profil de portofel cross-venue construit în întregime din instantaneele live ale pozițiilor balenelor urmărite. Pentru o balenă Hyperliquid urmărită, returnează pozițiile deschise curente, o serie temporală de PnL nerealizat / expunere / număr de poziții time series, o cronologie de activitate OPEN/CLOSE/FLIP activity timeline (reconstruită prin diferențierea instantaneelor consecutive), eticheta decodată din clasamentul HL și un rezumat al cărții deschise. Pagină live: wallet-profiler.html.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| addrrequired | string | Adresa portofelului (segment de cale), de ex. /v1/wallet/0x3bcae23e…/profile. |
| daysoptional | integer | Fereastra de look-back pentru serie și cronologie. Implicit: 30. |
Exemplu de cerere
Exemplu de răspuns
"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, rata_de_succes_pct: 71, tranzactii: 42 },
pozitii: [
{ platforma: hyperliquid, simbol: ETH, directie: short,
marime: 1200.0, pret_intrare: 1800.0, profit_pierdere_nerealizat: 34800.0,
efect_de_levier: 20.0, valoare_usd: 2160000.0 }
],
serie: [ { ts: 1783330000, profit_pierdere_nerealizat: 42000.0, expozitie_usd: 18400000.0, pozitii: 5 } ],
cronologie: [ { ts: 1783400000, eveniment: schimbare_directie, simbol: ETH,
directie: short, din_directia: long, valoare_usd: 2160000.0 } ],
rezumat: {
pozitii_deschise: 5, in_profit: 3, in_pierdere: 2, longs: 0, shorts: 5,
profit_pierdere_total_nerealizat: -12000.0, expozitie_totala_usd: 21000000.0, efect_de_levier_mediu: 19.9,
perioada_zile: 30, instantaneu_in_perioada: 474,
profit_pierdere_realizat: None, nota_profit_pierdere_realizat: Nederivabil — se văd doar instantanee deschise, niciodată închideri.
}
}
}
pnl este marcajul la piață nerealizat al HL, value_usd este valoare deschisă, nu notională. Profit/Pierdere realizat pe tranzacție completă nu este disponibil (vedem doar instantanee deschise, niciodată închideri) și este afișat ca null / —; evenimentele CLOSE din cronologie nu conțin informații despre Profit/Pierdere. O adresă validă dar netrasată returnează tracked: false cu o notă; o adresă invalidă returnează ok: false, error: "invalid_address" (HTTP 400). Eticheta HL-leaderboard este poziția HL la momentul descoperirii, nu calculată de noi.GET /flows
Returnează date despre fluxurile de capital între active, arătând modele de rotație între BTC, ETH și SOL pe multiple ferestre de timp. Util pentru a identifica care activ acumulează capital și care este distribuit la un moment dat.
Exemplu de răspuns
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 }
},
rotations_detected: [
Capital rotit de la ETH la BTC pe fereastra de 4h,
Acumulare SOL consistentă pe toate ferestrele
]
}
GET /whale-events
Returnează schimbări semnificative în pozițiile balenelor — deschideri, închideri și schimbări de direcție — detectate în portofele și adrese urmărite pe blockchain în fereastra specificată.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| simboloptional | string | Filtrează după activ. Omitere pentru toate activele monitorizate. |
| semnificatieoptional | string | Filtrează după semnificația evenimentului: high, medium, sau all. Implicit: all |
| oreoptional | integer | Fereastră de timp în ore. Implicit: 24 |
Exemplu de răspuns
simbol: BTC,
rezumat: {
schimbari_in_long: 3,
schimbari_in_short: 1,
noi_deschideri: 7,
inchideri: 2
},
evenimente: [
{
tip: flip_long,
portofel: 0xWhale...a4f2,
direcție: long,
size_usd: 4200000,
ts: 1710938400
}
]
}
summary doar obiectul. Plan Pro: Flux complet events cu identificatori de portofel, dimensiuni și marcaje temporale.GET /regimes/history
Returnează date istorice de clasificare a regimurilor pentru un anumit activ. Folosește această funcționalitate pentru a testa cum s-au comportat istoric anumite tipuri de regimuri, cât durează de obicei fiecare regim și cum se desfășoară tranzițiile între regimuri de-a lungul timpului.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symbolopțional | string | Simbolul activului. Implicit: BTC |
| regimeopțional | string | Filtrează după un anumit tip de regim, de ex. late_cycle_divergence. Omitere pentru toate regimurile. |
| daysopțional | integer | Fereastra de retrospectivă în zile. Implicit: 30. Maxim: 365 |
Exemplu de răspuns
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 pentru a valida ipotezele de strategie pe baza datelor istorice de performanță a regimurilor.GET /exchange-health
Returnează starea de sănătate în timp real pentru toate schimburile monitorizate, inclusiv latența pe schimb, ratele de eroare și indicatorii de vechime a datelor. Nu este necesară autentificarea — endpoint accesibil public.
Exemplu de răspuns
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
Returnează un indice Fear & Greed (0-100) calculat din sentimentul derivatelor, activitatea balenelor, volatilitatea și semnalele sociale. Include o defalcare pe componente și istoric pe 24 de ore pentru analiza trendului.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symbolopțional | string | Simbolul activului. Implicit: BTC |
Exemplu de răspuns
"symbol": "BTC",
"score": 72,
"label": "Lăcomie",
"components": {
"volatilitate": 65,
"momentum": 78,
"derivate": 70,
"activitate_balene": 75,
"social": 68
},
"istoric_24h": [
{ "ts": 1710940800, "score": 68, "label": "Lăcomie" },
{ "ts": 1710937200, "score": 65, "label": "Lăcomie" }
],
"ts": 1710940821
}
Integrări
GET /tradingview/setup
Returnează configurația personalizată de integrare TradingView: URL webhook, secret pentru validare și indicatori Pine Script gata de utilizare care se conectează direct la Smart Money API. Copiază și lipește Pine Script în TradingView pentru a suprapune semnalele noastre pe orice grafic.
Exemplu de răspuns
"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
Primește o alertă TradingView, o procesează /confirm, și returnează confirmarea. TradingView nu poate trimite antete personalizate, așa că autentifică-te prin includerea webhook-ului tău secret în corpul JSON (acest endpoint nu folosește X-API-Key). Răspunsul înfășoară confirmarea și adaugă un nivel superior action de CONFIRMED (încredere daemon HIGH/MEDIUM) sau VETOED.
Corpul cererii
"secret": "your_webhook_secret",
"symbol": "BTC",
"direction": "long",
"timeframe": "1h",
"strategy": "EMA crossover",
"price": 67500.0
}
Necesită: secret, symbol, direction (long|short). Opțional: source, timeframe, strategy, price.
Personalizare
GET /preferences
Returnează setările curente de personalizare, inclusiv parametrii impliciți ai tranzacțiilor, profilul de risc, lista de urmărire și preferințele de notificări.
Actualizează preferințele trimitând un corp JSON cu orice subset de câmpuri de mai jos. Câmpurile omise își păstrează valorile curente.
Câmpuri de preferință
| Câmp | Tip | Descriere |
|---|---|---|
| default_trade_size_usd | float | Dimensiunea implicită a poziției în USD pentru calculele Kelly și smart-stop |
| risk_tolerance | string | conservative, moderate, sau aggressive |
| default_risk_pct | float | Riscul implicit pe tranzacție ca % din cont. Folosit de /smart-stop când risk_pct este omis |
| watchlist | array | Listă ordonată de simboluri de active, de ex. ["BTC","ETH","SOL"] |
| notification_email | string | Adresa de email pentru livrarea alertelor |
| timezone | string | Șir IANA de fus orar, de ex. America/New_York |
"default_trade_size_usd": 5000,
"risk_tolerance": "moderat",
"default_risk_pct": 1.5,
"watchlist": ["BTC", "ETH", "SOL"]
}
GET /watchlist
Returnează o imagine de ansamblu a stării de confirmare și metrici cheie de risc pentru toate simbolurile din lista de urmărire configurată. Oferă o vedere generală multi-activ fără a fi nevoie să apelezi /confirm separat pentru fiecare simbol.
Exemplu de răspuns
"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"
}
]
}
Transmisie în timp real (Live Swaps)
Transmite swap-uri DEX ≥ $500 detectate în timp real de la nodurile noastre proprii BSC și Avalanche. Sunt disponibile două metode de transport: un flux public Server-Sent Events (SSE) pentru clienți gratuiti/navigatoare și un flux WebSocket de latență redusă pentru nivelurile plătite. Evenimentele sunt difuzate în câteva secunde de la includerea într-un bloc.
Flux SSE Public (Gratuit)
Nu este necesară autentificare. Suport nativ EventSource în toate browserele moderne. Serverul emite swap evenimente și semnale periodice pentru a menține conexiunea activă.
es.addEventListener("swap", e => {
const swap = JSON.parse(e.data);
console.log(swap.chain, swap.pair, swap.amount_usd);
});
WebSocket Firehose (Plătit)
Autentificare (recomandat): nu introduceți niciodată cheia dumneavoastră de lungă durată în URL — aceasta este înregistrată de proxy-uri și salvată în istoricul browserului. În schimb, trimiteți cheia dumneavoastră prin POST către /v1/ws/ticket folosind siguranța X-API-Key antetului, apoi deschideți conexiunea cu ticket (valabil ~60s, utilizat o singură dată). Clienții de pe partea de server care pot seta antete pot transmite X-API-Key direct în timpul handshake-ului. Cheile de nivel gratuit primesc un 402 payment_required răspuns. Un hello cadru este trimis la conectare cu nivelul dumneavoastră și pragul de difuzare.
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. Deschide conexiunea WebSocket cu biletul de unică folosință
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);
};
Autentificare WebSocket (bilete)
De ce: nu introduceți niciodată cheia API într-un URL WebSocket — interogările sunt înregistrate de proxy-uri, balanțe de încărcare și salvate în istoricul browserului. În schimb, schimbați cheia pentru un bilet cu durată scurtă și de unică folosință printr-un POST autentificat normal, apoi conectați-vă cu acel bilet.
Flux: POST către /v1/ws/ticket cu antetul dumneavoastră X-API-Key → primiți { "ticket": "…", "expires_in": 60 }. Apoi deschideți wss://api.smartmoneyapi.com/v1/ws/live-swaps?ticket=<ticket>. Biletul este de unică folosință și expiră în ~60 de secunde. Clienții server-side care pot seta headere de solicitare pot trece X-API-Key direct în handshake-ul WebSocket — nu este necesar bilet.
Generează un bilet de unică folosință pentru un handshake WebSocket autentificat. Autentifică-te cu X-API-Key headerul (cheia ta nu părăsește niciodată headerele solicitării). Biletul returnat poate fi folosit o singură dată pe /v1/ws/live-swaps înainte să expire.
"https://api.smartmoneyapi.com/v1/ws/ticket"
Exemplu de Răspuns
"ticket": "wst_9f3c1a8e4b2d…",
"expires_in": 60
}
Câmpuri de Răspuns
| Câmp | Tip | Descriere |
|---|---|---|
| ticket | string | Token de unică folosință de adăugat ca ?ticket= în URL-ul WebSocket. Folosit o dată, apoi invalidat. |
| expires_in | number | Secunde până la expirarea biletului (~60). Generează un bilet nou la fiecare încercare de conexiune. |
Notă: vechiul ?key= parametru de autentificare prin query nu mai este acceptat pe endpoint-urile WebSocket din motive de securitate. Folosește un bilet (clienții browser) sau X-API-Key headerul de handshake (clienții server-side).
Snapshot REST
Returnează ultimele N swap-uri difuzate din bufferul rulant. Util pentru prima afișare pe panouri înainte de deschiderea conexiunii de stream. De asemenea disponibil: /v1/live-swaps/status pentru statistici de difuzor.
Schema Eveniment
| Câmp | Tip | Descriere |
|---|---|---|
| chain | string | bsc sau avalanche |
| dex | string | Numele routerului (de ex. pancakeswap_v2, traderjoe) sau unknown_dex |
| swapper | string | Adresa 0x completă a portofelului care a executat swap-ul |
| swapper_short | string | Forma abreviata pentru afișare (de ex. 0xb300…028d) |
| swapper_url | string | Link direct către swapper pe block explorer-ul lanțului |
| tx_hash | string | Hash-ul tranzacției |
| explorer_url | string | Link direct către tranzacție pe BscScan / Snowtrace |
| token_in | string | Simbolul token-ului vândut (de ex. USDT) |
| token_out | string | Simbolul token-ului cumpărat |
| amount_usd | number | Valoarea în USD a swap-ului (minimum: $500) |
| pair | string | Eticheta de pereche formatată (de ex. USDT → USDC) |
| block | number | Numărul blocului în care swap-ul a fost minat |
| timestamp | number | Secunde de la epoch Unix |
| significance | string | low / medium / high / critical bazat pe dimensiunea în USD |
| seq | number | Număr de secvență de difuzare monoton — folosit pentru detectarea golurilor |
POST /alerts/conditions
Creează reguli personalizate de alertă care se declanșează atunci când o metrică specificată depășește un prag. Alertile sunt livrate prin webhook, e-mail sau fluxul de notificări din panou, în funcție de preferințele tale.
Returnează o listă cu toate condițiile tale de alertă configurate, cu ID-urile, definițiile și starea curentă.
Elimină definitiv o condiție de alertă după ID-ul său.
Returnează evenimente recente de declanșare a alertelor cu marcaje temporale, condiții potrivite și valoarea metricii la momentul declanșării.
Creare Alertă — Corpul Solicitării
| Câmp | Tip | Descriere |
|---|---|---|
| numeobligatoriu | string | Etichetă ușor de înțeles pentru această alertă (max 64 caractere) |
| metricobligatoriu | string | Metrica de monitorizat. Consultați tabelul cu metrici disponibile mai jos. |
| symbolopțional | string | Contextul activului. Necesar pentru metricile specifice simbolului, cum ar fi funding_rate. |
| operatorobligatoriu | string | Operator de comparație: gt, lt, eq, crosses_above, crosses_below |
| thresholdobligatoriu | float | Valoare numerică cu care se compară metrica |
| deliveryopțional | string | Canal de livrare, de ex. telegram (implicit) sau webhook |
| cooldown_minutesopțional | integer | Numărul minim de minute între retriggerări (implicit 60) |
Lista actuală de metrici și operatori valabili este returnată de GET /v1/alerts/conditions ca available_metrics și available_operators.
Metrici Disponibile
| Metrică | Descriere |
|---|---|
| funding_rate | Rata de finanțare curentă pentru simbol (ca zecimal) |
| global_lsr | Raportul global lung/scurt pentru simbol |
| long_pct | Procentul de conturi cu poziții net long pentru simbol |
| top_trader_lsr | Raportul lung/scurt al traderilor de top pentru simbol |
| taker_ratio | Raportul cumpărări/vânzări taker pentru simbol |
| mvrv | Raportul Valoare de Piață la Valoare Realizată (BTC/ETH) |
| sopr | Raportul de Profit al Output-ului Cheltuit (BTC/ETH) |
| exchange_net_flow | Semnal de flux net pe chain pentru schimb |
| accumulation | Semnal de acumulare pe chain |
| whale_long_pct | Procentul de portofele urmărite de balene cu poziții long pentru simbol |
| whale_n_wallets | Numărul de portofele urmărite de balene cu o poziție în simbol |
| composite_long | Scor compozit pentru simbol interogat în direcția long |
| composite_short | Scor compozit pentru simbol interogat în direcția short |
| funding_spread | Diferența de finanțare între platforme pentru simbol |
"name": "BTC funding rate spike",
"metric": "funding_rate",
"symbol": "BTC",
"operator": "gt",
"threshold": 0.05
}
GET /kelly
Returnează recomandări de dimensionare a poziției conform Criteriului Kelly, calibrate la performanța istorică a semnalului pentru simbolul dat, nivelul de încredere și direcție. Bazează dimensiunea poziției pe rate de succes empirice pentru a evita supra-leverajul.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symbolobligatoriu | string | Simbolul activului: BTC, ETH, sau SOL |
| confidenceopțional | string | Nivelul de încredere al semnalului de modelat: HIGH, MEDIUM, sau LOW. Implicit: HIGH |
| directionopțional | string | Direcția tranzacției: long sau short. Implicit: long |
| account_sizeopțional | float | Dimensiunea contului în USD pentru calcularea suggested_size_usd. Implicit: 10000 |
Exemplu de Răspuns
"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 recomandat pentru tranzacționarea live pentru a ține cont de erorile de estimare."
}
GET /performance
Returnează statistici istorice de acuratețe pentru semnalele emise de API, clasificate pe niveluri de încredere. Util pentru înțelegerea fiabilității semnalelor înainte de a angaja capital.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| symboloptional | string | Filtrează după activ. Omiteți pentru statistici agregate pe toate simbolurile. |
| daysoptional | integer | Fereastră de retrospectivă în zile. Implicit: 30 |
Exemplu de răspuns
"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 }
}
}
Statistici & Semnale
GET /v1/stats
Statistici de performanță oneste la nivel de site, provenite din smart_money_confirm rezultate distinct-call. Returnează rate de succes la niveluri de încredere ÎNALT și MEDIU, acuratețe generală, factor de profit și o defalcare pe simbol. Toate cifrele sunt în eșantion în perioada de scor; consultați calibration.html pentru context și metodologia de forward-holdout.
Exemplu de răspuns
"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 este singurul număr acumulat pe date pe care scorul nu le-a văzut niciodată — urmăriți-l cum crește în timp. Consultați calibration.html pentru metodologia completă și granița dintre în eșantion / testare înainte.GET /v1/signals/performance
Urmărirea rezultatelor semnalelor pe multiple orizonturi de rezoluție (4h, 12h, 24h, 72h). Returnează rate de succes pe orizont, număr total de semnale și o defalcare după tipul de semnal.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| daysoptional | integer | Fereastră de retrospectivă în zile. Implicit: 30 |
| signal_typeoptional | string | Filtrează după tip, de ex. smart_money_confirm or regime_flip. Omiteți pentru toate tipurile. |
| symboloptional | string | Filtrează după simbolul activului, de ex. BTC. Omiteți pentru agregare pe toate simbolurile. |
Exemplu de răspuns
"signal_type": "smart_money_confirm",
"symbol": "BTC",
"days": 30,
"total_signals": 48,
orizonturi: {
4h: { rata_de_succes: 0.65, rezolvate: 46 },
12h: { rata_de_succes: 0.61, rezolvate: 44 },
24h: { rata_de_succes: 0.58, rezolvate: 40 },
72h: { rata_de_succes: 0.54, rezolvate: 32 }
},
defalcare_pe_tipuri: {
confirmare_smart_money: { număr: 35, rata_de_succes_24h: 0.61 },
schimbare_de_regim: { număr: 13, rata_de_succes_24h: 0.47 }
}
}
GET /v1/signals/recent
Flux de semnale HIGH și MEDIUM publicate recent pentru toate simbolurile monitorizate. Fiecare intrare include tipul de semnal, nivelul de încredere, direcția și starea de rezoluție, unde este disponibilă.
Exemplu de răspuns
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
Rezultatul rezolvat pentru un singur semnal după ID-ul său numeric. Returnează hit/miss pentru fiecare orizont de rezoluție (4h, 12h, 24h, 72h) împreună cu prețul la momentul semnalului și la rezoluție.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| idrequired | integer | ID-ul semnalului (segment de cale), de ex. /v1/signals/1042/outcome |
Exemplu de răspuns
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
Defalcarea ratei de succes pentru semnalele de confirmare pentru cheia API a utilizatorului autentificat. Returnează rate de succes distincte pentru fiecare nivel de încredere, factor de profit și cifre pe simbol. Necesită un header valid. X-API-Key header.
Exemplu de cerere
"https://api.smartmoneyapi.com/v1/confirm-winrate"
Exemplu de răspuns
high_winrate: 0.714,
high_n: 14,
medium_winrate: 0.530,
mediu_n: 34,
acuratețe_totală: 0.613,
total_n: 48,
factor_profit: 1.77,
rata_de_succes_orizont: 24h,
pe_simbol: {
BTC: { rata_de_succes: 0.68, n: 22 },
ETH: { rata_de_succes: 0.55, n: 18 }
}
}
Poarta Umbră
Un registru personal imuabil și doar de adăugare pentru decizii. Trimite deciziile tale de tranzacționare înainte sau după executarea lor; sistemul calculează un scor de confirmare împotriva motorului Smart Money și adaugă un rând permanent. Folosește-l pentru a construi un istoric onest și marcat temporal al modului în care semnalul API-ului s-a aliniat cu intrările tale — complet independent de pool-ul global de rate de succes. Răspunsurile pentru nivelurile Gratuit și Trader au câmpurile de dovezi eliminate; Pro returnează detalierea completă. O întârziere de nivel se aplică datelor de la nivelul Gratuit.
Trimite o decizie. Idempotent pe Idempotency-Key antetul cererii — retrimiterea aceleiași chei returnează rândul existent fără a crea un duplicat. Sistemul apelează imediat motorul de confirmare și adaugă rezultatul ca un rând imuabil în registru.
Corpul Cererii
| Câmp | Tip | Descriere |
|---|---|---|
| symbolobligatoriu | string | Simbolul activului, de ex. BTC |
| sideobligatoriu | string | Direcția tranzacției: long sau short |
| strategy_idopțional | string | Etichetă de strategie definită de apelant (maxim 64 de caractere). Stocată așa cum este pentru grupare și filtrare. |
Exemplu de Cerere
-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"
Exemplu de Răspuns
"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 câmpurile de dovezi. Pro returnează detalierea completă de confirmare. O întârziere de nivel se aplică la nivelul Gratuit — rândul este scris imediat, dar scorul de confirmare poate reflecta date din cache vechi de până la 60 de secunde.Listează deciziile tale din Poarta Umbră, cele mai noi primele. Limitare de proprietar — sunt returnate doar deciziile trimise de cheia ta de API.
Parametri
| Parametru | Tip | Descriere |
|---|---|---|
| limitopțional | integer | Numărul maxim de rânduri de returnat. Implicit: 50, maxim: 200 |
| cursoropțional | string | Cursor de paginare opac dintr-un răspuns anterior din câmpul next_cursor . Omite pentru prima pagină. |
Exemplu de Răspuns
"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": scurt, decizie: SKIP, încredere: LOW, compus: -0.12, size_mult: 0.0, ts: 1710937000, rezolvat: True }
],
număr: 2,
next_cursor: None
}
Decizie individuală după ID, inclusiv dovada completă de confirmare pentru nivelul Pro. Răspunsurile pentru nivelurile Free și Trader au factors și adjustments eliminate. Returnează 403 dacă decizia aparține unei alte chei API.
Exemplu de răspuns (Pro)
"id": 318,
"symbol": "BTC",
"side": "long",
"strategy_id": "ema_crossover",
"decision": "CONFIRM",
"confidence": "HIGH",
"composite": 0.74,
"size_mult": 1.5,
"factors": {
"derivatives": { "score": 0.81, "weight": 0.40, "weighted": 0.324 },
"onchain": { "score": 0.68, "weight": 0.35, "weighted": 0.238 },
"whale": { "score": 0.73, "weight": 0.25, "weighted": 0.183 }
},
"ts": 1710940821,
"resolved": False,
"outcome": None
}
Rezolvă manual rezultatul unei decizii. Apelază această funcție după închiderea tranzacției pentru a înregistra rezultatul final în registru. Odată rezolvată, intrarea este imuabilă și nu poate fi modificată din nou.
Corpul cererii
| Câmp | Tip | Descriere |
|---|---|---|
| "outcome"obligatoriu | șir de caractere | Rezultatul tranzacției: win sau loss |
| "exit_price"opțional | număr real | Prețul de ieșire pentru tranzacție. Stocat pentru referință; folosit pentru a calcula profitul/pierderea procentuală dacă este furnizat. |
| "pnl_pct"opțional | număr real | Profitul/pierderea realizată ca procent din mărimea poziției, de ex. 3.5 sau -1.2 |
Exemplu de răspuns
"id": 318,
"resolved": True,
"outcome": "win",
"exit_price": 65800.0,
"pnl_pct": 4.1,
"resolved_at": 1711027200
}
Coduri de eroare
| Stare | Cod | Descriere |
|---|---|---|
| 400 | "invalid_params" | Parametri de interogare lipsă sau nevalizi |
| 401 | "unauthorized" | Cheie API lipsă sau nevalidă |
| 403 | "plan_restriction" | Endpoint indisponibil pentru planul curent |
| 429 | "rate_limit_exceeded" | Limită zilnică sau de explozie atinsă |
| 500 | "internal_error" | Eroare de server — verifică /health pentru starea sursei |
| 503 | "data_stale" | Sursa de date indisponibilă; returnată cu ultimele date cunoscute |
Exemple de cod
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()
# În bucla de tranzacționare:
signal = confirm_trade("BTC", "long")
if signal["confidence"] not in ["HIGH", "MEDIUM"]:
print("Omite — încredere insuficientă")
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(`Eroare API: ${resstatus}`);
return res.json();
}
// Utilizare
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"
# Obține date despre balene
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/whales?symbol=BTC"
# Verifică utilizarea
curl -X GET \
-H X-API-Key: sm_your_key \
https://api.smartmoneyapi.com/v1/usage
Integrare Freqtrade
Adăugați confirmarea Smart Money la orice strategie Freqtrade prin suprascrierea metodei. confirm_trade_entry metoda.
din freqtrade.strategy import IStrategy
clasa 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]
dacă symbol nu este în ["BTC", "ETH", "SOL"]:
return True # Sari peste verificare pentru nesuportate
încearcă:
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") în ["HIGH", "MEDIUM"]
except:
return True # Eșec deschis la eroare API
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):
# Verifică mai întâi confirmarea
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"Omitting {symbol} {side} — încredere insuficientă.")
return None
adj_amount = amount * conf["size_mult"]
order = exchange.create_market_order(
f"{symbol}/USDT", side, adj_amount
)
print(f"Comandă plasată: {adj_amount} {symbol} {side}")
return order
Verifică pagina de status API pentru informații în timp real despre sănătate, sau folosește formularul de contact.