Introduction

We all take our names for granted and yet there is so much information in it. Your name reveals a lot of information about who you are. It tells if you're a man or a women, what language you speak and it can even reveal your nationality.

Validating a phone number, zip code or email address is simple. You don’t need a parsing service for that. But parsing a name and getting information out of it is much harder. That is where we come in: Name Parser offers an API that splits a complete name into useful information such as first name, surname, gender and nationality. It makes your live as a developer or data scientist much easier. Just give us a name, and we'll give you the useful components.

In the backend Name Parser maintains a database with 2.208.942 first names and 6.119.869 surnames. Because of this Name Parser can also offer its powerful name generator. the name generator can generate millions of complete names per country and gender in just a few seconds.

Supporting 139 countries

In order to properly parse and generate names, our service uses a huge database with 2.208.942 first names and 6.119.869 surnames from 139 different countries. A significant part of this name database is available for purchase in CSV, JSON and SQL format at Name Census as well.

There are many names such as Robin, Pascal or Mickey, which are mainly used for girls in one country and for boys in other countries. By specifying the country code in the query, we can determine the gender of a name with greater certainty.

Country First names Surnames Country First names Surnames
United Arab Emirates United Arab Emirates 14.007 21.695 Afghanistan Afghanistan 8.414 11.165
Albania Albania 4.058 4.834 Armenia Armenia 1.901 2.360
Angola Angola 4.996 5.171 Argentina Argentina 24.632 261.749
Austria Austria 17.405 34.389 Australia Australia 27.945 67.894
Azerbaijan Azerbaijan 3.003 3.414 Bosnia and Herzegovina Bosnia and Herzegovina 5.021 9.106
Bangladesh Bangladesh 11.283 11.317 Belgium Belgium 32.080 82.490
Burkina Faso Burkina Faso 5.300 6.947 Bulgaria Bulgaria 7.628 15.566
Bahrain Bahrain 2.066 2.438 Benin Benin 3.384 4.207
Bermuda Bermuda 4.634 10.730 Bolivia Bolivia 5.452 6.425
Brazil Brazil 114.619 68.216 Bahamas Bahamas 2.978 5.156
Belarus Belarus 3.352 18.456 Belize Belize 2.803 4.504
Canada Canada 37.541 107.541 Congo Congo 4.962 7.053
Republic of the Congo Republic of the Congo 2.961 3.894 Switzerland Switzerland 60.225 39.443
Ivory Coast Ivory Coast 4.883 6.678 Chile Chile 11.293 19.282
Cameroon Cameroon 8.608 15.708 China China 13.108 14.835
Colombia Colombia 21.113 30.264 Costa Rica Costa Rica 7.886 11.152
Cuba Cuba 3.873 4.848 Cape Verde Cape Verde 3.283 4.169
Cyprus Cyprus 3.641 102.601 Czech Republic Czech Republic 10.340 283.678
Germany Germany 43.936 163.827 Denmark Denmark 131.474 297.613
Dominican Republic Dominican Republic 10.003 10.217 Algeria Algeria 7.185 16.374
Ecuador Ecuador 10.414 11.858 Estonia Estonia 2.648 4.696
Egypt Egypt 10.120 19.035 Spain Spain 70.160 93.381
Ethiopia Ethiopia 3.917 4.156 Finland Finland 8.371 32.478
France France 52.657 894.976 United Kingdom United Kingdom 69.382 157.774
Georgia Georgia 6.404 10.792 Ghana Ghana 8.374 12.367
Guinea Guinea 2.562 2.652 Greece Greece 7.539 267.211
Guatemala Guatemala 8.671 10.954 Hong Kong Hong Kong 6.555 8.224
Honduras Honduras 6.860 7.345 Croatia Croatia 3.929 10.264
Haiti Haiti 3.417 4.176 Hungary Hungary 10.306 40.488
Indonesia Indonesia 29.015 38.462 Ireland Ireland 13.424 27.732
Israel Israel 5.208 11.251 India India 35.503 36.604
Iraq Iraq 7.018 9.632 Iran Iran 6.548 11.886
Iceland Iceland 2.337 3.270 Italy Italy 34.082 136.812
Jersey Jersey 6.087 13.952 Jamaica Jamaica 16.066 35.599
Jordan Jordan 3.568 5.742 Japan Japan 11.490 16.949
Kenya Kenya 9.955 13.902 South Korea South Korea 7.911 8.088
Kuwait Kuwait 4.456 6.250 Kazakhstan Kazakhstan 3.890 11.428
Lebanon Lebanon 4.883 8.329 Sri Lanka Sri Lanka 4.013 3.760
Liberia Liberia 9.186 19.870 Lithuania Lithuania 2.094 5.788
Luxembourg Luxembourg 6.174 17.296 Latvia Latvia 2.563 7.046
Libya Libya 2.386 3.448 Morocco Morocco 5.924 16.354
Moldova Moldova 1.722 3.496 Macedonia Macedonia 2.971 4.130
Mali Mali 2.303 2.185 Myanmar [Burma] Myanmar [Burma] 2.300 2.539
Malta Malta 2.263 2.650 Mexico Mexico 71.858 65.095
Malaysia Malaysia 13.136 14.193 Mozambique Mozambique 3.158 3.523
Nigeria Nigeria 16.310 23.701 Nicaragua Nicaragua 5.981 7.516
Netherlands Netherlands 31.904 328.637 Norway Norway 32.946 110.561
Nepal Nepal 6.534 5.015 New Zealand New Zealand 9.612 17.566
Oman Oman 3.827 4.318 Panama Panama 6.842 7.352
Peru Peru 12.281 24.612 Papua New Guinea Papua New Guinea 2.887 3.749
Philippines Philippines 21.399 30.104 Pakistan Pakistan 12.909 11.128
Poland Poland 54.564 234.346 Palestine Palestine 2.609 3.878
Portugal Portugal 19.947 16.826 Paraguay Paraguay 6.738 7.587
Qatar Qatar 5.245 7.078 Romania Romania 9.419 17.642
Serbia Serbia 4.261 9.242 Russia Russia 39.411 331.115
Rwanda Rwanda 1.972 2.437 Saudi Arabia Saudi Arabia 8.615 12.781
Sudan Sudan 3.442 4.074 Sweden Sweden 37.432 104.209
Singapore Singapore 13.264 25.168 Slovenia Slovenia 10.412 29.710
Slovakia Slovakia 5.037 17.496 Senegal Senegal 3.898 3.872
Somalia Somalia 3.160 5.023 El Salvador El Salvador 5.440 5.351
Syria Syria 4.021 6.631 Thailand Thailand 8.626 12.619
Tunisia Tunisia 3.255 6.437 Turkey Turkey 170.335 41.310
Trinidad and Tobago Trinidad and Tobago 3.086 3.087 Taiwan Taiwan 5.209 3.887
Tanzania Tanzania 4.872 6.305 Ukraine Ukraine 9.610 134.204
Uganda Uganda 5.850 7.443 United States United States 127.159 326.206
Uruguay Uruguay 4.946 11.403 Uzbekistan Uzbekistan 2.088 3.370
Saint Vincent Saint Vincent 4.727 9.465 Venezuela Venezuela 23.682 26.461
Vietnam Vietnam 5.101 6.269 Kosovo Kosovo 4.918 5.966
Mayotte Mayotte 22.158 38.886 Zambia Zambia 4.123 6.164
Zimbabwe Zimbabwe 3.828 5.857

Handling diverse name orders and formats

Names can be written in different name orders . This makes it complicated for developers to check if a name is valid or not. The order [first name] [surname] is known as the Western order and is usually used in most Western countries (Europe, North and South America, India and Oceania). Names can have multiple first names and multiple surnames . This is common in Spanish-speaking countries, Brazil and Portugal. The order [surname], [first name] is known as the Eastern order and is primarily used in East Asia. Our name parsing software can parse all common name orders, salutations and titles.

Types Format Example
First name only [first name] Yumeng
Surname only [surname] Mountbatten-Windsor
Regular names [first name] [surname] Jennifer Anderson
Names with middle name [first name] [middle name] [surname] Stephanie Karen Hills
Double (Spanish) surnames [first name] [surname] [surname] José Rodríguez Zapatero
Surname first followed by first name [surname], [first name] [middle name] Procházka, Lukáš Michal
Names with salutation and initials [salutation] [first name] [initial] [surname] Mr Bob S. Samuels
Title with surname first [title] [surname], [first name] Dr. Jenkins, Philip
Nickname between [], (), {} or "" [first name] "[nickname]" [surname] Stephanie "DJ" Williams
Cyrillic, Greek and Latin characters [first name] [surname] Екатерина Иванов

Changelog

We always keep on improving our service. We divided the changelog in a section for the API and for the database. Our API returns the version of the API and database via the response headers. You can use the versions from the response header to programmatically detect if we release a new version.

API
Version Date Changes
2.4 2024-03-15
  • Improved backend performance for parsing names.
  • Increased hardware capacity and updated all software to latest LTS versions.
  • Added additional http headers for security purposes.
  • Improved account endpoint adding VAT number support and strict validation.
  • Updated subscription models, improved subscription management and flow.
  • Added additional data for generating usage graphs per API key.
2.3 2024-01-03
  • Improved validation of API keys.
2.2 2023-03-20
  • Improved all backend code by making everything strict type everywhere.
  • Improved JSON response object making sure that if a boolean, integer or string is empty the value contains null.
  • Improved performance for random name generation making it significantly faster and complete.
  • Fixed bug where random name generation endpoint returned empty surnames.
  • Fixed bug where parsed surnames sometimes where complete in uppercase.
  • Fixed bug in typo suggestion so if a name is misspelled we show suggestion for the correct name again.
  • Fixed bug in where for some countries (like Greece) API failed to provide valid UTF-8 encoding causing empty response objects.
2.1 2023-01-04
  • Rewrote complete structure of project making it more efficient to run and more than 55% faster.
  • Implemented unit test that automatically tests 57 different names and styles to prevent errors.
  • Fixed initials bug: When initials and a name where given (e.g.: W.P. Williams) the name was mistaken for the first name instead of the surname.
  • Fixed nickname bug: Nickname can now also consist out of numbers (e.g.: Phill Miller (1st rooster)).
  • Fixed special letters bug: Alle names can now also include letters like ë. ø and û (e.g.: Daniël Koster).
  • Fixed name order bug: By using comma's as a separation character the order of names can differ (e.g.: Miller, Walter M., Jr.)
  • Fixed surname bug: surnames can now also be just 2 characters which is very common is some countries (e.g.: Jack Ma).
  • Improved the alternative countries of the first and middle-names.
  • Improved parsing of the surname which now supports the use of multiple surnames. This is common in Spanish-speaking countries (e.g. José Rodríguez Zapatero) and in some countries with marriage.
  • Added additional 'surnames' object containing the individual surnames detected in the complete surname.
  • Improved nationality prediction by using the improved surname information.
  • Improved salutation. Now supporting various salutations for 9 languages including different writing styles (e.g. Mr. Jack Dorsey or Mr Jack Dorsey).
  • Improved name generation in Spanish-speaking countries and countries where it is common to have two surnames.
  • Improved country detection using the detected country from firstname, surname and parsed surname if surname had more than one name.
2.0 2022-12-16
  • Extended the name parsing endpoint with "typo correction". For any misspelled first name, a list of alternative, correct names is returned.
  • Created a huge database with 20 million possible common spelling mistakes and typos for all first names. For example "Chriatian" should be "Christian".
  • Implemented a typo generator for names that takes in a name and creates hundreds of possible, logical spelling mistakes for it.
  • The error handling of the API has been improved, making it easier to fix errors.
  • Rewrote all code to strict type to prevent run-time errors and have earlier detection of errors.
  • Fixed validation bug, a name should now at least contain an existing firstname and surname is optional when using loose validation.
1.9 2022-10-25
  • Improved structure of response so that it is consistent for all endpoints.
  • Fixed bug in parsing of email addresses.
1.8 2022-09-18
  • Added status code 404 in case a name can not be parsed.
  • Parse endpoint will always return the validation result even if name could not be parsed.
1.7 2022-03-20
  • Increased the number requests per hour for all subscriptions.
  • Surnames that can not be validated will be returned nicely formatted with correct upper and lower case letters.
1.6 2021-03-14
  • Updated ‘generate’ endpoint so each subscription type (including free plan) can receive 25 generated names per request using the 'results' parameter.
  • Add password to the ‘generate’ endpoint so each generated name and email address now also have a strong password that can be used for development databases.
1.5 2021-02-12
  • Added ‘email‘ as a parameter to the name parsing endpoint to extract names from email.
  • Added 'email' object to all response objects including provider and country information.
  • Added fictional email addresses to the random name generator output.
  • Updated ‘account’ endpoint so usage field always has 24 hours and 31 days.
  • Removed the 'gender' endpoint from the API as this is already available in the name parsing endpoint.
  • Moved the 'validation' endpoint to the name parsing endpoint and made it available as an additional parameter.
1.4 2020-11-13
  • Added the name extraction endpoint to the API to extract names from text.
  • Created database with common keywords in every supported language to reduce false possive names for extraction endpoint.
  • Examined and improved complete API to meet strict GDPR regulations.
1.3 2020-09-30
  • All endpoints don't try to parse (obvious) rubbish names anymore.
  • Added additional status codes for when names could not be found (404).
  • Improved the rate limiting functionality excluding error responses.
  • Added additional hourly and daily usage fields to account information endpoint.
  • Parse and Validation endpoints accept different orders for first and surname like: surname, first name first name or surname first name.
1.2 2020-06-01
  • Added rate limiting based upon subscription plan.
  • Improved the name parser, so it can detect multiple middle names.
  • Increased accuracy of nationality prediction using new algorithm
  • Updated the structure of the result object to a more logical model.
  • Added support for IP addresses to Country Code using MaxMind GeoLite2.
  • Added Pantheon and IMDB data files for loose and strict validation.
1.1 2019-09-24
  • Fixed salutation breaking after a title.
  • Added the detection of nicknames that are written like: (nickname), [nickname] or "nickname".
  • Added the following endpoints to the API: account information, validation and name generation.
1.0 2019-08-17
  • Released first version of the API.
Database
Version Date Changes
10 2023-01-14
  • Exported 11.371.003 public profiles to rebuild the first name and surname database resulting in 113 countries.
  • Added MX (Mexico) with first name and surname database.
9 2022-10-23
  • Exported 25.388.576 public profiles to rebuild the first name and surname database resulting in 141 countries.
8 2021-01-30
  • Exported 11.371.003 public profiles to rebuild the first name and surname database resulting in 113 countries.
  • Added PE (Peruvian) surname database.
  • Added 'compact' ASCII column to first name and surname databases for search.
7 2020-10-07
  • Updated countries RU in the gender database.
  • Created a surname table to import all official surnames.
  • Added all supported countries to surname database.
  • In the countries RU, PL, CZ the surname also indicates the gender.
  • Updated first name database for countries CA, RU, PL, IT, CH with additional names.
6 2020-08-31
  • Exported 9.252.364 public profiles to rebuild the first name database resulting in 104 countries.
  • Improved performance of cron jobs that collect public profiles.
  • Fixed the Russian first names entries.
5 2020-05-05
  • Names from unsupported countries are now added and based upon first names from supported countries resulting in 110 countries.
  • Started measuring and tracking nationality prediction performance by using open database with names and countries from 29,216 olympic athletes .
  • Updated country tables with additional country information.
  • Added countries HU, SI, SK, IN, RU and UA.
4 2019-12-26
  • Added column country_rank to name tables to support nationality prediction.
  • Added countries AR, BR, AU, NZ, CZ, ES, FR, GR, PL, TR to the gender database.
3 2019-10-22
  • Updated tables, now including frequency of names.
  • Added additional table for ASCII version of each name.
  • Added countries AT, CA, DK, IT, NO, IE, CH, PT to the gender database.
2 2019-09-02
  • Released first version of the database.
  • Converted whole database to UTF-8 when importing name databases.
  • Added countries NL, SE, DE, FI, BE, US, GB to the gender database.
1 2019-08-17
  • Released first version of the database.