Pustaka SDK Resmi
Pustaka klien resmi untuk Python, JavaScript, Go, dan Rust. Sederhanakan integrasi API dengan klien bertipe, logika percobaan ulang otomatis, dan dukungan WebSocket.
SDK Python
Paket: smartmoney-api
Instalasi: pip install smartmoney-api
Repo: github.com/smartmoneyapi/python-client
from smartmoney import SmartMoneyAPI
# Inisialisasi klien
client = SmartMoneyAPI(api_key="sk_live_abc123xyz789")
# Dapatkan posisi paus
whales = client.whale_positions(symbol="BTCUSDT", limit=50)
for position in whales:
print(f"{position.wallet_address}: {position.position_size} BTC @ {position.entry_price}")
# Dapatkan tingkat pendanaan
funding = client.funding_rates(symbol="BTCUSDT", interval="4h", limit=24)
# Streaming pembaruan langsung
with client.stream_whale_positions(["BTCUSDT", "ETHUSDT"]) as stream:
for update in stream:
print(f"Pembaruan posisi: {update}")
Fitur
- Dukungan async/await (asyncio, aiohttp)
- Percobaan ulang otomatis dengan backoff eksponensial
- Streaming WebSocket dengan sambungan ulang otomatis
- Petunjuk tipe dan autocomplete IDE
- Pencatatan permintaan dan debugging
SDK JavaScript
Paket: smartmoney-api
Instalasi: npm install smartmoney-api
Repo: github.com/smartmoneyapi/js-client
import { SmartMoneyAPI } from "smartmoney-api";
const client = new SmartMoneyAPI({
apiKey: "sk_live_abc123xyz789"
});
// Dapatkan posisi paus
const whales = await client.whalePositions({
symbol: "BTCUSDT",
limit: 50
});
whales.positions.forEach(pos => {
console.log(`${pos.wallet_address}: ${pos.position_size} BTC`);
});
// Streaming pembaruan waktu nyata
const stream = client.streamWhalePositions(["BTCUSDT", "ETHUSDT"]);
stream.on("data", (update) => {
console.log("Pembaruan posisi:", update);
});
stream.on("error", (err) => {
console.error("Kesalahan streaming:", err);
});
SDK Go
Modul: github.com/smartmoneyapi/go-client
Instalasi: go get github.com/smartmoneyapi/go-client
package main
import (
"fmt"
"github.com/smartmoneyapi/go-client"
)
func main() {
// Buat klien
client := smartmoney.NewClient("sk_live_abc123xyz789")
// Dapatkan posisi paus
positions, err := client.WhalePositions(ctx, &smartmoney.WhalePositionsFilter{
Symbol: "BTCUSDT",
Limit: 50,
})
if err != nil {
panic(err)
}
for _, pos := range positions {
fmt.Printf("%s: %.2f BTC\n", pos.WalletAddress, pos.PositionSize)
}
}
SDK Rust
Krate: smartmoney-api
Instalasi: cargo add smartmoney-api
use smartmoney_api::Client;
#[tokio::main]
async fn main() -> Result<(), Box> {
let client = Client::new("sk_live_abc123xyz789");
// Dapatkan posisi paus
let positions = client
.whale_positions()
.symbol("BTCUSDT")
.limit(50)
.send()
.await?;
for position in positions.iter() {
println!(
"{}: {} BTC @ {}",
position.wallet_address,
position.position_size,
position.entry_price
);
}
Ok(())
}
Pola Umum
Penanganan Kesalahan
Semua SDK menyediakan tipe kesalahan yang kaya dengan logika percobaan ulang otomatis. Kesalahan mencakup kode status, kode kesalahan, dan pesan yang dapat dibaca manusia.
Batas Waktu Permintaan
Batas waktu permintaan yang dapat dikonfigurasi (default 30 detik). Tetapkan batas waktu khusus untuk operasi yang berjalan lama.
Penanganan Batas Laju
Backoff eksponensial otomatis saat mencapai batas laju. Menghormati header Retry-After.
Pilih SDK Anda
Mulai dengan bahasa pilihan Anda. Dokumentasi lengkap dan contoh disertakan.
Lihat Referensi API