Referensi API

Smart Money API

API intelijen tingkat profesional yang mengagregasi data derivatif, metrik on-chain, dan aktivitas dompet paus menjadi satu skor kepercayaan untuk bot trading Anda.

Versi API saat ini: v1. URL Dasar: https://api.smartmoneyapi.com/v1

Prinsip desain

Empat ide membentuk setiap endpoint dan setiap skor yang dikembalikan API ini. Mereka juga merupakan batasan jujur dari apa yang dijanjikan — dan tidak dijanjikan.

Strategi-pertama, bukan sinyal-pertama. Ini bukan umpan sinyal beli/jual. Anda membawa strategi dan entri; API memberi tahu apakah struktur pasar sekitar — posisi derivatif, pendanaan, open interest, likuidasi, aliran on-chain, dan konsensus paus — setuju dengan trade yang sudah ingin Anda lakukan.

Skor kepercayaan, bukan prediksi biner. Setiap jawaban membawa nilai bertingkat confidence (TINGGI / SEDANG / RENDAH) dan composite dari -1.0 hingga +1.0. Tidak ada jaminan dan tidak ada panggilan oracle — Anda mendapatkan pembacaan terkalibrasi tentang kesepakatan, dengan alasan di baliknya, sehingga Anda dapat menyesuaikan ukuran proporsional dengan keyakinan.

Dukungan keputusan, bukan nasihat eksekusi. API mengembalikan rekomendasi KONFIRMASI / KURANGI / LEWATI dan pengali ukuran untuk Anda logika untuk bertindak. Ini tidak pernah menempatkan pesanan, dan tidak ada di sini yang merupakan nasihat keuangan. Anda tetap bertanggung jawab atas risiko, ukuran, dan eksekusi.

Metrik hidup, bukan jaminan tetap. Tingkat kemenangan, statistik rezim, dan angka akurasi dihitung dari sampel bergulir dan bergerak saat pasar bergerak. Kami mempublikasikannya dengan jujur, termasuk saat mereka biasa-biasa saja. Perlakukan setiap metrik sebagai observasi saat ini, bukan janji tentang masa depan.

Untuk siapa API ini

API ini dibangun untuk pengembang bot, algo, dan agen-AI kripto yang sudah memiliki sinyal long/short — dari strategi TA, model ML, pipa Freqtrade, alert TradingView, atau agen LLM — dan ingin keputusan KONFIRMASI / KURANGI / LEWATI cepat sebelum mengalokasikan modal.

Loop khas: strategi Anda memicu "long BTC" → Anda memanggil GET /v1/confirm?symbol=BTC&direction=long → Anda mengonfirmasi, mengurangi, atau melewatkan entri dan menyesuaikan ukuran dengan size_mult. Satu panggilan, respons JSON latensi rendah tunggal, tidak ada infrastruktur tambahan.

Ini bukan generator sinyal mandiri, produk charting, atau tempat eksekusi. Jika Anda tidak memiliki sinyal sendiri untuk digate, mulailah dengan halaman kinerja untuk melihat bagaimana skor berperilaku sebelum menghubungkannya ke bot live.

Mendapatkan akses

1 — Daftar. Buat akun gratis di signup (email/kata sandi atau Google). Tidak perlu kartu kredit untuk tier gratis.

2 — Buka dashboard Anda. Anda dashboard menunjukkan kunci API, paket saat ini, dan penggunaan live terhadap kuota harian Anda.

3 — Salin kunci API Anda. Kunci diawali sm_. Sertakan sebagai X-API-Key header pada setiap permintaan (lihat Autentikasi). Tingkatkan kapan saja di halaman harga untuk meningkatkan batasan dan membuka lebih banyak simbol dan endpoint.

Spesifikasi, SDK & Buku Resep

Semua yang Anda butuhkan untuk mengintegrasikan dengan cepat, baik Anda menulis kode sendiri atau menyerahkannya ke agen coding.

Sumber DayaApa itu
Buku ResepResep salin-tempel untuk integrasi paling umum — konfirmasi sebelum masuk, gerbang sinyal Freqtrade, ukuran berdasarkan pengali, tangani 402/429, dan sambungkan ke agen coding.
Spesifikasi OpenAPIDefinisi OpenAPI yang dapat dibaca mesin dari setiap endpoint. Impor ke Postman/Insomnia, buat klien, atau berikan ke LLM. Di github.com/tashiardit/smartmoneyapi-docs.
Klien PythonPustaka klien Python resmi di github.com/tashiardit/smartmoneyapi-python.
/llms.txtRingkasan API dalam teks biasa yang ramah LLM. Arahkan Claude, Codex, atau Cursor ke sana (lihat Agen Coding).

Mulai cepat dalam 2 menit

Langkah 1 — URL Dasar. Setiap endpoint berada di bawah:

URL Dasar
https://api.smartmoneyapi.com

Langkah 2 — Dapatkan kunci API Anda. Daftar gratis (tanpa kartu kredit diperlukan) dan salin kunci Anda dari dashboard. Gunakan sebagai X-API-Key header pada setiap permintaan.

Langkah 3 — Panggilan pertama Anda. Tempelkan ini ke terminal Anda dan ganti sm_your_key dengan kunci dari dashboard Anda:

cURL
curl -H "X-API-Key: sm_your_key" "https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"

Respons yang diharapkan:

JSON
{
"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": ["Tingkat pendanaan positif di semua venue", "Paus: 67% konsensus long"]
}

Ketika confidence adalah HIGH atau MEDIUM dan action adalah CONFIRM, skalakan ukuran posisi Anda dengan size_mult. Itulah seluruh lingkaran integrasi. Lihat Kolom Respons untuk referensi lengkap kolom.

Autentikasi

Semua permintaan memerlukan kunci API yang diberikan sebagai X-API-Key header HTTP.

Header HTTP
X-API-Key: sm_your_api_key_here

Kunci API Anda tersedia dari dashboard setelah mendaftar. Jaga kerahasiaan kunci Anda — jangan tampilkan di kode klien atau repositori publik.

Autentikasi WebSocket berbeda. Jangan pernah memasukkan kunci Anda di URL WebSocket. Aliran real-time menggunakan tiket: POST kunci Anda ke /v1/ws/ticket dengan X-API-Key header, lalu hubungkan dengan tiket yang dikembalikan. Lihat Autentikasi WebSocket (tiket).

Masuk dengan Google (Firebase Auth)

Pengguna dapat mengautentikasi menggunakan akun Google mereka melalui Firebase Authentication. Setelah berhasil masuk dengan Google di klien, tukarkan token ID Firebase untuk sesi API yang terhubung. Sistem secara otomatis menyinkronkan identitas Google Anda dengan sistem kunci API.

Tersedia untuk: Gratis Trader Pro
POST /auth/google

Badan Permintaan

KolomTipeDeskripsi
id_tokenwajibstringToken ID Firebase yang diperoleh setelah masuk dengan Google di klien

Contoh Respons

JSON
{
"api_key": "sm_your_linked_key",
"uid": "firebase_uid_abc123",
"email": "[email protected]",
"plan": "trader",
"synced": true
}
Data profil pengguna — email, paket, riwayat penggunaan, preferensi — disimpan di Firestore dan terhubung ke akun Google Anda. Ekspor data lengkap atau penghapusan akun dapat diminta kapan saja melalui Pengaturan Privasi di dashboard.

Batas Laju

PaketPanggilan/HariBatas LedakanPenundaan Data
Gratis502/menit60 detik
Trader1,00020/menitReal-time
Pro5,00060/menitReal-time
Enterprise100,000400/menitReal-time

Header batas kecepatan disertakan dalam setiap respons: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

URL Dasar

https://api.smartmoneyapi.com/v1

Semua endpoint di bawah ini relatif terhadap URL dasar ini. Semua respons adalah JSON dengan Content-Type: application/json.

Kesalahan

Kesalahan menggunakan kode status HTTP standar dan badan JSON yang konsisten. Selalu cabangkan berdasarkan kode status, bukan teks respons. Tiga yang paling sering Anda temui:

StatusKodeArti & tindakan yang harus dilakukan
401unauthorizedKunci API tidak ada atau tidak valid. Periksa X-API-Key header ada dan benar.
402payment_requiredEndpoint atau simbol memerlukan paket yang lebih tinggi daripada yang dimiliki kunci Anda (misalnya, kunci gratis yang memanggil WebSocket firehose). Upgrade atau kembali ke endpoint publik.
429rate_limit_exceededBatas harian atau ledakan tercapai. Mundur dan coba lagi setelah X-RateLimit-Reset; jangan memaksa.

Setiap kesalahan mengembalikan bentuk yang sama:

JSON
{
"error": "rate_limit_exceeded",
"message": "Batas harian 100 panggilan tercapai. Direset pada 00:00 UTC.",
"status": 429
}

Untuk daftar lengkap kode status (400 / 403 / 500 / 503 dan lainnya), lihat Kode Kesalahan. Integrasi yang kuat memperlakukan 5xx dan 429 sebagai sementara (coba lagi dengan backoff) dan 401/402/403 sebagai terminal (perbaiki kunci atau paket).

Praktik keamanan terbaik

Kirim kunci dalam header, bukan URL. Selalu kirim X-API-Key sebagai header HTTP. Kunci dalam string kueri (?key=) dicatat oleh proxy, load balancer, dan riwayat browser — autentikasi ?key= legacy tidak lagi diterima di endpoint WebSocket karena alasan ini.

Simpan kunci di sisi server. Jangan pernah menyematkan kunci API di JavaScript sisi klien, bundel aplikasi seluler, atau repositori publik. Muat dari variabel lingkungan atau manajer rahasia. Jika kunci bocor, putar.

Putar kunci secara berkala. Buat ulang kunci Anda dari dashboard sesuai jadwal dan segera jika Anda curiga ada paparan. Kunci lama berhenti bekerja saat kunci baru diterbitkan.

Gunakan tiket untuk soket browser. Untuk aliran real-time dari browser, tukar kunci Anda dengan tiket sekali pakai alih-alih terhubung dengan kunci mentah — lihat Autentikasi WebSocket (tiket).

Penggunaan dengan agen pengkodean / LLM

Membangun dengan Claude Code, Codex, Cursor, atau agen pengkodean LLM? Anda dapat memberikan semua yang diperlukan agen untuk menyambungkan API ini dengan benar sekaligus. Dua referensi yang dapat dibaca mesin diterbitkan:

Sumber DayaURL
Ringkasan LLMhttps://smartmoneyapi.com/llms.txt
Spesifikasi OpenAPIgithub.com/tashiardit/smartmoneyapi-docs

Arahkan agen Anda ke /llms.txt file (konvensi llms.txt) untuk ikhtisar singkat, lalu spesifikasi OpenAPI untuk bentuk permintaan/respons yang tepat. Satu baris perintah yang berfungsi baik:

Prompt
# Tempel ke Claude Code / Cursor / Codex
Baca https://smartmoneyapi.com/llms.txt dan spesifikasi OpenAPI di
github.com/tashiardit/smartmoneyapi-docs, lalu tambahkan pemeriksaan pra-perdagangan
ke bot saya yang memanggil GET /v1/confirm dan melewati entri
kecuali aksi adalah CONFIRM.

Lihat Buku Resep untuk resep agen pengkodean yang sudah dikerjakan.

Endpoint

GET  /confirm

Endpoint inti. Mengembalikan skor kepercayaan komposit dan rekomendasi aksi untuk arah perdagangan tertentu. Panggil ini sebelum memasuki posisi apa pun.

Cakupan, dalam istilah sederhana. /confirm saat ini mencakup BTC, ETH dan SOL — simbol dengan riwayat yang cukup untuk dikonfirmasi dengan jujur. Pemeriksa derivatif secara terpisah memantau ~519 pasar derivatif untuk data pendanaan, OI, dan likuidasi, dan pelacakan paus mencakup 600+ dompet. Pro membuka kunci pemeriksa penuh, ekspor, dan cakupan pasar yang lebih luas; /confirm dukungan simbol diperluas saat setiap pasar mengumpulkan rekam jejak yang andal.

Parameter

ParameterTipeDeskripsi
symbolwajibstringSimbol aset. Salah satu: BTC, ETH, SOL (Trader+)
directionwajibstringArah perdagangan: long atau short
sourceopsionalstringLabel untuk sumber sinyal Anda (dicatat untuk analitik). Maks 32 karakter.

Contoh Permintaan

cURL
curl -H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"

Contoh Respons

JSON
{
"ts": 1710940821,
"symbol": "BTC",
"direction": "long",
"composite": 0.74,
"confidence": "TINGGI",
"action": "KONFIRMASI_PENUH",
"size_mult": 1.5,
deriv_score: 0.81,
onchain_score: 0.68,
whale_score: 0.73,
x_score: 0.0,
faktor: {
derivatif: { skor: 0.81, bobot: 0.40, terbobot: 0.324 },
onchain: { skor: 0.68, bobot: 0.35, terbobot: 0.238, sumber: coinmetrics, tersedia: True },
paus: { skor: 0.73, bobot: 0.25, faktor_kadaluarsa: 1.0, terbobot: 0.183 }
},
penyesuaian: { kesepakatan: 0.0, trend: 0.0, berita_makro: 0.0 },
bobot: { derivatif: 0.40, onchain: 0.35, whale_intel: 0.25 },
cakupan: { derivatif: True, paus: True, onchain: True },
alasan: [
Tingkat pendanaan positif di semua venue,
LSR mendukung long: 1.42,
Paus: 67% konsensus long,
MVRV di atas 1.0 — on-chain bullish
]
}

Transparan oleh desain. Setiap respons membawa factors objek yang menunjukkan skor × bobot = terbobot kontribusi, sebuah adjustments objek untuk penyesuaian pasca-filter, weights yang digunakan, dan sebuah coverage peta. Kaki on-chain menggunakan data Coin Metrics gratis nyata (MVRV / aliran-pertukaran / alamat-aktif) saat tidak ada kunci Glassnode yang ditetapkan. Ini adalah pertemuan multi-faktor skor — dukungan keputusan, bukan jaminan tingkat kemenangan.

Simbol yang tidak dilacak adalah jujur. Simbol di luar alam semesta derivatif/paus yang dilacak mengembalikan "confidence":"NO_DATA" / "action":"NO_DATA_SKIP" dengan "unsupported":true — bukanlah hasil yang dibuat-buat LOW.

Kolom Respons

KolomTipeDeskripsi
tsintegerStempel waktu Unix dari perhitungan
simbolstringSimbol aset (BTC/ETH/SOL)
arahstringArah yang diminta (long/short)
kompositfloatSkor pertemuan komposit dari -1.0 (ekstrem kontra) hingga +1.0 (konfirmasi kuat). Bukan tingkat kemenangan.
base_compositefloatKomposit sebelum penyesuaian pasca-filter diterapkan
keyakinanstringHIGH / MEDIUM / LOW / VETO / NO_DATA
tindakanstringCONFIRM_FULL / CONFIRM_REDUCED / CONFIRM_MINIMAL / VETO_SKIP / NO_DATA_SKIP
size_multfloatPengganda ukuran posisi yang disarankan (mis. 0.0 – 1.5)
tidak_didukungbooltrue ketika simbol berada di luar cakupan (dipasangkan dengan NO_DATA)
deriv_scorefloatSub-skor derivatif (-1 hingga 1)
onchain_scorefloatSub-skor on-chain (-1 hingga 1)
whale_scorefloatSub-skor konsensus paus (-1 hingga 1)
x_scorefloatSub-skor X/sentimen-sosial (-1 hingga 1); 0 saat tidak digunakan
faktorobjekPembagian per kaki: score × weight = weighted untuk derivatif / onchain / paus / x_sentiment (onchain mencakup source)
penyesuaianobjekPenyesuaian pasca-filter bertanda (kesepakatan, trend, rsi_1h, berita_makro, momentum, waktu_hari, peluruhan_streak)
bobotobjekSet bobot yang benar-benar digunakan untuk evaluasi ini
cakupanobjek{derivatives, whale, onchain} — kaki mana yang memiliki data nyata
alasanarrayString penjelasan yang dapat dibaca manusia untuk skor

GET  /snapshot

Mengembalikan snapshot pasar lengkap termasuk semua sub-skor, metrik mentah, dan nilai indikator untuk simbol tertentu. Berguna untuk dasbor dan pencatatan.

Memerlukan: Trader Pro

GET  /onchain

Mengembalikan metrik on-chain mentah: MVRV, SOPR, aliran bersih exchange, rasio realized cap, dan klasifikasi posisi siklus.

Memerlukan: Trader Pro

GET  /v1/derivatives/*

Screener derivatif lintas exchange untuk 500+ simbol: heatmap funding-rate, peringkat open-interest, dan deteksi sinyal long/short-ratio. 10 baris teratas bersifat publik; screener lengkap memerlukan Trader atau Pro. Endpoint: /v1/derivatives/screener, /v1/derivatives/funding, /v1/derivatives/oi, /v1/derivatives/signals.

GET  /v1/options/*

Analitik opsi BTC & ETH sumber Deribit (publik, tanpa autentikasi): rasio put/call, max pain, dan open interest per strike. Endpoint: /v1/options/summary, /v1/options/pcr, /v1/options/oi.

GET  /v1/etf/*

Aliran bersih harian ETF BTC & ETH spot dan rincian per-dana (publik). Endpoint: /v1/etf/flows, /v1/etf/funds.

GET  /v1/historical/*

Data historis funding, open interest, long/short ratio (Binance), dan OHLCV (CoinGecko) untuk backtesting. Endpoint: /v1/historical/funding, /v1/historical/oi, /v1/historical/lsr, /v1/historical/ohlcv.

GET  /v1/dex/*

Pasangan trending berbasis DexScreener, pencarian token, dan detail pasangan (publik, tanpa autentikasi). Endpoint: /v1/dex/trending, /v1/dex/search, /v1/dex/token, /v1/dex/pair.

GET  /v1/news/*

Intelijen berita: berita kebijakan/geopolitik/kripto yang diklasifikasikan ke dalam kategori dampak, plus Fear & Greed (publik, tanpa autentikasi). Endpoint: /v1/news/trump, /v1/news/general, /v1/news/impact, /v1/news/fear-greed.

GET  /whales

Mengembalikan data konsensus dompet paus: pembagian long/short, total eksposur notional, 10 posisi teratas (hanya Pro), dan jumlah dompet.

Memerlukan: Trader Pro

GET  /signals

Mengembalikan aliran sinyal HIGH/MEDIUM terbaru di semua aset yang dipantau. Berguna untuk pemindaian peluang.

Memerlukan: Pro

GET  /v1/strategies/*

Rekam jejak transparan dan hanya-baca untuk strategi trading otomatis yang dieksekusi berdasarkan sinyal Smart Money — termasuk deriv40 Strategi SmartMoney Copytrade (account=9). Semua endpoint menerima parameter ?account=<id> query dan mengembalikan JSON. Tidak diperlukan autentikasi (rekam jejak publik).

Endpoint

  • GET /v1/strategies/stats?account=9 — metrik utama: 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 — kurva ekuitas untuk charting: { initial_equity, curve: [{ time, equity }] }.
  • GET /v1/strategies/trades?account=9&limit=500 — ledger trade tertutup: array (atau {trades:[…]}) dari symbol, direction, entry_price, exit_price, pnl_usdt, pnl_percent, pnl_percent_net.
  • GET /v1/strategies/active?account=9 — posisi yang saat ini terbuka: array (atau {positions:[…]}) dari symbol, side/direction, entry_price, unrealized_pnl.
  • GET /v1/strategies/signals — rincian tipe sinyal yang memberi makan strategi (jumlah / menang / win_rate / avg_pnl per tipe sinyal).

Kinerja masa lalu tidak menjamin hasil di masa depan. Angka di-backfill selama satu rezim ~3 bulan plus trade live dan ditampilkan sebelum biaya jika dicatat.

GET  /export

Unduh data sinyal historis sebagai CSV untuk backtesting. Parameter: symbol, from (unix ts), to (unix ts).

Memerlukan: Pro

GET  /health

Pemeriksaan kesehatan sistem. Mengembalikan kesegaran data untuk setiap sumber dan status API secara keseluruhan. Tidak diperlukan autentikasi.

Respons JSON
{
"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

Mengembalikan statistik penggunaan API Anda saat ini: panggilan hari ini, total bulanan, batas kuota, dan waktu reset.

POST  /webhooks

Memerlukan: Pro

Daftarkan URL HTTPS untuk menerima push event bertanda real-time saat sinyal terpicu di aset yang Anda pantau. Pengiriman membawa header X-SmartMoney-Event dan tanda tangan HMAC-SHA256 di X-SmartMoney-Signature, dan akan diulang hingga 3× dengan backoff.

Bodi Permintaan

FieldTipeDeskripsi
urlrequiredstringEndpoint HTTPS untuk POST event (harus dimulai dengan https://)
eventsrequiredarrayNama event, misalnya ["HIGH","MEDIUM","VETO"] atau ["*"]
symbolsrequiredarraySimbol untuk filter, misalnya ["BTC","ETH"] atau ["*"]
secretrequiredstringSecret penandatanganan Anda, ≥ 16 karakter (disimpan dalam bentuk hash)

Memverifikasi tanda tangan

Kunci HMAC adalah hex digest SHA-256 dari secret yang terdaftar. Hitung HMAC-SHA256 dari bodi permintaan mentah dengan kunci tersebut dan bandingkan (constant-time) dengan X-SmartMoney-Signature. Lihat Panduan Implementasi Webhook.

Kecerdasan

GET  /analysis

Memerlukan: Pro

Mengembalikan klasifikasi rezim pasar berbasis AI dengan deteksi konflik sinyal. Menganalisis kesepakatan lintas-sinyal, mengidentifikasi divergensi antara data derivatif, on-chain, dan data paus, serta menghasilkan ringkasan bahasa alami dengan faktor risiko ke depan dan rekomendasi berorientasi waktu.

Parameter

ParameterTipeDeskripsi
symbolwajibstringSimbol aset: BTC, ETH, atau SOL

Contoh Respons

JSON
{
"ts": 1710940821,
"symbol": "BTC",
"regime": "late_cycle_divergence",
"regime_label": "Siklus Akhir — Divergensi Sinyal",
"summary": "BTC berada dalam fase siklus bull akhir dengan kekuatan on-chain yang bertentangan dengan overekstensi derivatif. Paus mengurangi eksposur sementara LSR ritel naik.",
"signal_conflicts": [
"Skor paus bearish sementara skor onchain bullish",
"Tingkat pendanaan pada level tertinggi 3 bulan — risiko squeeze potensial"
],
"risk_factors": ["Pendanaan tinggi", "Divergensi OI", "Pengurangan paus"],
"recommendation": "Kurangi eksposur long, perketat stop. Hindari long baru di atas harga saat ini.",
"time_horizon": "4h–12h"
}
Paket Pro diperlukan. Endpoint ini menggunakan 3 panggilan API per permintaan karena beban pemrosesan AI.

GET  /liquidations

Memerlukan: Trader Pro

Mengembalikan dua pandangan komplementer: (1) proyeksi leverage levels — perkiraan di mana kluster likuidasi berada; dan (2) sebuah realized_heatmapREAL dieksekusi intensitas likuidasi paksa (harga × waktu), diagregasi langsung dari feed WebSocket bursa publik: Binance, OKX, Bybit, Bitget, BitMEX. Heatmap hadir ketika aliran memiliki data untuk simbol (tidak ada di pasar yang sangat tenang atau baru saja dimulai).

Parameter

ParameterTipeDeskripsi
symbolopsionalstringSimbol aset (default BTC). Heatmap nyata mencakup simbol perp yang aktif diperdagangkan.

Contoh Respons

JSON
{
"symbol": "BTC",
"cascade_risk": "TINGGI",
"nearest_long_liq_pct": -3.2,
"nearest_short_liq_pct": 4.1,
// Likuidasi REAL yang dieksekusi — langsung dari 5 bursa
"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 }
}
}
Paket Trader: cascade_risk, jarak terdekat, dan total/berdasarkan sisi yang direalisasikan. Paket Pro: proyeksi penuh levels ditambah realized_heatmap (matriks, kluster per-harga, hitungan per-bursa). Proyeksi memperkirakan "di mana stop berada"; heatmap yang direalisasikan menunjukkan "apa yang benar-benar dilikuidasi."

GET  /liquidations/heatmap

Tersedia untuk: Gratis Tidak diperlukan autentikasi (dibatasi per-IP)

Publik heatmap likuidasi tingkat harga. Mengembalikan matriks harga × waktu gaya Coinglass dari REAL dieksekusi likuidasi paksa, dikelompokkan berdasarkan harga di mana setiap likuidasi tercatat — diagregasi langsung dari feed WebSocket bursa publik: Binance, OKX, Bybit, Bitget, BitMEX. Array clusters adalah output praktis: kelompok harga yang diurutkan berdasarkan notional yang dilikuidasi, masing-masing diberi tag dengan sisi dominannya. Data tergantung pada aliran langsung — simbol yang sangat sepi atau gateway yang baru dimulai mengembalikan struktur kosong yang terbentuk dengan baik ditambah note. Level yang ditampilkan hanya likuidasi nyata, tidak pernah perkiraan.

Parameter

ParameterTipeDeskripsi
symbolopsionalstringSimbol aset (default BTC).
window_minutesopsionalintJendela waktu mundur dalam menit (default 240, dibatasi antara 5–1440).
price_bucketsopsionalintJumlah bucket harga (default 50, dibatasi antara 5–100).

Contoh Respons

JSON
{
"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
}
Catatan jujur: endpoint ini hanya mencerminkan apa yang telah ditangkap oleh live stream. Ketika simbol sedang sepi atau stream baru saja dimulai, totals.count adalah 0, clusters kosong, dan sebuah note field menjelaskan mengapa. Ini adalah catatan likuidasi yang dieksekusi — bukan prediksi. Untuk estimasi proyeksi "di mana stop-loss berada", gunakan endpoint terautentikasi /liquidations endpoint.

GET  /liquidations/onchain

Memerlukan: Trader Pro

Dieksekusi likuidasi pinjaman DeFi on-chain ditangkap langsung dari node lokal kami sendiri BSC + Avalanche full nodes — independen dari bot trading apa pun. Mencakup Venus/Cream dan Moolah di BSC, serta AAVE V3/V2, Benqi, BankerJoe, Granary, dan Vinium di Avalanche. Tingkat Pro juga mengembalikan at_risk posisi (tergantung bot, mungkin tidak ada).

Parameter

ParameterTipeDeskripsi
chainopsionalstringbsc atau avax. Abaikan untuk semua chain.
limitopsionalintegerMaksimal baris (default 100, maksimal 500). Terbaru pertama.

Contoh Respons

JSON
{
"chain": "bsc", "count": 2,
"liquidations": [
{ "chain": "bsc", "protocol": "Venus", "borrower": "0x2be6…8dfa",
"debt_symbol": "DAI", "repay_usd": 426.15,
"collateral_symbol": "WBNB", "tx_hash": "0x718c…7c0e", "block": 89170816, "ts": 1710940200 }
],
"summary": {
"window_hours": 24, "enabled": true,
"by_protocol": { "bsc:Venus": { "count": 61, repay_usd_known: 148230.55 } },
nodes: { bsc: { reachable: True, head_block: 89173010, events_total: 61 } }
}
}

GET  /smart-stop

Persyaratan: Trader Pro

Menghitung level stop-loss cerdas berdasarkan heatmap likuidasi saat ini, pita volatilitas, dan struktur pasar. Memberikan rekomendasi stop bertingkat dan saran take-profit yang disesuaikan dengan harga masuk dan toleransi risiko Anda.

Parameter

ParameterTipeDeskripsi
symbolrequiredstringSimbol aset: BTC, ETH, atau SOL
directionrequiredstringArah posisi: long atau short
entry_priceoptionalfloatHarga masuk Anda. Default ke harga pasar saat ini jika tidak diisi.
risk_pctoptionalfloatRisiko maksimum yang dapat diterima sebagai % dari akun. Default: 2.0

Contoh Respons

JSON
{
"symbol": "BTC",
"direction": "long",
"entry_price": 96420,
"stops": {
"tight": { "price": 95100, "note": "Di bawah struktur 1 jam. Terbaik untuk scalping." },
"recommended": { "price": 93800, "note": "Di bawah kluster likuidasi besar di $94K. Stop standar untuk swing." },
"wide": { "price": 91200, "note": "Di bawah zona permintaan 4 jam. Stop untuk posisi trading." }
},
"avoid_zones": [
{ "low": 94200, "high": 94800, "reason": "Kluster likuidasi padat — risiko slippage tinggi" }
],
"take_profit_suggestions": [
{ "tp1": 98500, "tp2": 101000, "tp3": 104200 }
]
}
Paket Trader: Mengembalikan hanya recommended stop. Paket Pro: Ketiga tier stop, avoid_zones, dan saran take-profit lengkap.

GET  /funding-arb

Persyaratan: Trader Pro

Mengidentifikasi peluang arbitrase tingkat funding lintas bursa secara real-time. Mengembalikan peluang yang diurutkan dengan perkiraan hasil tahunan, pasangan bursa optimal, dan tindakan lindung nilai yang diperlukan untuk menangkap spread.

Parameter

ParameterTipeDeskripsi
min_spreadoptionalfloatSpread tingkat funding minimum yang akan dimasukkan (dalam desimal). Default: 0.01
symboloptionalstringFilter untuk aset tertentu. Kosongkan untuk memindai semua aset yang didukung.

Contoh Respons

JSON
{
"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
}
]
}
Paket Trader: Hanya 1 peluang teratas, tanpa data historis spread. Paket Pro: Semua peluang saat ini dengan riwayat spread 24 jam per pasangan bursa.

Varian publik gratis Tanpa auth

Endpoint publik tanpa kunci mengembalikan 10 peluang teratas dengan screener lintas bursa langsung, ideal untuk embedding atau pengecekan cepat. Tidak termasuk riwayat spread per simbol dan field berat, serta disajikan dari cache 120 detik. Ketika tidak ada spread funding lintas bursa dalam jangka waktu kesegaran, mengembalikan opportunities array kosong dengan note — tidak pernah data palsu.

GET (no auth)
GET /v1/derivatives/funding-arb
JSON
{
"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 rendah — pastikan biaya tidak menghabiskan margin arbitrase."
}
],
"scanned_symbols": 222,
"ts": 1783268753,
"public": true,
"limited": true
}
"Gratis, tanpa kunci API. Hanya 10 peluang teratas, dibatasi dan di-cache (120 detik). Halaman screener live:" "funding-arb.html".

"GET"  "/smart-money/flow"

"Memerlukan:" "Trader" "Pro"

"Indeks arah terimbang kualitas" "indeks arah paus" "per simbol, dinilai" -100 "(uang paus cenderung short) hingga" +100 "(cenderung long). Dibangun dari ribuan dompet paus Hyperliquid yang dilacak — masing-masing diberi bobot berdasarkan tingkat kemenangan historis dan PnL serta diperbarui berdasarkan kebaruan. Ini adalah" "indeks posisi, bukan sinyal beli/jual atau prediksi harga." "Simbol dengan sedikit dompet kontributor diberi label" thin "dan dinilai dengan jujur. Halaman live:" "smart-money-flow.html".

"Parameter"

"Parameter""Tipe""Deskripsi"
"symbol""opsional""string""Simbol tunggal (contoh:" BTC"). Abaikan untuk mendapatkan semua simbol yang dilacak diurutkan berdasarkan |skor|."
"window_hours""opsional""int""Jendela penilaian, dibatasi hingga" 1..168". Default" 24.

"Contoh Respons"

"JSON"
{
"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": "Indeks posisi arah paus terimbang kualitas (-100..+100). Bukan prediksi harga atau sinyal beli/jual."
}
"Paket Trader:" "12 simbol teratas, detail kontributor disembunyikan." "Paket Pro:" "Semua simbol dengan per-simbol" top_contributors". Bobot dompet dibatasi hingga" [0.25,1.0]"; PnL adalah proksi belum direalisasi dari snapshot posisi terbaru."

"GET"  "/v1/whales/crowding"

"Tersedia untuk:" "Gratis" "Tidak diperlukan autentikasi — anonim mendapatkan 10 simbol teratas, Trader+ mendapatkan daftar lengkap"

"Gabungan" "konteks posisi & kepadatan paus" "per simbol, digabungkan dari" "Hyperliquid + GMX v2 + Jupiter Perps"". Mengembalikan notional kotor/bersih, skew arah, jumlah dompet & venue, konsentrasi posisi (bagian top-3 + HHI), leverage rata-rata tertimbang, dan" "ember kedekatan likuidasi" "(notional $ yang berada dalam 5% dan 10% dari perkiraan harga likuidasinya, dibagi long/short). Ini adalah" "konteks, bukan sinyal arah." "Bidang yang tidak dapat diturunkan adalah" null "dan dirender sebagai" "— misalnya" lev_wavg/crowding_index "ketika tidak ada posisi yang memiliki leverage. Jarak likuidasi adalah perkiraan margin terisolasi ("pct_to_liq ≈ 1/lev + upnl/notional − mmr, mmr = 0.01), "bukan" "harga likuidasi yang dilaporkan bursa."

"Parameter"

"Parameter""Tipe""Deskripsi"
"min_notional""opsional""float""Notional kotor gabungan minimum (USD) agar simbol dapat dimasukkan. Default:" 1000000.

"Contoh Permintaan"

"GET (tanpa auth)"
"curl" "https://api.smartmoneyapi.com/v1/whales/crowding?min_notional=1000000"

"Contoh Respons"

"JSON"
{
"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: [ Jarak likuidasi adalah estimasi margin terisolasi, bukan dilaporkan oleh bursa. ]
}
Catatan jujur: skew adalah net/gross ∈ [-1,1]; crowding_index = |skew|·conc_top3·min(lev/20,1). Hanya venue yang benar-benar ada yang muncul di venues. Posisi tanpa leverage dikeluarkan dari bucket likuidasi daripada diasumsikan. Panggilan anonim menerima 10 simbol teratas berdasarkan gross (dengan gated: true); Trader+ menerima daftar lengkap.

GET  /v1/options/gex

Tersedia untuk: Gratis Tidak diperlukan autentikasi (dibatasi per-IP)

Dealer gamma exposure (GEX) analitik untuk BTC & ETH, dihitung secara real-time dari rantai opsi publik Deribit (tanpa auth). Mengembalikan GEX dealer bersih per strike (konvensi dealer-short SpotGamma), level gamma-flip (strike di mana GEX bersih kumulatif melewati nol), struktur jangka IV (volatilitas tersirat ATM berdasarkan hari-jatuh-tempo), dan skew IV front-expiry (proxy 25Δ risk reversal). Rezim GEX adalah positive (dealer long gamma → menekan volatilitas) atau negative (menguatkan volatilitas). Mandiri penuh — dihitung ulang setiap panggilan, tidak bergantung pada DB yang disimpan.

Parameter

ParameterTipeDeskripsi
symbolopsionalstringBTC atau ETH saja. Default: BTC.

Contoh Permintaan

GET (tanpa auth)
curl "https://api.smartmoneyapi.com/v1/options/gex?symbol=BTC"

Contoh Respons

JSON
{
"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"
}
}
Catatan jujur: Pengali kontrak Deribit adalah 1 (OI denominasi koin). Jika terjadi kegagalan pengambilan data, endpoint mengembalikan available: false dengan panel kosong — tidak pernah memalsukan GEX. Skew IV menggunakan proxy strike tetap ±10% untuk 25Δ (25-delta sebenarnya memerlukan penyelesaian delta per strike); cukup untuk tampilan, didokumentasikan sebagai perkiraan.

GET  /v1/liquidations/simulate

Tersedia untuk: Gratis Tidak diperlukan autentikasi (dibatasi per-IP)

Interaktif uji stres kaskade likuidasi. Dengan asumsi pergerakan harga hipotetis, mengembalikan estimasi posisi leverage yang akan dilikuidasi, volume paksa berdasarkan level harga / sisi / bursa, dan pembacaan kedalaman kaskade. Pergerakan ke bawah melikuidasi long yang harga likuidasinya berada di/atas target; pergerakan ke atas melikuidasi short yang harga likuidasinya berada di/bawahnya. Dua metode independen digabungkan: harga likuidasi tepat dari paus Hyperliquid yang dilacak nyata leverage/masuk, ditambah klaster band OI statistik per bursa (leverage kerumunan disimpulkan dari pendanaan). Semuanya diberi label jelas estimated: true — tidak dapat mengetahui margin per-akun, cross vs isolated, margin tambahan, atau ADL.

Parameter

ParameterTipeDeskripsi
symbolopsionalstringSimbol aset. Default: BTC.
move_pctopsionalfloatPergerakan harga hipotetis dalam persen (negatif = turun, positif = naik). Default: -5.

Contoh Permintaan

GET (tanpa auth)
curl "https://api.smartmoneyapi.com/v1/liquidations/simulate?symbol=BTC&move_pct=-5"

Contoh Respons

JSON
{
"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": "Estimasi — tidak dapat mengetahui margin per-akun, cross vs isolated, margin tambahan, atau ADL." }
}
Catatan jujur: Setiap angka proyeksi berasal dari pembacaan DB nyata; tidak ada yang dibuat-buat saat gagal. Simbol yang tidak dilacak, snapshot usang, atau harga yang hilang mengembalikan ok: true, empty: true dengan pesan bahasa Inggris sederhana, bukan bar palsu. realized_context adalah sampel muda yang berkembang dari aliran likuidasi paksa langsung, muncul hanya sebagai konteks — tidak pernah membuat proyeksi "terwujud."

GET  /v1/wallet/{addr}/profile

Tersedia untuk: Gratis Tidak diperlukan autentikasi (dibatasi per-IP)

Profil lintas tempat profil dompet dibangun sepenuhnya dari snapshot posisi paus yang dilacak langsung. Untuk paus Hyperliquid yang dilacak, mengembalikan posisi terbuka saat ini, deret waktu PnL tidak terealisasi / eksposur / jumlah posisi deret waktu, garis waktu aktivitas garis waktu aktivitas (direkonstruksi dengan membandingkan snapshot berturut-turut), label papan peringkat HL yang diterjemahkan, dan ringkasan buku terbuka. Halaman langsung: wallet-profiler.html.

Parameter

ParameterTipeDeskripsi
addrdiperlukanstringAlamat dompet (segmen jalur), misalnya /v1/wallet/0x3bcae23e…/profile.
daysopsionalintegerJendela waktu mundur untuk deret & garis waktu. Default: 30.

Contoh Permintaan

GET (tanpa auth)
curl "https://api.smartmoneyapi.com/v1/wallet/0x3bcae23e8c380dab4732e9a159c0456f12d866f3/profile?days=30"

Contoh Respons

JSON
{
"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, win_rate_pct: 71, trades: 42 },
positions: [
{ venue: hyperliquid, symbol: ETH, direction: short,
size: 1200.0, entry_px: 1800.0, unrealized_pnl: 34800.0,
leverage: 20.0, value_usd: 2160000.0 }
],
series: [ { ts: 1783330000, unrealized_pnl: 42000.0, exposure_usd: 18400000.0, positions: 5 } ],
timeline: [ { ts: 1783400000, event: flip, symbol: ETH,
direction: short, from_direction: long, value_usd: 2160000.0 } ],
summary: {
open_positions: 5, in_profit: 3, in_loss: 2, longs: 0, shorts: 5,
total_unrealized_pnl: -12000.0, total_exposure_usd: 21000000.0, blended_leverage: 19.9,
window_days: 30, snapshots_in_window: 474,
realized_pnl: None, realized_pnl_note: Tidak dapat diturunkan — hanya snapshot terbuka yang terlihat, tidak pernah termasuk penutupan posisi.
}
}
}
Catatan jujur: semua yang ditampilkan adalah nyata dari data snapshot — pnl adalah mark-to-market unrealized milik HL sendiri, value_usd adalah open notional. Realized P&L per round-trip tidak tersedia (kami hanya melihat snapshot terbuka, tidak pernah termasuk penutupan posisi) dan ditampilkan sebagai null / ; event CLOSE pada timeline tidak mengandung klaim P&L. Alamat yang valid tetapi tidak terlacak akan mengembalikan tracked: false dengan catatan; alamat tidak valid mengembalikan ok: false, error: "invalid_address" (HTTP 400). Label HL-leaderboard adalah posisi jendela HL sendiri saat ditemukan, bukan dihitung oleh kami.

GET  /flows

Persyaratan: Pro

Mengembalikan data aliran modal lintas aset yang menunjukkan pola rotasi antara BTC, ETH, dan SOL di berbagai jendela waktu. Berguna untuk mengidentifikasi aset mana yang mengakumulasi modal dan yang didistribusikan pada momen tertentu.

Contoh Respons

JSON
{
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: [
Modal berotasi dari ETH ke BTC dalam jendela 4h,
Akumulasi SOL konsisten di semua jendela
]
}
Paket Pro diperlukan. Nilai aliran adalah arus masuk bersih USD (positif) atau arus keluar (negatif) per jendela waktu.

GET  /whale-events

Persyaratan: Trader Pro

Mengembalikan perubahan posisi paus signifikan — pembukaan, penutupan, dan pembalikan arah — yang terdeteksi di dompet dan alamat on-chain yang dilacak dalam jendela look-back yang ditentukan.

Parameter

ParameterTipeDeskripsi
symbolopsionalstringFilter berdasarkan aset. Kosongkan untuk semua aset yang dipantau.
significanceopsionalstringFilter berdasarkan signifikansi event: high, medium, atau all. Default: all
hoursopsionalintegerJendela look-back dalam jam. Default: 24

Contoh Respons

JSON
{
symbol: BTC,
summary: {
flips_to_long: 3,
flips_to_short: 1,
new_opens: 7,
closes: 2
},
events: [
{
jenis: flip_long,
dompet: 0xWhale...a4f2,
arah: long,
size_usd: 4200000,
ts: 1710938400
}
]
}
Rencana Trader: Mengembalikan summary objek saja. Rencana Pro: Lengkap events umpan dengan identifikasi dompet, ukuran, dan stempel waktu.

GET  /regimes/history

Membutuhkan: Pro

Mengembalikan data klasifikasi rezim historis untuk aset tertentu. Gunakan ini untuk menguji kembali bagaimana jenis rezim tertentu telah berkinerja secara historis, berapa lama setiap jenis rezim biasanya bertahan, dan bagaimana transisi rezim berkembang dari waktu ke waktu.

Parameter

ParameterJenisDeskripsi
simbolopsionalstringSimbol aset. Default: BTC
rezimopsionalstringFilter ke jenis rezim tertentu, misalnya late_cycle_divergence. Abaikan untuk semua rezim.
hariopsionalintegerJendela look-back dalam hari. Default: 30. Maksimum: 365

Contoh Respons

JSON
{
simbol: BTC,
rezim_saat_ini: late_cycle_divergence,
ringkasan_rezim: {
late_cycle_divergence: { kejadian: 4, rata_rata_durasi_jam: 38, rata_rata_pengembalian_persen: -2.1 },
akumulasi: { kejadian: 6, rata_rata_durasi_jam: 72, rata_rata_pengembalian_persen: 5.4 },
breakout: { kejadian: 3, rata_rata_durasi_jam: 18, rata_rata_pengembalian_persen: 9.

Contoh Respons

JSON
{
status_keseluruhan: ok,
ts: 1710940821,
bursa: {
bybit: { status: ok, latensi_ms: 42, tingkat_kesalahan_1j: 0.0, umur_data_terakhir_dtk: 18 },
binance: { status: ok, latensi_ms: 38, tingkat_kesalahan_1j: 0.0, umur_data_terakhir_dtk: 22 },
hyperliquid: { status: degraded, latensi_ms: 310, tingkat_kesalahan_1j: 0.04, umur_data_terakhir_dtk: 95 },
okx: { status: ok, latensi_ms: 55, tingkat_kesalahan_1j: 0.0, umur_data_terakhir_dtk: 30 }
}
}

GET  /sentiment

Membutuhkan: Trader Pro

Mengembalikan indeks Fear & Greed (0-100) real-time yang dihitung dari sentimen derivatif, aktivitas paus, volatilitas, dan sinyal sosial. Termasuk rincian komponen dan riwayat 24 jam untuk analisis tren.

Parameter

ParameterJenisDeskripsi
simbolopsionalstringSimbol aset. Default: BTC

Contoh Respons

JSON
{
"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
}
Setara kompetitor: Santiment Social Volume + Alternative.me Fear & Greed — digabungkan menjadi satu endpoint dengan rincian komponen.

Integrasi

GET  /tradingview/setup

Memerlukan: Trader Pro

Mengembalikan pengaturan integrasi TradingView yang dipersonalisasi: URL webhook, rahasia untuk validasi, dan indikator Pine Script siap pakai yang terhubung langsung ke Smart Money API. Salin-tempel Pine Script ke TradingView untuk menampilkan sinyal kami di grafik apa pun.

Contoh Respons

JSON
{
"webhook_url": "https://api.smartmoneyapi.com/v1/tradingview/webhook",
"webhook_secret": "tvs_a1b2c3...",
"pine_scripts": {
"composite_indicator": "// Smart Money Composite v1\n//@version=5\nindicator(...)...",
"whale_activity": "// Whale Activity Overlay v1\n...",
"funding_dashboard": "// Funding Rate + LSR Dashboard v1\n..."
}
}

POST  /tradingview/webhook

Tersedia untuk: Trader Pro

Menerima alert TradingView, memprosesnya melalui /confirm, dan mengembalikan konfirmasi. TradingView tidak dapat mengirim header kustom, jadi autentikasi dengan menyertakan webhook Anda secret di badan JSON (endpoint ini tidak menggunakan X-API-Key). Respons membungkus konfirmasi dan menambahkan level teratas action dari CONFIRMED (daemon confidence HIGH/MEDIUM) atau VETOED.

Badan Permintaan

JSON
{
"secret": "your_webhook_secret",
"symbol": "BTC",
"direction": "long",
"timeframe": "1h",
"strategy": "EMA crossover",
"price": 67500.0
}

Diperlukan: secret, symbol, direction (long|short). Opsional: source, timeframe, strategy, price.

Personalisasi

GET  /preferences

Memerlukan: Trader Pro

Mengembalikan pengaturan personalisasi saat ini termasuk parameter perdagangan default, profil risiko, watchlist, dan preferensi notifikasi.

PUT /v1/preferences

Perbarui preferensi dengan mengirim badan JSON dengan subset dari field di bawah. Field yang tidak disertakan mempertahankan nilai saat ini.

Field Preferensi

FieldTipeDeskripsi
default_trade_size_usdfloatUkuran posisi default dalam USD untuk perhitungan Kelly dan smart-stop
risk_tolerancestringconservative, moderate, atau aggressive
default_risk_pctfloatRisiko default per perdagangan sebagai % dari akun. Digunakan oleh /smart-stop ketika risk_pct dihilangkan
watchlistarrayDaftar terurut simbol aset, misalnya ["BTC","ETH","SOL"]
notification_emailstringAlamat email untuk pengiriman alert
timezonestringString IANA timezone, misalnya America/New_York
PUT — Contoh Badan
{
"default_trade_size_usd": 5000,
"risk_tolerance": "moderate",
"default_risk_pct": 1.5,
"watchlist": ["BTC", "ETH", "SOL"]
}

GET  /watchlist

Memerlukan: Trader Pro

Mengembalikan snapshot status konfirmasi dan metrik risiko utama untuk semua simbol dalam watchlist yang Anda konfigurasi. Memberikan gambaran multi-aset tanpa perlu memanggil /confirm secara terpisah untuk setiap simbol.

Contoh Respons

JSON
{
"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"
}
]
}

Streaming Real-Time (Live Swaps)

Stream DEX swaps ≥ $500 terdeteksi secara real-time dari node BSC dan Avalanche kami. Dua transport tersedia: aliran Server-Sent Events (SSE) publik untuk klien gratis/browser, dan firehose WebSocket latensi rendah untuk tier berbayar. Acara disiarkan dalam hitungan detik setelah dimasukkan dalam blok.

Aliran SSE Publik (Gratis)

Tersedia untuk: Gratis Trader Pro
GET /v1/stream/public-swaps

Tidak diperlukan autentikasi. Dukungan asli EventSource di semua browser modern. Server mengirimkan swap acara dan heartbeat berkala untuk menjaga koneksi tetap hidup.

JavaScript (browser)
const es = new EventSource("https://api.smartmoneyapi.com/v1/stream/public-swaps");
es.addEventListener("swap", e => {
  const swap = JSON.parse(e.data);
  console.log(swap.chain, swap.pair, swap.amount_usd);
});

WebSocket Firehose (Berbayar)

Memerlukan: Trader Pro
WSS /v1/ws/live-swaps?ticket=…

Autentikasi (disarankan): jangan pernah menaruh kunci jangka panjang Anda di URL — itu akan dicatat oleh proxy dan disimpan dalam riwayat browser. Sebagai gantinya, POST kunci Anda ke /v1/ws/ticket menggunakan header X-API-Key yang aman, lalu buka soket dengan tiket sekali pakai yang dikembalikan ticket (valid ~60s, digunakan sekali). Klien sisi server yang dapat mengatur header dapat langsung meneruskan X-API-Key pada handshake. Kunci tier gratis menerima 402 payment_required respons. Sebuah hello frame dikirim saat terhubung dengan tier Anda dan ambang siaran.

JavaScript (browser)
// 1. Tukar kunci Anda dengan tiket jangka pendek (kunci tetap di header)
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. Buka soket dengan tiket sekali pakai
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);
};

Autentikasi WebSocket (tiket)

Mengapa: jangan pernah menaruh kunci API Anda di URL WebSocket — string kueri dicatat oleh proxy, load balancer, dan disimpan dalam riwayat browser. Sebagai gantinya, tukar kunci Anda dengan tiket jangka pendek, sekali pakai tiket melalui POST terautentikasi normal, lalu terhubung dengan tiket tersebut.

Alur: POST ke /v1/ws/ticket dengan header X-API-Key Anda → terima { "ticket": "…", "expires_in": 60 }. Kemudian buka wss://api.smartmoneyapi.com/v1/ws/live-swaps?ticket=<ticket>. Tiket ini sekali pakai dan kedaluwarsa dalam ~60 detik. Klien sisi server yang dapat mengatur header permintaan dapat langsung meneruskan X-API-Key langsung pada jabat tangan WebSocket — tidak perlu tiket.

POST /v1/ws/ticket
Memerlukan: Trader Pro

Mencetak tiket sekali pakai untuk jabat tangan WebSocket yang terautentikasi. Autentikasi dengan X-API-Key header (kunci Anda tidak pernah meninggalkan header permintaan). Tiket yang dikembalikan dapat ditukarkan sekali pada /v1/ws/live-swaps sebelum kedaluwarsa.

cURL
curl -X POST -H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/ws/ticket"

Contoh Respons

JSON
{
"ticket": "wst_9f3c1a8e4b2d…",
"expires_in": 60
}

Kolom Respons

KolomTypeDeskripsi
tiketstringToken sekali pakai untuk ditambahkan sebagai ?ticket= pada URL WebSocket. Ditebus sekali, lalu dinonaktifkan.
expires_innumberDetik hingga tiket kedaluwarsa (~60). Buat tiket baru setiap kali mencoba koneksi.

Catatan: autentikasi ?key= query-param lama tidak lagi diterima pada endpoint WebSocket karena alasan keamanan. Gunakan tiket (klien browser) atau X-API-Key header handshake (klien sisi server).

Snapshot REST

GET /v1/live-swaps/recent?limit=20

Mengembalikan N swap terakhir yang disiarkan dari buffer bergulir. Berguna untuk tampilan pertama di dashboard sebelum koneksi stream terbuka. Juga tersedia: /v1/live-swaps/status untuk statistik penyiar.

Skema Acara

FieldTypeDeskripsi
chainstringbsc atau avalanche
dexstringNama router (misalnya pancakeswap_v2, traderjoe) atau unknown_dex
swapperstringAlamat 0x lengkap dari dompet yang melakukan swap
swapper_shortstringBentuk singkatan untuk tampilan (contoh: 0xb300…028d)
swapper_urlstringTautan langsung ke swapper di block explorer jaringan
tx_hashstringHash transaksi
explorer_urlstringTautan langsung ke transaksi di BscScan/Snowtrace
token_instringSimbol token yang dijual (contoh: USDT)
token_outstringSimbol token yang dibeli
amount_usdnumberNilai USD dari swap (minimum: $500)
pairstringLabel pasangan yang diformat (contoh: USDT → USDC)
blocknumberNomor blok tempat swap ditambang
timestampnumberDetik epoch Unix
significancestringlow / medium / high / critical berdasarkan ukuran USD
seqnumberNomor urutan broadcast monotonik — gunakan untuk deteksi celah

POST  /alerts/conditions

Membutuhkan: Pro

Buat aturan alert khusus yang terpicu saat metrik tertentu melewati ambang batas. Alert dikirim melalui webhook, email, atau feed notifikasi dashboard sesuai preferensi Anda.

GET /v1/alerts/conditions

Mengembalikan daftar semua kondisi alert yang telah dikonfigurasi beserta ID, definisi, dan status terkini.

DELETE /v1/alerts/conditions/{id}

Menghapus permanen kondisi alert berdasarkan ID.

GET /v1/alerts/history

Mengembalikan peristiwa pemicu alert terkini beserta timestamp, kondisi yang cocok, dan nilai metrik saat pemicuan.

Buat Alert — Request Body

FieldTypeDeskripsi
namerequiredstringLabel yang mudah dibaca untuk peringatan ini (maks 64 karakter)
metricwajibstringMetrik yang akan dipantau. Lihat tabel metrik yang tersedia di bawah.
symbolopsionalstringKonteks aset. Diperlukan untuk metrik yang berhubungan dengan simbol seperti funding_rate.
operatorwajibstringOperator perbandingan: gt, lt, eq, crosses_above, crosses_below
thresholdwajibfloatNilai numerik untuk membandingkan metrik
deliveryopsionalstringSaluran pengiriman, misalnya telegram (default) atau webhook
cooldown_minutesopsionalintegerMenit minimum antara pemicu ulang (default 60)

Daftar metrik dan operator yang valid dapat dilihat di GET /v1/alerts/conditions sebagai available_metrics dan available_operators.

Metrik yang Tersedia

MetrikDeskripsi
funding_rateTingkat pendanaan saat ini untuk simbol (dalam desimal)
global_lsrRasio long/short global untuk simbol
long_pctPersentase akun yang net long untuk simbol
top_trader_lsrRasio long/short top-trader untuk simbol
taker_ratioRasio beli/jual taker untuk simbol
mvrvRasio Nilai Pasar terhadap Nilai Realisasi (BTC/ETH)
soprRasio Keuntungan Output yang Dihabiskan (BTC/ETH)
exchange_net_flowSinyal aliran bersih on-chain exchange
accumulationSinyal akumulasi on-chain
whale_long_pctPersentase dompet whale yang dilacak memegang posisi long untuk simbol
whale_n_walletsJumlah dompet whale yang dilacak dengan posisi dalam simbol
composite_longSkor komposit untuk simbol yang ditanyakan dalam arah long
composite_shortSkor komposit untuk simbol yang ditanyakan dalam arah short
funding_spreadSpread pendanaan lintas venue untuk simbol
POST — Contoh Body
{
"name": "BTC funding rate spike",
"metric": "funding_rate",
"symbol": "BTC",
"operator": "gt",
"threshold": 0.05
}

GET  /kelly

Persyaratan: Pro

Mengembalikan rekomendasi ukuran posisi Kelly Criterion yang dikalibrasi ke kinerja sinyal historis untuk simbol, tingkat kepercayaan, dan arah yang diberikan. Mendasarkan ukuran posisi pada tingkat kemenangan empiris untuk menghindari over-leveraging.

Parameter

ParameterTipeDeskripsi
symbolwajibstringSimbol aset: BTC, ETH, atau SOL
confidenceopsionalstringTingkat kepercayaan sinyal yang akan dimodelkan: HIGH, MEDIUM, atau LOW. Default: HIGH
directionopsionalstringArah perdagangan: long atau short. Default: long
account_sizeopsionalfloatUkuran akun dalam USD untuk menghitung suggested_size_usd. Default: 10000

Contoh Respons

JSON
{
"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 direkomendasikan untuk trading langsung untuk memperhitungkan kesalahan estimasi."
}
Paket Pro diperlukan. Perhitungan didasarkan pada sampel 90 hari bergulir dari sinyal historis yang sesuai dengan parameter simbol, tingkat kepercayaan, dan arah yang diminta.

GET  /performance

Tersedia untuk: Free Trader Pro

Mengembalikan statistik akurasi historis untuk sinyal yang dikeluarkan oleh API, dibagi berdasarkan tingkat kepercayaan. Berguna untuk memahami keandalan sinyal sebelum mengalokasikan modal.

Parameter

ParameterTipeDeskripsi
symbolopsionalstringFilter berdasarkan aset. Abaikan untuk statistik agregat di semua simbol.
daysopsionalintegerJendela look-back dalam hari. Default: 30

Contoh Respons

JSON
{
"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 & Sinyal

GET  /v1/stats

Tersedia untuk: Free Trader Pro Tidak diperlukan autentikasi

Statistik kinerja jujur seluruh situs bersumber dari smart_money_confirm hasil panggilan berbeda. Mengembalikan tingkat kemenangan di tingkat kepercayaan TINGGI dan SEDANG, akurasi keseluruhan, faktor profit, dan rincian per simbol. Semua angka adalah in-sample selama jendela penilaian; konsultasikan calibration.html untuk konteks dan metodologi forward-holdout.

Contoh Respons

JSON
{
"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
}
}
Peringatan in-sample. Semua angka dalam respons ini dihitung dari periode yang sama yang digunakan untuk menyetel scorer. Objek forward_holdout adalah satu-satunya angka yang diperoleh dari data yang belum pernah dilihat oleh scorer — pantau pertumbuhannya dari waktu ke waktu. Lihat calibration.html untuk metodologi lengkap dan batas in-sample / forward-test.

GET  /v1/signals/performance

Tersedia untuk: Free Trader Pro Tidak diperlukan autentikasi

Pelacakan hasil sinyal di berbagai horizon resolusi (4h, 12h, 24h, 72h). Mengembalikan tingkat hit per horizon, jumlah sinyal total, dan rincian berdasarkan jenis sinyal.

Parameter

ParameterTipeDeskripsi
daysopsionalintegerJendela look-back dalam hari. Default: 30
signal_typeopsionalstringFilter berdasarkan jenis, misalnya smart_money_confirm atau regime_flip. Abaikan untuk semua jenis.
symbolopsionalstringFilter berdasarkan simbol aset, misalnya BTC. Abaikan untuk agregat di semua simbol.

Contoh Respons

JSON
{
"signal_type": "smart_money_confirm",
"symbol": "BTC",
"days": 30,
"total_signals": 48,
horizons: {
4h: { hit_rate: 0.65, resolved: 46 },
12h: { hit_rate: 0.61, resolved: 44 },
24h: { hit_rate: 0.58, resolved: 40 },
72h: { hit_rate: 0.54, resolved: 32 }
},
type_breakdown: {
smart_money_confirm: { count: 35, hit_rate_24h: 0.61 },
regime_flip: { count: 13, hit_rate_24h: 0.47 }
}
}

GET  /v1/signals/recent

Tersedia untuk: Free Trader Pro Tidak memerlukan autentikasi

Feed sinyal HIGH dan MEDIUM yang baru diterbitkan di semua simbol yang dipantau. Setiap entri mencakup jenis sinyal, tingkat kepercayaan, arah, dan status resolusi jika tersedia.

Contoh Respons

JSON
{
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

Tersedia untuk: Free Trader Pro Tidak memerlukan autentikasi

Hasil resolusi untuk satu sinyal berdasarkan ID numeriknya. Mengembalikan hit/miss pada setiap horizon resolusi (4h, 12h, 24h, 72h) beserta harga pada saat sinyal dan saat resolusi.

Parameter

ParameterTipeDeskripsi
idrequiredintegerSignal ID (path segment), e.g. /v1/signals/1042/outcome

Contoh Respons

JSON
{
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

Memerlukan: Free Trader Pro

Breakdown win-rate sinyal konfirmasi untuk kunci API pengguna yang terautentikasi. Mengembalikan win-rate panggilan berbeda pada setiap tingkat kepercayaan, faktor profit, dan angka per simbol. Memerlukan header yang valid. X-API-Key header.

Contoh Permintaan

cURL
curl -H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/confirm-winrate"

Contoh Respons

JSON
{
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 }
}
}
Basis panggilan berbeda. Tingkat kemenangan dihitung per panggilan konfirmasi berbeda (satu per simbol per jendela 5 menit), bukan per setiap hit API — ini mencegah inflasi-N dari bot yang melakukan polling berulang. Angka-angka adalah in-sample selama jendela default 30 hari; peringatan yang sama seperti /v1/stats berlaku.

Shadow Gate

Memerlukan: Free Trader Pro

Sebuah ledger keputusan pribadi yang tidak dapat diubah dan hanya dapat ditambahkan. Kirimkan keputusan trading Anda sebelum atau setelah mengeksekusinya; sistem menghitung skor konfirmasi terhadap mesin Smart Money dan menambahkan baris permanen. Gunakan untuk membangun rekam jejak yang jujur dan memiliki timestamp seberapa baik sinyal API selaras dengan entri Anda — sepenuhnya independen dari pool tingkat kemenangan global. Respons tier Free dan Trader memiliki bidang bukti dihilangkan; Pro mengembalikan rincian lengkap. Penundaan tier berlaku untuk data tier Free.

POST /v1/shadow-gate/decisions

Kirim keputusan. Idempoten pada Idempotency-Key header permintaan — mengirim ulang kunci yang sama mengembalikan baris yang ada tanpa membuat duplikat. Sistem segera memanggil mesin konfirmasi dan menambahkan hasilnya sebagai baris ledger yang tidak dapat diubah.

Request Body

FieldTypeDescription
symbolrequiredstringSimbol aset, misalnya BTC
siderequiredstringArah trade: long atau short
strategy_idoptionalstringLabel strategi yang ditentukan pemanggil (maks 64 karakter). Disimpan apa adanya untuk pengelompokan dan penyaringan.

Example Request

cURL
curl -X POST \
-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

JSON
{
"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
}
Catatan tier. Respons Free dan Trader menghilangkan factors / adjustments bidang bukti. Pro mengembalikan rincian konfirmasi lengkap. Penundaan tier berlaku untuk Free — baris ditulis segera tetapi skor konfirmasi mungkin mencerminkan data cache hingga 60 detik yang lalu.
GET /v1/shadow-gate/decisions

Daftar keputusan shadow-gate Anda sendiri, terbaru pertama. Terbatas pemilik — hanya keputusan yang dikirim oleh kunci API Anda yang dikembalikan.

Parameters

ParameterTypeDescription
limitoptionalintegerJumlah maksimum baris yang dikembalikan. Default: 50, maks: 200
cursoroptionalstringKursor paginasi buram dari next_cursor bidang respons sebelumnya. Abaikan untuk halaman pertama.

Example Response

JSON
{
"decisions": [
{ "id": 318, "symbol": "BTC", "side": "long", "decision": "CONFIRM", "confidence": "HIGH", "composite": 0.74, "size_mult": 1.5, "ts": 1710940821, "resolved": false },
{ "id": 317, "symbol": "ETH", "side": short, keputusan: SKIP, keyakinan: LOW, komposit: -0.12, size_mult: 0.0, ts: 1710937000, terselesaikan: True }
],
jumlah: 2,
next_cursor: None
}
GET /v1/shadow-gate/decisions/{id}

Keputusan tunggal berdasarkan ID, termasuk bukti konfirmasi lengkap untuk tier Pro. Respons tier Free dan Trader memiliki factors dan adjustments dihilangkan. Mengembalikan 403 jika keputusan tersebut milik kunci API yang berbeda.

Contoh Respons (Pro)

JSON
{
id: 318,
symbol: BTC,
side: long,
strategy_id: ema_crossover,
keputusan: CONFIRM,
keyakinan: HIGH,
komposit: 0.74,
size_mult: 1.5,
faktor: {
derivatives: { skor: 0.81, bobot: 0.40, terbobot: 0.324 },
onchain: { skor: 0.68, bobot: 0.35, terbobot: 0.238 },
whale: { skor: 0.73, bobot: 0.25, terbobot: 0.183 }
},
ts: 1710940821,
terselesaikan: False,
hasil: None
}
POST /v1/shadow-gate/decisions/{id}/resolve

Selesaikan hasil keputusan secara manual. Panggil ini setelah menutup perdagangan untuk mencatat hasil akhir terhadap baris buku besar. Setelah terselesaikan, baris tersebut tidak dapat diubah lagi.

Badan Permintaan

FieldTipeDeskripsi
hasilwajibstringHasil perdagangan: win atau loss
exit_priceopsionalfloatHarga keluar untuk perdagangan. Disimpan sebagai referensi; digunakan untuk menghitung % P&L jika disediakan.
pnl_pctopsionalfloatP&L terealisasi sebagai persentase dari ukuran posisi, misalnya 3.5 atau -1.2

Contoh Respons

JSON
{
id: 318,
terselesaikan: True,
hasil: win,
exit_price: 65800.0,
pnl_pct: 4.1,
resolved_at: 1711027200
}
Ketidakberubahan. Baris buku besar hanya dapat ditambahkan. Setelah keputusan dikirim tidak dapat dihapus, dan setelah terselesaikan tidak dapat diselesaikan ulang. Ini memastikan catatan yang Anda bangun jujur dan sulit dimanipulasi.

Kode Error

StatusKodeDeskripsi
400invalid_paramsParameter kueri tidak ada atau tidak valid
401unauthorizedKunci API tidak ada atau tidak valid
403plan_restrictionEndpoint tidak tersedia dalam paket Anda saat ini
429rate_limit_exceededBatas harian atau burst tercapai
500internal_errorError server — periksa /health untuk status sumber
503data_staleSumber data tidak tersedia; dikembalikan dengan data terakhir yang diketahui

Contoh Kode

Python

Python
import requests

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
Python
import requests

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()

# Dalam loop trading Anda:
signal = confirm_trade("BTC", "long")
if signal["confidence"] not in ["HIGH", "MEDIUM"]:
print("Melewatkan — kepercayaan tidak cukup")
else:
size = base_size * signal["size_mult"]
place_order(symbol, direction, size)

JavaScript / Node.js

JavaScript
const API_KEY = 'sm_your_key';

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 (!res.ok) throw new Error(`API error: ${res.status}`);
return res.json();
}

// Penggunaan
confirmTrade('BTC', 'long')..then(data => {
console.log(data.confidence, data.size_mult);
});

cURL

Shell
# Konfirmasi trade long
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/confirm?symbol=BTC&direction=long"

# Dapatkan data whale
curl -X GET \
-H "X-API-Key: sm_your_key" \
"https://api.smartmoneyapi.com/v1/whales?symbol=BTC"

# Cek penggunaan
curl -X GET \
-H X-API-Key: sm_your_key \
https://api.smartmoneyapi.com/v1/usage

Integrasi Freqtrade

Tambahkan konfirmasi Smart Money ke strategi Freqtrade apa pun dengan mengganti confirm_trade_entry metode.

Python — Strategi Freqtrade
import requests
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 # Lewati pemeriksaan untuk yang tidak didukung
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 # Buka gagal pada kesalahan API

CCXT + Smart Money

Python — CCXT
import ccxt, requests

exchange = ccxt.bybit({
"apiKey": "YOUR_BYBIT_KEY",
"secret": "YOUR_BYBIT_SECRET"
})

SM_KEY = "sm_your_key"

def smart_trade(symbol, side, amount):
# Periksa konfirmasi terlebih dahulu
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} — insufficient confidence.")
return None

adj_amount = amount * conf["size_mult"]
order = exchange.create_market_order(
f"{symbol}/USDT", side, adj_amount
)
print(f"Order placed: {adj_amount} {symbol} {side}")
return order
Butuh bantuan?

Periksa halaman status API untuk informasi kesehatan waktu nyata, atau gunakan formulir kontak kami.