SMS et messages
Qu’est-ce que le smishing ?
Couverture: Résultat indicatif fondé sur des signaux automatiques, et non sur une vérification de l’expéditeur. Aucun résultat ne garantit qu’un message est sûr.
Ouvrir l’outilSur cette page
Objectif
Le smishing est une fraude par SMS qui usurpe une organisation pour obtenir de l’argent, des données ou des codes. Vérifiez l’expéditeur, le texte et le domaine avant d’agir ; confirmez la demande par un canal officiel que vous connaissez déjà.
Collez le texte reçu et nous vous indiquerons immédiatement s’il présente les signes typiques du smishing : liens raccourcis, domaines imitant des banques ou des transporteurs et messages pressants.
Prérequis
Tout le monde peut lire ces guides, sans compte. Certains outils nécessitent Pro, comme indiqué dans chaque guide.
Incluez le message complet. Vous n’avez pas besoin d’ouvrir les liens ni de partager de codes personnels.
Mode d’emploi
Incluez le message complet. Vous n’avez pas besoin d’ouvrir les liens ni de partager de codes personnels.
Vérifier le message
Ne communiquez jamais de mots de passe, de codes PIN ou de codes de vérification en réponse à un SMS.
Vérifiez le véritable domaine du lien : « banque-securite.example » n’est pas le site de votre banque.
L’urgence (« dernier avertissement », « compte bloqué ») est l’outil préféré des escrocs.
En cas de doute, ouvrez vous-même le site ou l’application officielle au lieu d’appuyer sur le lien.
Exemple fictif
Exemple inventé, pas une recherche réelle. N’appelez pas et n’ouvrez pas ses liens.
DHL : Dernier avertissement. Votre colis est bloqué. Action requise sur https://parcel.exampleInterpréter le résultat
N’ouvrez pas le lien, ne répondez pas et ne communiquez aucune donnée. Supprimez le message et, en cas de doute, contactez l’entreprise via son site ou son numéro officiel.
Il présente certains signes d’arnaque. N’ouvrez pas le lien ; vérifiez les informations directement sur le site ou l’application officiels.
Seuls les domaines sont affichés, sans liens actifs. Un domaine connu ne prouve pas que le message est authentique.
Limites
La vérification s’effectue dans votre navigateur : le texte du message n’est jamais envoyé à un serveur.
Résultat indicatif fondé sur des signaux automatiques, et non sur une vérification de l’expéditeur. Aucun résultat ne garantit qu’un message est sûr.
Résoudre un problème
Collez le texte du SMS pour le vérifier.
Utiliser avec l’API
Nécessite une API key et des crédits. Chaque appel abouti coûte 1 crédit, même sans données. Un compte Pro actif inclut 20 crédits par mois calendaire UTC, partagés entre toutes les routes de l’API et consommés en premier ; les crédits mensuels non utilisés ne sont pas reportés. Les crédits achetés sur la page de votre compte fonctionnent sans Pro et n’expirent jamais.
Les erreurs ne sont jamais facturées : 401 invalid_api_key (clé absente ou invalide), 403 pro_required (ni crédits Pro ni crédits achetés), 422 entrée invalide, 429 quota_exceeded (plus de crédits), rate_limit_exceeded ou ai_busy (l’IA de sms-check est à pleine capacité), 503 tool_warming (les données sont encore en préparation) ou tool ou fournisseur indisponible. Après un 429 ou un 503, réessayez une fois écoulées les secondes indiquées dans l’en-tête Retry-After.
Vérification d’un SMS par le moteur de règles local : arnaque, suspect ou probablement sûr, avec le score entier qui le justifie (4 ou plus arnaque, 2–3 suspect, 0–1 probablement sûr), signaux, hôtes, alertes sur les liens et marque citée avec son identifiant sms-brand.
Envoyez le corps JSON à la route propre au tool, ou à POST /v2/tools en ajoutant le champ tool. Les deux routes renvoient le même résultat.
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"}Paramètres
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| message | string (1–2000) | Oui | Texte du SMS à vérifier. |
| country | string (enum, 55) | Non (par défaut: "ES") | Pays dont le jeu de règles SMS est utilisé. |
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);Exemple de réponse (200)
Il s’agit de l’exemple documenté dans la référence de l’API. Les recherches utilisent un numéro fictif ; les agrégats et les réponses de l’IA montrent la structure du résultat, pas des données réelles.
{
"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
}
}
}Champs du résultat (data.result)
| Champ | Type | Description |
|---|---|---|
| verdict | "scam" | "suspicious" | "likely_safe" | Verdict des règles locales. |
| score | integer | Score entier des règles : 4 ou plus correspond à une arnaque, 2–3 à suspect et 0–1 à probablement sûr. |
| attention | boolean | Indique si le contenu mérite un examen plus attentif. |
| signals | array<string (enum, 10)> | Signaux des règles déclenchés. |
| hosts | array<string> | Noms d’hôte trouvés dans le texte. |
| linkFlags | array<"http" | "userinfo" | "internationalHost" | "ipAddress" | "nonStandardPort"> | Alertes structurelles sur le lien : http, userinfo, hôte internationalisé, adresse IP ou port non standard. |
| brand | string | null | Marque citée dans le message, ou null. |
| brandSlug | string (enum, 10) | null | L’identifiant sms-brand de la marque citée, ou null. |
