208 app154 paesi

API v12026-11-04

Un'API JSON per ordinare numeri di verifica e leggere codici SMS.

URL di base https://snsverify.com/api/v1

Ogni percorso in questa pagina è relativo a esso. Gli importi sono in dollari USA come stringhe con due decimali, gli orari sono in UTC (ISO 8601).

Due formati, un account

Questa pagina descrive l'API REST con JSON. Se il tuo strumento utilizza già il formato comune di attivazione SMS (handler_api.php con parametri action=), usa l'API di attivazione SMS. Entrambi condividono la tua chiave API, i prezzi, le attivazioni aperte e i rimborsi.

Panoramica

Un'API di verifica SMS permette al tuo software di acquistare un numero di telefono per un'app, attendere l'SMS di verifica e leggere il codice, senza aprire il sito web. Ogni ordine è un'attivazione: un servizio, un paese, un numero e una finestra di 20 minuti. Gli ordini senza codice vengono rimborsati integralmente alla fine della finestra.

Le richieste usano GET per la lettura e POST per le azioni. I corpi POST possono essere campi modulo o JSON. Le risposte di successo sono oggetti JSON; gli errori hanno la stessa forma ovunque: {"error":{"code":"...","message":"..."}}.

Autenticazione

Crea una chiave API nella console sotto Chiave API. Viene mostrata una volta; conserviamo solo una copia cifrata. Inviarla nell'header Authorization come bearer token. È accettato anche un parametro key per strumenti che non possono impostare header.

Authorization: Bearer vfk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Creare una nuova chiave sostituisce immediatamente la vecchia. Gli endpoint di servizi, paesi e prezzi funzionano senza chiave.

Errori

HTTPSignificato
400Campo mancante o errato (missing_filter, bad_json).
401Nessuna chiave o chiave errata (no_key, bad_key).
402Credito insufficiente (no_balance).
404Servizio, paese, ordine o endpoint sconosciuto.
409L'ordine non può eseguire quell'azione ora (has_code, not_ready, too_many_open, no_numbers).
429Più di 300 richieste in un minuto (rate_limited).

Guida rapida

Ordina un numero WhatsApp UK con curl, poi interroga l'ordine ogni pochi secondi finché il codice non è disponibile.

curl -X POST https://snsverify.com/api/v1/orders \
  -H "Authorization: Bearer $SNSVERIFY_KEY" \
  -d service=whatsapp -d country=gb

Python

import os, time, requests

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

order = requests.post(f"{API}/orders", headers=H,
    data={"service": "whatsapp", "country": "gb"}).json()["order"]
print("Use this 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://snsverify.com/api/v1";
const H = { Authorization: `Bearer ${process.env.SNSVERIFY_KEY}` };

const { order } = await fetch(`${API}/orders`, {
  method: "POST", headers: H,
  body: new URLSearchParams({ service: "telegram", country: "nl" }),
}).then((r) => r.json());
console.log("Use this 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);

Limiti di frequenza

300 richieste al minuto per chiave e fino a 20 ordini aperti per account. Interrogare un ordine ogni 3-5 secondi è sufficiente: la maggior parte dei codici arriva entro un minuto.

Stati degli ordini

  • waiting Il numero è aperto e nessun codice è ancora arrivato.
  • received È arrivato almeno un codice; richiedine un altro con resend mentre la finestra è aperta.
  • finished Chiuso dopo un codice, da te o alla fine della finestra.
  • refunded La finestra è terminata senza codice; l'intero importo è tornato al tuo credito.
  • canceled Hai annullato prima che arrivasse un codice; l'intero importo è tornato al tuo credito.

Endpoint

GET/services

Ogni codice servizio con il suo nome, categoria e prezzo più basso. Nessuna chiave necessaria.

{"services":[{"code":"whatsapp","name":"WhatsApp","category":"social","from":"0.31"}]}

GET/countries

Ogni codice paese (ISO, minuscolo) con nome e prefisso. Nessuna chiave necessaria.

{"countries":[{"code":"gb","name":"United Kingdom","dial_code":"44"}]}

GET/prices?service=whatsapp&country=gb

Prezzi in USD. Filtra per servizio, paese o entrambi. Nessuna chiave necessaria.

{"prices":[{"service":"whatsapp","country":"gb","price":"0.94"}]}

GET/balance

Il tuo credito in USD.

{"balance":"25.00","currency":"USD"}

POST/orders

Acquista un numero (HTTP 201). Restituisce l'ordine con il numero di telefono e l'ora di fine finestra.

Corpo: service=whatsapp&country=gb

{"order":{"id":"AC-7K2M9QX4PB","service":"whatsapp","country":"gb","phone":"+447700900123","price":"0.94","status":"waiting","code":null,"expires_at":"2026-11-04T12:20:00.000Z"},"window_minutes":20}

GET/orders/AC-7K2M9QX4PB

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

{"order":{"id":"AC-7K2M9QX4PB","status":"received","code":"482915","sms":"Your WhatsApp code: 482-915"}}

GET/orders?status=open

I tuoi ordini aperti; status=all restituisce gli ultimi 100.

{"orders":[{"id":"AC-7K2M9QX4PB","status":"waiting"}]}

POST/orders/AC-7K2M9QX4PB/resend

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

{"order":{"status":"received","waiting_for_resend":true}}

POST/orders/AC-7K2M9QX4PB/finish

Chiude un ordine che ha ricevuto il suo codice.

{"order":{"status":"finished"}}

POST/orders/AC-7K2M9QX4PB/cancel

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

{"order":{"status":"canceled","refunded":"0.94"}}
API di verifica SMS: REST JSON per numeri WhatsApp, Telegram e Google | SNSVerify