Persiapan Akses
Dokumen ini berisi panduan bagi mitra untuk terhubung dengan OSL Indonesia API. Sebelum memulai integrasi, silakan login ke platform web, ajukan API Key dan atur izin aksesnya, lalu lakukan pengembangan dan transaksi sesuai dengan panduan di dokumen ini.
Kamu dapat membuat Key API melalui menu Manajemen API Key.
Setiap sub-akun dapat membuat hingga 10 Key API, dan setiap Key API dapat diatur dengan izin baca dan trading. Berikut penjelasan masing-masing izin:
- Read-Only:
Izin baca, digunakan untuk mengambil data seperti data pasar. - Spot Trading:
Izin trading spot, digunakan untuk fitur seperti memasang dan membatalkan order spot. - Futures Trading:
Izin trading kontrak, digunakan untuk fitur seperti memasang dan membatalkan order kontrak.
Setelah API Key berhasil dibuat, harap simpan informasi berikut dengan baik.
Saat membuat API Key, sistem akan secara otomatis menghasilkan Key API dan Key Privat. Penjelasannya sebagai berikut: - Key API:
Identitas untuk transaksi melalui API, dibuat secara acak oleh sistem. - Key Privat:
Key privat yang dibuat secara acak oleh sistem dan digunakan untuk membuat tanda tangan (signature). - Passphrase:
Password yang ditentukan oleh pengguna. Perlu diperhatikan, jika Passphrase lupa, tidak dapat dipulihkan dan kamu harus membuat API Key baru. - Demi keamanan, sangat disarankan untuk mengikat (bind) alamat IP saat membuat API Key.
⚠️ Peringatan Risiko:
Ketiga data ini sangat berkaitan dengan keamanan akun kamu. Harap simpan Passphrase dengan aman dan jangan pernah membagikannya kepada siapa pun. Kebocoran salah satu dari data ini dapat menyebabkan kehilangan aset. Jika kamu mencurigai API Key telah bocor, segera hapus API Key tersebut.
Informasi Lingkungan
Untuk memastikan proses integrasi berjalan dengan lancar, kami menyediakan lingkungan pengujian terpisah untuk mendukung pengujian bersama pada tahap awal. Setelah pengujian bersama selesai dan seluruh fungsi dipastikan berjalan dengan baik, Anda dapat beralih ke lingkungan produksi untuk penggunaan resmi. Informasi lingkungan selengkapnya adalah sebagai berikut:
Platform Indonesia
Lingkungan Produksi:
- Domain API HTTP:
https://api.koinsayang.com - Domain API WebSocket:
wss://stream-api.koinsayang.com
Tipe Interface
Bab ini membagi jenis interface menjadi dua kategori berikut:
- Interface Publik
- Interface Privat
Interface Publik
Interface publik digunakan untuk mengambil informasi konfigurasi dan data pasar. Permintaan ke interface ini bisa dilakukan tanpa perlu autentikasi.
Interface Privat
Interface privat digunakan untuk pengelolaan order dan akun. Setiap permintaan ke interface privat harus ditandatangani menggunakan metode verifikasi yang telah ditentukan.
Interface privat wajib diverifikasi menggunakan Key API kamu.
Interface WebSocket
WebSocket adalah protokol baru di HTML5 yang memungkinkan komunikasi dua arah (full-duplex) antara klien dan server. Dengan satu proses handshake sederhana, koneksi antara klien dan server bisa langsung terhubung, dan server dapat secara aktif mengirimkan data ke klien sesuai kebutuhan sistem.
Keunggulan WebSocket:
- Data yang dikirim antara klien dan server menggunakan header yang sangat kecil (sekitar 2 byte), sehingga lebih efisien.
- Klien dan server sama-sama bisa mengirim data secara aktif kapan saja.
- Tidak perlu membuat dan menutup koneksi TCP berulang kali, sehingga lebih hemat bandwidth dan sumber daya server.
- Sangat disarankan bagi developer untuk menggunakan WebSocket API untuk mendapatkan data seperti pergerakan pasar dan kedalaman order beli/jual (buku order).
| Domain | WebSocket API |
|---|---|
| websocket publik | wss://stream-api.koinsayang.com/v2/ws/public |
| websocket privat | wss://stream-api.koinsayang.com/v2/ws/private |
Panduan Koneksi:
Batas Koneksi: 300 permintaan koneksi/IP/5 menit; satu IP dapat membuat maksimal 100 koneksi.
Batas Berlangganan: 240 kali/jam/koneksi; satu koneksi dapat berlangganan hingga 1.000 channel.
Untuk menjaga koneksi tetap aktif dan stabil, disarankan melakukan hal-hal berikut:
- Atur timer untuk mengirim string "ping" setiap 30 detik dan menunggu respons "pong". Jika tidak menerima respons "pong", silakan lakukan koneksi ulang.
- Jika server tidak menerima "ping" dalam waktu 2 menit, koneksi akan terputus secara otomatis.
- Server WebSocket menerima maksimal 10 pesan per detik per koneksi. Pesan yang dimaksud meliputi:
- String "ping";
- Pesan dalam format JSON, seperti permintaan berlangganan atau berhenti berlangganan.
- Jika jumlah pesan yang dikirim melebihi batas, koneksi akan diputus. IP yang sering terputus berulang kali berpotensi diblokir oleh server.
- Untuk menjaga stabilitas koneksi, sangat disarankan satu koneksi tidak berlangganan lebih dari 50 channel. Semakin sedikit channel yang dilanggan, semakin stabil koneksinya.
Sebagai contoh, untuk berlangganan ticker pada channel publik, langkah-langkahnya dibagi menjadi dua tahap berikut: - Alamat koneksi: wss://stream-api.koinsayang.com/v2/ws/public
- Kirim permintaan untuk berlangganan channel
{"op":"subscribe","args":[{"channel":"ticker","instType":"SPOT","instId":"BTCUSDT"}]}