Einen vollständigen Namen in Vor- und Nachname trennen
Ein kombiniertes Namensfeld, ein API-Aufruf, zwei saubere Felder — die Namenszusätze, Titel und umgekehrten Reihenfolgen, an denen eine selbstgeschriebene Trennung scheitert, sind schon erledigt, und das Geschlecht steht in derselben Antwort.
Die kurze Antwort
- Sende das kombinierte Feld, bekomme first_name und last_name zurück — dazu das Geschlecht, die Genauigkeit und die Anzahl der Samples, in derselben Antwort, für einen Credit.
- Namenszusätze („van der“, „von den“, „de la“) sowie akademische und berufliche Titel werden verarbeitet statt zur Stolperfalle — und ein umgekehrtes „Rossi, Andrea“ löst sich ebenfalls auf, aus den Namensdaten und nicht aus dem Komma.
- Wo beide Hälften beides sein könnten, entscheidet, wie oft jeder Teil als Vorname und wie oft er als Nachname vorkommt — nicht seine Position in der Zeichenkette.
- Der Strict-Modus gibt einen leeren Nachnamen zurück statt einer Vermutung, wenn der Nachname nicht in der Datenbank ist — so siehst du die Lücke.
Warum die Trennung am Leerzeichen nicht funktioniert
Fast jede Codebasis hat eine Variante davon: nimm das Namensfeld, trenne an Leerzeichen, das erste Element ist der Vorname, das letzte der Nachname. Es kommt durch das Review, weil die Testdaten englisch sind, und es geht beim ersten Kunden still schief, der es nicht ist.
Teuer wird es durch die Art des Fehlers. Nichts löst eine Exception aus. Du bekommst eine Datenbank voller Menschen mit dem Nachnamen „van“, einen Serienbrief, der sie so anspricht, und keine Logzeile, die auf die Ursache zeigt.
Was die Trennung entscheidet
Vier Dinge, in dieser Reihenfolge — und das letzte kann eine regelbasierte Trennung nicht haben, weil es Wissen darüber braucht, wie Namen tatsächlich verteilt sind.
- Titel kommen zuerst weg. „Prof. Dr.“, „Dipl.-Ing.“, „Managing Director“ und der Rest einer gepflegten Liste werden entfernt, bevor irgendetwas anderes entschieden wird — so landen sie nie in einem Namensfeld.
- Namenszusätze bleiben beim Nachnamen. „van“, „van der“, „van den“, „von“, „von der“, „de“, „de la“, „du“, „le“, „di“, „des“ und ihre Nachbarn werden als Teil des Nachnamens erkannt, zu dem sie gehören.
- Der Interpunktion wird die Reihenfolge nicht geglaubt. Das Komma in „Rossi, Andrea“ wird zusammen mit den Titeln entfernt, und die Reihenfolge wird dann aus den Namensdaten gelesen — ein Komma ist eine Formatierungsgewohnheit, und viele Listen setzen es uneinheitlich. Im CSV- und Excel-Upload kannst du die Reihenfolge der Spalte stattdessen angeben, und eine angegebene Reihenfolge wird so verwendet, wie sie angegeben ist.
- Mehrdeutigkeit entscheiden die Daten. Jeder Kandidat wird in der Vor- und in der Nachnamensdatenbank nachgesehen, und der Teil, der sich deutlich stärker wie ein Nachname als wie ein Vorname verhält, ist der Nachname.
Gib einen Ländercode mit, und derselbe Vergleich läuft gegen dieses Land statt gegen alle Länder gleichzeitig — genau das willst du, wenn du schon weißt, woher die Liste kommt.
Wie du es aufrufst
Zwei Endpoints können das, und welchen du willst, hängt davon ab, ob du den Strict-Modus brauchst.
v2 — die aktuelle 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 — wenn du den Strict-Modus brauchst
Den Strict-Modus gibt es nur am v1-Split-Endpoint. Wenn dir ein leerer Nachname wichtiger ist als die neuere API, nimm diesen.
GET https://gender-api.com/get?split=Anna%20van%20der%20Berg&strict=true&key=…
- v2-Referenz für vollständige Namen — Felder, Fehler, OpenAPI-Beschreibung.
- v1-Split-Referenz — der strict-Parameter und seine genauen Antworten.
- Offizielle Clients für PHP, Python, Node, Java, Go, Ruby, Rust, Perl und .NET.
Zuerst: sind das in der Spalte überhaupt vollständige Namen?
Gut zu wissen, bevor du eine Datei verarbeitest, die du nicht selbst erstellt hast. Sende eine Stichprobe von bis zu 100 Werten und du bekommst zurück, ob sie nach vollständigen Namen aussehen — und es kostet keine 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": [ … ]
}
Sei dir klar, was das misst: fullname_probability ist der Anteil der gesendeten Werte, die aus mehr als einem Wort bestehen, und is_fullname ist dieser Anteil über 0,6. Es ist eine Einschätzung über die Spalte, nicht über jeden einzelnen Namen — genau das, was du brauchst, wenn du entscheidest, ob überhaupt getrennt werden soll, und kein Ersatz für die Trennung selbst.
Eine gemischte Spalte ist auch eine richtige Antwort: manche Listen enthalten „Thomas“ und „John Smith“ nebeneinander, und die Trennung schafft beides, ohne dass du vorher sortierst.
Wo es noch deine Hilfe braucht
Eine Trennung, die behauptet, jeden Namen der Welt zu schaffen, würde lügen. Das sind die Fälle, in denen keine Regel die Zeichenkette allein auflöst.
Wenn du das Formular kontrollierst, ist die günstigste Lösung gar keine API: zwei Felder statt einem, oder ein Hinweis, dass das Format „Vorname, Nachname“ ist. Alles Folgende gilt, wenn du es nicht kontrollierst.
- Nachname zuerst. Ob ein Komma da ist oder nicht: die Lesart, die die Namensdaten stützen, gewinnt gegen eine Regel über die Position — und liegt weit häufiger richtig als falsch, ist aber keine Garantie. Wenn du weißt, dass die ganze Spalte den Nachnamen zuerst hat, gib das im Upload an statt sich auf die Interpunktion zu verlassen.
- Einteilige Namen. Bei einem Mononym gibt es keinen Nachnamen zu finden. Der Nachname kommt leer zurück, statt den Vornamen zu zerschneiden.
- Uneinheitliche Transliteration. Derselbe Name in drei Schreibweisen über eine Liste hinweg löst sich als drei Namen auf, weil er in den Daten genau das ist.
- Doppelvornamen ohne Bindestrich. „Anna Maria“ bleibt zusammen, wo die Daten das stützen, aber eine Liste, die „Anna Maria Rossi“ und „Anna Rossi“ mischt, wird nicht einheitlich.
In allen vier Fällen verengt ein Ländercode das Problem, und der Strict-Modus macht die unsicheren Zeilen sichtbar statt still plausibel. Ein leeres Feld, das du filtern kannst, ist besser als ein falsches, das du nicht erkennst.
Eine ganze Spalte auf einmal
Wenn die Namen in einer Tabelle stehen und nicht in einer Anwendung, brauchst du die API nicht. Lade die Datei hoch, zeige auf die Spalte mit den kombinierten Namen, und die getrennten Teile kommen als neue Spalten neben deinen Daten zurück — bis zu 10,000,000 Zeilen pro CSV oder 100,000 pro Excel-Arbeitsmappe, und deine Arbeitsmappe kommt unversehrt zurück.
- Eine CSV- oder Excel-Datei hochladen — kein Code, die ursprüngliche Formatierung bleibt erhalten.
- Massen-Geschlechtsbestimmung — die Limits, der Preis bei Menge und die Antworten für den Einkauf.
- Du arbeitest in einer Tabelle oder einem CRM? Es gibt fertige Integrationen für Excel, Google Sheets, Shopify, HubSpot, Salesforce, Zapier und mehr.
Häufige Fragen
Warum nicht einfach am Leerzeichen trennen?
Weil das Leerzeichen nicht die Grenze ist. „Anna van der Berg“ ergibt am ersten Leerzeichen den Nachnamen „van“ und am letzten den Vornamen „Anna van der“. Beides ist falsch, beides sieht in einem Test mit englischen Namen gut aus, und beides scheitert stillschweigend, sobald ein niederländischer, deutscher, französischer, spanischer oder portugiesischer Nachname auftaucht.
Was entscheidet, wo getrennt wird?
Bekannte Titel werden zuerst entfernt, und Namenszusätze wie „van der“, „von den“ und „de la“ bleiben beim Nachnamen. Danach wird abgewogen, wie oft jeder Teil als Vorname und wie oft er als Nachname vorkommt — die Wortposition entscheidet es also nicht, und die Interpunktion auch nicht: ein Komma wird zusammen mit den Titeln entfernt und nicht als Marker für „Nachname zuerst“ gelesen. Im CSV- und Excel-Upload kannst du die Reihenfolge der Spalte direkt angeben, dann wird sie so verwendet.
Was passiert, wenn der Nachname nicht in der Datenbank ist?
Dafür ist der Strict-Modus da, am v1-Endpoint. Mit aktivem Strict-Modus kommt der Nachname leer zurück statt geraten, die Lücke ist also in deinen Daten sichtbar. Ohne ihn wird trotzdem ein Nachname nach bestem Bemühen extrahiert.
Bekomme ich auch das Geschlecht?
Ja, in derselben Antwort und für denselben einen Credit — zusammen mit der Anzahl der Samples und der Genauigkeit dahinter. Den Namen zu trennen und das Geschlecht zu bestimmen ist ein Aufruf, nicht zwei.
Woher weiß ich überhaupt, ob meine Spalte vollständige Namen enthält?
Sende eine Stichprobe von bis zu 100 Werten an den name-format-detect-Endpoint. Er kostet keine Credits und sagt dir, ob die Spalte nach vollständigen Namen, Vornamen oder einer Mischung aussieht — nützlich, bevor du entscheidest, wie du die Datei verarbeitest.
Was kostet das Trennen?
Ein Credit pro Name, genauso viel wie eine reine Geschlechtsbestimmung, ab €0.35 pro 1.000. Credits werden im Voraus gekauft und verfallen nicht.
Kommt es mit nicht-westlichen Namen zurecht?
Teilweise, und es ist besser, die Grenzen zu kennen. Namen mit Nachnamen zuerst ohne Trennzeichen, einteilige Namen und uneinheitlich transliterierte Namen sind die harten Fälle — keine Regel löst sie allein aus der Zeichenkette. Einen Ländercode mitzusenden hilft, weil die Abfrage die Teile dann gegen dieses Land abwägt und nicht gegen alles.
PROBIERE ES MIT DEN NAMEN, AN DENEN DEINE TRENNUNG SCHEITERT
100 kostenlose Abfragen pro Monat, ohne Kreditkarte. Nimm die zwanzig Zeilen, die dein aktueller Code falsch macht, und fang damit an.
API-Dokumentation · Lade stattdessen eine Datei hoch · Eine Frage stellen