Link, siti ed email
Strumenti di sicurezza
Copertura: Esamina solo testo e link visibili. Mittente, allegati e contenuti del sito non vengono verificati.
Apri lo strumentoIn questa pagina
A cosa serve
Controlla numeri, messaggi e link
Requisiti
Chiunque può leggere queste guide, senza account. Alcuni strumenti richiedono Pro, come indicato in ogni guida.
Testo da controllare
Come usarlo
Controlla un’e-mail sospetta · Controlla se un SMS è una truffa · Controlla link o sito · Formati dei numeri · Prefissi internazionali
In Email incolla il testo; in Link, l’indirizzo. Premi Verifica e controlla segnali e dominio reale. Non apre link né autentica il mittente.
Inserisci il numero completo con prefisso internazionale. Per un numero nazionale, verifica prima il paese dell’edizione o del selettore.
Esempio inventato
Esempio inventato, non una ricerca reale. Non chiamare e non aprire i suoi link.
https://delivery.example/noticeInterpretare il risultato
Segnali da esaminare
Nessun segnale di rischio evidente
Limiti
Controllo su questo dispositivo. Il testo non viene inviato né salvato.
Esamina solo testo e link visibili. Mittente, allegati e contenuti del sito non vengono verificati.
Solo formati e prefissi supportati. Non confermano posizione, intestatario o attività del numero. Alcuni prefissi sono condivisi.
Risoluzione dei problemi
Massimo 2000 caratteri. Nessun controllo eseguito: accorcia il testo.
Inserisci un link HTTP o HTTPS completo, oppure un dominio.
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.
Lo stesso motore di regole applicato a un’email o a un messaggio incollato: attenzione, segnali, host e flag dei link. Mai un verdetto di sicurezza.
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/safety-tools
POST https://api.nocall.io/v2/tools {"tool":"safety-tools","text":"URGENTE: su cuenta BBVA ha sido bloqueada, verifique en https://bbva-seguro.com/login","mode":"email","country":"ES"}Parametri
| Nome | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| text | string (1–2000) | Sì | Testo dell’email o del messaggio da ispezionare. |
| mode | "email" | "message" | Sì | Se il testo è un’email o un messaggio. |
| 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/safety-tools' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"text":"URGENTE: su cuenta BBVA ha sido bloqueada, verifique en https://bbva-seguro.com/login","mode":"email","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/safety-tools',
method='POST',
data=json.dumps({'text': 'URGENTE: su cuenta BBVA ha sido bloqueada, verifique en https://bbva-seguro.com/login', 'mode': 'email', '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/safety-tools', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ text: 'URGENTE: su cuenta BBVA ha sido bloqueada, verifique en https://bbva-seguro.com/login', mode: 'email', 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": "safety-tools",
"result": {
"attention": true,
"signals": [
"suspicious_domain",
"urgency",
"brand_impersonation"
],
"hosts": [
"bbva-seguro.com"
],
"linkFlags": []
}
},
"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 |
|---|---|---|
| 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. |
