Kesalahan dan Batasan

Ketika permintaan gagal, API Quentrade mengembalikan objek kesalahan (error object) dengan kode respons HTTP yang relevan dan informasi tambahan untuk membantu mengidentifikasi serta menyelesaikan masalah.

Kode Status HTTP

Kesalahan umumnya mengembalikan kode respons 4xx (kesalahan klien) atau 5xx (kesalahan server):

4XX

Permintaan tidak valid (kesalahan terjadi di sisi pengirim).

401

Autentikasi gagal. Kemungkinan penyebab: kunci API tidak valid atau kedaluwarsa, tanda tangan permintaan tidak valid, atau permintaan dari alamat IP yang tidak masuk daftar putih (whitelist).

403

Akses ditolak. Dua kemungkinan penyebab: (1) kunci API tidak memiliki izin yang diperlukan (misal: BOTS_READ) — periksa pengaturan izin kunci di akun Quentrade Anda; (2) operasi tidak diizinkan untuk sumber daya ini dalam statusnya saat ini (misal: deal tidak dapat dibatalkan atau diperlukan langganan aktif).

404

Sumber daya tidak ditemukan. Endpoint atau ID data yang diminta tidak tersedia.

429

Batas frekuensi permintaan terlampaui. Anda harus memperlambat permintaan untuk menghindari pemblokiran IP.

418

IP diblokir otomatis (banned) karena terus mengirim permintaan setelah menerima kode 429.

5XX

Kesalahan internal server (masalah ada di sisi Quentrade).

504

Gateway timeout, menunjukkan API tidak bisa mendapatkan respons tepat waktu.

2XX

Respons berhasil mengembalikan kode status 2xx.

Atribut

errorstring required

Kode dan pesan kesalahan spesifik yang ditentukan untuk API.

error_descriptionstring

Deskripsi kesalahan yang lebih panjang dan mudah dipahami.

error_attributesobject

Mencantumkan bidang yang tidak lolos validasi beserta pesan batasan spesifiknya.

Objek Kesalahan (Error Object)

Saat terjadi kesalahan, API mengembalikan objek kesalahan alih-alih objek data atau array. Respons kesalahan memiliki format payload berikut:

error_response.json
Error Schema
{
  "error": "record_invalid",
  "error_description": "Invalid parameters",
  "error_attributes": {
    "api_key": ["is too short (minimum is 5 characters)"],
    "secret": ["is too short (minimum is 5 characters)"],
    "name": ["is too short (minimum is 2 characters)"]
  }
}

Batasan Frekuensi (Rate Limits)

Aturan Umum

REST API kami memberlakukan batas maksimum 100 permintaan per menit.

Jika batas frekuensi terlampaui, API akan merespons dengan kode status HTTP 429 Too Many Requests, dan akses akan dibatasi sementara selama periode mitigasi 300 detik.

Batas frekuensi untuk endpoint tertentu

GET/api/v1/bots/dca
120 permintaan per menitPeriode mitigasi: 60 detik
GET/api/v1/smarttrade
60 permintaan per menitPeriode mitigasi: 30 detik
GET/api/v1/terminal/orders
120 permintaan per menitPeriode mitigasi: 60 detik
POST/api/v1/terminal/order
30 permintaan per menitPeriode mitigasi: 30 detik

Pemberitahuan Penting Batas Frekuensi & Pemblokiran IP

Setelah menerima kode status 429 Too Many Requests, Anda wajib mengurangi frekuensi permintaan Anda. Pelanggaran berulang atau kegagalan memperlambat permintaan setelah respons 429 dapat mengakibatkan pemblokiran IP otomatis (status HTTP 418).

Pemblokiran IP dicatat dan durasinya bertambah untuk pelanggaran berulang, mulai dari 2 menit hingga 3 hari.