Nomor, pesan, dan penghasilan, langsung dari aplikasi Anda.
SMScash
Dokumentasi API
Memulai

Dokumentasi API

Nomor, pesan, dan penghasilan, langsung dari aplikasi Anda.

Mulailah dengan satu permintaan

13 · perintah APIREST + handler_api.phpJSON / plain text · Bearer

Buat kunci API di dashboard Anda, ambil angka tersebut, dan periksa pesan setiap 20 detik. Pembayaran akan ditransfer ketika surat dengan kode SMS tiba; membacanya lagi tidak mempengaruhi saldo Anda.

REST APIhttps://smscash.org/api/v1
Kompatibilitas API dasar URLhttps://smscash.org/stubs/handler_api.php
Layanan masih hidupnomor telepon , SMS dan pendapatan tersedia. pengeluaran tersedia di USDT pada TRC20Pembayaran dilakukan antara 1 dan 45 hari yang
Mulai cepat · REST / cURL
curl -X POST 'https://smscash.org/api/v1/activations' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: request-unique-001' \
  -d '{"service":"go","country":86}'

Alamat antarmuka alternatif yang kompatibel: /handler_api.php. Integrasi REST yang ada terus berfungsi.

REST API

Pembuat permintaan

cURL · Go · JS · Python

Idempotency-Key: UUID · POST · 8–128

Pilih otomatis: kode terbanyak dalam satu jam terakhir, lalu 24 jam. Nomor habis: operator berikutnya.

cURL
curl --max-time 15 --fail-with-body -X POST 'https://smscash.org/api/v1/activations' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: request-unique-001' \
  --data '{"service":"go","country":86}'

Kunci tidak disimpan. Pemeriksaan ini tidak memberikan nomor.

REST untuk integrasi baru

Layanan dan negara

Pilih layanan dan negara. Bayaran per SMS bergantung pada negara.

REST
GET /api/v1/catalog?service=go&country=86&page=1&page_size=100
Authorization: Bearer YOUR_API_KEY
JSON
{
  "rows": [
    {
      "offer_id": 42,
      "service": "go",
      "service_name": "Google",
      "country_id": 86,
      "country_name": "Italy",
      "provider_id": 1,
      "operator": 1,
      "provider_name": "Operator 1",
      "reward": "0.00300000",
      "currency": "USD",
      "accounting_precision": 8,
      "earnings_hold_days": 45
    }
  ],
  "page": 1,
  "page_size": 100,
  "total": 1,
  "pages": 1,
  "has_more": false,
  "accounting_precision": 8
}

service · country · operator · q · page · page_size (1–100)

Dapatkan nomor
REST
POST /api/v1/activations
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Idempotency-Key: request-unique-001

{
  "service": "go",
  "country": 86
}

Pilih otomatis: kode terbanyak dalam satu jam terakhir, lalu 24 jam. Nomor habis: operator berikutnya.

REST
201: new session · 200: replay of the same operation
service + country OR offer_id · duration_minutes: 20
ref: software owner code (optional)
operator: public ID (e.g. 1 for Operator 1), optional · any/0: automatic
country: integer · service: string · SMS code: string

Nomor tersebut berlaku selama 20 menit. SMS diperiksa setiap 20 detik. Anda dapat membatalkan segera.

Periksa beberapa nomor
REST
GET /api/v1/activations/batch?ids=42,43
Authorization: Bearer YOUR_API_KEY
JSON
{
  "rows": [
    {
      "id": 42,
      "found": true,
      "phone": "12025550123",
      "status": "received",
      "service": "go",
      "country_id": 86,
      "provider_id": 1,
      "operator": 1,
      "expires_at": "2026-10-10T12:15:00Z",
      "sms_count": 1,
      "code": "001234",
      "last_sms": {
        "id": 101,
        "code": "001234",
        "sender": "Service",
        "text": "Code: 001234",
        "received_at": "2026-10-10T12:01:00Z"
      }
    },
    {
      "id": 43,
      "found": false,
      "error": {
        "code": "NO_ACTIVATION",
        "message": "Session not found."
      }
    }
  ],
  "as_of": "2026-10-10T12:01:00Z",
  "poll_interval_seconds": 20
}
REST
ids: 1–100 positive session IDs, separated by commas
Input order preserved · duplicates removed
Foreign, unavailable or out-of-scope IDs: found=false
Read only · no supplier requests · last_sms is the latest message
Saldo · Ditahan
REST
GET /api/v1/balance
Authorization: Bearer YOUR_API_KEY
JSON
{
  "currency": "USD",
  "accounting_precision": 8,
  "balance": "12.00000000",
  "held_balance": "34.50000001",
  "balance_minor": "1200000000",
  "held_minor": "3450000001",
  "as_of": "2026-10-12T20:00:00Z",
  "next_release_at": "2026-11-26T20:00:00Z"
}

balance — Tersedia; held_balance — Ditahan. USD · 8

Hanya dana yang masa penahanannya telah berakhir yang dapat ditarik.

Klien siap pakai

JavaScript · Node.js 18+
import {SmScash, SmScashError} from './smscash.mjs';
import {randomUUID} from 'node:crypto';

const api = new SmScash(process.env.SMSCASH_API_KEY);
const catalog = await api.catalog({service: 'go', country: 86});
console.log(catalog.rows);

// Save this key before sending; keep it for retries of this operation.
const requestKey = randomUUID();
const session = await api.createNumber({service: 'go', country: 86}, requestKey);
// After 20 seconds:
const messages = await api.sms(session.id, {afterId: 0});
console.log(messages.sms);
const statuses = await api.batch([session.id]);
const held = await api.holdBalance();
console.log(held); // Exact USD string
Python 3.9+
import os
import uuid
from smscash import SmScash, SmScashError

api = SmScash(os.environ['SMSCASH_API_KEY'])
catalog = api.catalog(service='go', country=86)
print(catalog['rows'])

# Save this key before sending; keep it for retries of this operation.
request_key = str(uuid.uuid4())
session = api.create_number({'service': 'go', 'country': 86}, request_key)
# After 20 seconds:
messages = api.sms(session['id'], after_id=0)
print(messages['sms'])
statuses = api.batch([session['id']])
held = api.hold_balance()
print(held) # Exact USD string
SDK
me() · balance() · holdBalance()/hold_balance() · catalog() · activation() · sms() · batch()
createNumber(parameters, requestKey) / create_number(parameters, request_key)
setStatus(id, "cancel") / set_status(id, "cancel")
setStatus(id, "retry", requestKey) / set_status(id, "retry", request_key)
Timeout: 15 s · no dependencies · no automatic retries
Error: code · status · hint · requestId/request_id · retryable
ALLOCATION_UNCERTAIN: contact support with request_id; never retry automatically.

SMS-Activate / HeroSMS

SMS-Activate · Kompatibilitas API dasar URLhttps://smscash.org/sms-activate/stubs/handler_api.php
HeroSMS · Kompatibilitas API dasar URLhttps://smscash.org/hero-sms/stubs/handler_api.php

Kunci API pribadi pengguna.

Pilih layanan dan negara. Bayaran per SMS bergantung pada negara.

KodeDeskripsi
getNumber / getNumberV2Dapatkan nomor
getStatus / getStatusV2Dapatkan kode terbaru
setStatus / finishActivation / cancelActivationKelola sesi
getPrices / getNumbersStatusPeriksa ketersediaan
getRewards (SMScash)Hadiah untuk SMS
getServicesList / getServicesLayanan
getCountries / getOperatorsLayanan dan negara
getActiveActivationsSesi
getBalanceSaldo pengguna
getHoldBalance (SMScash)Ditahan

cost = 0 USD · activationCost = 0 USD
reward — Hadiah untuk SMS

HeroSMS · cURL
curl --get 'https://smscash.org/hero-sms/stubs/handler_api.php' \
  --data-urlencode 'api_key=YOUR_API_KEY' \
  --data-urlencode 'action=getNumberV2' \
  --data-urlencode 'service=go' \
  --data-urlencode 'country=86' \
  -H 'Idempotency-Key: request-unique-001'
Tanggapan
{
  "activationId": "42",
  "phoneNumber": "393331234567",
  "activationCost": 0,
  "currency": 840,
  "countryCode": 86,
  "canGetAnotherSms": true,
  "activationTime": "2026-10-11T12:00:00Z",
  "activationEndTime": "2026-10-11T12:15:00Z",
  "reward": "0.00300000"
}
SMS-Activate / HeroSMS
GET or POST application/x-www-form-urlencoded
api_key · action · service · country · ref (optional)
setStatus: 1 → ACCESS_READY · 3 → ACCESS_RETRY_GET
           6 → ACCESS_ACTIVATION · 8 → ACCESS_CANCEL
getStatus: STATUS_WAIT_CODE · STATUS_OK:001234 · STATUS_CANCEL
getStatusV2: {"verificationType":1,"sms":null,"call":null}
getServicesList: {"status":"success","services":[{"code":"go","name":"Google"}]}
getCountries: {"86":{"id":86,"eng":"Italy","visible":1,"retry":1,"rent":0}}
getPrices: {"86":{"go":{"cost":0,"count":12,"reward":"0.00300000","currency":"USD"}}}
getRewards: {"59":{"vi":{"1":"0.01000000"}}}
getRewards filters: country · service · operator (optional); any/0: all permitted providers
getActiveActivations: start=0 · limit=1–100 · activeActivations / data
Business/key errors: HTTP 200 + plain text · server errors: HTTP 500
Availability: actual supplier pool, shared cache up to 20 s; not a reservation
No automatic retries after a transport error or ALLOCATION_UNCERTAIN.
Keep the original Idempotency-Key and parameters.
Unsupported: rent · calls · forwarding · multiple services per number · prolong
Unsupported options return BAD_REQUEST; unsupported actions return BAD_ACTION.
SMScash keys and country/service codes; configure this base URL in your software.

Nomor tersebut berlaku selama 20 menit. SMS diperiksa setiap 20 detik. Anda dapat membatalkan segera.

Autentikasi dan percobaan ulang

REST: tajuk Authorization: Bearer YOUR_API_KEY. Antarmuka yang Kompatibel: parameter api_key dan action. Gunakan HTTPS.

Untuk mengelola kunci API, masukkan akun Anda.

∞permintaan/menit per akun
∞sesi simultan

Frekuensi permintaan dan jumlah nomor telepon tidak dibatasi. Tidak ada kuota harian atau per jam.

Nomor tersebut berlaku selama 20 menit. SMS diperiksa setiap 20 detik. Anda dapat membatalkan segera.

Di REST, unik Idempotency-Key diperlukan untuk alokasi nomor, alokasi berulang, retry dan permintaan pembayaran. Ini opsional tetapi direkomendasikan di handler_api.php. Gunakan kembali kunci tersebut saat mencoba kembali permintaan jaringan; gunakan kunci baru untuk operasi baru.

Cakupan kunci API

Kunci dapat dikaitkan dengan layanan, negara, dan penyedia tertentu. Daftar kosong mengizinkan semua opsi yang tersedia.

JSON
{
  "label": "Perangkat lunak saya",
  "policy": {
    "services": [
      "go"
    ],
    "countries": [
      86
    ],
    "providers": [
      1
    ]
  }
}

PATCH /api/v1/keys/{id} mengubah nama dan policy seluruhnya. Rahasianya hanya ditampilkan saat dibuat.

10% totalnya. 5% + 5% dengan kode perangkat lunak.

Saat mengeluarkan nomor, harap berikan ref pemilik perangkat lunak. Permintaan tersebut disahkan oleh kunci pengguna. Kodenya ada di bagian "Referensi" dan di GET /api/v1/referrals → software_ref.

PermintaanPengundangPerangkat lunak
Tanpa ref10%—
Dengan ref5%5%
Dengan ref, tidak ada referensi—5%

Platform ini membayar bonus tanpa mengurangi pendapatan pengguna. Pemilik perangkat lunak dan perujuk bisa menjadi orang yang sama. Seorang pengguna tidak dapat menggunakan kodenya sendiri.

Ketentuan tersebut ditetapkan saat sesi dibuat; membaca SMS dan retry tidak mengubahnya. Masukkan ref lagi untuk sesi ulang yang baru. Dalam perhitungan tarif, imbalan pengguna sebesar USD 0.003 memberikan USD 0.00015 per unit kepada pemilik perangkat lunak dan pihak yang mengarahkannya. Bonus totalnya adalah USD 0.00030.

perintah API

11 metode gaya XVBC ditambah saldo SMScash Anda.

GETgetNumberDapatkan nomor

Membuat sesi dan mencadangkan nomor telepon yang tersedia untuk pengguna. Tarif imbalan dan penerima bagian referral ditetapkan saat alokasi; imbalan ditambahkan saat SMS berisi kode diterima.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
service*stringKode layanan yang tersedia. Jawabannya terbatas pada area kunci API.
country*integerAmbil ID dari getCountries.
operatorstringAmbil ID dari operators/getOperators (API). operator=1 · any/0
session_durationintegerSesi berlangsung 20 menit. Lakukan 20 atau abaikan parameter ini.
with_operatorinteger1 menambahkan ID operator ke respons; 0 atau tanpa parameter mengembalikan tiga segmen.
refstringKode publik pemilik perangkat lunak: 5% untuknya dan 5% untuk pengundang. Tanpa ref - 10% untuk pengundang.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getNumber.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getNumber&api_key=YOUR_API_KEY&service=go&country=86&with_operator=1' \
  -H 'Idempotency-Key: request-unique-001'

Tanggapan

Nomor dikeluarkan
ACCESS_NUMBER:42:380670000000:1
Tidak ada nomor yang tersedia
EMPTY_POOL
  • Pilih otomatis: kode terbanyak dalam satu jam terakhir, lalu 24 jam. Nomor habis: operator berikutnya.
  • Lulus Idempotency-Key: permintaan yang sama dengan kunci yang sama mengembalikan sesi sebelumnya. Mengubah parameter memanggil IDEMPOTENCY_CONFLICT.
  • Negara numerik tanpa kumpulan menghasilkan EMPTY_POOL; format negara yang salah adalah BAD_COUNTRY.
  • Kunci sesi yang dihapus tetap digunakan: mengulang alokasi dengan kunci tersebut akan menghasilkan SESSION_CLOSED dan tidak memberikan nomor lain.
  • Hasil alokasi belum dikonfirmasi. Pengulangan otomatis dinonaktifkan agar tidak mengalokasikan nomor kedua.
GETgetNumbersStatusPeriksa ketersediaan

Jumlah nomor telepon yang tersedia menurut layanan dan negara.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
country*integerAmbil ID dari getCountries.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getNumbersStatus.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getNumbersStatus&api_key=YOUR_API_KEY&country=86'

Tanggapan

Nomor yang tersedia
{
  "go_0": 0
}
  • Akhiran _0 berarti pilihan tanpa operator tertentu.
  • Ketersediaan mengacu pada seluruh kumpulan nomor pemasok. Saluran yang dipilih diperiksa saat nomor dialokasikan.
GETgetStatusDapatkan kode terbaru

Permintaan mudah untuk status sesi dan kode SMS terakhir. Angka nol di awal kode dipertahankan.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
id*integerID sesi Anda, diterima saat nomor dikeluarkan.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getStatus.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getStatus&api_key=YOUR_API_KEY&id=42'

Tanggapan

Menunggu
STATUS_WAIT_CODE
Kode diterima
STATUS_OK:001234
Pembatalan atau habis masa berlakunya
STATUS_CANCEL
Tidak ditemukan
NO_ACTIVATION
  • Lakukan pemodelan setiap 20 detik. Membaca pesan lagi tidak akan menghasilkan pembayaran tambahan.
  • Setelah retry kode lama tidak dikembalikan: getStatus menunggu SMS berikutnya.
  • Setelah angka tanpa SMS dihapus, getStatus dan getSms kembali ke STATUS_CANCEL; getSmsFull kembali ke status tertutup, telepon kosong, dan daftar SMS kosong. REST /activations/{id} dan /sms kembali ke 404 NO_ACTIVATION.
GETsetStatusKelola sesi

Proses selesai, dibatalkan, atau dilanjutkan sedang menunggu SMS. Waktu habis sesi tetap sama.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
id*integerID sesi Anda, diterima saat nomor dikeluarkan.
status*integer3 — tunggu kode berikutnya tanpa memperpanjang sesi; 6 — selesai setelah SMS; 8 — batalkan segera.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=setStatus.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=setStatus&api_key=YOUR_API_KEY&id=42&status=3' \
  -H 'Idempotency-Key: request-unique-001'

Tanggapan

Menunggu SMS
ACCESS_RETRY_GET
Selesai
ACCESS_ACTIVATION
Dibatalkan
ACCESS_CANCEL
  • Ulangi prosesnya selama 20 menit, menunggu kode berikutnya. Waktu masalah dan waktu habisnya tidak berubah.
  • Untuk status=3 gunakan Idempotency-Key: mengulangi permintaan tidak akan mereset kode baru yang sudah diterima. Sejarah SMS tetap tersedia.
  • Pembatalan tidak mengurangi imbalan yang sudah diperoleh.
  • Hanya angka-angka dengan kode SMS yang disimpan dalam sejarah. Angka-angka yang dibatalkan dan berakhir masa berlakunya tanpa kode akan dihapus.
GETgetRepeatNumberKeluarkan nomor yang sama lagi

Membuka sesi baru dengan nomor tertentu dari riwayat Anda. Anda dapat memilih layanan lain yang tersedia di negara yang sama.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
number*stringNomor lama Anda. Hanya angka dan tanda + di depan opsional yang diperbolehkan.
service*stringKode layanan yang tersedia. Jawabannya terbatas pada area kunci API.
session_durationintegerSesi berlangsung 20 menit. Lakukan 20 atau abaikan parameter ini.
with_operatorinteger1 menambahkan ID operator ke respons; 0 atau tanpa parameter mengembalikan tiga segmen.
refstringKode publik pemilik perangkat lunak: 5% untuknya dan 5% untuk pengundang. Tanpa ref - 10% untuk pengundang.
operatorstringAmbil ID dari operators/getOperators (API). operator=1 · any/0

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getRepeatNumber.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRepeatNumber&api_key=YOUR_API_KEY&number=380670000000&service=go' \
  -H 'Idempotency-Key: request-unique-001'

Tanggapan

Sesi baru
ACCESS_NUMBER:43:380670000000
Nomornya masih sibuk
NUMBER_IN_USE
  • Pertama, akhiri atau batalkan sesi Anda saat ini. Jika nomor sedang sibuk, penerbitan ulang tidak dilakukan.
  • Sesi baru menerima ID baru dan tarif saat ini. SMS lama tidak disalin ke dalamnya. ref disetel lagi.
  • SMScash hanya mengizinkan pengulangan nomor dari riwayat akun ini. Negara ini diidentifikasi berdasarkan nomor.
  • Kunci sesi yang dihapus tetap digunakan: mengulang alokasi dengan kunci tersebut akan menghasilkan SESSION_CLOSED dan tidak memberikan nomor lain.
GETgetSmsFullDapatkan SMS sebagai JSON

Riwayat terstruktur semua pesan dengan ID, pengirim, kode, teks dan negara, layanan dan data pemasok.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
id*integerID sesi Anda, diterima saat nomor dikeluarkan.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getSmsFull.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getSmsFull&api_key=YOUR_API_KEY&id=42'

Tanggapan

JSON
{
  "success": true,
  "session_id": 42,
  "phone": "380670000000",
  "status": 1,
  "status_name": "received",
  "sms_count": 1,
  "sms": [
    {
      "id": 101,
      "external_id": "message-101",
      "sender": "Service",
      "code": "001234",
      "text": "Код подтверждения: 001234",
      "received_at": "2026-10-09T12:00:00Z",
      "country": {
        "id": 86,
        "name": "Italy"
      },
      "service": {
        "code": "go",
        "name": "Google"
      },
      "provider": {
        "id": 1,
        "name": "Оператор 1"
      }
    }
  ],
  "expires_at": "2026-10-09T12:20:00Z"
}
  • Format pilihan untuk integrasi. Ingat sms[].id hanya memproses pesan baru.
  • Status numerik SMScash: 1 - aktif, 6 - selesai, 8 - dibatalkan atau kedaluwarsa. status_name membedakan antara menunggu, diterima, selesai, dibatalkan, kadaluwarsa.
  • Kode yang diterima tetap tersedia setelah sesi berakhir. Untuk volume yang besar, gunakan REST /activations/{id}/sms dengan after_id.
  • Setelah angka tanpa SMS dihapus, getStatus dan getSms kembali ke STATUS_CANCEL; getSmsFull kembali ke status tertutup, telepon kosong, dan daftar SMS kosong. REST /activations/{id} dan /sms kembali ke 404 NO_ACTIVATION.
GETgetSmsDapatkan SMS sebagai string teks

Mengembalikan seluruh riwayat SMS dalam format string untuk klien yang ada.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
id*integerID sesi Anda, diterima saat nomor dikeluarkan.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getSms.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getSms&api_key=YOUR_API_KEY&id=42'

Tanggapan

Pesan
STATUS_OK:2026-10-09T12:00:00Z|001234|Код подтверждения: 001234
Menunggu
STATUS_WAIT_CODE
Pembatalan atau habis masa berlakunya
STATUS_CANCEL
  • Format pesan: waktu|kode|teks. Beberapa pesan dipisahkan oleh titik dua.
  • Teks SMS sendiri mungkin berisi titik dua dan garis vertikal. Untuk penguraian yang andal, gunakan getSmsFull.
GETgetServicesLayanan

Kode layanan yang tersedia. Jawabannya terbatas pada area kunci API.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
countryintegerAmbil ID dari getCountries.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getServices.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getServices&api_key=YOUR_API_KEY'

Tanggapan

Layanan
{
  "go": {
    "name": "Google",
    "code": "go"
  }
}
  • Direktori layanan tersebut dibagikan oleh pemasok. Ketersediaan jumlahnya diperiksa secara terpisah.
GETgetCountriesNegara

ID, nama, dan kode panggilan untuk negara-negara dalam saluran yang dipilih.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getCountries.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getCountries&api_key=YOUR_API_KEY'

Tanggapan

Negara
{
  "86": {
    "id": 86,
    "name": "Italy",
    "phone_code": "39"
  }
}
GETgetOperatorsOperator

Operator yang tersedia: ID API, nama, dan masa penahanan imbalan.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
countryintegerAmbil ID dari getCountries.
operatorstringAmbil ID dari operators/getOperators (API). operator=1 · any/0

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getOperators.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getOperators&api_key=YOUR_API_KEY'

Tanggapan

Operator
{
  "1": {
    "id": 1,
    "provider_id": 1,
    "operator": 1,
    "name": "Оператор 1",
    "earnings_hold_days": 45
  }
}
  • Ambil ID dari operators/getOperators (API).
GETgetRewardsHadiah untuk SMS

Tarifnya bergantung pada negara. Semua jumlah dalam tabel adalah per SMS yang telah dibayar.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.
countryintegerAmbil ID dari getCountries.
servicestringKode layanan yang tersedia. Jawabannya terbatas pada area kunci API.
operatorstringAmbil ID dari operators/getOperators (API). operator=1 · any/0

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getRewards.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getRewards&api_key=YOUR_API_KEY&country=59&service=vi'

Tanggapan

JSON
{
  "59": {
    "vi": {
      "1": "0.01000000",
      "3": "0.00500000"
    }
  }
}
{}
{}
  • USD jumlah tarif dikirimkan dalam bentuk string desimal yang tepat dengan 8 tempat desimal:
  • Penyedia yang diaktifkan tersedia untuk kunci Anda.
  • country ID → service code → operator ID → reward (USD)
GETgetBalanceSaldo pengguna

Tambahan SMScash: saldo tersedia dengan mempertimbangkan akrual, bonus referensi, dan permintaan pembayaran.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getBalance.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getBalance&api_key=YOUR_API_KEY'

Tanggapan

Saldo
ACCESS_BALANCE:0.00
  • getBalance mengembalikan saldo USD yang tersedia hingga 8 angka desimal.
  • Hanya dana yang masa penahanannya telah berakhir yang dapat ditarik.
GETgetHoldBalanceDitahan

Setelah SMS diterima, penghasilan ditahan selama jangka waktu yang ditentukan pemasok. Pada tanggal yang dijadwalkan, jumlah tersebut otomatis tersedia untuk ditarik.

Parameter

ParameterKetikDeskripsi
api_key*stringKunci API pribadi pengguna.

* Parameter yang diperlukan. Di semua permintaan, lewati juga action=getHoldBalance.

Contoh permintaan

curl
curl 'https://smscash.org/stubs/handler_api.php?action=getHoldBalance&api_key=YOUR_API_KEY'

Tanggapan

Ditahan
ACCESS_HOLD_BALANCE:34.50000001
  • SMScash · getHoldBalance · USD · 8
  • Hanya dana yang masa penahanannya telah berakhir yang dapat ditarik.

Kode respons dan permintaan berulang

Di handler_api.php hasil bisnis biasanya datang dengan HTTP 200. Periksa teks isi. Direktori dan getSmsFull mengembalikan JSON jika berhasil; kesalahan selalu berupa teks.

KodeHTTPPenyebab dan langkah selanjutnya
TARIFF_NOT_CONFIGURED200Tarifnya belum ditetapkanAlokasi nomor akan dimulai setelah SMS reward dikonfigurasikan.
COUNTRY_BLOCKED200Alokasi jumlah untuk negara ini terhambat.Pilih negara lain.
BAD_SERVICE200Alokasi nomor untuk layanan ini diblokir.Pilih layanan lain.
PROVIDER_NOT_READY200Alokasi nomor tidak tersedia saat iniSegarkan katalog API.
BAD_KEY400Tidak ada api_key atau format tidak valid.Periksa kunci dalam permintaan.
INVALID_API_KEY401Kuncinya tidak diketahui, dicabut atau akun dinonaktifkan.Buat kunci API yang valid.
BAD_COUNTRY400negara hilang atau tidak ada angka positif.Ambil ID dari getCountries.
BAD_SESSION_DURATION400Nomor telepon diberikan selama 20 menit tepatnya.session_duration yang benar.
BAD_REQUEST400Parameter tidak valid atau Idempotency-Key.Harap perbaiki permintaan Anda.
BAD_SERVICE / BAD_OPERATOR / INVALID_PROVIDER200Item direktori tidak dikenal atau dinonaktifkan.Segarkan katalog API.
BAD_NUMBER200Format angka salah.Berikan nomornya dalam angka.
BAD_ACTION / BAD_STATUS200Perintah, ID, atau operasi tidak diketahui.Periksa pengaturannya.
EMPTY_POOL200Tidak ada nomor telepon yang cocok saat ini tersedia.Ulangi setelah 10-30 detik atau ubah filter.
NUMBER_IN_USE200Nomor tertentu ditempati oleh sesi aktif.Akhiri sesi Anda atau pilih nomor lain.
NO_ACTIVATION200Sesi atau nomor sebelumnya bukan milik akun Anda.Periksa ID dan kuncinya.
SESSION_CLOSED / SMS_REQUIRED200Transisi negara saat ini tidak tersedia.Periksa kondisi dan ketersediaan SMS.
SCOPE_BLOCKED200Layanan, negara, atau vendor tidak berwenang untuk kunci tersebut.Perbarui cakupan kunci API.
IDEMPOTENCY_CONFLICT200Kunci kueri ini sudah dikaitkan dengan parameter lainnya.Untuk operasi baru, buat Idempotency-Key lainnya.
BAD_REF / SELF_REF400Kode perangkat lunak tidak diketahui, dinonaktifkan, atau milik pengguna itu sendiri.Berikan kode pemilik perangkat lunak.
INTERNAL_ERROR500Kesalahan server atau vendor sementara.Ulangi dengan penundaan dan Idempotency-Key yang sama.
ALLOCATION_PENDING200Permintaan nomor sedang diproses. Coba lagi dengan Idempotency-Key yang sama.Permintaan nomor sedang diproses. Coba lagi dengan Idempotency-Key yang sama.
ALLOCATION_UNCERTAIN200Hasil alokasi belum dikonfirmasi. Pengulangan otomatis dinonaktifkan agar tidak mengalokasikan nomor kedua.Hasil alokasi belum dikonfirmasi. Pengulangan otomatis dinonaktifkan agar tidak mengalokasikan nomor kedua.

REST mengembalikan objek {"error":{"code":"…","message":"…"}} dan status HTTP reguler 400/401/403/404/409/503.

JSON
{
  "error": {
    "code": "BAD_REQUEST",
    "message": "Periksa bidang permintaan.",
    "request_id": "req_…",
    "hint": "Use the documented JSON type; numbers must not be quoted.",
    "retryable": false,
    "details": {
      "field": "country",
      "expected": "integer"
    }
  }
}
REST
X-Request-ID: included in every API response
405: Allow lists the supported HTTP methods
ALLOCATION_PENDING: retryable=true · Retry-After=3 · same operation key
ALLOCATION_UNCERTAIN: retryable=false · contact support
Transport errors: check the operation before another write; keep the original key.

REST untuk integrasi baru

USD jumlah tarif dikirimkan dalam bentuk string desimal yang tepat dengan 8 tempat desimal: 0.00300000 USD.

Mata uang saldo adalah USD. Skema permintaan dan respons tersedia di OpenAPI.

Penarikan USDT · TRC20Pembayaran memerlukan waktu 1 hingga 45 hari. Biaya penarikan adalah US$4 dan dipotong dari jumlah yang diminta. Setelah SMS diterima, penghasilan ditahan selama jangka waktu yang ditentukan pemasok. Pada tanggal yang dijadwalkan, jumlah tersebut otomatis tersedia untuk ditarik. Hanya dana yang masa penahanannya telah berakhir yang dapat ditarik.
GET/api/v1/catalogLayanan dan negara
GET/api/v1/tariffsSMS tingkat imbalan per negara
GET/api/v1/offersTarif dan imbalan
GET/api/v1/servicesDirektori
GET/api/v1/countriesDirektori
GET/api/v1/operatorsDirektori
GET/api/v1/availability?country=1Ketersediaan nomor
POST/api/v1/activationsSesi baru
GET/api/v1/activations/batch?ids=42,43Periksa beberapa nomor
GET/api/v1/activationsSesi terbaru 200: scope=history, menunggu atau semua
GET/api/v1/activations/{id}Sesi dan pesan
GET/api/v1/activations/{id}/sms?after_id=0&limit=100SMS baru dengan kursor
POST/api/v1/activations/{id}/retryMenunggu SMS
POST/api/v1/activations/{id}/finishPenyelesaian
POST/api/v1/activations/{id}/cancelBatalkan
POST/api/v1/activations/repeatPenerbitan ulang nomor
GET/api/v1/keysKunci API
POST/api/v1/keysBuat kunci
PATCH/api/v1/keys/{id}Ganti nama atau policy
DELETE/api/v1/keys/{id}Cabut kunci
GET/api/v1/referralsKode referensi dan penghasilan
GET/api/v1/summarySaldo dan Ringkasan
GET/api/v1/balanceDitahan
GET/api/v1/ledgerBuku besar pendapatan
GET/api/v1/withdrawalsPermintaan pembayaran
POST/api/v1/withdrawalsBuat permintaan
GET/api/v1/statisticsStatistik umum
GET/api/v1/earnings/holdsPenghasilan ditahan

Hanya menerima SMS baru

REST
GET /api/v1/activations/42/sms?after_id=0&limit=100
Authorization: Bearer YOUR_API_KEY
JSON
{
  "session_id": 42,
  "sms": [
    {
      "id": 101,
      "code": "001234",
      "text": "Kode: 001234",
      "sender": "Service",
      "received_at": "2026-10-09T12:00:00Z"
    }
  ],
  "next_cursor": 101,
  "has_more": false
}

Simpan next_cursor dan sebarkan sebagai after_id. Jika has_more=true maka halaman selanjutnya bisa langsung dibaca. limit: 1–200. Sesi dan SMS hanya tersedia untuk pemiliknya.