Gender API
Inscris-toi gratuitement
Langue expand_more

Séparer un nom complet en prénom et nom de famille

Un champ de nom combiné, un appel API, deux champs propres — les particules, les titres et l'ordre inversé qui cassent une séparation écrite à la main sont déjà pris en charge, et le genre est dans la même réponse.

Dernière révision 2026-09-01 Rédigé et tenu à jour par l'équipe de Gender-API.com

La réponse courte

  • Envoie le champ combiné, récupère first_name et last_name — avec le genre, la précision et le nombre d'échantillons, dans la même réponse, pour un credit.
  • Les particules nobiliaires (« van der », « von den », « de la ») ainsi que les titres académiques et professionnels sont traités au lieu de faire trébucher — et un « Rossi, Andrea » inversé se résout aussi, à partir des données de noms et non de la virgule.
  • Là où les deux moitiés pourraient être l'une ou l'autre, la décision vient de la fréquence de chaque partie comme prénom face à sa fréquence comme nom de famille — pas de sa position dans la chaîne.
  • Le mode strict renvoie un nom de famille vide au lieu d'une supposition quand le nom n'est pas dans la base : tu vois donc le trou.

Pourquoi couper à l'espace ne marche pas

Presque toutes les bases de code en ont une version : prendre le champ nom, couper aux espaces, le premier élément est le prénom, le dernier le nom de famille. Ça passe la relecture parce que les données de test sont en anglais, et ça déraille en silence au premier client qui ne l'est pas.

Trois règles appliquées au nom complet « Anna van der Berg ». Couper au premier espace donne le prénom Anna et le nom « van » : faux. Couper au dernier espace donne le prénom « Anna van der » et le nom Berg : faux aussi. Reconnaître « van der » comme une particule appartenant au nom de famille et vérifier chaque candidat dans les bases de prénoms et de noms donne le prénom Anna et le nom « van der Berg ». Les deux premières règles sont ce que fait généralement une séparation écrite à la main, et elles échouent en silence.
Le même nom, trois règles, deux réponses fausses — et aucune ne lève d'erreur.

C'est la façon d'échouer qui coûte cher. Rien ne lève d'exception. Tu obtiens une base pleine de gens dont le nom de famille est « van », un mailing qui les salue ainsi, et aucune ligne de log qui pointe la cause.

Ce qui décide la séparation

Quatre choses, dans cet ordre — et la dernière est celle qu'une séparation à base de règles ne peut pas avoir, car elle exige de savoir comment les noms se répartissent réellement.

Quatre formes sous lesquelles arrive un champ de nom combiné, et ce qui décide chaque séparation. « Rossi, Andrea » : la virgule est retirée et l'ordre est lu dans les données de noms plutôt que déduit de la position. « Prof. Dr. Anna Maria de la Cruz » : les titres sont retirés à partir d'une liste connue, la particule reste avec le nom de famille et les deux prénoms sont conservés. « Andrea Rossi », où les deux parties sont des noms plausibles : on met en balance la fréquence de chaque partie comme prénom et comme nom de famille, donc la position ne décide pas. « Markus Stefan Nonexistent » avec le mode strict activé : le nom de famille n'est pas dans la base, il revient donc vide plutôt que deviné.
Quatre formes réelles du même champ, et ce qui résout chacune.
  • Les titres partent d'abord. « Prof. Dr. », « Dipl.-Ing. », « Managing Director » et le reste d'une liste maintenue sont retirés avant toute autre décision, pour ne jamais finir dans un champ de nom.
  • Les particules restent avec le nom de famille. « van », « van der », « van den », « von », « von der », « de », « de la », « du », « le », « di », « des » et leurs voisines sont reconnues comme faisant partie du nom auquel elles appartiennent.
  • On ne fait pas confiance à la ponctuation pour porter l'ordre. La virgule de « Rossi, Andrea » est retirée avec les titres, et l'ordre est ensuite lu dans les données de noms — une virgule est une habitude de mise en forme, et beaucoup de listes l'emploient de façon incohérente. Dans l'import CSV et Excel, tu peux indiquer l'ordre de la colonne à la place, et un ordre indiqué est utilisé tel quel.
  • L'ambiguïté est tranchée par les données. Chaque partie candidate est recherchée dans la base des prénoms et dans celle des noms de famille, et la partie qui se comporte bien plus comme un nom de famille que comme un prénom est le nom de famille.

Passe un code pays et la même comparaison se fait avec ce pays plutôt qu'avec tous les pays à la fois — c'est ce que tu veux quand tu sais déjà d'où vient la liste.

Comment l'appeler

Deux endpoints font cela, et celui qu'il te faut dépend de ton besoin du mode strict.

v2 — l'API actuelle

POST https://gender-api.com/v2/gender/by-full-name
{ "full_name": "Anna van der Berg", "country": "NL" }
{
    "result_found": true,
    "first_name": "Anna",
    "last_name": "van der Berg",
    "gender": "female",
    "probability": 0.98,
    "details": { "credits_used": 1, "samples": 8961, "duration": "33ms" }
}

v1 — quand tu as besoin du mode strict

Le mode strict n'existe que sur l'endpoint de séparation v1. Si un nom de famille vide compte plus pour toi que d'être sur l'API la plus récente, prends celui-là.

GET https://gender-api.com/get?split=Anna%20van%20der%20Berg&strict=true&key=…

D'abord : cette colonne contient-elle vraiment des noms complets ?

Bon à savoir avant de traiter un fichier que tu n'as pas créé. Envoie un échantillon de 100 valeurs au maximum et tu récupères s'ils ressemblent à des noms complets — et cela ne coûte aucun credit.

POST https://gender-api.com/v2/name-format-detect
{ "names": ["Sophie Jones", "Lorenzo Carlos", "Anna van der Berg"] }
{
    "is_fullname": true,
    "fullname_probability": 1,
    "validHints": [ … ]
}

Sois clair sur ce que cela mesure : fullname_probability est la part des valeurs envoyées qui comptent plus d'un mot, et is_fullname est cette part au-dessus de 0,6. C'est un jugement sur la colonne, pas sur chaque nom — exactement ce dont tu as besoin pour décider s'il faut séparer, et pas un substitut à la séparation elle-même.

Une colonne mixte est aussi une vraie réponse : certaines listes contiennent « Thomas » et « John Smith » côte à côte, et la séparation gère les deux sans que tu les tries d'abord.

Là où il a encore besoin de ton aide

Une séparation qui prétendrait gérer tous les noms du monde mentirait. Voici les cas où aucune règle ne résout la chaîne à elle seule.

Si tu contrôles le formulaire, la solution la moins chère n'est pas une API du tout : deux champs au lieu d'un, ou une indication que le format est « prénom, nom ». Tout ce qui suit vaut quand tu ne le contrôles pas.

  • Nom de famille en premier. Qu'il y ait une virgule ou non, la lecture que soutiennent les données de noms l'emporte sur une règle de position — ce qui est juste bien plus souvent que faux, mais sans garantie. Si tu sais que toute la colonne a le nom de famille en premier, indique-le à l'import plutôt que de te fier à la ponctuation.
  • Noms d'un seul mot. Un mononyme n'a pas de nom de famille à trouver. Le nom revient vide plutôt que de couper le prénom en deux.
  • Translittération incohérente. Le même nom écrit de trois façons dans une liste se résout en trois noms, parce que c'est ce qu'il est dans les données.
  • Prénoms composés sans trait d'union. « Anna Maria » reste groupé là où les données le soutiennent, mais une liste qui mélange « Anna Maria Rossi » et « Anna Rossi » ne sera pas uniforme.

Dans les quatre cas, un code pays restreint le problème, et le mode strict rend les lignes incertaines visibles au lieu de silencieusement plausibles. Un champ vide que tu peux filtrer vaut mieux qu'un champ faux que tu ne repères pas.

Toute une colonne d'un coup

Si les noms sont dans un tableur plutôt que dans une application, tu n'as pas besoin de l'API. Importe le fichier, désigne la colonne qui contient les noms combinés, et les parties séparées reviennent en nouvelles colonnes à côté de tes données — jusqu'à 10,000,000 lignes par CSV ou 100,000 par classeur Excel, et ton classeur revient intact.

Questions fréquentes

Pourquoi ne pas simplement couper à l'espace ?

Parce que l'espace n'est pas la frontière. « Anna van der Berg » donne un nom de famille « van » au premier espace et un prénom « Anna van der » au dernier. Les deux sont faux, les deux passent très bien dans un test avec des noms anglais, et les deux échouent en silence dès qu'arrive un nom néerlandais, allemand, français, espagnol ou portugais.

Qu'est-ce qui décide où se fait la coupure ?

Les titres connus sont retirés d'abord, et les particules nobiliaires comme « van der », « von den » et « de la » restent avec le nom de famille. Ensuite, on met en balance la fréquence de chaque partie comme prénom et sa fréquence comme nom de famille — ce n'est donc pas la position du mot qui décide, ni la ponctuation : une virgule est retirée avec les titres et non lue comme un marqueur « nom de famille en premier ». Dans l'import CSV et Excel, tu peux indiquer l'ordre de la colonne explicitement, et il est alors utilisé tel quel.

Que se passe-t-il quand le nom de famille n'est pas dans la base ?

C'est à cela que sert le mode strict, sur l'endpoint v1. Avec le mode strict activé, le nom de famille revient vide plutôt que deviné : le trou est donc visible dans tes données. Sans lui, un nom de famille est tout de même extrait au mieux.

Est-ce que j'obtiens aussi le genre ?

Oui, dans la même réponse et pour le même credit — avec le nombre d'échantillons et la précision derrière. Séparer le nom et déterminer son genre, c'est un appel, pas deux.

Comment savoir si ma colonne contient bien des noms complets ?

Envoie un échantillon de 100 valeurs au maximum à l'endpoint name-format-detect. Il ne coûte aucun credit et te dit si la colonne ressemble à des noms complets, des prénoms ou un mélange — utile avant de décider comment traiter le fichier.

Combien coûte la séparation ?

Un credit par nom, comme une simple détermination de genre, à partir de €0.35 pour 1 000. Les credits s'achètent à l'avance et n'expirent pas.

Gère-t-il les noms non occidentaux ?

En partie, et il vaut mieux connaître les limites. Les noms écrits nom de famille en premier sans séparateur, les noms d'un seul mot et les noms translittérés de façon incohérente sont les cas difficiles — aucune règle ne les résout à partir de la chaîne seule. Envoyer un code pays aide, car la requête met alors les parties en balance avec ce pays plutôt qu'avec l'ensemble.

ESSAIE-LE SUR LES NOMS QUI CASSENT TA SÉPARATION

100 requêtes gratuites par mois, sans carte bancaire. Prends les vingt lignes que ton code actuel rate et commence par celles-là.

Chat