Formatez un numéro de téléphone international par pays
Les numéros de téléphone se stockent aisément comme du texte libre, mais leur présentation cohérente est plus délicate.
Lancer gratuitement
Ce formateur reçoit un numéro et un code pays à deux lettres, retire la ponctuation courante, vérifie l’indicatif international lorsqu’il est fourni et contrôle le nombre exact de chiffres nationaux. Il renvoie ensuite une forme internationale lisible et une forme E.164 compacte. Une longueur incorrecte ou un indicatif incompatible produit une erreur explicite plutôt qu’un résultat vraisemblable mais peu fiable.
Indiquez le numéro et son pays
Saisissez le numéro de téléphone dans la forme dont vous disposez et sélectionnez son code pays à deux lettres. La saisie nationale peut contenir des séparateurs usuels tels que des espaces, des parenthèses, des points ou des tirets. Vous pouvez également envoyer un numéro international commençant par un signe plus, ou employer le préfixe international 00. Lorsqu’un préfixe international est présent, le formateur vérifie que son indicatif correspond au pays choisi. Ce contrôle est important, car une même suite de chiffres nationaux peut sembler structurellement valable dans plusieurs pays. Le pays constitue donc une instruction explicite et non une supposition tirée des chiffres. Pour les pays utilisant un zéro de préfixe en numérotation nationale, la saisie peut conserver ce zéro ; il est retiré lorsque la notation internationale l’exige. Le résultat comprend le code ISO normalisé, l’indicatif, le numéro national significatif, la valeur E.164 compacte et une valeur espacée destinée à l’affichage. La réponse convient ainsi aux interfaces, au stockage normalisé et aux comparaisons ultérieures.
Comprenez la portée de la validation
Cet outil effectue une validation structurelle pour les pays proposés dans le sélecteur. Il contrôle les caractères autorisés, la concordance entre un indicatif explicite et le pays choisi, ainsi que le nombre attendu de chiffres nationaux. En cas d’écart, il renvoie une erreur précisant le pays, le nombre attendu et le nombre reçu. Cette rigueur est volontaire : compléter, supprimer ou inventer silencieusement des chiffres pourrait créer un numéro qui n’appartient à personne. Une structure valable ne prouve pas qu’une ligne est attribuée, active, joignable ou mobile, ni qu’elle appartient à une personne donnée. L’outil ne contacte aucun opérateur et n’envoie aucun message de vérification. Le formateur travaille exclusivement sur le texte fourni à l’aide d’une table fixe de règles nationales. Sans consultation réseau, une même entrée produit toujours la même réponse et le numéro n’est communiqué à aucun annuaire. Considérez le résultat comme la représentation fiable d’une structure conforme, et non comme la preuve qu’un abonné existe ou qu’il a consenti à être contacté.
Employez correctement les deux formes normalisées
Le champ formaté est destiné à l’affichage : il commence par l’indicatif précédé du signe plus et répartit les chiffres nationaux en groupes usuels pour le pays concerné. Le champ E.164 supprime ces espaces et convient mieux aux bases de données, aux comparaisons, aux charges utiles d’API et aux liens exigeant une valeur internationale compacte. Enregistrez le code pays avec le numéro normalisé lorsque votre application doit conserver le contexte déclaré par l’utilisateur. Si un formulaire recueille des téléphones, validez-les avant l’enregistrement afin qu’une erreur de longueur puisse être corrigée tant que la source est disponible. Lors d’un import, conservez la cellule d’origine dans une colonne d’audit et placez le résultat normalisé dans un champ distinct ; le nettoyage n’effacera ainsi pas la trace de la saisie. Traitez toujours les téléphones comme du texte, jamais comme des nombres, afin de préserver les zéros initiaux. Enfin, le formatage ne vaut pas autorisation : appliquez vos règles habituelles de consentement, de confidentialité et de messagerie avant d’appeler ou d’écrire à tout numéro renvoyé.
Cas d’usage
Normaliser les numéros saisis par les clients
Refusez immédiatement un nombre de chiffres incorrect et conservez une représentation internationale uniforme.
Nettoyer un import de contacts
Transformez diverses ponctuations et notations nationales en champs d’affichage et E.164 stables.
Préparer des numéros pour une autre API
Produisez une valeur internationale compacte tout en gardant une version groupée lisible pour le contrôle.
Questions fréquentes
Quel est le prix d’une requête API ?
Chaque requête coûte $0.002. La version pour navigateur peut s’exécuter localement sur cette page.
Un résultat valide signifie-t-il que le numéro est actif ?
Non. Il confirme la structure et le nombre de chiffres du pays pris en charge, mais pas l’attribution, l’accessibilité, la propriété ou le consentement.
Puis-je inclure des espaces ou de la ponctuation ?
Oui. Les espaces, parenthèses, points et tirets sont ignorés. Le signe plus n’est admis qu’au début.
Puis-je fournir un numéro international ?
Oui. Employez un signe plus initial ou le préfixe 00. L’indicatif doit correspondre au pays sélectionné.
Pourquoi le zéro national initial a-t-il été retiré ?
Certains pays utilisent un zéro de préfixe uniquement pour les appels nationaux. La notation internationale l’omet, conformément à la valeur normalisée.
Pourquoi mon pays ne figure-t-il pas dans la liste ?
La capacité ne propose que les pays dotés d’une règle explicite et testée. Elle renvoie une erreur plutôt que de deviner pour les autres plans.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/data/phone-number-format \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"phone_number":"(202) 555-0147","country_code":"US"}'const res = await fetch("https://api.kit.forhosting.com/data/phone-number-format", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"phone_number": "(202) 555-0147",
"country_code": "US"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/phone-number-format",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"phone_number": "(202) 555-0147",
"country_code": "US"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/phone-number-format", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"phone_number":"(202) 555-0147","country_code":"US"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"phone_number":"(202) 555-0147","country_code":"US"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/phone-number-format", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"phone_number": "(202) 555-0147",
"country_code": "US"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.phone_number_format",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |