Beli nomor OTP dari kode kamu sendiri
Cek saldo, pilih layanan, pesan nomor, dan ambil kode OTP โ semuanya lewat satu API sederhana.
https://artapedianokosmurahid.vercel.app/api/v1Pengenalan
Semua endpoint berada di bawah base URL berikut. Semua response menggunakan format application/json.
Base URL: https://artapedianokosmurahid.vercel.app/api/v1
Semua contoh di halaman ini otomatis memakai alamat di atas โ kamu tinggal salin. Kalau alamat ini berubah, contoh di sini ikut berubah.
API Key auth
Autentikasi via header Bearer atau query param
JSON body
Request body dan response selalu JSON
REST
Endpoint stateless standar REST
API Key Arta Pedia
API key adalah kunci pribadimu untuk memakai API โ satu akun satu key (32 karakter heksadesimal). Semua yang dilakukan lewat key (saldo terpotong, pesanan, deposit) tercatat atas akunmu, jadi perlakukan seperti kata sandi.
๐ Cara mendapatkan key
- Masuk ke akunmu di web Arta Pedia.
- Buka halaman API Key (menu Dashboard โ API Key).
- Tekan Buat / Buat ulang API key, lalu salin โ key utuh hanya tampil saat dibuat.
๐ก๏ธ Aturan keamanan key
- Kirim lewat header
Authorization: Bearer, jangan lewat URL. - Jangan taruh di aplikasi frontend publik atau repository.
- Bocor? Buat ulang key โ key lama langsung mati.
- Akun yang dibekukan (anti-curang) tidak bisa memakai API.
Authentication
Semua endpoint v1 memerlukan API key. API key berupa string 32 karakter hex yang bisa kamu generate atau regenerate di halaman Dashboard โ bagian API Key.
Cara mengirim API key:
1. Header Authorization: Bearer (direkomendasikan)
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://artapedianokosmurahid.vercel.app/api/v1/me
2. Query parameter ?api_key=
curl "https://artapedianokosmurahid.vercel.app/api/v1/me?api_key=YOUR_API_KEY"
โ ๏ธ Jaga kerahasiaan API key
Jangan expose API key di frontend publik atau repository. Jika bocor, segera regenerate di Dashboard.
Rate Limit API Key
Setiap API key dibatasi per 60 detik (jendela bergulir). Batas dihitung per key, bukan per IP, dan melindungi akunmu serta server dari permintaan berlebihan.
Semua endpoint v1 (baca): me, servers, services, countries, orders, deposit status & methods
POST /v1/order โ membuat pesanan OTP (ikut hitungan 60/menit di atas)
POST /v1/deposit โ membuat QRIS deposit (ikut hitungan 60/menit di atas)
POST /v1/orders/cancel dan POST /v1/deposit/cancel โ pembatalan (ikut hitungan 60/menit di atas)
Header di setiap respons
// HTTP 429 โ melewati batas
{
"error": "Rate limit exceeded: maks 60 request per menit untuk API key ini. Coba lagi dalam 23 detik.",
"retryAfter": 23
}๐ก Untuk menunggu OTP, polling /v1/orders/status tiap 3โ5 detik (bukan tiap detik) agar jatah cukup. Saat menerima 429, tunggu sesuai Retry-After lalu coba lagi.
Error Codes
Saat terjadi error, response akan memiliki field error berisi pesan deskriptif.
Bad Request
Parameter kurang atau tidak valid
Unauthorized
API key tidak ada, salah format, atau tidak ditemukan
Forbidden
Akun ditangguhkan
Not Found
Resource (pesanan dll) tidak ditemukan
Conflict
Aksi bentrok dengan keadaan terkini โ mis. batal order tapi OTP baru saja masuk, atau batal deposit tapi sudah dibayar
Too Many Requests
Melewati rate limit API key โ lihat header Retry-After
Server Error
Kesalahan internal, coba lagi nanti
Service Unavailable
Server nokos sedang dimatikan admin, atau status pesanan belum bisa dicek ke provider โ coba lagi sebentar
// Contoh response error
{
"error": "API key not found or revoked."
}Akun
/api/v1/me๐ Perlu API keyInformasi akun
Mengembalikan nama, saldo, dan tanggal bergabung untuk API key yang diberikan.
Response fields
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://artapedianokosmurahid.vercel.app/api/v1/me
// 200 OK
{
"name": "John Doe",
"balance": 50000,
"joinedAt": "2024-01-15T08:30:00.000Z"
}Server Nokos
Layanan nokos Arta Pedia berjalan di atas WarungNokos dengan dua jalur, disebut server. Tiap server punya daftar aplikasi, negara, dan harga sendiri. Semua endpoint katalog & order menerima parameter server. Kalau tidak dikirim, nilainya otomatis warungnokos_s1 (Server Plus).
warungnokos_s1Server Plus
Jalur utama WarungNokos (H2H), stok melimpah & rate sukses tertinggi.
warungnokos_s2Server Express
Jalur kedua WarungNokos (API v3). Kode layanannya berupa nama huruf kecil, mis. whatsapp; stok tidak ditampilkan angkanya.
Perhatian: admin bisa mematikan salah satu server kapan saja. Server yang mati tidak muncul di /v1/servers dan request ke server itu dibalas 503. Selalu ambil daftar server dulu, jangan hardcode.
/api/v1/servers๐ Perlu API keyDaftar server aktif
Mengembalikan server nokos yang sedang aktif beserta nama dan deskripsinya.
Response fields
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://artapedianokosmurahid.vercel.app/api/v1/servers
// 200 OK
{
"items": [
{ "server": "warungnokos_s1", "name": "Server Plus", "badge": "Utama", "provider": "WarungNokos" },
{ "server": "warungnokos_s2", "name": "Server Express", "badge": "Cepat", "provider": "WarungNokos S2" }
]
}Layanan OTP
/api/v1/services๐ Perlu API keyDaftar layanan OTP per server
Mengembalikan aplikasi yang tersedia di satu server (WhatsApp, Telegram, Shopee, dll). Tiap server punya daftar yang berbeda.
Parameters
Response fields
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://artapedianokosmurahid.vercel.app/api/v1/services?server=warungnokos_s1"
// 200 OK
{
"server": "warungnokos_s1",
"items": [
{ "service_code": "wa", "service_name": "WhatsApp", "service_img": null, "server": "warungnokos_s1" },
{ "service_code": "tg", "service_name": "Telegram", "service_img": null, "server": "warungnokos_s1" }
]
}Negara & Harga
Endpoint ini yang memberi kamu numberId, providerId, dan harga jual final. Nilai sell_price sudah termasuk markup โ itulah nominal yang dipotong dari saldo. price adalah harga modal, jangan dipakai untuk menghitung tagihan.
/api/v1/countries๐ Perlu API keyDaftar negara, stok, dan harga
Mengembalikan negara yang tersedia untuk satu layanan di satu server, lengkap dengan pricelist-nya.
Parameters
Response fields
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://artapedianokosmurahid.vercel.app/api/v1/countries?server=warungnokos_s1&service_id=wa"
// 200 OK โ server "warungnokos_s1"
{
"server": "warungnokos_s1",
"items": [
{
"number_id": "wn:6",
"name": "Indonesia",
"flag": "๐ฎ๐ฉ",
"pricelist": [
{
"provider_id": "wn:6:1",
"provider_name": "Server Plus",
"price": 900,
"sell_price": 1100,
"stock": 245,
"country_id": "6",
"server": "warungnokos_s1"
}
]
}
]
}Riwayat Pesanan
/api/v1/orders๐ Perlu API keyDaftar pesanan
Mengembalikan daftar pesanan OTP milik akun yang terautentikasi, diurutkan terbaru dulu.
Parameters
Response fields
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://artapedianokosmurahid.vercel.app/api/v1/orders?limit=10&page=1"
Status Pesanan
/api/v1/orders/status๐ Perlu API keyCek status pesanan
Cek status terbaru pesanan OTP spesifik, termasuk kode OTP jika sudah tersedia.
Parameters
Response fields
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://artapedianokosmurahid.vercel.app/api/v1/orders/status?order_id=123456"
// 200 OK (OTP sudah diterima)
{
"orderId": "123456",
"status": "done",
"otpCode": "483921",
"otpMsg": "Your WhatsApp code is 483921",
"phoneNumber": "+62812xxxxxxx",
"price": 3500,
"refunded": false,
"createdAt": "2024-06-01T12:00:00.000Z"
}Buat Pesanan OTP
๐ก Alur pembelian
- Ambil server aktif:
GET /v1/servers. - Ambil aplikasi:
GET /v1/services?server=โฆโ pakaiservice_codesebagaiserviceId. - Ambil negara & harga:
GET /v1/countries?server=โฆ&service_id=โฆ. - POST
/v1/orderdengan parameter sesuai server (tabel di bawah). - Polling
GET /v1/orders/status?order_id=โฆsampai OTP masuk. - Tidak jadi / OTP tidak kunjung datang?
POST /v1/orders/cancelโ saldo kembali penuh (minimal 3 menit setelah beli).
Parameter wajib per server
warungnokos_s1 / warungnokos_s2serviceId, countryId, providerId
opsional: operatorId (default: any)
Harga selalu dihitung ulang di server. Nominal yang dipotong adalah sell_price terbaru dari provider, bukan angka yang kamu kirim. Kalau nomor gagal didapat, saldo dikembalikan penuh secara otomatis.
/api/v1/order๐ Perlu API keyBuat pesanan nomor OTP
Memotong saldo dan memesan nomor OTP baru dari provider. Pastikan saldo mencukupi.
Parameters
Response fields
curl -X POST https://artapedianokosmurahid.vercel.app/api/v1/order \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"server": "warungnokos_s1",
"serviceId": "wa",
"countryId": "6",
"providerId": "wn:6:1",
"serviceName": "WhatsApp",
"countryName": "Indonesia"
}'
# server dan id-nya selalu diambil dari /v1/servers dan /v1/countries// 200 OK
{
"orderId": "789012",
"server": "warungnokos_s1",
"phoneNumber": "+62812xxxxxxx",
"price": 3500,
"expiredAt": 1717235400000,
"createdAt": "2024-06-01T12:00:00.000Z",
"balance": 46500
}Batal Order Nokos
Batalkan pesanan yang belum menerima OTP dan dapatkan saldo kembali. Jalurnya sama persis dengan tombol โBatalkanโ di web dan bot Telegram, jadi refund tidak mungkin terhitung dua kali.
Kapan pesanan boleh dibatalkan?
OTP belum masuk dan pesanan sudah berumur minimal 3 menit sejak dibeli.
Sebelum 3 menit dibalas 400 beserta retry_after (detik yang harus ditunggu). Ini aturan yang sama dengan di web.
OTP sudah masuk โ dibalas 400 (atau 409 kalau OTP baru saja masuk saat kamu menekan batal, otpCode ikut dikirim).
Memanggil batal untuk pesanan yang sudah dibatalkan membalas 200 tanpa menambah saldo lagi.
/api/v1/orders/cancel๐ Perlu API keyBatalkan pesanan nokos
Membatalkan pesanan di provider lalu mengembalikan saldo ke akunmu (termasuk biaya jaminan kalau ada). Batas: 20 permintaan/menit.
Parameters
Response fields
curl -X POST https://artapedianokosmurahid.vercel.app/api/v1/orders/cancel \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"order_id": "789012"}'// 200 OK
{
"success": true,
"order_id": "789012",
"status": "canceled",
"refunded": true,
"balance": 50000,
"message": "Pesanan dibatalkan dan saldo dikembalikan."
}
// 400 โ belum 3 menit sejak dibeli
{
"error": "Pesanan baru bisa dibatalkan 3 menit setelah dibeli. Tunggu 94 detik lagi.",
"retry_after": 94
}
// 409 โ OTP baru saja masuk
{
"error": "Kode OTP baru saja masuk, pesanan tidak bisa dibatalkan.",
"otpCode": "483921",
"status": "done"
}๐ก Tidak perlu membatalkan manual kalau OTP memang tidak datang sampai habis waktu: pesanan yang kedaluwarsa direfund otomatis. Pakai endpoint ini kalau kamu mau saldo kembali lebih cepat dari masa kedaluwarsa.
Deposit Otomatis
Isi saldo akunmu lewat API: buat tagihan QRIS, bayar, dan saldo masuk otomatis begitu pembayaran terkonfirmasi โ tanpa admin. Cocok untuk bot atau aplikasi yang mengisi saldo secara terjadwal.
๐ก Alur deposit otomatis
GET /v1/deposit/methodsโ pilihprovideraktif dan lihat batas min/max.POST /v1/depositโ dapatqr_image/qr_string(QRIS) dantotal_amount.- Bayar persis
total_amountlewat aplikasi bank/e-wallet apa pun sebelumexpired_at. - Cek
GET /v1/deposit?order_id=โฆtiap 5 detik sampaistatus=completedโ saldo sudah bertambah saat itu juga. - Tidak jadi bayar?
POST /v1/deposit/canceluntuk menutup tagihan QRIS yang masih pending.
Sistem juga memeriksa deposit yang menggantung secara berkala, jadi saldo tetap masuk walau kamu tidak sempat memanggil endpoint status.
Status: pending ยท completed ยท expired ยท canceled ยท failed. QRIS manual (dicek admin) tidak tersedia lewat API.
/api/v1/deposit/methods๐ Perlu API keyMetode deposit otomatis
Daftar metode QRIS otomatis yang aktif beserta batas nominal.
Response fields
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://artapedianokosmurahid.vercel.app/api/v1/deposit/methods
/api/v1/deposit๐ Perlu API keyBuat deposit QRIS
Membuat tagihan QRIS otomatis. Batas: 6 permintaan/menit. Maksimal beberapa QRIS belum dibayar per akun.
Parameters
provider dari /v1/deposit/methods.Response fields
curl -X POST https://artapedianokosmurahid.vercel.app/api/v1/deposit \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount": 20000, "provider": "pakasir"}'/api/v1/deposit๐ Perlu API keyStatus deposit / riwayat
Dengan ?order_id=โฆ memeriksa status ke provider dan langsung mengkreditkan saldo bila sudah dibayar. Tanpa parameter: 20 deposit terakhir.
Parameters
Response fields
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://artapedianokosmurahid.vercel.app/api/v1/deposit?order_id=DP1727700000000123"
Batal Deposit
Tutup tagihan QRIS yang belum dibayar. Berguna kalau jumlahnya salah, penggunamu berubah pikiran, atau kamu mau membuat tagihan baru tanpa menumpuk yang lama (jumlah QRIS pending per akun dibatasi).
Hasil tergantung status tagihan
pending200 โ tagihan ditutup, status menjadi canceled.
sudah dibayar409 โ sistem mengecek ke penyedia dulu. Kalau ternyata sudah dibayar, saldo DIKREDITKAN dan tagihan tidak dibatalkan (status completed).
completed400 โ deposit sudah berhasil, tidak bisa dibatalkan.
expired / canceled / failed200 โ sudah tidak aktif, tidak ada yang berubah (aman diulang).
/api/v1/deposit/cancel๐ Perlu API keyBatalkan deposit QRIS
Membatalkan tagihan QRIS deposit yang masih pending. Batas: 20 permintaan/menit.
Parameters
Response fields
curl -X POST https://artapedianokosmurahid.vercel.app/api/v1/deposit/cancel \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"order_id": "DP1727700000000123"}'// 200 OK
{
"success": true,
"order_id": "DP1727700000000123",
"status": "canceled",
"message": "Deposit dibatalkan."
}
// 409 โ ternyata sudah dibayar
{
"error": "Pembayaran sudah diterima, saldo sudah masuk. Transaksi tidak dibatalkan.",
"status": "completed"
}โ ๏ธ Jangan bayar QRIS yang sudah dibatalkan. Kalau pembayaran tetap masuk setelah dibatalkan, sistem tetap mengkreditkan saldonya lewat pengecekan berkala โ tapi lebih baik jangan mengandalkan itu.
Coba Sekarang
Masukkan API key kamu dan klik Test untuk langsung mencoba endpoint /v1/me.
Belum punya API key? Buka Dashboard โ bagian API Key untuk generate.
๐ Catatan
- Semua waktu dalam format ISO 8601 UTC.
- Saldo selalu dalam Rupiah (IDR) tanpa desimal.
- API key bersifat privat โ 1 key per akun. Regenerate di Dashboard kapan saja.
- Batas laju per key: 60 request/menit (order 20/menit, batal 20/menit, buat deposit 6/menit) โ lihat bagian Rate Limit.
- Butuh bantuan? Buka tiket di halaman Dashboard โ Support.