API Pengembang

Otomatiskan verifikasi dalam skala besar

API SNSPhone memungkinkan alat Anda memesan nomor non-VoIP AS, membaca kode SMS, dan mengelola penyewaan. Dua format: API REST dengan JSON, dan format aktivasi SMS umum untuk skrip yang sudah ada.

Mulai cepat

URL dasar https://snsphone.com/api/v1. Buat kunci di halaman API konsol dan kirim sebagai Authorization: Bearer spk_... (atau field kunci). Semua nomor adalah non-VoIP Amerika Serikat. Uang dalam string USD dengan 2 desimal, waktu dalam ISO 8601 UTC, 300 permintaan per menit per kunci. Harga per 2026-11-03.

Python

import os, time, requests

API = "https://snsphone.com/api/v1"
H = {"Authorization": f"Bearer {os.environ['SNSPHONE_KEY']}"}

order = requests.post(f"{API}/orders", headers=H, data={"service": "google"}).json()["order"]
print("Use this US number:", order["phone"])

while True:
    o = requests.get(f"{API}/orders/{order['id']}", headers=H).json()["order"]
    if o["code"] or o["status"] in ("refunded", "canceled"):
        break
    time.sleep(4)
print("Code:", o["code"])

Node.js

const API = "https://snsphone.com/api/v1";
const H = { Authorization: `Bearer ${process.env.SNSPHONE_KEY}` };

const { order } = await fetch(`${API}/orders`, {
  method: "POST", headers: H, body: new URLSearchParams({ service: "discord" }),
}).then((r) => r.json());
console.log("Use this US number:", order.phone);

let o = order;
while (!o.code && !["refunded", "canceled"].includes(o.status)) {
  await new Promise((r) => setTimeout(r, 4000));
  ({ order: o } = await fetch(`${API}/orders/${order.id}`, { headers: H }).then((r) => r.json()));
}
console.log("Code:", o.code);

Katalog

GET/services

Setiap kode layanan dengan namanya, kategori, harga verifikasi, dan periode penyewaan. Tidak perlu kunci.

Publik, tidak perlu kunci.

curl "https://snsphone.com/api/v1/services"
{"country":"us","services":[{"code":"whatsapp","name":"WhatsApp","category":"Messaging","verification":"0.90","rentals":[]},{"code":"telegram","name":"Telegram","verification":"0.45","rentals":[{"days":365,"period":"1 year","price":"37.44"}]}]}

GET/prices?service=telegram

Harga dalam USD, opsional untuk satu layanan. Tidak perlu kunci.

Publik, tidak perlu kunci.

curl "https://snsphone.com/api/v1/prices?service=telegram"
{"country":"us","prices":[{"service":"telegram","type":"verification","days":null,"price":"0.45"},{"service":"telegram","type":"rental","days":365,"price":"37.44"}]}

GET/balance

Saldo Anda dalam USD.

Membutuhkan kunci API Anda.

curl "https://snsphone.com/api/v1/balance" \
  -H "Authorization: Bearer $KEY"
{"balance":"25.00","currency":"USD"}

Verifikasi

POST/orders

Membeli verifikasi (201). Mengembalikan nomor AS dan waktu berakhirnya jendela 20 menit.

Membutuhkan kunci API Anda.

curl -X POST "https://snsphone.com/api/v1/orders" \
  -H "Authorization: Bearer $KEY" \
  -d "service=whatsapp"
{"order":{"id":"VR-7K2M9QX4PB","service":"whatsapp","country":"us","phone":"+14155550142","number":"4155550142","status":"waiting","code":null,"expires_at":"2026-11-03T12:20:00.000Z"},"window_minutes":20}

GET/orders/VR-7K2M9QX4PB

Satu verifikasi dengan status dan setiap kode yang diterima. Status: waiting, received, finished, refunded, canceled.

Membutuhkan kunci API Anda.

curl "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB" \
  -H "Authorization: Bearer $KEY"
{"order":{"id":"VR-7K2M9QX4PB","status":"received","code":"482913","sms":"Your WhatsApp code is 482913"}}

GET/orders?status=open

Verifikasi terbuka Anda (status=all untuk 100 terakhir).

Membutuhkan kunci API Anda.

curl "https://snsphone.com/api/v1/orders?status=open" \
  -H "Authorization: Bearer $KEY"
{"orders":[...]}

POST/orders/VR-7K2M9QX4PB/resend

Meminta kode lain pada nomor yang sama, setelah kode pertama dan selama jendela masih terbuka. Tidak ada biaya tambahan.

Membutuhkan kunci API Anda.

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/resend" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"received","waiting_for_resend":true}}

POST/orders/VR-7K2M9QX4PB/finish

Menutup verifikasi yang telah menerima kodenya.

Membutuhkan kunci API Anda.

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/finish" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"finished"}}

POST/orders/VR-7K2M9QX4PB/cancel

Membatalkan sebelum kode tiba. Harga penuh dikembalikan ke saldo Anda.

Membutuhkan kunci API Anda.

curl -X POST "https://snsphone.com/api/v1/orders/VR-7K2M9QX4PB/cancel" \
  -H "Authorization: Bearer $KEY"
{"order":{"status":"canceled","refunded":"0.90"}}

Penyewaan

POST/rentals

Menyewa nomor AS untuk satu layanan dan periode (201). days bersifat opsional ketika layanan memiliki satu periode.

Membutuhkan kunci API Anda.

curl -X POST "https://snsphone.com/api/v1/rentals" \
  -H "Authorization: Bearer $KEY" \
  -d "service=telegram&days=365"
{"rental":{"id":"RN-4J8T2W6QHM","service":"telegram","phone":"+13125550198","days":365,"period":"1 year","price":"37.44","status":"active","ends_at":"2027-11-03T12:00:00.000Z","messages":[]}}

GET/rentals?status=active

Penyewaan aktif Anda dengan pesan terbaru (status=all untuk 100 terakhir).

Membutuhkan kunci API Anda.

curl "https://snsphone.com/api/v1/rentals?status=active" \
  -H "Authorization: Bearer $KEY"
{"rentals":[...]}

GET/rentals/RN-4J8T2W6QHM

Satu penyewaan dengan setiap SMS yang diterima di dalamnya.

Membutuhkan kunci API Anda.

curl "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM" \
  -H "Authorization: Bearer $KEY"
{"rental":{"id":"RN-4J8T2W6QHM","status":"active","messages":[{"from":"Telegram","sms":"Telegram code: 57291","code":"57291","received_at":"2026-11-03T12:01:12.000Z"}]}}

POST/rentals/RN-4J8T2W6QHM/renew

Menambahkan satu periode lagi dengan harga yang sama.

Membutuhkan kunci API Anda.

curl -X POST "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM/renew" \
  -H "Authorization: Bearer $KEY"
{"rental":{"renewed":1,"ends_at":"2028-11-02T12:00:00.000Z"}}

POST/rentals/RN-4J8T2W6QHM/cancel

Membatalkan dalam 20 menit pertama ketika belum ada SMS yang tiba. Semua pembayaran dikembalikan ke saldo Anda.

Membutuhkan kunci API Anda.

curl -X POST "https://snsphone.com/api/v1/rentals/RN-4J8T2W6QHM/cancel" \
  -H "Authorization: Bearer $KEY"
{"rental":{"status":"canceled","refunded":"37.44"}}

Format aktivasi SMS

Untuk alat yang sudah memahami format aktivasi umum. Satu URL, field aksi, jawaban teks biasa. Hanya verifikasi.

https://snsphone.com/stubs/handler_api.php?api_key=KEY&action=ACTION
AksiField tambahanJawabanArti
getBalancenoneACCESS_BALANCE:12.50Saldo Anda dalam USD.
getServicesListnone{"status":"success","services":[{"code":"whatsapp","name":"WhatsApp"}]}Kode layanan dengan harga verifikasi (JSON).
getCountriesnone{"us":{"name":"United States","dial":"1"}}Hanya Amerika Serikat. country bisa us, 187, atau dikosongkan.
getPrices&service=whatsapp{"us":{"whatsapp":{"cost":0.9,"count":100}}}Harga dalam USD. Filter layanan bersifat opsional.
getNumber&service=whatsapp&country=usACCESS_NUMBER:VR-7K2M9QX4PB:14155550142Membeli verifikasi. Mengembalikan id dan nomor dengan awalan 1.
getStatus&id=VR-7K2M9QX4PBSTATUS_OK:482913STATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<last code> (permintaan kode lain), STATUS_CANCEL (dibatalkan atau dikembalikan).
setStatus&id=VR-7K2M9QX4PB&status=3ACCESS_RETRY_GETstatus=1 siap (ACCESS_READY), 3 kode lain (ACCESS_RETRY_GET), 6 selesai (ACCESS_ACTIVATION), 8 batal dengan pengembalian dana penuh ketika belum ada kode (ACCESS_CANCEL).

Error

Error REST dikembalikan sebagai {"error":{"code","message"}} dengan kode status ini. Format aktivasi menjawab dengan kata biasa.

400Kolom tidak ada atau salah (bad_json, bad_period).
401Tidak ada kunci atau kunci salah (no_key, bad_key).
402Saldo tidak mencukupi (no_balance).
404Layanan, pesanan, sewaan, atau endpoint tidak dikenal, atau produk yang tidak dimiliki layanan (not_sold).
409Tidak bisa dilakukan sekarang (has_code, has_sms, too_late, not_ready, too_many_open, too_many_active, no_numbers).
429Lebih dari 300 permintaan dalam satu menit (rate_limited).
BAD_KEYKunci API tidak ada atau salah.
BAD_ACTIONAksi tidak dikenal.
BAD_SERVICEKode layanan tidak dikenal.
BAD_COUNTRYBukan Amerika Serikat, atau layanan hanya dijual sebagai sewaan.
NO_BALANCESaldo tidak mencukupi.
NO_NUMBERSTidak ada nomor yang tersedia saat ini. Coba lagi sebentar lagi.
NO_ACTIVATIONID tidak dikenal atau bukan milik Anda.
EARLY_CANCEL_DENIEDKode sudah datang, jadi tidak bisa dibatalkan.
NO_ACTIVATIONSSudah ada 20 verifikasi yang terbuka.
TOO_MANY_REQUESTSLebih dari 300 permintaan dalam satu menit.

Pertanyaan API

Kunci, batas, dan polling, terjawab.

Apakah SNSPhone memiliki API verifikasi SMS?

Ya. API REST dengan JSON di /api/v1 untuk layanan, harga, verifikasi dan sewaan, serta format aktivasi SMS umum di /stubs/handler_api.php.

Bagaimana cara mengautentikasi permintaan API?

Buat kunci di halaman API di konsol dan kirim sebagai Authorization: Bearer spk_..., atau sebagai kolom key. Kunci hanya disimpan sebagai hash dan ditampilkan sekali.

Apa batas kecepatan API?

300 permintaan per menit per kunci, maksimal 20 verifikasi terbuka dan 20 sewaan aktif per akun.

Apakah pesanan API lebih mahal daripada pesanan situs web?

Tidak. API menggunakan harga yang sama dan aturan pengembalian yang sama seperti konsol.

Bagaimana cara mengetahui kapan kode telah tiba?

Polling GET /orders/{id} setiap beberapa detik. Status berubah dari waiting ke received dan kolom code berisi digit.

API Verifikasi SMS Non-VoIP: Nomor AS melalui REST | SNSPhone