Gender API
Gratis aanmelden
Taal expand_more

Een volledige naam splitsen in voor- en achternaam

Eén gecombineerd naamveld, één API-call, twee schone velden — de tussenvoegsels, titels en omgekeerde volgorde waar een zelfgeschreven splitsing op stukloopt zijn al afgehandeld, en het geslacht zit in dezelfde respons.

Laatst nagekeken 2026-09-01 Geschreven en onderhouden door het team van Gender-API.com

Het korte antwoord

  • Stuur het gecombineerde veld en krijg first_name en last_name terug — plus het geslacht, de nauwkeurigheid en het aantal samples, in dezelfde respons, voor één credit.
  • Tussenvoegsels (“van der”, “von den”, “de la”) en academische en functietitels worden verwerkt in plaats van een struikelblok — en een omgekeerde “Rossi, Andrea” lost ook op, uit de naamdata en niet uit de komma.
  • Waar beide helften het een of het ander kunnen zijn, komt de beslissing uit hoe vaak elk deel als voornaam voorkomt tegen hoe vaak als achternaam — niet uit de positie in de tekenreeks.
  • Strict mode geeft een lege achternaam terug in plaats van een gok wanneer de achternaam niet in de database staat, zodat je het gat ziet.

Waarom splitsen op de spatie niet werkt

Bijna elke codebase heeft er een versie van: neem het naamveld, splits op witruimte, het eerste element is de voornaam, het laatste de achternaam. Het komt door de review omdat de testdata Engels is, en het gaat geruisloos mis bij de eerste klant die dat niet is.

Drie regels toegepast op de volledige naam “Anna van der Berg”. Splitsen op de eerste spatie geeft voornaam Anna en achternaam “van”: fout. Splitsen op de laatste spatie geeft voornaam “Anna van der” en achternaam Berg: ook fout. “van der” erkennen als tussenvoegsel dat bij de achternaam hoort en elke kandidaat nakijken in de voornamen- en achternamendatabase geeft voornaam Anna en achternaam “van der Berg”. De eerste twee regels zijn wat een zelfgeschreven splitsing meestal doet, en ze falen geruisloos.
Dezelfde naam, drie regels, twee foute antwoorden — en geen van beide geeft een foutmelding.

Duur wordt het door de manier waarop het faalt. Er wordt geen exception gegooid. Je houdt een database over vol mensen met achternaam “van”, een mailmerge die ze daarmee begroet, en geen enkele logregel die naar de oorzaak wijst.

Wat de splitsing bepaalt

Vier dingen, in deze volgorde — en het laatste kan een regelgebaseerde splitsing niet hebben, want het vraagt kennis van hoe namen werkelijk verdeeld zijn.

Vier vormen waarin een gecombineerd naamveld binnenkomt, en wat elke splitsing bepaalt. “Rossi, Andrea”: de komma wordt verwijderd en de volgorde wordt uit de naamdata gelezen in plaats van uit de positie afgeleid. “Prof. Dr. Anna Maria de la Cruz”: titels worden op basis van een bekende lijst verwijderd, het tussenvoegsel blijft bij de achternaam en beide voornamen blijven staan. “Andrea Rossi”, waar beide delen plausibele namen zijn: er wordt afgewogen hoe vaak elk deel als voornaam voorkomt tegen hoe vaak als achternaam, dus de positie beslist het niet. “Markus Stefan Nonexistent” met strict mode aan: de achternaam staat niet in de database, dus die komt leeg terug in plaats van gegokt.
Vier echte vormen van hetzelfde veld, en wat elke ervan oplost.
  • Titels gaan er eerst af. “Prof. Dr.”, “Dipl.-Ing.”, “Managing Director” en de rest van een onderhouden lijst worden verwijderd voordat er iets anders wordt beslist, zodat ze nooit in een naamveld belanden.
  • Tussenvoegsels blijven bij de achternaam. “van”, “van der”, “van den”, “von”, “von der”, “de”, “de la”, “du”, “le”, “di”, “des” en hun buren worden erkend als deel van de achternaam waar ze bij horen.
  • De interpunctie krijgt de volgorde niet toevertrouwd. De komma in “Rossi, Andrea” wordt samen met de titels verwijderd, en de volgorde wordt daarna uit de naamdata gelezen — een komma is een opmaakgewoonte, en heel veel lijsten gebruiken hem inconsistent. Bij de CSV- en Excel-upload kun je in plaats daarvan de volgorde van de kolom opgeven, en een opgegeven volgorde wordt gebruikt zoals opgegeven.
  • Twijfelgevallen beslecht de data. Elk kandidaat-deel wordt zowel in de voornamen- als in de achternamendatabase opgezocht, en het deel dat zich veel meer als achternaam dan als voornaam gedraagt is de achternaam.

Geef een landcode mee en dezelfde vergelijking gebeurt tegen dat land in plaats van tegen alle landen tegelijk — en dat wil je als je al weet waar de lijst vandaan komt.

Hoe je het aanroept

Twee endpoints doen dit, en welke je wilt hangt af van of je strict mode nodig hebt.

v2 — de huidige API

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 — als je strict mode nodig hebt

Strict mode bestaat alleen op het v1-splitsendpoint. Als een lege achternaam je meer waard is dan op de nieuwere API zitten, neem dan deze.

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

Eerst: staan er in die kolom eigenlijk wel volledige namen?

Goed om te weten voordat je een bestand verwerkt dat je zelf niet hebt gemaakt. Stuur een steekproef van maximaal 100 waarden en je krijgt terug of ze op volledige namen lijken — en het kost geen credits.

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": [ … ]
}

Wees duidelijk over wat dit meet: fullname_probability is het aandeel van de verstuurde waarden dat uit meer dan één woord bestaat, en is_fullname is dat aandeel boven 0,6. Het is een oordeel over de kolom, niet over elke naam afzonderlijk — precies wat je nodig hebt bij de beslissing of je überhaupt splitst, en geen vervanging van de splitsing zelf.

Een gemengde kolom is ook een echt antwoord: sommige lijsten hebben “Thomas” en “John Smith” naast elkaar, en de splitsing kan met beide om zonder dat je ze eerst sorteert.

Waar het nog je hulp nodig heeft

Een splitsing die zou beweren elke naam ter wereld aan te kunnen, zou liegen. Dit zijn de gevallen waarin geen enkele regel de tekenreeks op eigen kracht oplost.

Als jij het formulier beheert, is de goedkoopste oplossing helemaal geen API: twee velden in plaats van één, of een hint dat het formaat “voornaam, achternaam” is. Alles hieronder geldt als je het niet beheert.

  • Achternaam eerst. Met of zonder komma wint de lezing die de naamdata ondersteunt van een regel over positie — en die zit veel vaker goed dan fout, maar het is geen garantie. Als je weet dat de hele kolom de achternaam eerst heeft, geef dat dan op bij de upload in plaats van op de interpunctie te vertrouwen.
  • Namen van één woord. Bij een mononiem is er geen achternaam te vinden. De achternaam komt leeg terug in plaats van de voornaam in twee te knippen.
  • Inconsistente transliteratie. Dezelfde naam die in een lijst op drie manieren gespeld is, lost op als drie namen, want dat is wat het in de data is.
  • Dubbele voornamen zonder streepje. “Anna Maria” blijft bij elkaar waar de data dat ondersteunt, maar een lijst die “Anna Maria Rossi” en “Anna Rossi” door elkaar heeft, wordt niet uniform.

In alle vier gevallen versmalt een landcode het probleem, en maakt strict mode de onzekere rijen zichtbaar in plaats van stilletjes plausibel. Een leeg veld dat je kunt filteren is beter dan een fout veld dat je niet opmerkt.

Een hele kolom in één keer

Staan de namen in een spreadsheet en niet in een applicatie, dan heb je de API niet nodig. Upload het bestand, wijs de kolom met de gecombineerde namen aan, en de gesplitste delen komen terug als nieuwe kolommen naast je data — tot 10,000,000 rijen per CSV of 100,000 per Excel-werkmap, en je werkmap komt ongeschonden terug.

Veelgestelde vragen

Waarom niet simpelweg splitsen op de spatie?

Omdat de spatie niet de grens is. “Anna van der Berg” levert op de eerste spatie de achternaam “van” en op de laatste de voornaam “Anna van der”. Beide zijn fout, beide zien er in een test met Engelse namen prima uit, en beide falen geruisloos zodra er een Nederlandse, Duitse, Franse, Spaanse of Portugese achternaam langskomt.

Wat bepaalt waar de splitsing komt?

Eerst worden bekende titels verwijderd, en tussenvoegsels zoals “van der”, “von den” en “de la” blijven bij de achternaam. Daarna wordt afgewogen hoe vaak elk deel als voornaam voorkomt tegen hoe vaak het als achternaam voorkomt — de woordpositie beslist het dus niet, en de interpunctie ook niet: een komma wordt samen met de titels verwijderd en niet gelezen als markering voor “achternaam eerst”. Bij de CSV- en Excel-upload kun je de volgorde van de kolom rechtstreeks opgeven, en dan wordt die gebruikt zoals opgegeven.

Wat gebeurt er als de achternaam niet in de database staat?

Daar is strict mode voor, op het v1-endpoint. Met strict mode aan komt de achternaam leeg terug in plaats van gegokt, dus het gat is zichtbaar in je data. Zonder strict mode wordt er alsnog een achternaam uitgehaald, zo goed als het gaat.

Krijg ik ook het geslacht?

Ja, in dezelfde respons en voor diezelfde ene credit — samen met het aantal samples en de nauwkeurigheid erachter. De naam splitsen en het geslacht bepalen is één call, geen twee.

Hoe weet ik of mijn kolom eigenlijk volledige namen bevat?

Stuur een steekproef van maximaal 100 waarden naar het name-format-detect-endpoint. Het kost geen credits en zegt of de kolom op volledige namen, voornamen of een mengeling lijkt — handig voordat je beslist hoe je het bestand verwerkt.

Wat kost het splitsen?

Eén credit per naam, hetzelfde als een gewone geslachtsbepaling, vanaf €0.35 per 1.000. Credits koop je vooraf en ze verlopen niet.

Kan het ook met niet-westerse namen om?

Deels, en het is beter om de grenzen te kennen. Namen met de achternaam eerst zonder scheidingsteken, namen van één woord en inconsistent getranslitereerde namen zijn de moeilijke gevallen — geen enkele regel lost ze op uit de tekenreeks alleen. Een landcode meesturen helpt, want de opvraging weegt de delen dan af tegen dat land in plaats van tegen alles.

PROBEER HET OP DE NAMEN WAAR JE SPLITSING OP STUKLOOPT

100 gratis opvragingen per maand, zonder creditcard. Neem de twintig rijen die je huidige code fout doet en begin daarmee.

Chat