</>Untuk Developer · v1.0

Liquidity Waves
Alerts API

REST + Server-Sent Events untuk membangun bot, dashboard, atau aplikasi trading dengan brand Anda sendiri. Sinyal VIP, ScalpAuto, leaderboard — semua via satu API.

Base URL
bot.liquiditywaves.com/api
Latensi push
~100ms
Burst limit
30 req/sec

Mulai dari sini

Autentikasi

Setiap permintaan memerlukan API key. Tier Basic ke atas juga membutuhkan API secret yang dikirim sebagai header terpisah. Generate kredensial Anda di dashboard setelah berlangganan addon Alerts API.

Trial — hanya API keybash
curl https://bot.liquiditywaves.com/api/v1/signals/recent \
  -H "Authorization: Bearer YOUR_API_KEY"
Basic / Pro / Enterprise — key + secretbash
curl https://bot.liquiditywaves.com/api/v1/signals/recent \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET"

Alternatif header

Bisa pakai X-API-Key atau query string ?api_key=….

Pricing

Tier & Limit

TierPanggilan / hariLimit historySSE StreamHarga
Trial10010Gratis 3 hari
Basic1.000100$29 / Rp 435rb / bulan
ProRecommended10.0001000$99 / Rp 1,485jt / bulan
Enterprise100.000Unlimited$299 / Rp 4,485jt / bulan

Diskon 50% Bitunix

Verifikasi UID Bitunix Anda untuk diskon otomatis di semua tier.

Reset Harian

Counter daily-call reset setiap 00:00 UTC. Burst limit 30 req/detik berlaku semua tier.

Reference

Endpoints

GET/v1/signals/recent

Sinyal VIP terbaru dari analis

Query: limit · pair · side · status · analyst

GET/v1/signals/:id

Detail satu sinyal beserta lifecycle (entry, TP1/TP2, SL hits)

Query: id (path)

GET/v1/scalp/recent

Sinyal ScalpAuto terbaru

Query: limit · pair · side · tier (A/B/C) · action

GET/v1/leaderboard

Leaderboard performa per analis

Query: window (today/this_week/this_month/all_time)

GET/v1/stream

Server-Sent Events untuk live signal push (Pro+)

Query: topics (signals,outlooks,all)

Response shape — /v1/signals/recentjson
{
  "count": 20,
  "limit": 50,
  "signals": [
    {
      "id": "abc123",
      "pair": "BTCUSDT",
      "side": "LONG",
      "analyst": "TLW Manager",
      "entry": 80250.5,
      "sl": 79800.0,
      "tp1": 80700.0,
      "tp2": 81200.0,
      "rr": 1.0,
      "currentRR": 0.62,
      "status": "ENTERED",
      "createdAt": "2026-05-04T22:30:15.123Z",
      "enteredAt": "2026-05-04T22:31:42.001Z",
      "completedAt": null,
      "link": "https://t.me/c/..."
    }
  ]
}

Real-time

Live Stream (SSE)

Server-Sent Events memberikan push real-time setiap kali ada sinyal baru, TP/SL hit, atau outlook update — dengan latensi sekitar 100ms. Tersedia untuk tier Pro dan Enterprise.

curl SSEbash
curl -N https://bot.liquiditywaves.com/api/v1/stream?topics=signals,outlooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "X-API-Secret: YOUR_API_SECRET"
Response streamtext
id: 142
event: signal:tp_hit
data: {"id":"abc","pair":"BTCUSDT","tp":1,"rr":1.0,...}

id: 143
event: outlook:running
data: {"pair":"ETHUSDT","direction":"LONG",...}

: heartbeat 1714857601234

Daftar Event

signal:newsignal:entry_hitsignal:tp_hitsignal:sl_hitsignal:run_ended_bepscalp:signal_executedoutlook:enteredoutlook:runningoutlook:breakdown

Heartbeat dikirim setiap 15 detik untuk menjaga koneksi tetap hidup.

🤖 Use Case

Bangun Bot Telegram White-Label

Anda dapat menggunakan API ini untuk membangun bot Telegram dengan brand sendiri — kirim sinyal ke member Anda, atur tier akses, monetisasi dengan harga sendiri. Liquidity Waves jadi data provider, Anda jadi operator.

01

Buat Bot via @BotFather

  1. Buka @BotFather di Telegram
  2. Kirim /newbot
  3. Pilih nama display dan username unik
  4. Simpan token yang diberikan (BOT_TOKEN)
02

Subscribe Tier

  • Basic — <50 subscriber, polling
  • Pro — direkomendasikan, SSE stream
  • Enterprise — 1000+ user, white-label

Contoh Implementasi (Node.js + Telegraf)

whitelabel-bot.jsjavascript
// npm install telegraf eventsource
const { Telegraf } = require('telegraf');
const EventSource = require('eventsource');

const bot = new Telegraf(process.env.BOT_TOKEN);
const API_KEY = process.env.LW_API_KEY;
const API_SECRET = process.env.LW_API_SECRET;
const subscribers = new Set(); // simpan di DB Anda di production

bot.start(ctx => {
    subscribers.add(ctx.from.id);
    ctx.reply('🌊 Selamat datang! Anda berlangganan signal alert.');
});

bot.command('signals', async ctx => {
    const r = await fetch('https://bot.liquiditywaves.com/api/v1/signals/recent?limit=5', {
        headers: {
            'Authorization': `Bearer ${API_KEY}`,
            'X-API-Secret': API_SECRET
        }
    });
    const { signals } = await r.json();
    const msg = signals.map(s =>
        `📊 ${s.pair} ${s.side}\nEntry: ${s.entry} | SL: ${s.sl} | TP: ${s.tp1}`
    ).join('\n\n');
    ctx.reply(msg || 'No recent signals.');
});

// SSE live stream — push ke semua subscribers
const es = new EventSource('https://bot.liquiditywaves.com/api/v1/stream?topics=signals', {
    headers: {
        'Authorization': `Bearer ${API_KEY}`,
        'X-API-Secret': API_SECRET
    }
});

es.addEventListener('signal:new', evt => {
    const s = JSON.parse(evt.data);
    const text = `🚨 SIGNAL BARU\n${s.pair} ${s.side} @ ${s.entry}\nSL: ${s.sl} | TP1: ${s.tp1}`;
    for (const userId of subscribers) {
        bot.telegram.sendMessage(userId, text).catch(() => {});
    }
});

es.addEventListener('signal:tp_hit', evt => {
    const s = JSON.parse(evt.data);
    for (const userId of subscribers) {
        bot.telegram.sendMessage(userId, `✅ TP${s.tp} hit di ${s.pair} (+${s.rr}R)`).catch(() => {});
    }
});

bot.launch();
console.log('White-label bot running...');

Alternatif Python (python-telegram-bot)

bot.pypython
# pip install python-telegram-bot requests sseclient-py
import os, json, asyncio, requests, sseclient
from telegram import Bot

bot = Bot(token=os.environ['BOT_TOKEN'])
HEADERS = {
    'Authorization': f"Bearer {os.environ['LW_API_KEY']}",
    'X-API-Secret': os.environ['LW_API_SECRET']
}

async def listen_stream(subscribers):
    resp = requests.get(
        'https://bot.liquiditywaves.com/api/v1/stream?topics=signals',
        headers=HEADERS, stream=True
    )
    client = sseclient.SSEClient(resp)
    for event in client.events():
        if event.event == 'signal:new':
            s = json.loads(event.data)
            msg = f"🚨 {s['pair']} {s['side']} @ {s['entry']}"
            for uid in subscribers:
                await bot.send_message(uid, msg)

⚠ Best Practices

  • Anonimisasi sinyal sebelum re-broadcast — nama analis dan komentar internal milik Liquidity Waves.
  • Cache responses — kalau SSE down, fallback ke polling tiap 30 detik.
  • Tier-gate fitur Anda — basic dapat TP1, premium dapat SL/TP semua.
  • Sebut sumber data — di /about command, tulis "Powered by Liquidity Waves API".
  • Jangan share API key — multi-bot dengan satu key bisa di-revoke tanpa peringatan.

Webhook Delivery (Enterprise)

Tier Enterprise dapat register HTTPS webhook URL. Kami akan POST event JSON langsung ke endpoint Anda — tidak perlu maintain koneksi SSE. Email cs@liquiditywaves.com untuk setup.

Reference

Error Codes

StatusCodePenyebab
401unauthorizedAPI key atau secret hilang/invalid
403stream_not_allowedTrial/Basic tidak boleh akses SSE
429rate_limitedBurst (30/sec) atau daily cap exceeded
404not_foundSignal/key id tidak ditemukan
500internalServer-side issue — retry dengan backoff

Butuh bantuan integrasi?

Tim engineering kami responsif. DM bot atau email langsung — kami bantu setup bot pertama Anda.