Getting Started
Introduction
KIMYUZIN adalah platform OTP (One-Time Password) terpercaya yang menyediakan akses ke 50+ layanan digital melalui 2 server premium.
Satu API, 50+ Layanan
Akses semua layanan melalui satu endpoint. Auto-failover antar server untuk ketersediaan tinggi.
Getting Started
Quick Start
Dapatkan API Key dalam 1 menit dan buat order pertamamu.
Flow Ringkas
Login ke dashboard web KIMYUZIN → menu API Key → klik Generate
Dapatkan daftar layanan dari GET /api/v1/services
Pilih service berdasarkan field code
Buat order dengan POST /api/v1/order
Simpan order_id untuk cek status
Polling status tiap 3 detik dengan GET /api/v1/status/{order_id}
Ambil OTP dengan GET /api/v1/otp/{order_id}
Resend OTP jika diperlukan (maks 5x) atau Cancel jika batal
Contoh Order
Copy
curl -X POST https://kimyuzin.store/api/v1/order \
-H "Authorization: Bearer API_KEY_ANDA" \
-H "Content-Type: application/json" \
-d '{"api_key":"API_KEY_ANDA","service":"gojek","server":"auto"}'
Getting Started
Base URL
Seluruh endpoint API menggunakan base URL berikut:
Copy
https://kimyuzin.store/api/v1
Contoh: https://kimyuzin.store/api/v1/services
Getting Started
Authentication
KIMYUZIN menggunakan API Key sebagai metode autentikasi. Cara pengiriman API Key BERBEDA tergantung endpoint.
Metode
Format
Endpoint
Header
Authorization: Bearer API_KEY
Semua endpoint (kecuali Cancel)
Query Param
?api_key=API_KEY
KHUSUS Cancel Order
Body (JSON)
{"api_key": "API_KEY"}
KHUSUS Create Order
Create Order : API Key WAJIB di Body JSON dan boleh juga di Header .
Cancel Order : API Key WAJIB di Query Parameter (?api_key=...).
Security Best Practices:
Jangan membagikan API Key kepada pihak lain.
Jangan masukkan API Key ke frontend/client-side code.
Simpan API Key di environment variable/server-side.
Jika API Key bocor, segera buat/ganti key baru melalui dashboard web KIMYUZIN.
Getting Started
API Keys
API Key digunakan untuk mengautentikasi semua request ke KIMYUZIN API.
🔑 Cara Mendapatkan API Key
Login ke dashboard web app.kimyuzin.store
Buka menu API Key di sidebar
Klik tombol Generate — API Key baru langsung tampil
Salin & simpan (1 akun = 1 API Key aktif)
Copy
https://app.kimyuzin.store/dashboard/api
🛡️ Best Practices
✅ Simpan API Key di environment variable
✅ Gunakan hanya di server-side
❌ Jangan commit API Key ke GitHub
❌ Jangan bagikan API Key ke orang lain
🔄 Jika key bocor, klik Generate lagi di menu API Key untuk membuat key baru (key lama otomatis nonaktif)
Setiap user bisa generate API Key sendiri — tidak perlu admin!
API Reference
Services
GET
/api/v1/services
Dapatkan daftar semua layanan OTP yang tersedia beserta harga terbaru.
Headers
Authorization : Bearer API_KEY_ANDA
Response
Copy
{
"success" : true ,
"server1" : [
{
"code" : "gojek" ,
"name" : "Gojek" ,
"price" : 1500 ,
"allow_retry" : true
},
{
"code" : "slot" ,
"name" : "SLOT" ,
"price" : 1000 ,
"allow_retry" : false
}
],
"server2" : [
{
"code" : "gopay" ,
"name" : "Gopay" ,
"price" : 1000 ,
"allow_retry" : true
}
]
}
Field
Type
Description
code
string
Kode layanan untuk digunakan saat order
name
string
Nama layanan
price
number
Harga jual final KIMYUZIN
allow_retry
boolean
Apakah layanan support minta ulang OTP
Harga yang ditampilkan oleh API adalah harga resmi KIMYUZIN yang berlaku untuk akun Anda.
Harga dapat berbeda untuk setiap akun tergantung pada level atau status reseller.
allow_retry: true = Support minta ulang OTP, false = Tidak support minta ulang OTP.
API Reference
Create Order
POST
/api/v1/order
SERVER 1 & 2
Buat order OTP baru untuk layanan tertentu.
Headers
Authorization : Bearer API_KEY_ANDA
Content-Type : application/json
Request Body
Copy
{
"api_key" : "API_KEY_ANDA" ,
"service" : "gojek" ,
"server" : "auto"
}
Parameter
Type
Required
Description
api_key
string
Yes
API Key akun
service
string
Yes
Kode layanan dari /api/v1/services
server
string
Yes
auto, server1, atau server2
Parameter Server
auto — Otomatis pilih server terbaik (recommended)
server1 — Menggunakan Server 1
server2 — Menggunakan Server 2
Response Sukses
Copy
{
"success" : true ,
"order_id" : "KIM-20260901-XXXXX" ,
"server" : "server1" ,
"phone" : "62838XXXXXXX" ,
"price" : 1200 ,
"status" : "waiting"
}
Field
Type
Description
success
boolean
Status order
order_id
string
ID order unik
server
string
Server yang digunakan
phone
string
Nomor tujuan OTP
price
number
Harga yang dipotong dari saldo
status
string
Status order (waiting, processing, completed, expired, cancelled)
Contoh cURL
Copy
curl -X POST https://kimyuzin.store/api/v1/order \
-H "Authorization: Bearer API_KEY_ANDA" \
-H "Content-Type: application/json" \
-d '{"api_key":"API_KEY_ANDA","service":"gojek","server":"auto"}'
Contoh Python
Copy
import requests
API_KEY = "API_KEY_ANDA"
url = "https://kimyuzin.store/api/v1/order"
headers = {"Authorization" : f"Bearer {API_KEY}" }
data = {
"api_key" : API_KEY,
"service" : "gojek" ,
"server" : "auto"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Contoh JavaScript (Node.js)
Copy
const axios = require('axios' );
const API_KEY = 'API_KEY_ANDA' ;
const url = 'https://kimyuzin.store/api/v1/order' ;
const headers = { 'Authorization' : `Bearer ${API_KEY}` };
const data = {
api_key: API_KEY,
service: 'gojek' ,
server: 'auto'
};
axios.post(url, data, { headers })
.then(response => console.log(response.data));
API Reference
Order Status
GET
/api/v1/status/{order_id}
Cek status order. Gunakan endpoint ini untuk polling tiap 3 detik sampai OTP tersedia.
Headers
Authorization : Bearer API_KEY_ANDA
Response
Copy
{
"success" : true ,
"order_id" : "KIM-20260901-XXXXX" ,
"server" : "server1" ,
"status" : "completed" ,
"otp" : "123456" ,
"full_text" : "Kode OTP Anda: 123456. Jangan bagikan kepada siapapun." ,
"allow_retry" : true ,
"phone" : "62838XXXXXXX" ,
"price" : 1200
}
Status Order
waiting — Menunggu nomor dari supplier
processing — Sedang menunggu OTP masuk
completed — OTP berhasil didapatkan
expired — Order kadaluarsa
cancelled — Order dibatalkan
API Reference
Get OTP
GET
/api/v1/otp/{order_id}
Ambil OTP dari order yang sudah completed.
Headers
Authorization : Bearer API_KEY_ANDA
Response Sukses
Copy
{
"success" : true ,
"order_id" : "KIM-20260901-XXXXX" ,
"otp" : "123456" ,
"full_text" : "Kode OTP Anda: 123456. Jangan bagikan kepada siapapun." ,
"allow_retry" : true ,
"phone" : "62838XXXXXXX"
}
Response Gagal
Copy
{
"success" : false ,
"error" : "Status order: waiting" ,
"error_code" : 409
}
Catatan: Gunakan /api/v1/status/{order_id} untuk polling tiap 3 detik sampai status menjadi completed, lalu ambil OTP di sini.
API Reference
Resend OTP
POST
/api/v1/order/{order_id}/resend
SERVER 1 & 2
Minta ulang OTP untuk order yang sudah completed tetapi OTP tidak masuk atau ingin meminta ulang kode.
Headers
Authorization : Bearer API_KEY_ANDA
Syarat & Ketentuan
Order harus dalam status completed
Maksimal 5x resend per order
Tidak ada potongan saldo tambahan
Waktu berlaku diperpanjang +20 menit
Response
Copy
{
"success" : true ,
"order_id" : "KIM-20260901-XXXXX" ,
"server" : "server1" ,
"status" : "completed" ,
"resend_count" : 1 ,
"expires_at" : "2026-09-01T12:00:00"
}
API Reference
Rebuy (Reaktivasi)
POST
/api/v1/order/{order_id}/rebuy
SERVER 1
Beli ulang OTP di nomor yang SAMA untuk layanan yang SAMA dari order lama yang sudah sukses.
Harga normal, saldo ditahan dan dipotong saat OTP diterima (seperti order biasa).
Cuma Server 1. Server 2 tidak mendukung reaktivasi.
Headers
Authorization : Bearer API_KEY_ANDA
Syarat & Ketentuan
Order lama harus completed dan milik akun kamu
Order lama harus dari Server 1
Nomor belum dipakai buyer lain & masih hidup
Membuat order BARU (harga normal, saldo dipotong saat OTP masuk)
Request
Copy
curl -X POST "https://kimyuzin.store/api/v1/order/KIM-20261014-8505E9/rebuy" \ -H "Authorization: Bearer API_KEY_ANDA"
Response Sukses
Copy
{
"success" : true ,
"order_id" : "KIM-20261014-ABCDEF" ,
"rebuy_of" : "KIM-20261014-8505E9" ,
"phone" : "628315520227" ,
"server" : "server1" ,
"price" : 1200 ,
"status" : "waiting"
}
Error
402 — Saldo kurang
404 — Order lama tidak ditemukan
409 — Bukan Server 1 / status bukan completed / nomor dijual / offline
API Reference
Cancel Order
POST
/api/v1/order/{order_id}/cancel
SERVER 1 & 2
⚠️ Penting: Endpoint ini menggunakan Query Parameter untuk API Key, BUKAN Header!
Batalkan order yang masih aktif. Saldo akan otomatis dikembalikan (refund).
Request
Copy
curl -X POST "https://kimyuzin.store/api/v1/order/KIM-20260907-BBDEFA/cancel?api_key=API_KEY_ANDA"
Response Sukses
Copy
{
"success" : true ,
"message" : "Order KIM-20260907-BBDEFA berhasil dibatalkan" ,
"order_id" : "KIM-20260907-BBDEFA"
}
Response Gagal
Copy
{
"success" : false ,
"error" : "Order sudah selesai" ,
"error_code" : 409
}
Syarat Cancel
Status harus waiting atau processing
Order belum completed
Saldo otomatis refund ke user jika cancel berhasil
API Reference
Balance
GET
/api/v1/balance
Cek saldo akun API Anda.
Headers
Authorization : Bearer API_KEY_ANDA
Copy
{
"success" : true ,
"balance" : 50000
}
Resources
Error Codes
Semua error response mengikuti format:
{
"success" : false ,
"error" : "Pesan error" ,
"error_code" : XXX
}
400
Bad Request
Parameter yang dikirim tidak lengkap atau format salah. Cek request body Anda.
402
Insufficient Balance
Saldo tidak cukup untuk melakukan order. Silakan isi saldo melalui deposit QRIS.
403
Forbidden
Anda tidak memiliki akses ke resource ini. Cek role atau izin akun Anda.
404
Not Found
Endpoint atau order_id tidak ditemukan. Cek kembali URL atau ID order Anda.
409
Order Conflict
Order sudah selesai atau tidak bisa di-cancel. Cek status order terlebih dahulu.
410
Order Expired
Order sudah kadaluarsa. Silakan buat order baru.
422
Unprocessable Entity
Service tidak tersedia di server yang dipilih. Coba gunakan server: "auto".
429
Rate Limit Exceeded
Terlalu banyak order aktif. Maksimal 20 order per API Key. Tunggu order selesai/kadaluarsa.
500
Internal Server Error
Terjadi kesalahan pada server kami. Tim sedang menangani. Coba lagi nanti.
503
Server Maintenance
Server yang dipilih sedang dalam maintenance.
Gunakan "server": "auto"
untuk failover otomatis ke server yang tersedia.
503
All Servers Down
Kedua server sedang offline. Kami sedang melakukan perbaikan.
Silakan coba lagi nanti. Pantau status di dashboard web KIMYUZIN .
Resources
Rate Limits
20 Order Aktif
Maksimal 20 order aktif per API Key. Order yang sudah completed, expired, atau cancelled tidak dihitung.
Auto-Failover
Otomatis pindah ke server cadangan jika server utama bermasalah (hanya saat menggunakan server: "auto").
Resend OTP
Maksimal 5x resend per order. Tidak memotong saldo tambahan.
Resources
API Flow
Visual alur penggunaan API KIMYUZIN dari awal sampai selesai.
1
GET /api/v1/services → Dapatkan daftar layanan
↓
2
Pilih service berdasarkan field code
↓
3
POST /api/v1/order → Buat order, dapatkan order_id
↓
4
GET /api/v1/status/{order_id} → Polling tiap 3 detik sampai status completed
↓
5
GET /api/v1/otp/{order_id} → Ambil OTP
atau
POST /api/v1/order/{order_id}/resend → Minta ulang OTP
atau
POST /api/v1/order/{order_id}/cancel → Batalkan order
Tips: Gunakan server: "auto" untuk auto-failover. Simpan order_id untuk tracking order.
Resources
Changelog
v1.0.0
1 September 2026
Rilis perdana KIMYUZIN API
Support 50+ layanan OTP dari 2 server (Server 1 & Server 2)
Autentikasi API Key dengan 3 metode (Header, Query, Body)
Endpoint: Services, Create Order, Status, Get OTP, Resend OTP, Cancel Order, Balance
Auto-failover antar server
Resend OTP maksimal 5x per order
Cancel order dengan refund otomatis
Getting Started
Introduction (OTP via SMS)
KIMYUZIN SMS menyediakan nomor virtual untuk menerima kode OTP lewat SMS ,
didukung oleh 2 server: sms_server1 dan
sms_server2.
Satu API untuk OTP SMS
Order nomor SMS, pantau OTP, resend, dan cancel lewat API yang sama seperti OTP via WA.
API Key, base URL, dan autentikasi sama dengan OTP via WA. Yang berbeda hanya
server dan parameter tambahan saat order.
Getting Started
Quick Start (OTP via SMS)
Alur order nomor SMS dari nol sampai dapat OTP.
Flow Ringkas
Generate API Key via dashboard web KIMYUZIN
Pilih server: sms_server1 atau sms_server2
Ambil daftar layanan: GET /api/v1/sms/services
Ambil daftar negara: GET /api/v1/sms/countries
Buat order: POST /api/v1/order dengan server: sms_server1/sms_server2
Simpan order_id, lalu polling GET /api/v1/status/{order_id}
Ambil OTP: GET /api/v1/otp/{order_id}
Resend OTP (maks 5x) atau Cancel jika dibatalkan
Contoh Order (sms_server1)
Copy
curl -X POST https://kimyuzin.store/api/v1/order \
-H "Authorization: Bearer API_KEY_ANDA" \
-H "Content-Type: application/json" \
-d '{"api_key":"API_KEY_ANDA","server":"sms_server1","service":"WhatsApp","country_id":7,"product_id":1370412958}'
Getting Started
Base URL (OTP via SMS)
Base URL sama dengan OTP via WA:
Copy
https://kimyuzin.store/api/v1
Contoh: https://kimyuzin.store/api/v1/sms/services
Getting Started
Authentication (OTP via SMS)
Autentikasi menggunakan API Key yang sama dengan OTP via WA. Cara pengiriman mengikuti endpoint:
Metode
Format
Endpoint
Header
Authorization: Bearer API_KEY
Semua endpoint (kecuali Cancel)
Query Param
?api_key=API_KEY
KHUSUS Cancel Order
Body (JSON)
{"api_key": "API_KEY"}
KHUSUS Create Order
Getting Started
Servers (OTP via SMS)
Terdapat 2 server SMS dengan alur parameter yang berbeda.
Server
Alur
Parameter Order
SMS SERVER 1 sms_server1
Negara → Layanan
country_id, product_id
SMS SERVER 2 sms_server2
Layanan → Negara
service_id, country_id, custom_price_usd, operator
sms_server1: ambil product_id dari /sms/services?server=sms_server1&country_id=....
sms_server2: ambil service_id dari /sms/services?server=sms_server2, lalu tier (custom_price_usd) + operator dari /sms/countries?server=sms_server2&service_id=....
API Reference
Services (SMS)
GET
/api/v1/sms/services
Daftar layanan SMS yang tersedia.
Query Parameters
server : sms_server1 | sms_server2
country_id : 7 (WAJIB untuk sms_server1)
Response — sms_server1 (butuh country_id)
Copy
{
"success" : true ,
"server" : "sms_server1" ,
"services" : [
{
"product_id" : 1370412958 ,
"platform_id" : 327 ,
"name" : "WhatsApp" ,
"price" : 9719 ,
"stock" : 19047
}
]
}
Response — sms_server2 (global)
Copy
{
"success" : true ,
"server" : "sms_server2" ,
"services" : [
{ "service_id" : 76 , "name" : "Whatsapp" },
{ "service_id" : 65 , "name" : "Telegram" }
]
}
API Reference
Countries (SMS)
GET
/api/v1/sms/countries
Daftar negara SMS. Untuk sms_server2, response menyertakan tier harga + operator.
Query Parameters
server : sms_server1 | sms_server2
service_id : 76 (WAJIB untuk sms_server2)
Response — sms_server1
Copy
{
"success" : true ,
"server" : "sms_server1" ,
"countries" : [
{ "id" : 7 , "name" : "Indonesia" }
]
}
Response — sms_server2
Copy
{
"success" : true ,
"server" : "sms_server2" ,
"countries" : [
{
"id" : 75 ,
"name" : "Afghanistan" ,
"count" : 193637 ,
"price" : 15681 ,
"prices" : [
{ "price" : 15681 , "price_usd" : 0.70826 , "count" : 193637 },
{ "price" : 16493 , "price_usd" : 0.7469 , "count" : 600 }
],
"operators" : [
{ "code" : "any" , "name" : "Any" }
]
}
]
}
price = harga jual final KIMYUZIN (sudah markup).
Gunakan price_usd sebagai
custom_price_usd saat membuat order sms_server2.
API Reference
Create Order (SMS)
POST
/api/v1/order
SMS SERVER 1 & 2
Buat order nomor SMS. Endpoint sama dengan WA, cukup isi server ke sms_server1 atau sms_server2.
Request Body
Copy
{
"api_key" : "API_KEY_ANDA" ,
"server" : "sms_server1" ,
"service" : "WhatsApp" ,
"country_id" : 7 ,
"product_id" : 1370412958
}
Parameter
Type
Required
Description
api_key
string
Yes
API Key akun
server
string
Yes
sms_server1 atau sms_server2
country_id
integer
Yes
ID negara dari /sms/countries
service
string
No
Nama layanan (opsional)
product_id
integer
Yes*
Untuk sms_server1
service_id
integer
Yes*
Untuk sms_server2
custom_price_usd
number
No
Tier harga sms_server2 (default termurah)
operator
string
No
Kode operator sms_server2 (default any)
Contoh — sms_server2
Copy
curl -X POST https://kimyuzin.store/api/v1/order \
-H "Authorization: Bearer API_KEY_ANDA" \
-H "Content-Type: application/json" \
-d '{"api_key":"API_KEY_ANDA","server":"sms_server2","service":"Whatsapp","service_id":76,"country_id":75,"custom_price_usd":0.70826,"operator":"any"}'
Response Sukses
Copy
{
"success" : true ,
"order_id" : "KIM-20261006-XXXXXX" ,
"server" : "sms_server1" ,
"phone" : "628519XXXXXXX" ,
"price" : 9719 ,
"status" : "waiting"
}
Order SMS memiliki batas waktu OTP 20 menit. Cancel hanya bisa setelah 2 menit sejak order dibuat.
API Reference
Order Status (SMS)
GET
/api/v1/status/{order_id}
Sama seperti WA. Polling sampai OTP masuk.
Copy
curl https://kimyuzin.store/api/v1/status/KIM-20261006-XXXXXX \
-H "Authorization: Bearer API_KEY_ANDA"
Response
Copy
{
"success" : true ,
"order_id" : "KIM-20261006-XXXXXX" ,
"server" : "sms_server1" ,
"status" : "waiting" ,
"otp" : null ,
"phone" : "628519XXXXXXX" ,
"price" : 9719
}
API Reference
Get OTP (SMS)
GET
/api/v1/otp/{order_id}
Ambil kode OTP. Hanya berhasil jika status order completed.
Copy
curl https://kimyuzin.store/api/v1/otp/KIM-20261006-XXXXXX \
-H "Authorization: Bearer API_KEY_ANDA"
Response
Copy
{
"success" : true ,
"order_id" : "KIM-20261006-XXXXXX" ,
"otp" : "123456" ,
"phone" : "628519XXXXXXX"
}
API Reference
Resend OTP (SMS)
POST
/api/v1/order/{order_id}/resend
Minta ulang OTP. Maksimal 5x per order, dan hanya untuk order yang sudah selesai/menerima OTP.
Copy
curl -X POST https://kimyuzin.store/api/v1/order/KIM-20261006-XXXXXX/resend \
-H "Authorization: Bearer API_KEY_ANDA"
API Reference
Cancel Order (SMS)
POST
/api/v1/order/{order_id}/cancel?api_key=API_KEY_ANDA
Batalkan order SMS. Saldo yang ditahan akan dikembalikan. Cancel hanya bisa setelah 2 menit sejak order dibuat.
Copy
curl -X POST "https://kimyuzin.store/api/v1/order/KIM-20261006-XXXXXX/cancel?api_key=API_KEY_ANDA"
API Key untuk Cancel Order WAJIB dikirim lewat query parameter ?api_key=....
API Reference
Balance (SMS)
GET
/api/v1/balance
Cek saldo akun. Sama untuk WA maupun SMS.
Copy
curl https://kimyuzin.store/api/v1/balance \
-H "Authorization: Bearer API_KEY_ANDA"
Resources
Error Codes (SMS)
Code
Artinya
401API Key tidak ada / tidak valid
402Saldo tidak cukup
404Order / layanan / negara tidak ditemukan
409Status belum siap (mis. OTP belum masuk)
410Order sudah expired / dibatalkan
422Parameter tidak lengkap (mis. country_id/product_id/service_id)
429Rate limit / terlalu banyak order aktif / batas resend
503Stok habis atau server gangguan
Resources
Rate Limits (SMS)
60 request / menit per IP untuk seluruh endpoint API.
Maksimal 20 order aktif per akun.
Maksimal 5x resend OTP per order.
Lewat limit akan menerima HTTP 429 dengan header Retry-After.
Resources
API Flow (SMS)
GET /sms/services → pilih layanan.
GET /sms/countries → pilih negara (+ tier/operator untuk sms_server2).
POST /order → buat order, simpan order_id.
Polling GET /status/{order_id} (tiap 5 detik) sampai completed.
GET /otp/{order_id} → ambil kode OTP.
Jika perlu: POST /order/{order_id}/resend atau POST /order/{order_id}/cancel?api_key=....