API di verifica SMS
Acquista numeri e leggi codici SMS con semplici richieste HTTP GET o POST. Le risposte utilizzano il formato testuale degli strumenti comuni di attivazione SMS, le chiamate per numeri privati rispondono in JSON.
Per iniziare
- Indirizzo
- https://snscodes.com/stubs/handler_api.php
- Autenticazione
- Parametro api_key. Crea la chiave nella pagina API del tuo account; viene mostrata una sola volta.
- Limite di richieste
- 300 richieste al minuto per chiave
- Denaro
- Prezzi e credito in dollari statunitensi, prelevati dallo stesso credito del sito web.
curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getNumber&service=telegram&country=us" # ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123 curl "https://snscodes.com/stubs/handler_api.php?api_key=$KEY&action=getStatus&id=N-7KQ2M9XWD4" # STATUS_OK:482913
import time, requests
BASE = "https://snscodes.com/stubs/handler_api.php"
KEY = "YOUR_KEY"
r = requests.get(BASE, params={"api_key": KEY, "action": "getNumber", "service": "telegram", "country": "us"}).text
_, num_id, phone = r.split(":")
print("number", phone)
while True:
s = requests.get(BASE, params={"api_key": KEY, "action": "getStatus", "id": num_id}).text
if s.startswith("STATUS_OK"):
print("code", s.split(":")[1]); break
if s == "STATUS_CANCEL":
break
time.sleep(5)const BASE = "https://snscodes.com/stubs/handler_api.php";
const KEY = process.env.SNSCODES_KEY;
const call = async (q) => (await fetch(BASE + "?" + new URLSearchParams({ api_key: KEY, ...q }))).text();
const [, id, phone] = (await call({ action: "getNumber", service: "telegram", country: "us" })).split(":");
console.log("number", phone);
for (;;) {
const s = await call({ action: "getStatus", id });
if (s.startsWith("STATUS_OK")) { console.log("code", s.split(":")[1]); break; }
if (s === "STATUS_CANCEL") break;
await new Promise((r) => setTimeout(r, 5000));
}Ottieni credito action=getBalance
Restituisce il credito del tuo account in dollari statunitensi.
ACCESS_BALANCE:42.50
BAD_KEYLa chiave è mancante o errata.
Prezzi dei codici action=getPrices
Prezzi per codice per paese e servizio. Entrambi i filtri sono opzionali.
| Parametro | Obbligatorio | Descrizione |
|---|---|---|
| service | no | Codice del servizio, ad esempio telegram |
| country | no | us, gb o au |
{"us":{"telegram":{"cost":3,"count":100}}}Acquista un numero per codice action=getNumber
Acquista un numero per un'app. Il prezzo viene prelevato immediatamente dal tuo credito e restituito se non arriva alcun codice entro 20 minuti.
| Parametro | Obbligatorio | Descrizione |
|---|---|---|
| service | sì | Codice del servizio da getPrices |
| country | sì | us, gb o au |
ACCESS_NUMBER:N-7KQ2M9XWD4:14155550123
BAD_SERVICECodice del servizio sconosciuto.BAD_COUNTRYIl servizio non è venduto per questo paese.NO_BALANCECredito insufficiente. Nessun addebito effettuato.NO_NUMBERSNessun numero disponibile al momento. Nessun addebito effettuato.NO_ACTIVATIONSHai già 20 numeri per codice aperti.
Leggi il codice action=getStatus
Polling ogni 5-10 secondi fino all'arrivo del codice.
| Parametro | Obbligatorio | Descrizione |
|---|---|---|
| id | sì | L'id da getNumber |
STATUS_OK:482913
STATUS_WAIT_CODENessun SMS ancora.STATUS_WAIT_RETRY:482913In attesa di un altro codice; viene mostrato l'ultimo.STATUS_CANCELAnnullato o rimborsato.NO_ACTIVATIONId sconosciuto.
Annulla, riprova o termina action=setStatus
status=8 annulla un numero senza codice (rimborso completo), status=3 richiede un altro codice sullo stesso numero, status=6 lo termina.
| Parametro | Obbligatorio | Descrizione |
|---|---|---|
| id | sì | L'id da getNumber |
| status | sì | 8, 3 o 6 |
ACCESS_CANCEL
EARLY_CANCEL_DENIEDUn codice è già arrivato; termina invece di annullare.ACCESS_RETRY_GETIn attesa di un altro codice.ACCESS_ACTIVATIONTerminato.
Prezzi dei numeri privati action=getRentPrices
Prezzo per l'intero periodo per paese e periodo. Restituisce JSON.
| Parametro | Obbligatorio | Descrizione |
|---|---|---|
| country | no | Codice paese di due lettere |
{"us":{"sixMonths":35.99,"twelveMonths":59.99}}Acquista un numero privato action=getRentNumber
Acquista un numero privato per un periodo. Restituisce JSON.
| Parametro | Obbligatorio | Descrizione |
|---|---|---|
| country | sì | Codice paese di due lettere |
| period | sì | oneMonth, threeMonths, sixMonths, twelveMonths, twoYears o threeYears |
{"status":"success","id":"N-3HV8QZ2K5M","phone":"14155550123","until":"2027-05-02T10:00:00.000Z"}BAD_PERIODIl periodo non è disponibile per questo paese.NO_BALANCECredito insufficiente.
Leggi gli SMS del numero privato action=getRentStatus
Tutti gli SMS ricevuti dal numero privato finora. Restituisce JSON.
| Parametro | Obbligatorio | Descrizione |
|---|---|---|
| id | sì | L'id da getRentNumber |
{"status":"success","state":"active","messages":[{"code":"482913","text":"Your code is 482913","from":"Telegram","at":"..."}]}Annulla un numero privato action=setRentStatus
status=2 annulla un numero privato per un rimborso completo se non è arrivato alcun SMS e ha meno di 20 minuti.
| Parametro | Obbligatorio | Descrizione |
|---|---|---|
| id | sì | L'id da getRentNumber |
| status | sì | 2 |
{"status":"success"}EARLY_CANCEL_DENIEDÈ arrivato un SMS o sono passati 20 minuti.