SMS e messaggi
Che cos’è lo smishing?
Copertura: Risultato indicativo basato su segnali automatici, non sulla verifica del mittente. Nessun risultato garantisce che un messaggio sia sicuro.
Apri lo strumentoIn questa pagina
A cosa serve
Lo smishing è una frode via SMS che impersona un’organizzazione per ottenere denaro, dati o codici. Controlla mittente, testo e dominio prima di agire; verifica le richieste tramite un canale ufficiale che conosci già.
Incolla il testo che hai ricevuto e ti diremo subito se presenta i segnali tipici dello smishing: link abbreviati, domini che imitano banche o corrieri e messaggi pressanti.
Requisiti
Chiunque può leggere queste guide, senza account. Alcuni strumenti richiedono Pro, come indicato in ogni guida.
Includi il messaggio completo. Non è necessario aprire i link né condividere codici personali.
Come usarlo
Includi il messaggio completo. Non è necessario aprire i link né condividere codici personali.
Controlla il messaggio
Non condividere password, PIN o codici di verifica in risposta a un SMS.
Controlla il dominio reale del link: «banca-sicurezza.example» non è il sito della tua banca.
L’urgenza («ultimo avviso», «account bloccato») è lo strumento preferito dei truffatori.
Se hai dubbi, apri tu il sito o l’app ufficiale invece di toccare il link.
Esempio inventato
Esempio inventato, non una ricerca reale. Non chiamare e non aprire i suoi link.
DHL: Ultimo avviso. Il tuo pacco è bloccato. Azione richiesta su https://parcel.exampleInterpretare il risultato
Non aprire il link, non rispondere e non condividere dati. Eliminalo e, se hai dubbi, contatta l’azienda dal suo sito o numero ufficiale.
Presenta alcuni segnali di truffa. Non aprire il link; verifica le informazioni direttamente sul sito o nell’app ufficiale.
Vengono mostrati solo i domini, senza link attivi. Un dominio conosciuto non dimostra che il messaggio sia autentico.
Limiti
Il controllo viene eseguito nel browser: il testo del messaggio non viene mai inviato a un server.
Risultato indicativo basato su segnali automatici, non sulla verifica del mittente. Nessun risultato garantisce che un messaggio sia sicuro.
Risoluzione dei problemi
Incolla il testo dell’SMS per controllarlo.
Usare con l’API
Richiede una API key e dei crediti. Ogni chiamata completata costa 1 credito, anche quando non ci sono dati. Un account Pro attivo include 20 crediti per mese solare UTC, condivisi da tutte le rotte API e consumati per primi; i crediti mensili non usati non passano al mese successivo. I crediti acquistati nella pagina del tuo account funzionano senza Pro e non scadono mai.
Gli errori non vengono mai addebitati: 401 invalid_api_key (chiave mancante o non valida), 403 pro_required (nessun credito Pro e nessun credito acquistato), 422 input non valido, 429 quota_exceeded (crediti esauriti), rate_limit_exceeded o ai_busy (l’IA di sms-check è al limite della capacità), 503 tool_warming (i dati sono ancora in preparazione) o tool o provider non disponibile. Dopo un 429 o un 503, riprova quando sono trascorsi i secondi indicati nell’intestazione Retry-After.
Verifica di un SMS con il motore di regole locale: truffa, sospetto o probabilmente sicuro, con il punteggio intero alla base (4 o più truffa, 2–3 sospetto, 0–1 probabilmente sicuro), segnali, host, flag del link e il marchio citato con il suo id sms-brand.
Invia il corpo JSON alla rotta specifica del tool, oppure a POST /v2/tools aggiungendo il campo tool. Entrambe le rotte restituiscono lo stesso risultato.
POST https://api.nocall.io/v2/smishing
POST https://api.nocall.io/v2/tools {"tool":"smishing","message":"CORREOS: su paquete está retenido. Pague urgente las tasas en https://correos-entrega.info/pago","country":"ES"}Parametri
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| message | string (1–2000) | Sì | Testo dell’SMS da verificare. |
| country | string (enum, 55) | No (predefinito: "ES") | Paese di cui si usa il set di regole SMS. |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/smishing' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"message":"CORREOS: su paquete está retenido. Pague urgente las tasas en https://correos-entrega.info/pago","country":"ES"}'import json
import os
import urllib.request
import uuid
api_key = os.environ.get('NOCALL_API_KEY')
if not api_key:
raise SystemExit('Set NOCALL_API_KEY')
request = urllib.request.Request(
'https://api.nocall.io/v2/smishing',
method='POST',
data=json.dumps({'message': 'CORREOS: su paquete está retenido. Pague urgente las tasas en https://correos-entrega.info/pago', 'country': 'ES'}).encode(),
headers={
'Authorization': 'Bearer ' + api_key,
'Content-Type': 'application/json',
'Idempotency-Key': str(uuid.uuid4()),
},
)
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
print(result['data']['result'], result['meta']['unitsCharged'])import { randomUUID } from 'node:crypto';
const requestId = randomUUID();
const apiKey = process.env.NOCALL_API_KEY;
if (!apiKey) throw new Error('Set NOCALL_API_KEY');
const response = await fetch('https://api.nocall.io/v2/smishing', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ message: 'CORREOS: su paquete está retenido. Pague urgente las tasas en https://correos-entrega.info/pago', country: 'ES' }),
});
const result = await response.json();
if (!response.ok) throw new Error(result.error?.code ?? 'request_failed');
console.log(result.data.result, result.meta.unitsCharged);Esempio di risposta (200)
Questo è l’esempio documentato nel riferimento API. Le ricerche usano un numero fittizio, mentre aggregati e risposte dell’IA mostrano la struttura del risultato, non dati reali.
{
"data": {
"tool": "smishing",
"result": {
"verdict": "scam",
"score": 9,
"attention": true,
"signals": [
"suspicious_domain",
"risky_tld",
"urgency",
"brand_impersonation",
"delivery_lure"
],
"hosts": [
"correos-entrega.info"
],
"linkFlags": [],
"brand": "correos",
"brandSlug": "correos"
}
},
"meta": {
"requestId": "req_example",
"unitsCharged": 1,
"usage": {
"periodStart": "2026-10-01",
"unitLimit": 20,
"unitsUsed": 3,
"unitsRemaining": 17
}
}
}Campi del risultato (data.result)
| Campo | Tipo | Descrizione |
|---|---|---|
| verdict | "scam" | "suspicious" | "likely_safe" | Verdetto delle regole locali. |
| score | integer | Punteggio intero delle regole: 4 o più indica truffa, 2–3 sospetto e 0–1 probabilmente sicuro. |
| attention | boolean | Se il contenuto merita un controllo più attento. |
| signals | array<string (enum, 10)> | Segnali delle regole rilevati. |
| hosts | array<string> | Nomi host trovati nel testo. |
| linkFlags | array<"http" | "userinfo" | "internationalHost" | "ipAddress" | "nonStandardPort"> | Avvisi strutturali sul link: http, userinfo, host internazionale, indirizzo IP o porta non standard. |
| brand | string | null | Marchio citato nel messaggio, oppure null. |
| brandSlug | string (enum, 10) | null | L’id sms-brand del marchio citato, oppure null. |
