Vai al contenuto principale
100+
Paesi
Oltre 1.000 servizi. Paga in crypto, senza KYC.
Acquista numero

API di Verifica SMS — SimNoKYC

Automatizza la verifica OTP su larga scala. Acquista numeri di telefono virtuali in 190+ paesi, ricevi codici SMS in pochi secondi, affitta numeri dedicati a lungo termine e gestisci ogni ordine tramite un unico endpoint REST — senza chiave API, senza KYC, fatturato in criptovaluta.

Tempo di lettura: 5 min REST · JSON · OpenAPI 3.0 Spec OpenAPI →

Autenticazione richiesta. Tutte le richieste API utilizzano l'autenticazione di sessione basata su cookie. Devi essere connesso al tuo account SimNoKYC per utilizzare l'API. Accedi tramite l'interfaccia web oppure usa l'endpoint di autenticazione per stabilire una sessione.

Perché gli sviluppatori scelgono l’API SimNoKYC

SimNoKYC è l’API di verifica SMS più flessibile per gli sviluppatori che richiedono anonimato, copertura globale e prezzi prevedibili. A differenza dei provider SMS-OTP tradizionali che subordinano l’accesso a contratti enterprise, volumi minimi mensili e questionari KYC, SimNoKYC funziona con qualsiasi client HTTPS, addebita esclusivamente per numero e accetta 20+ criptovalute tra cui Bitcoin, Monero, Ethereum, USDT, USDC, Solana, Litecoin, XRP, TRON e Toncoin.

I casi d’uso tipici includono: automatizzare la registrazione di account per QA su larga scala, recuperare password monouso per agenti headless e bot CI, validare flussi con verifica telefonica nell’integrazione continua, affittare numeri dedicati a lungo termine per account Telegram o WhatsApp che richiedono ricezione SMS ininterrotta, e gestire la verifica geo-distribuita in 190+ paesi con controllo esplicito del livello operatore — virtuale, fisico o premium.

Autenticazione

L'API utilizza l'autenticazione di sessione basata su cookie. Per autenticarsi in modo programmatico:

  1. Invia una richiesta POST a /auth-api.php con la tua seed phrase
  2. Memorizza il cookie di sessione dalla risposta
  3. Includi il cookie in tutte le successive richieste API
POST /auth-api.php

Autenticati con la tua seed phrase e stabilisci una sessione.

ParametroTipoObbligatorioDescrizione
actionstringobbligatorioDeve essere "login"
seedstringobbligatorioLa tua seed di accesso a 16 caratteri (es. AbC3-dEf4-gHj5-kLm6)
cURL
Python
JavaScript
# Login and save session cookie curl -X POST https://simnokyc.com/auth-api.php \ -d "action=login&seed=AbC3-dEf4-gHj5-kLm6" \ -c cookies.txt
import requests session = requests.Session() resp = session.post("https://simnokyc.com/auth-api.php", data={ "action": "login", "seed": "AbC3-dEf4-gHj5-kLm6" }) data = resp.json() print(data) # {"success": true, "user": {...}} # session object now holds the cookie for all future requests
const resp = await fetch("https://simnokyc.com/auth-api.php", { method: "POST", credentials: "include", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: "action=login&seed=AbC3-dEf4-gHj5-kLm6" }); const data = await resp.json(); console.log(data); // {success: true, user: {...}}
Risposta di successo
{ "success": true, "user": { "id": 42, "prefix": "AbC3", "balance": "74.50" } }
Risposta di errore
{ "success": false, "error": "Invalid seed." }

URL base

Tutti gli endpoint API sono relativi a:

https://simnokyc.com/api.php?action={action}

Tutte le risposte sono in formato JSON. Gli endpoint POST accettano sia application/json che application/x-www-form-urlencoded come corpo della richiesta.

Limiti di chiamate

L'API applica i seguenti rate limit:

EndpointLimiteFinestra
Autenticazione5 tentativi15 minuti
Tutti gli altri endpointNessun limite fisso

Rate limiting: L'autenticazione è limitata a 5 tentativi ogni 15 minuti. Gli altri endpoint non sono attualmente soggetti a rate limit, ma un utilizzo eccessivo potrebbe essere rallentato. Usa intervalli di richiesta ragionevoli.

Gestione degli errori

Tutti gli errori restituiscono un oggetto JSON con un campo <code>error</code>:

{ "error": "Description of what went wrong" }
Codice HTTPSignificato
200Operazione riuscita (controlla il corpo della risposta per errori a livello applicativo)
403Token CSRF non valido
405Metodo HTTP errato (es. GET su un endpoint solo POST)
429Limite di chiamate superato

Errori comuni a livello applicativo:

ErroreCausa
"Login required"Sessione scaduta o non autenticata
"Insufficient balance"Fondi insufficienti — include i campi need e have
"Service not available for this country"Nessuna disponibilità o servizio inattivo per il paese selezionato
"Missing country or service"I parametri obbligatori non sono stati forniti

Elenca paesi

GET /api.php?action=countries

Restituisce tutti i paesi attivi con numeri virtuali disponibili. Nessuna autenticazione richiesta.

cURL
Python
JavaScript
curl https://simnokyc.com/api.php?action=countries
resp = session.get("https://simnokyc.com/api.php", params={"action": "countries"}) countries = resp.json() for c in countries: print(c["code"], c["name"])
const resp = await fetch("https://simnokyc.com/api.php?action=countries"); const countries = await resp.json();
Risposta
[ { "id": 1, "code": "us", "name": "USA" }, { "id": 2, "code": "gb", "name": "UK" }, { "id": 3, "code": "de", "name": "Germany" } ]

Elenca servizi

GET /api.php?action=services&country={code}

Restituisce i servizi disponibili per un paese specifico, inclusi prezzi e disponibilità. Senza un codice paese, restituisce tutti i servizi senza prezzi.

ParametroTipoObbligatorioDescrizione
countrystringopzionaleCodice paese ISO 3166-1 alpha-2 (es. us, gb, de)
Risposta (con paese)
[ { "id": 12, "name": "WhatsApp", "slug": "whatsapp", "icon_code": "WA", "icon_color": "#25d366", "category": "social", "price": "0.35", "stock": 847 } ]

Elenca operatori

GET /api.php?action=operators&country={code}

Restituisce gli operatori (carrier) disponibili per un paese specifico. Ogni operatore ha un tipo e un moltiplicatore di prezzo applicato al prezzo base del servizio.

ParametroTipoObbligatorioDescrizione
countrystringobbligatorioCodice paese ISO 3166-1 alpha-2
Risposta
[ { "id": 5, "name": "T-Mobile", "type": "physical", "price_multiplier": "1.50", "icon_slug": "tmobile", "icon_domain": "t-mobile.com" } ]

Tipi di operatore: virtual — numeri VoIP, i più economici, potrebbero essere bloccati da alcuni servizi. physical — SIM fisiche, tasso di successo più elevato. premium — consegna più rapida (~10s), massimo tasso di successo.

Acquista numero (attivazione SMS)

POST /api.php?action=buy

Acquista un numero virtuale per la verifica SMS singola. Il numero è attivo per 20 minuti. Se non viene ricevuto alcun SMS, il saldo viene rimborsato automaticamente.

ParametroTipoObbligatorioDescrizione
countrystringobbligatorioCodice paese (es. us)
service_idintegerobbligatorioID servizio da Lista servizi
operator_idintegeropzionaleID operatore da List Operators. Ometti per l'operatore predefinito.
cURL
Python
JavaScript
curl -X POST https://simnokyc.com/api.php?action=buy \ -b cookies.txt \ -H "Content-Type: application/json" \ -d '{"country":"us","service_id":12,"operator_id":5}'
resp = session.post("https://simnokyc.com/api.php?action=buy", json={ "country": "us", "service_id": 12, "operator_id": 5 }) order = resp.json() print(f"Order #{order['order_id']} — ${order['price']}")
const resp = await fetch("https://simnokyc.com/api.php?action=buy", { method: "POST", credentials: "include", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ country: "us", service_id: 12, operator_id: 5 }) }); const order = await resp.json();
Risposta di successo
{ "success": true, "order_id": 1847, "price": 0.53, "balance": "73.97" }
Errore: saldo insufficiente
{ "error": "Insufficient balance", "need": 0.53, "have": "0.10" }

Elenca ordini

GET /api.php?action=orders

Restituisce i tuoi 50 ordini più recenti, inclusi i numeri di telefono e i codici SMS. Interroga questo endpoint per verificare i codici SMS in arrivo sugli ordini attivi.

Risposta
[ { "id": 1847, "price": "0.53", "status": "completed", "phone_number": "+12025551234", "sms_code": "847293", "created_at": "2026-04-09 14:32:00", "country_code": "us", "country_name": "USA", "service_name": "WhatsApp", "operator_name": "T-Mobile" } ]

Stati dell'ordine: active — in attesa di SMS. completed — SMS ricevuto. cancelled — annullato dall'utente. refunded — rimborsato automaticamente (nessun SMS ricevuto prima del timeout). expired — scaduto.

Consulta prezzo di noleggio

GET /api.php?action=rental_price&country={code}&operator_id={id}&duration={days}

Consulta il prezzo per noleggiare un numero dedicato da un operatore specifico per una durata prestabilita.

ParametroTipoObbligatorioDescrizione
countrystringobbligatorioCodice paese
operator_idintegerobbligatorioID operatore
durationintegerobbligatorioDurata del noleggio in giorni: 7, 14, 30 o 90
Risposta
{ "price": "12.50", "duration": 30, "operator": "T-Mobile", "type": "physical", "country": "USA" }

Noleggia numero

POST /api.php?action=rental_buy

Noleggia uno o più numeri di telefono dedicati. Il numero è esclusivamente tuo per l'intero periodo di noleggio e riceve SMS in entrata illimitati.

ParametroTipoObbligatorioDescrizione
countrystringobbligatorioCodice paese
operator_idintegerobbligatorioID operatore
durationintegerobbligatorio7, 14, 30 o 90 giorni
qtyintegeropzionaleNumero di numeri da noleggiare (1–10, predefinito: 1)
Risposta di successo
{ "success": true, "order_ids": [1848, 1849], "total": 25.00, "qty": 2, "unit_price": 12.50, "duration": 30, "balance": "49.50" }

Ottieni info utente

GET /api.php?action=user

Restituisce le informazioni sull'account e il saldo dell'utente corrente. Usalo per verificare lo stato di autenticazione e i fondi disponibili.

Autenticato
{ "logged_in": true, "id": 42, "prefix": "AbC3", "balance": "74.50" }
Non autenticato
{ "logged_in": false }

Esempio di workflow completo

Ecco un esempio Python completo che esegue l'autenticazione, trova un servizio, acquista un numero e verifica l'arrivo del codice SMS:

Python
import requests, time BASE = "https://simnokyc.com" SEED = "AbC3-dEf4-gHj5-kLm6" s = requests.Session() # 1. Authenticate s.post(f"{BASE}/auth-api.php", data={"action": "login", "seed": SEED}) # 2. Check balance user = s.get(f"{BASE}/api.php?action=user").json() print(f"Balance: ${user['balance']}") # 3. Get services for USA services = s.get(f"{BASE}/api.php?action=services&country=us").json() whatsapp = next(svc for svc in services if svc["name"] == "WhatsApp") print(f"WhatsApp: ${whatsapp['price']} ({whatsapp['stock']} in stock)") # 4. Buy a number order = s.post(f"{BASE}/api.php?action=buy", json={ "country": "us", "service_id": whatsapp["id"] }).json() print(f"Order #{order['order_id']} created") # 5. Poll for SMS code for _ in range(60): orders = s.get(f"{BASE}/api.php?action=orders").json() my_order = next(o for o in orders if o["id"] == order["order_id"]) if my_order["sms_code"]: print(f"SMS code: {my_order['sms_code']}") print(f"Phone: {my_order['phone_number']}") break print("Waiting for SMS...") time.sleep(5) else: print("Timeout — balance will be refunded automatically")

Domande frequenti

Cosa posso fare con l’API di verifica SMS SimNoKYC?

L’API SimNoKYC offre agli sviluppatori accesso programmatico a numeri di telefono virtuali in 190+ paesi per la verifica SMS monouso (codici OTP) e il noleggio a lungo termine (7, 14, 30 o 90 giorni). È possibile elencare i servizi, consultare i prezzi in tempo reale, allocare numeri, recuperare i codici SMS in arrivo e richiedere rimborsi per attivazioni fallite — tutto tramite un’interfaccia REST JSON, senza KYC e con fatturazione esclusivamente in crypto.

È necessaria una chiave API o un token OAuth per utilizzare l’API?

No. L’API SimNoKYC utilizza l’autenticazione tramite sessione basata su cookie: invia una singola richiesta POST a /auth-api.php con il tuo seed di accesso di 16 caratteri, poi riutilizza il cookie di sessione restituito in ogni chiamata successiva. Non esistono chiavi API da generare, ruotare o revocare — ci si autentica una volta per sessione e si rimane autenticati per tutta la durata del cookie.

Quanto costa utilizzare l’API SimNoKYC?

L’API è gratuita — non è previsto alcun canone mensile, abbonamento o volume minimo di richieste. Si paga esclusivamente per numero: le attivazioni SMS monouso partono da $0.05 e i noleggi dedicati a lungo termine partono da $4.79 per 7 giorni. Ogni operazione viene addebitata sul saldo prepagato e qualsiasi attivazione che non riceve un SMS viene rimborsata automaticamente.

Quali linguaggi di programmazione e framework sono supportati?

Qualsiasi linguaggio o piattaforma in grado di effettuare richieste HTTPS può chiamare l’API — Python (requests, httpx), Node.js (fetch, axios), Go, PHP, Ruby, Java, C#, Bash con cURL e altri. La documentazione include esempi pronti all’uso in cURL, Python e JavaScript, e una specifica OpenAPI 3.0 completa è pubblicata su /openapi.json per generare automaticamente un client tipizzato nel linguaggio preferito.

Cosa succede se il codice di verifica SMS non arriva mai?

Ogni attivazione dispone di una finestra di consegna di 20 minuti. Se nessun SMS arriva entro la scadenza di tale finestra, l’ordine viene annullato automaticamente e l’intero importo viene accreditato sul saldo dell’account — senza ticket di supporto, senza retry manuale. Il saldo rimborsato può essere immediatamente utilizzato per allocare un nuovo numero, eventualmente su un livello operatore diverso (virtuale, fisico o premium) per una maggiore probabilità di consegna.

Esistono limiti di frequenza sulle richieste all’API SimNoKYC?

L’autenticazione è limitata a 5 tentativi ogni 15 minuti per IP, a protezione contro l’enumerazione brute-force dei seed. Tutti gli altri endpoint — catalogo, acquisto, ordini, noleggi — non hanno attualmente limiti di frequenza rigidi, ma si raccomanda di mantenere intervalli di richiesta ragionevoli: eseguire il polling di /api.php?action=orders ogni 3–5 secondi è sufficiente per il recupero degli SMS, e raffiche sostenute superiori a ~10 req/s potrebbero essere bloccate a livello WAF.