Batas request API: 2.000 request per menit.
Angka ini adalah nilai default dan dapat diubah admin lewat pengaturan API. Request yang melewati batas akan menerima respons rate limit.
Virtual OTP API

Nokos OTP

Streaming & Apps

Premium App

Pterodactyl Panel

Panel Pterodactyl

Bot & Digital Tools

Script / Digital

Social Media Automation

SMM Panel

Authentication

Semua request wajib menyertakan API key di header. Generate API key di halaman profil reseller Anda.

// Headers wajib untuk setiap request
{
  "x-api-key": "AOC-YOUR_SECRET_KEY_HERE",
  "Content-Type": "application/json"
}
GET

/v1/server/1 dan /v1/server/2

Endpoint katalog terpisah untuk mengambil produk Nokos berdasarkan provider. Setiap request wajib menggunakan header x-api-key. Gunakan ID produk dari response untuk meminta harga negara terbaru.

Server 1: Nokosnesia · GET /v1/server/1
Server 2: SaturnPedia · GET /v1/server/2
Harga: Harga katalog dapat bernilai null karena harga Nokos tergantung negara/stok. Jangan menganggap null atau 0 sebagai harga jual. Panggil endpoint rates untuk harga terbaru.

Contoh request

curl -X GET "https://rexanokos.my.id/v1/server/1" \
  -H "x-api-key: API_KEY_RESELLER_ANDA" \
  -H "Accept: application/json"

# Ganti /server/1 menjadi /server/2 untuk SaturnPedia

Contoh response katalog

{
  "success": true,
  "server": 1,
  "provider": "nokosnesia",
  "count": 2,
  "data": [
    {
      "id": "ID_PRODUK_REXANOKOS",
      "name": "WhatsApp OTP",
      "provider": "nokosnesia",
      "price": null,
      "priceMode": "country_rate",
      "ratesEndpoint": "/v1/server/1/ID_PRODUK_REXANOKOS/rates"
    }
  ]
}
GET

/v1/server/:serverNumber/:productId/rates

Ambil daftar negara/opsi yang tersedia, stok, harga dasar, dan harga jual akhir. serverNumber hanya 1 atau 2. productId menggunakan field id dari katalog server.

curl -X GET "https://rexanokos.my.id/v1/server/1/ID_PRODUK_REXANOKOS/rates" \
  -H "x-api-key: API_KEY_RESELLER_ANDA"
{
  "success": true,
  "server": 1,
  "productId": "ID_PRODUK_REXANOKOS",
  "data": [
    {
      "rateId": "TOKEN_RATE_DARI_RESPONSE",
      "countryCode": "ID",
      "countryName": "Indonesia",
      "stock": 25,
      "basePrice": 1500,
      "price": 1800
    }
  ]
}
POST

/v1/server/:serverNumber/order

Buat order menggunakan saldo akun API. Gunakan productId dari katalog serta rateId persis dari response rates. Saldo dipotong sesuai harga final di server.

curl -X POST "https://rexanokos.my.id/v1/server/1/order" \
  -H "x-api-key: API_KEY_RESELLER_ANDA" \
  -H "Content-Type: application/json" \
  -d '{"productId":"ID_PRODUK_REXANOKOS","rateId":"TOKEN_RATE_DARI_RESPONSE"}'
Simpan orderId yang dikembalikan API. ID itu dipakai untuk cek status dan membatalkan pesanan milik akun API Anda. Jangan mengirim API key dari aplikasi browser publik.
GET

/v1/server/:serverNumber/order/:orderId

Periksa status OTP, nomor telepon, dan kode OTP jika sudah masuk. Endpoint hanya dapat membaca order milik API key yang digunakan.

curl -X GET "https://rexanokos.my.id/v1/server/1/order/ORDER_ID" \
  -H "x-api-key: API_KEY_RESELLER_ANDA"
{
  "success": true,
  "orderId": "ORDER_ID",
  "provider": "nokosnesia",
  "status": "pending",
  "phoneNumber": "+62xxxxxxxxxx",
  "otpCode": null
}
POST

/v1/server/:serverNumber/order/:orderId/cancel

Batalkan order yang masih pending. Pengembalian saldo diberikan jika provider mengonfirmasi pembatalan dan order lokal berhasil ditandai sebagai batal. Order yang selesai atau gagal tidak dapat dibatalkan.

curl -X POST "https://rexanokos.my.id/v1/server/1/order/ORDER_ID/cancel" \
  -H "x-api-key: API_KEY_RESELLER_ANDA" \
  -H "Content-Type: application/json" \
  -d '{}'
Untuk endpoint dinamis, contoh :serverNumber diganti 1 atau 2 dan :orderId diganti ID order dari response create order. Base API utama: https://rexanokos.my.id/v1. Prefix kompatibilitas https://rexanokos.my.id/api/v1 juga didukung, sehingga kedua bentuk URL dapat digunakan.
GET

/api/v1/nokos/services

Dapatkan daftar semua layanan OTP aktif beserta harga dan ID layanan yang dibutuhkan untuk order.

Response

{
  "success": true,
  "count": 4,
  "data": [
    {
      "id": "prod_abc123",
      "name": "WhatsApp OTP",
      "otpServiceId": "whatsapp",
      "price": 1500,       // Harga per nomor (termasuk margin)
      "isActive": true
    },
    {
      "id": "prod_def456",
      "name": "Telegram OTP",
      "otpServiceId": "telegram",
      "price": 1200,
      "isActive": true
    }
  ]
}
GET

/api/v1/nokos/rates/:serviceId

Ambil daftar negara dan operator yang tersedia untuk layanan OTP tertentu, beserta harga per operator.

💡 serviceId = nilai field otpServiceId dari endpoint GET /nokos/services, contoh: whatsapp

Path Parameter

ParameterTipeWajibKeterangan
serviceIdStringYaID layanan OTP (whatsapp, telegram, google, dll)

Response

{
  "success": true,
  "data": [
    {
      "id": "6",
      "country_name": "Indonesia",
      "country_emoji": "🇮🇩",
      "available": 5842,    // Stok nomor tersedia
      "basePrice": 1500     // Harga dasar (sebelum margin global)
    }
  ]
}
POST

/api/v1/nokos/order

Order nomor virtual OTP untuk layanan dan negara tertentu. Saldo akan dipotong dan nomor virtual langsung dikembalikan.

⚠️ Gunakan paymentType: "direct" untuk OTP. QRIS tidak didukung karena proses harus real-time.

Request Body

ParameterTipeWajibKeterangan
productIdStringYaID produk OTP dari /nokos/services
countryStringYaKode negara 2 huruf, contoh: id, us
operatorStringOptionalNama operator (default: any)
{
  "productId": "prod_abc123",
  "country": "id",
  "operator": "any"
}

Response (Sukses)

{
  "success": true,
  "orderId": "OTP-XYZ789",
  "phoneNumber": "+62812345678",  // Nomor virtual yang diterima
  "status": "pending",             // Menunggu kode OTP masuk
  "expiresAt": "2024-01-01T12:10:00Z"
}
GET

/api/v1/nokos/order/:orderId

Cek status order OTP dan ambil kode SMS yang sudah masuk. Poll endpoint ini tiap 3–5 detik hingga status: "completed".

✅ Bila status = completed, field otpCode berisi kode SMS yang berhasil diterima.

Response

{
  "success": true,
  "orderId": "OTP-XYZ789",
  "phoneNumber": "+62812345678",
  "status": "completed",
  "otpCode": "123456",          // Kode SMS OTP
  "service": "whatsapp"
}
POST

/api/v1/nokos/order/:orderId/cancel

Batalkan order nomor OTP yang masih berstatus pending. Saldo akan dikembalikan jika pembatalan berhasil.

⛔ Order yang sudah completed tidak bisa dibatalkan dan saldo tidak dikembalikan.

Response (Sukses)

{
  "success": true,
  "orderId": "OTP-XYZ789",
  "phoneNumber": "+62812345678",
  "message": "Order cancelled. Balance refunded.",
  "refundAmount": 1500
}
GET

/api/v1/products?type=premium_app

Ambil daftar produk Premium App yang tersedia (Netflix, Spotify, YouTube Premium, dll) beserta stok tersisa.

💡 stock = -1 berarti unlimited. stock = 0 berarti habis / sold out.

Response

{
  "success": true,
  "count": 8,
  "data": [
    {
      "id": "prod_netflix_1m",
      "name": "Netflix Premium 1 Bulan",
      "price": 45000,
      "resellerPrice": 50000,  // Harga + margin reseller
      "stock": 24,             // Stok akun tersedia
      "appPlatform": "Netflix"
    }
  ]
}
POST

/api/v1/order

Order akun premium app. Setelah berhasil, data akun (email + password) langsung dikembalikan dalam response.

Request Body

ParameterTipeWajibKeterangan
productIdStringYaID produk dari /products?type=premium_app
paymentTypeStringYa"direct" (saldo) atau "qris"
voucherCodeStringOptionalKode voucher diskon
{
  "productId": "prod_netflix_1m",
  "paymentType": "direct"
}

Response (Sukses - Direct)

{
  "success": true,
  "orderId": "API-ABC999",
  "status": "completed",
  "data": {
    "accountEmail": "user@netflix.com",
    "accountPassword": "P@ssw0rd123",
    "specialNotes": "Profil ke-2, jangan ubah bahasa"
  }
}
GET

/api/v1/products?type=pterodactyl

Ambil semua paket Server Pterodactyl yang tersedia, beserta spesifikasi RAM, disk, dan CPU.

Response

{
  "success": true,
  "data": [
    {
      "id": "prod_nodejs_1gb",
      "name": "Node.js Bot 1GB",
      "price": 15000,
      "resellerPrice": 20000,
      "specs": {
        "memory": 1024,    // MB
        "disk": 5120,      // MB
        "cpu": 100,        // %
        "databases": 1,
        "backups": 1
      }
    }
  ]
}
POST

/api/v1/order

Deploy server Pterodactyl secara otomatis. Username dan password panel bisa kamu tentukan sendiri atau sistem akan generate otomatis.

Request Body

ParameterTipeWajibKeterangan
productIdStringYaID produk dari /products?type=pterodactyl
paymentTypeStringYa"direct" atau "qris"
serverUsernameStringOptionalUsername login panel (default: username akun kamu)
serverPasswordStringOptionalPassword panel (default: random 12 karakter)
voucherCodeStringOptionalKode voucher diskon
{
  "productId": "prod_nodejs_1gb",
  "paymentType": "direct",
  "serverUsername": "user_bot_123",
  "serverPassword": "MySuperSecretPass!"
}

Response (Sukses)

{
  "success": true,
  "orderId": "API-PTR001",
  "status": "completed",
  "data": {
    "panelUrl": "https://panel.yourdomain.com",
    "serverUsername": "user_bot_123",
    "serverPassword": "MySuperSecretPass!",
    "serverId": "ptero_srv_9f3a"
  }
}
GET

/api/v1/products?type=script

Ambil daftar produk script / digital download yang tersedia. Setelah order, link download langsung dikembalikan.

💡 Semua produk script bersifat lifetime license. Stok selalu -1 (unlimited).
{
  "success": true,
  "data": [
    {
      "id": "prod_bot_wa",
      "name": "WhatsApp Bot Reseller v2",
      "price": 75000,
      "resellerPrice": 85000,
      "stock": -1,
      "type": "script"
    }
  ]
}
POST

/api/v1/order

Beli lisensi script. Link download dan instruksi instalasi langsung dikembalikan setelah order berhasil.

Request Body

ParameterTipeWajibKeterangan
productIdStringYaID produk dari /products?type=script
paymentTypeStringYa"direct" atau "qris"
voucherCodeStringOptionalKode voucher diskon
{
  "productId": "prod_bot_wa",
  "paymentType": "direct"
}

Response (Sukses)

{
  "success": true,
  "orderId": "API-SCR442",
  "status": "completed",
  "data": {
    "downloadUrl": "https://cdn.yourdomain.com/scripts/bot-wa-v2.zip",
    "instructions": "1. Extract zip\n2. npm install\n3. node index.js",
    "licenseKey": "LIC-XXXXXXXX-XXXXXXXX"
  }
}
GET

/api/v1/smm/services

Ambil daftar layanan SMM (Instagram, TikTok, dll) beserta harga reseller per 1000 order.

Response

{
  "success": true,
  "count": 125,
  "data": [
    {
      "id": "1",
      "name": "Instagram Followers [Refill]",
      "category": "Instagram Followers",
      "min": 100,
      "max": 10000,
      "price": 5500,        // Harga reseller / 1000 order
      "type": "default"
    }
  ]
}
POST

/api/v1/smm/order

Pesan layanan SMM Panel. Sistem akan memotong saldo akun secara otomatis (Hanya melayani potong saldo instan / direct).

Request Body

ParameterTipeWajibKeterangan
serviceIdString/NumberYaID layanan dari /smm/services
targetStringYaUsername IG / URL Postingan / Target Link
qtyNumberYaJumlah order (harus antara min dan max)
{
  "serviceId": "1",
  "target": "johndoe_ig",
  "qty": 500
}

Response (Sukses)

{
  "success": true,
  "message": "SMM Order placed successfully",
  "data": {
    "orderId": "API-SMM-X8F9Y",
    "status": "completed", 
    "amount": 2750,  // Total potong saldo
    "data": {
      "smmOrderId": "882912", // Provider ID
      "smmStatus": "Pending"
    }
  }
}
GET

/api/v1/smm/order/:orderId

Cek status progres SMM Panel secara realtime (Pending, Processing, Success, Partial, Error, Canceled).

{
  "success": true,
  "data": {
    "orderId": "API-SMM-X8F9Y",
    "productName": "[SMM] Instagram Followers (500x)",
    "smmProviderStatus": "Processing",
    "startCount": 1254,
    "remains": 500,
    "details": {
      "target": "johndoe_ig",
      "qty": 500
    }
  }
}
GET

/api/v1/account

Cek saldo dan informasi akun reseller kamu.

{
  "success": true,
  "data": {
    "username": "AlxzyReseller",
    "role": "reseller",
    "balance": 150000,
    "margin": 5000
  }
}
POST

/api/v1/deposit

Generate QRIS untuk top-up saldo reseller kamu.

ParameterTipeWajibKeterangan
amountNumberYaJumlah deposit dalam Rupiah (min Rp 1.000)
{
  "success": true,
  "data": {
    "depositId": "DEP-XYZ123",
    "amount": 50000,
    "qris_data": "00020101021126570011ID.ESPAY...",
    "expiresAt": "2024-01-01T12:15:00Z"
  }
}
GET

/api/v1/order/:orderId

Cek status dan detail order berdasarkan Order ID yang didapat dari endpoint POST /order.

{
  "success": true,
  "data": {
    "orderId": "API-XYZ123",
    "status": "completed",  // pending | completed | failed | cancelled
    "productName": "Netflix Premium 1 Bulan",
    "paidAt": "2024-01-01T12:00:00Z",
    "data": { /* hasil sesuai kategori produk */ }
  }
}
Rexa nokos API Docs — Built for resellers 🚀