API
JSON API lewat HTTPS. Kirim kunci API Anda di header Authorization. Harga, refund, dan hitung mundur 20 menit sama seperti di situs.
Alamat dasar
https://today-sms.com/api/v1
Autentikasi
Header Authorization: Bearer YOUR_API_KEY. Buat kunci di halaman Kunci API setelah pengisian saldo pertama. Maksimal 300 permintaan per menit.
curl https://today-sms.com/api/v1/balance \ -H "Authorization: Bearer YOUR_API_KEY"
GET /balance
Saldo Anda dalam USD.
Contoh respons
{
"balance": "42.5000",
"currency": "USD"
}GET /apps
Aplikasi yang saat ini punya nomor: kode, nama, harga terendah, negara.
Contoh respons
[
{ "app": "telegram", "name": "Telegram", "from": "0.4515", "countries": 61 }
]GET /prices?app=telegram
Negara untuk satu aplikasi, termurah di atas: kode negara, kode ISO, harga, nomor tersedia.
Contoh respons
[
{ "country": "indonesia", "iso": "id", "price": "0.4515", "stock": 702866 }
]POST /numbers {"app":"telegram","country":"indonesia"}
Membeli nomor. Harga dipotong dari saldo Anda.
Contoh respons
{
"id": 1042,
"phone": "+6281234567890",
"price": "0.4515",
"status": "waiting",
"expires_at": "2026-10-14T09:20:00Z"
}GET /numbers/{id}
Status dan semua SMS yang sudah diterima.
Contoh respons
{
"id": 1042,
"status": "received",
"sms": [ { "code": "482913", "text": "Your code is 482913", "at": "2026-10-14T09:02:11Z" } ]
}POST /numbers/{id}/cancel
Membatalkan nomor tanpa SMS, 120 detik setelah dibeli. Refund penuh.
Contoh respons
{
"id": 1042,
"status": "canceled",
"refunded": "0.4515"
}POST /numbers/{id}/finish
Menutup nomor setelah Anda mendapat kode.
Contoh respons
{
"id": 1042,
"status": "finished"
}Status
| waiting | Nomor siap, belum ada SMS |
| received | Minimal satu SMS sudah masuk |
| finished | Ditutup setelah ada kode |
| canceled | Dibatalkan, direfund |
| expired | Tidak ada SMS tepat waktu, direfund |
| checking | Jawaban pemasok tidak jelas; direfund di akhir hitung mundur jika tidak ada nomor yang muncul |
Error
Error mengembalikan status selain 2xx dan body JSON berisi kode error.
{
"error": "not_enough_balance"
}| unauthorized | Kunci API tidak ada atau salah |
| not_allowed | API terbuka setelah pengisian saldo pertama |
| bad_request | Ada kolom wajib yang kosong atau salah |
| no_numbers | Saat ini tidak ada nomor untuk aplikasi dan negara ini |
| not_enough_balance | Isi saldo dulu |
| too_many_open | Terlalu banyak nomor terbuka; selesaikan atau batalkan sebagian |
| too_early | Pembatalan bisa dilakukan 120 detik setelah membeli |
| has_sms | SMS sudah masuk; nomor tidak bisa dibatalkan |
| not_found | Nomor ini tidak ada di akun Anda |
| try_again | Pemasok belum mengonfirmasi pembatalan; coba lagi dalam satu menit |
| rate_limited | Terlalu banyak permintaan dalam satu menit |