Appels et numéros
Valider et formater un numéro de téléphone
Couverture: Fonctionne pour tous les pays, avec les données de plans de numérotation de la bibliothèque open source libphonenumber. Les numéros saisis sans + sont lus comme des numéros du pays de cette édition. NoCall ajoute la nouvelle tranche 400 de l’Espagne et ses numéros de renseignements 118xx, que la bibliothèque ne décrit pas encore.
Ouvrir l’outilSur cette page
Objectif
Vérifiez si un numéro de téléphone est valide, s’il s’agit d’un mobile, d’un fixe, d’un numéro gratuit ou surtaxé, et affichez-le aux formats E.164, national et international.
Prérequis
Tout le monde peut lire ces guides, sans compte. Certains outils nécessitent Pro, comme indiqué dans chaque guide.
Collez n’importe quel numéro de téléphone pour vérifier s’il est valide, de quel type de numéro il s’agit et comment l’écrire aux formats E.164, national et international.
Mode d’emploi
Ouvrir l’outil
Collez n’importe quel numéro de téléphone pour vérifier s’il est valide, de quel type de numéro il s’agit et comment l’écrire aux formats E.164, national et international.
Vérifier
Lisez les champs disponibles avec leurs limites. Un résultat vide ne prouve pas la sécurité et n’identifie personne.
Exemple fictif
Exemple inventé, pas une recherche réelle. N’appelez pas et n’ouvrez pas ses liens.
+44 1632 960123Interpréter le résultat
Lisez les champs disponibles avec leurs limites. Un résultat vide ne prouve pas la sécurité et n’identifie personne.
C’est la norme internationale pour écrire un numéro : un signe plus, l’indicatif du pays et le numéro national, sans espaces ni zéro initial. Les applications et les systèmes téléphoniques l’utilisent pour enregistrer les numéros.
Non. Valide signifie qu’il appartient à une tranche attribuée dans le plan de numérotation. Seul l’opérateur sait si ce numéro précis est actif aujourd’hui.
Le type dépend de la tranche, pas de la ligne, et il ne change pas quand le numéro passe chez un autre opérateur. Les numéros de téléphonie par internet peuvent ressembler à des fixes.
Limites
Fonctionne pour tous les pays, avec les données de plans de numérotation de la bibliothèque open source libphonenumber. Les numéros saisis sans + sont lus comme des numéros du pays de cette édition. NoCall ajoute la nouvelle tranche 400 de l’Espagne et ses numéros de renseignements 118xx, que la bibliothèque ne décrit pas encore.
Informations indicatives issues des plans de numérotation publiés. Elles décrivent le type de numéro, jamais la personne ou l’entreprise qui se trouve derrière.
Résoudre un problème
Si la saisie est invalide, vérifiez le format et le pays. Réessayez après une erreur de connexion ; respectez le délai si une limite est atteinte.
Saisissez un numéro de téléphone ou un indicatif valide.
Impossible de vérifier pour le moment. Réessayez dans un instant.
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.
Validité, possibilité, type, pays, indicatif et E.164 selon le plan de numérotation. Toute entrée ressemblant à un numéro est un résultat réussi : valid=false est renvoyé, jamais une erreur.
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/number-validator
POST https://api.nocall.io/v2/tools {"tool":"number-validator","phone":"+12025550123","country":"US"}Paramètres
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| phone | string (1–40) | Oui | Numéro de téléphone au format E.164 (+34…) ou national. |
| country | string (enum, 56) | Non (par défaut: "ES") | Code pays à deux lettres, par exemple ES ou US, utilisé pour les saisies au format national et pour les données du pays. |
REQUEST_ID="$(uuidgen)" && [ -n "$REQUEST_ID" ] &&
curl --request POST 'https://api.nocall.io/v2/number-validator' \
--header "Authorization: Bearer $NOCALL_API_KEY" \
--header 'Content-Type: application/json' \
--header "Idempotency-Key: $REQUEST_ID" \
--data '{"phone":"+12025550123","country":"US"}'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/number-validator',
method='POST',
data=json.dumps({'phone': '+12025550123', 'country': 'US'}).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/number-validator', {
method: 'POST',
headers: {
Authorization: 'Bearer ' + apiKey,
'Content-Type': 'application/json',
'Idempotency-Key': requestId,
},
body: JSON.stringify({ phone: '+12025550123', country: 'US' }),
});
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": "number-validator",
"result": {
"valid": true,
"possible": true,
"country": "US",
"callingCode": "1",
"type": "fixed_line_or_mobile",
"e164": "+12025550123"
}
},
"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 |
|---|---|---|
| valid | boolean | Indique si le numéro est valide selon le plan de numérotation. false reste un résultat abouti. |
| possible | boolean | Indique si le numéro a une longueur possible pour le pays. |
| country | string | null | Pays du numéro (code ISO), ou null s’il ne peut pas être déterminé. |
| callingCode | string | null | Indicatif du pays du numéro, ou null s’il est inconnu. |
| type | string (enum, 14) | Type de numéro selon le plan de numérotation, par exemple mobile, fixed_line, toll_free ou premium_rate ; unknown s’il ne peut pas être classé. |
| e164 | string | null | Le numéro au format E.164, ou null s’il ne peut pas être formaté. |
Questions fréquentes
Qu’est-ce que le format E.164 ?
C’est la norme internationale pour écrire un numéro : un signe plus, l’indicatif du pays et le numéro national, sans espaces ni zéro initial. Les applications et les systèmes téléphoniques l’utilisent pour enregistrer les numéros.
Un numéro valide est-il forcément en service ?
Non. Valide signifie qu’il appartient à une tranche attribuée dans le plan de numérotation. Seul l’opérateur sait si ce numéro précis est actif aujourd’hui.
Un numéro peut-il passer de mobile à fixe ?
Le type dépend de la tranche, pas de la ligne, et il ne change pas quand le numéro passe chez un autre opérateur. Les numéros de téléphonie par internet peuvent ressembler à des fixes.
