API Key
Jual key KENO XYTER lewat bot kamu sendiri. Top up saldo via QRIS, bot membeli key otomatis lewat API, key langsung dikembalikan di response. Harga reseller otomatis lebih murah dari harga web (diskon 8%).
DOKUMENTASI
Base URL
http://kenoxyter.my.id/api/v1
Autentikasi: kirim API key di header Authorization: Bearer kx_live_... (atau X-API-Key). Semua response berbentuk JSON: {"ok":true,"data":...} atau {"ok":false,"error":{"code","message"}}. Batas 60 request/menit per key.
/healthCek API hidup (tanpa API key).
/meInfo akun, saldo, jenis key (full/read) dan batas request.
/balancecurl -H "Authorization: Bearer KEY_KAMU" http://kenoxyter.my.id/api/v1/balance
/productsDaftar produk + paket. price = harga reseller yang dipotong dari saldo, stock = stok sekarang, status = ONLINE / PATCH / MAINTENANCE.
{"ok":true,"data":[{"id":3,"name":"XREG NON ROOT","status":"ONLINE",
"variants":[{"id":12,"label":"1 Hari","price":8900,"retail_price":9700,"stock":42}]}]}
/products/{id}Satu produk. Filter di daftar: ?category=NAMA dan ?in_stock=1 (hanya paket yang ada stok).
/topups GET/topups /topups/{token}Top up saldo lewat API: kirim {"amount":50000}, balasannya qr_url (gambar QRIS) dan pay_amount (nominal yang harus dibayar). Cek GET /topups/{token} sampai status jadi paid, saldo masuk otomatis.
/ordersBeli 1 key. Saldo dipotong, key langsung ada di response. Kirim header Idempotency-Key unik per transaksi supaya kalau request diulang (timeout, dll) kamu tidak dipotong dua kali.
curl -X POST http://kenoxyter.my.id/api/v1/orders \
-H "Authorization: Bearer KEY_KAMU" \
-H "Idempotency-Key: trx-0001" \
-H "Content-Type: application/json" \
-d '{"variant_id":12}'
{"ok":true,"data":{"id":57,"status":"success","product":"XREG NON ROOT",
"package":"1 Hari","price":8900,"key":"XXXX-XXXX-XXXX","balance":41100}}
Status processing (HTTP 202) = saldo sudah terpotong tapi key belum keluar dari supplier. Panggil GET /orders/{id} beberapa detik lagi, key akan diambil ulang otomatis.
/orders/{id} /orders?limit=20Detail satu order, atau order API terakhir (maks 100).
Keamanan & header
Key bisa dibuat hanya-baca (aman untuk dashboard) dan dikunci ke IP server kamu. Setiap response membawa request_id (juga di header X-Request-Id, kirim ke CS kalau ada masalah) dan header X-RateLimit-Remaining.
Kode error
| 400 | invalid_json body bukan JSON valid |
| 401 | unauthorized API key salah / dicabut |
| 403 | read_only_key, ip_not_allowed |
| 402 | insufficient_balance saldo kurang, top up dulu |
| 404 | variant_not_found, product_not_found, order_not_found, topup_not_found |
| 409 | out_of_stock, maintenance, idempotency_conflict |
| 405 | method_not_allowed (lihat header Allow) |
| 422 | invalid_variant_id, topup_failed, invalid_idempotency_key |
| 429 | rate_limited terlalu banyak request |
Contoh bot (Python)
import requests, uuid
API = "http://kenoxyter.my.id/api/v1"
H = {"Authorization": "Bearer KEY_KAMU"}
def beli(variant_id):
h = dict(H, **{"Idempotency-Key": str(uuid.uuid4())})
r = requests.post(f"{API}/orders", json={"variant_id": variant_id}, headers=h, timeout=40).json()
if not r["ok"]:
return "Gagal: " + r["error"]["message"]
return r["data"]["key"] # kirim ke pembeli kamu
print(beli(12))
