Informasi Umum API WebSocket
- Base URL: wss://api-adapter.backend.currency.com/connect
- Base URL, akun demo: wss://demo-api-adapter.backend.currency.com/connect
- Semua return endpoint berupa object atau array JSON.
- Semua bidang yang berkaitan dengan waktu dan timestamp dinyatakan dalam milidetik.
- Koneksi API Websocket ditutup jika API tidak di-ping dalam interval waktu 30 detik.
- Semua token aset kecuali token perusahaan, token obligasi, token KARMA.cx, dan token aset dari pasar Hong Kong, tersedia di API versi pertama (v1). Dalam API versi kedua (v2), pasar Hong Kong sudah tersedia.
- Daftar aset yang tersedia untuk trading leverage dalam API bisa ditemukan di sini.
!Catatan: untuk pembuatan signature yang berhasil, urutkan parameter di payload permintaan menurut abjad.
Silakan merujuk pada area API WebSocket di Swagger untuk mendapatkan informasi yang Anda butuhkan. Contoh penggunaan lainnya dapat ditemukan di sini.
Troubleshooting
Metode Subscribe
const ws = new WebSocket
('wss://api-adapter.backend.currency.com/connect',
{perMessageDeflate: true});
let responseList = [];
let request, response = Object();
Callback
await ws.on('open', async function open() {
console.log("connected");
});
ws.on('close', async function close() {
console.log('disconnected');
});
ws.on('error', async function error(data) {
console.log('error');
console.log(data);
});
ws.on('message', async function incoming(data) {
response = JSON.parse(data);
responseList.push(response);
});
Correlation ID
ID ini dibutuhkan untuk memetakan respons yang tidak sinkron dengan permintaan
request.correlationId = request.correlationId + 1;
Model Permintaan
//Destination
request.destination = "/api/v1/leverageSettings";
//Request payload
request.payload = {"symbol": ETH/USD,
"timestamp": Date.now(),
"apiKey": apiKey};
request.payload.signature = getHash(request);
function getHash(request) {
let payload = "";
Object.keys(request.payload).sort().forEach(function(key) {
payload += key + "=" + request.payload[key] + "&";
});
payload = payload.substring(0, payload.length - 1);
console.log(payload);
let hash = CryptoJS.HmacSHA256(payload, apiSecret).toString();
console.log(hash);
return hash;
}
//Send request
message = JSON.stringify(request);
ws.send(message);
await sleep(5000);
index = responseList.findIndex(i =>
i.correlationId ===
request.correlationId.toString());
console.log('============================');
console.log('index: ' + index);
console.log(responseList[index]);
console.log('============================');
Deskripsi Parameter ‘Symbol’
Baik untuk mode trading exchange maupun leverage, parameter 'symbol' dapat dilihat dalam stream exchangeInfo.
Mode trading exchange: gunakan 'symbol' dari stream exchangeInfo;
Mode trading leverage: lihat 'symbol' dari stream exchangeInfo. Apabila nama ‘symbol’ memuat mata uang, gunakan format: ‘BTC%2FUSD_LEVERAGE’. Apabila ‘symbol’ hanya memuat nama aset, gunakan format ini: ‘Oil%20-%20Brent.’
Definisi ENUM
Tipe order (orderTypes, type):
- LIMIT
- MARKET
- STOP
Pemasangan order (side):
- BUY
- SELL
Waktu order aktif (timeInForce):
- GTC
- IOC
- FOK
Internal grafik Kline/Candlestick: m -> menit; h -> jam; d -> hari; w -> minggu
- 1m
- 5m
- 15m
- 30m
- 1h
- 4h
- 1d
- 1w
Catatan: jika nilai parameter "intervals" disebutkan ketika menggunakan endpoint wss:OHLCMarketData.subscribe endpoint, maka default nilainya adalah '1m'.