API per sviluppatori

Automatizza le verifiche su larga scala

L'API SNSPhone consente ai tuoi strumenti di ordinare numeri non-VoIP statunitensi, leggere codici SMS e gestire i noleggi. Due formati: un'API REST con JSON e il comune formato di attivazione SMS per script esistenti.

Guida rapida

URL di base https://snsphone.com/api/v1. Crea una chiave nella pagina API della console e inviala come Authorization: Bearer spk_... (o un campo key). Tutti i numeri sono non-VoIP statunitensi. I soldi sono stringhe USD con 2 decimali, gli orari sono ISO 8601 UTC, 300 richieste al minuto per chiave. Prezzi aggiornati al 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);

Catalogo

GET/services

Ogni codice servizio con nome, categoria, prezzo verifica e periodi di noleggio. Nessuna chiave necessaria.

Pubblico, nessuna chiave.

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

Prezzi in USD, opzionalmente per un servizio. Nessuna chiave necessaria.

Pubblico, nessuna chiave.

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

Il tuo credito in USD.

Richiede la tua chiave API.

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

Verifiche

POST/orders

Acquista una verifica (201). Restituisce il numero USA e l'ora in cui termina la finestra di 20 minuti.

Richiede la tua chiave API.

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

Una verifica con il suo stato e ogni codice ricevuto. Stati: waiting, received, finished, refunded, canceled.

Richiede la tua chiave API.

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

Le tue verifiche aperte (status=all per le ultime 100).

Richiede la tua chiave API.

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

POST/orders/VR-7K2M9QX4PB/resend

Richiede un altro codice sullo stesso numero, dopo il primo codice e mentre la finestra è aperta. Nessun costo aggiuntivo.

Richiede la tua chiave API.

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

Chiude una verifica che ha ricevuto il suo codice.

Richiede la tua chiave API.

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

POST/orders/VR-7K2M9QX4PB/cancel

Annulla prima che arrivi un codice. L'intero importo torna nel tuo credito.

Richiede la tua chiave API.

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

Noleggi

POST/rentals

Noleggia un numero USA per un servizio e periodo (201). days è opzionale quando il servizio ha un periodo.

Richiede la tua chiave API.

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

I tuoi noleggi attivi con i loro ultimi messaggi (status=all per gli ultimi 100).

Richiede la tua chiave API.

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

GET/rentals/RN-4J8T2W6QHM

Un noleggio con ogni SMS ricevuto su di esso.

Richiede la tua chiave API.

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

Aggiunge un altro periodo allo stesso prezzo.

Richiede la tua chiave API.

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

Annulla nei primi 20 minuti mentre nessun SMS è arrivato. Tutto il pagato torna nel tuo credito.

Richiede la tua chiave API.

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

Formato di attivazione SMS

Per strumenti che già supportano il comune formato di attivazione. Un URL, un campo action, risposte in testo semplice. Solo verifiche.

https://snsphone.com/stubs/handler_api.php?api_key=KEY&action=ACTION
AzioneCampi extraRispostaSignificato
getBalancenessunoACCESS_BALANCE:12.50Il tuo credito in USD.
getServicesListnessuno{"status":"success","services":[{"code":"whatsapp","name":"WhatsApp"}]}Codici servizio con prezzo di verifica (JSON).
getCountriesnessuno{"us":{"name":"United States","dial":"1"}}Solo Stati Uniti. country può essere us, 187 o omesso.
getPrices&service=whatsapp{"us":{"whatsapp":{"cost":0.9,"count":100}}}Prezzi in USD. Il filtro servizio è opzionale.
getNumber&service=whatsapp&country=usACCESS_NUMBER:VR-7K2M9QX4PB:14155550142Acquista una verifica. Restituisce l'id e il numero con l'1 davanti.
getStatus&id=VR-7K2M9QX4PBSTATUS_OK:482913STATUS_WAIT_CODE, STATUS_OK:<code>, STATUS_WAIT_RETRY:<last code> (altro codice richiesto), STATUS_CANCEL (annullato o rimborsato).
setStatus&id=VR-7K2M9QX4PB&status=3ACCESS_RETRY_GETstatus=1 pronto (ACCESS_READY), 3 altro codice (ACCESS_RETRY_GET), 6 termina (ACCESS_ACTIVATION), 8 annulla con rimborso completo mentre nessun codice è arrivato (ACCESS_CANCEL).

Errori

Gli errori REST arrivano come {"error":{"code","message"}} con questi codici di stato. Il formato di attivazione risponde con una parola semplice.

400Campo mancante o non valido (bad_json, bad_period).
401Nessuna chiave o chiave errata (no_key, bad_key).
402Credito insufficiente (no_balance).
404Servizio, ordine, noleggio o endpoint sconosciuto, o un prodotto che il servizio non offre (not_sold).
409Operazione non possibile al momento (has_code, has_sms, too_late, not_ready, too_many_open, too_many_active, no_numbers).
429Più di 300 richieste in un minuto (rate_limited).
BAD_KEYChiave API mancante o errata.
BAD_ACTIONAzione sconosciuta.
BAD_SERVICECodice servizio sconosciuto.
BAD_COUNTRYNon è gli Stati Uniti, o il servizio è venduto solo come noleggio.
NO_BALANCECredito insufficiente.
NO_NUMBERSNessun numero disponibile al momento. Riprova tra poco.
NO_ACTIVATIONID sconosciuto o non tuo.
EARLY_CANCEL_DENIEDIl codice è già arrivato, quindi non può essere annullato.
NO_ACTIVATIONSSono già aperte 20 verifiche.
TOO_MANY_REQUESTSPiù di 300 richieste in un minuto.

Domande sull'API

Chiavi, limiti e polling, spiegati.

SNSPhone ha un'API per la verifica SMS?

Sì. Un'API REST con JSON su /api/v1 per servizi, prezzi, verifiche e noleggi, e il formato comune di attivazione SMS su /stubs/handler_api.php.

Come autentico le richieste API?

Crea una chiave nella pagina API della console e inviala come Authorization: Bearer spk_..., o come campo key. Le chiavi sono memorizzate solo come hash e mostrate una volta.

Quali sono i limiti di frequenza dell'API?

300 richieste al minuto per chiave, fino a 20 verifiche aperte e 20 noleggi attivi per account.

Gli ordini API costano più di quelli sul sito?

No. L'API utilizza gli stessi prezzi e le stesse regole di rimborso della console.

Come faccio a sapere quando è arrivato il codice?

Interroga GET /orders/{id} ogni pochi secondi. Lo stato cambia da waiting a received e il campo code contiene le cifre.

API di verifica SMS non-VoIP: numeri USA via REST | SNSPhone