API documentation
Namsor has developed a name checking technology, able to create comprehensive analysis through multiple processing. Our API can classify names by origin, by ethnicity, by residence country, by gender, and supports many alphabets*.
Introduction
About
- The base endpoint URL is: https://v2.namsor.com/NamSorAPIv2
- All endpoints require an API Key.
- Never share your API key to ANYONE.
API Requests and Responses
- All endpoints return JSON containing either an object or a nested array of objects.
- Currently certain NamSor API endpoints use nested object structures in their query body and / or responses, please refer yourself to the corresponding code example.
- Be aware that data in the code examples have been URL encoded into the corresponding ASCII code characters when necessary, for example 谢晓亮 is replaced by %E8%B0%A2%E6%99%93%E4%BA%AE. URLs cannot contain spaces or non-ASCII characters. When making GET requests to the API use URL encoding to convert non-ASCII characters into a format that can be transmitted over the internet.
Data Privacy
By default Namsor's machine learning algorithm may improve data evaluation based on the data inputs and does store logs of submitted request. You may change these setting either in your user account or by calling the dedicated API endpoints. All data logs are secured using AES encryption before being stored.
If you wish to disable machine learning based on your submissions, please set learnable to false in the "Enhance privacy" section on the my account page. When set to false for an API key, the data processed using that key will not feed the machine learning algorithm.
If you wish to disable service usage history, please set anonymized to true in the "Enhance privacy" section on the my account page. When set to true for an API key, the data processed using that key will be irreversibly anonymised using SHA encryption. Note that the smart processing for redundant queries will still work even if your data is anonymised.
Authentication
API Key Creation
Customer accounts are common to all Namsor group websites. To create an API key visit Namsor or another site of the Namsor group and create an account. Navigate to the account information page to retrieve your API key. Your newly created account comes with 500 free credits that you may use immediately with any of Namsor's tools: API, CSV and Excel file processor or Developer tools.
API Key Installation
Your API key must be set in the header of your request using the X-API-KEY property. Please refer yourself to the provided code samples for correct key installation.

You must replace your-api-key with your Namsor API key.
Credits
What are Credits
We use a credit system to track usage. Each plan comes with a monthly quantity of credits and a price for request that exceed your monthly allowance. The free Basic subscription plan grants you 500 credits but other plans are available in case you have higher requirements. As an example, with 500 credits you can either:
- Process 50 names to determine their origins.
- Process 25 names to determine their ethnicities.
- Process 50 names to determine their US race ethncities.
- Process 50 names to determine their countries of residence.
- Process 500 names to determine their genders.

Admin routes are free.
Repeated Operations Tolerance
Our API features smart processing and it will not charge for analyzing identical data for up to 20 times. For example if you submit the same full name 5 times in order to infer it's origin then you will only be charged 1 credit.
Soft Limit vs Hard Limit
In your user account you may set two types of credit usage limits:
- A soft limit that will trigger an email notification when reached.
- A hard limit that will trigger an email notification and block the API key when reached.
Track Usage
There are two ways to track your credit usage: check the provided graphics in your user account or query the appropriate Admin routes (API Usage, API Usage History and API Usage History Aggregate).
Errors
- 401UnauthorizedMissing or incorrect API Key.
- 403ForbiddenAPI Limit Reached or API Key Disabled.
- 404Not FoundThe specified route could not be found.
- 500Internal Server ErrorServer error. Try again later.
Origin from names
Namsor helps you find thorough information about the origin of a name by establishing a name's country of origin, the ethnicity, the diaspora and the US race classification. We also provide a corridor evalutation API, to check background information about international interactions.
Name Origin
Name Origin feature analyzes a first name and/or a last name to identify its country of origin. Adding a first and last name increases the accuracy of the determined origin.
The feature returns the region of origin, the country of origin, and a list of the top 10 countries of origin, ordered from most likely to least likely. Each country of origin returned is accompanied by a calibrated probability.
Note that the name diaspora feature may be better suited for multicultural countries, such as the United States, Canada, Australia, New-Zealand and other "melting-pots".
- Description: Returns the most likely country of origin of up to 100 first names and/or last names.
- Cost: 10 credits per name.
- Test: Name Origin feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/originBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal names. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].firstName | String | Optional | First name, given name, nickname. |
[{...}].lastName | String | Optional | Last name, family name, surname. |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names with their countries of origin. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].firstName | String | Submitted first name, given name or nickname. | |
[{...}].lastName | String | Submitted last name, family name or surname. | |
[{...}].countryOrigin | String | Most likely country of origin, in ISO 3166-1 alpha-2 format. | Country of origin |
[{...}].countryOriginAlt | String | Second most likely country of origin, in ISO 3166-1 alpha-2 format. | Country of origin |
[{...}].countriesOriginTop | Array | Top 10 most likely countries of origin, in ISO 3166-1 alpha-2 format, sorted from most likely to least likely. | Country of origin |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].regionOrigin | String | Most likely region of origin. | Regions of origin or residence |
[{...}].topRegionOrigin | String | Most likely region of origin (alternative classification). | Regions of origin or residence |
[{...}].subRegionOrigin | String | Most likely sub-region of origin. | Sub regions of origin or residence |
[{...}].probabilityCalibrated | Number | The calibrated probability that countryOrigin has been guessed correctly. -1 = still calibrating. | |
[{...}].probabilityAltCalibrated | Number | The calibrated probability that countryOrigin OR countryOriginAlt have been guessed correctly. -1 = still calibrating. |
Code sample:
Name Origin code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/originBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"e630dda5-13b3-42c5-8f1d-648aa8a21c42","firstName":"Keith","lastName":"Haring"}]}'
Body parameter:
{
"personalNames": [
{
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"firstName": "Keith",
"lastName": "Haring"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"firstName": "Keith",
"lastName": "Haring",
"countryOrigin": "GB",
"countryOriginAlt": "IE",
"countriesOriginTop": ["GB", "IE", "DE", "NL", "DK", "MY", "SE", "CH", "NO", "EE"],
"score": 3.736975858512923,
"regionOrigin": "Europe",
"topRegionOrigin": "Europe",
"subRegionOrigin": "Northern Europe",
"probabilityCalibrated": 0.48126571888420216,
"probabilityAltCalibrated": 0.622489299549084
}
]
}
Name Diaspora
Name Diaspora feature analyzes a name to identify the most likely ethnicity or diaspora. Adding a first and last name and a country of residence increases the accuracy of the determined diaspora.
The feature returns the most likely ethnicity or a diaspora and the top 10 most likely ethnicities, ordered from most likely to least likely. Each ethnicity returned is accompanied by a calibrated probability.
- Description: Returns the most likely ethnicity or diaspora of up to 100 first names (optional) and last names, according to their country of residence.
- Cost: 20 credits per name.
- Test: Name Diaspora feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/diasporaBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal names with their country of residence. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].firstName | String | Optional | First name, given name, nickname. |
[{...}].lastName | String | Required | Last name, family name, surname. |
[{...}].countryIso2 | String | Optional | Country of residence, in ISO 3166-1 alpha-2 format. "US" by default (if no value indicated). |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names with their ethnicities. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].firstName | String | Submitted first name. | |
[{...}].lastName | String | Submitted last name. | |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].ethnicityAlt | String | Second most likely ethnicity. | Ethnicities or diasporas |
[{...}].ethnicity | String | Most likely ethnicity. | Ethnicities or diasporas |
[{...}].lifted | Boolean | Indicates if the output ethnicity is based on machine learning only, or further lifted as a known fact by a country-specific rule. | |
[{...}].countryIso2 | String | Submitted country of residence, in ISO 3166-1 alpha-2 format. | Country of residence |
[{...}].ethnicitiesTop | Array | Top 10 most likely ethnicities, ordered from most likely to least likely. | Ethnicities or diasporas |
[{...}].probabilityCalibrated | Number | The calibrated probability that ethnicity has been guessed correctly. -1 = still calibrating . | |
[{...}].probabilityAltCalibrated | Number | The calibrated probability that ethnicity OR ethnicityAlt have been guessed correctly. -1 = still calibrating . |
Code sample:
Name Diaspora code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/diasporaBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"0d7d6417-0bbb-4205-951d-b3473f605b56","firstName":"Keith","lastName":"Haring","countryIso2":"US"}]}'
Body parameter:
{
"personalNames": [
{
"id": "0d7d6417-0bbb-4205-951d-b3473f605b56",
"firstName": "Keith",
"lastName": "Haring",
"countryIso2": "US"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "0d7d6417-0bbb-4205-951d-b3473f605b56",
"firstName": "Keith",
"lastName": "Haring",
"score": 10.578504679244919,
"ethnicityAlt": "British",
"ethnicity": "German",
"lifted": false,
"countryIso2": "US",
"ethnicitiesTop": ["German", "British", "Dutch", "Danish", "Irish", "Jewish", "Norwegian", "HispanoLatino", "Swedish", "AfricanAmerican"],
"probabilityCalibrated": 0.6115763692637636,
"probabilityAltCalibrated": 0.6115763692637636
}
]
}
Name US Race
Name US Race feature analyzes a name to identify the most likely US race. Adding a first and last name and a country of residence increases the accuracy of the determined US race.
The feature returns the most likely US race ethnicity and a list of the most likely US race ethnicities, sorted from most likely to least likely. Each race returned is accompanied by a calibrated probability.
US race is a categorization from United States Census Taxonomy
- Description: Returns the most likely US race of up to 100 first names and/or last names.
- Precision:
- Cost: 10 credits per name.
- Test: Name US Race feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/usRaceEthnicityBatch
Request header
Property | Values | Required | Description |
---|---|---|---|
X-API-KEY | Required | Your Namsor's services API key | |
X-OPTION-USRACEETHNICITY-TAXONOMY | USRACEETHNICITY-6CLASSES | Optional | Enumerators for the returned 'race' ethnicity. Do not specify the property of the http request to obtain 4 classes (W_NL, HL, A, B_NL), USRACEETHNICITY-6CLASSES will return 6 classes (W_NL, HL, A, B_NL, AI_AN, PI). For international names (non US resident) please choose 4 classes. |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal names with their country of residence. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].firstName | String | Optional | First name, given name, nickname. |
[{...}].lastName | String | Optional | Last name, family name, surname. |
[{...}].countryIso2 | String | Optional | Country of residence, in ISO 3166-1 alpha-2 format. |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names with their race. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].firstName | String | Submitted first name. | |
[{...}].lastName | String | Submitted last name. | |
[{...}].raceEthnicityAlt | String | Second most likely race (US race categorization from US Census Taxonomy). | U.S. race ethnicities |
[{...}].raceEthnicity | String | Most likely race (US race categorization from US Census Taxonomy). | U.S. race ethnicities |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].raceEthnicitiesTop | Array | Most likely race, sorted from most likely to least likely (US race categorization from US Census Taxonomy). | U.S. race ethnicities |
[{...}].probabilityCalibrated | Number | The calibrated probability that raceEthnicity has been guessed correctly. -1 = still calibrating. | |
[{...}].probabilityAltCalibrated | Number | The calibrated probability that raceEthnicity OR raceEthnicityAlt have been guessed correctly. -1 = still calibrating. |
Code sample:
Name US Race code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/usRaceEthnicityBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"85dd5f48-b9e1-4019-88ce-ccc7e56b763f","firstName":"Keith","lastName":"Haring","countryIso2":"US"}]}'
Body parameter:
{
"personalNames": [
{
"id": "85dd5f48-b9e1-4019-88ce-ccc7e56b763f",
"firstName": "Keith",
"lastName": "Haring",
"countryIso2": "US"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "85dd5f48-b9e1-4019-88ce-ccc7e56b763f",
"firstName": "Keith",
"lastName": "Haring",
"raceEthnicityAlt": "AI_AN",
"raceEthnicity": "W_NL",
"score": 7.104050454229515,
"raceEthnicitiesTop": ["W_NL", "AI_AN", "B_NL", "A", "PI", "HL"],
"probabilityCalibrated": 0.7271969971540807,
"probabilityAltCalibrated": 0.8701551006716921
}
]
}
Name US Race ZIP
Name US Race ZIP feature analyzes a name to identify the most likely US race with improved accuracy than the basic feature Name US Race. Adding a first and last name and a country of residence increases the accuracy of the determined US race.
The feature returns the most likely US race ethnicity and a list of the most likely US race ethnicities, sorted from most likely to least likely. Each race returned is accompanied by a calibrated probability.
US race is a categorization from United States Census Taxonomy
- Description: Returns the most likely US race of up to 100 first names and/or last names using their ZIP code.
- Precision:
- Cost: 10 credits per name.
- Test: Name US Race ZIP feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/usZipRaceEthnicityBatch
Request header
Property | Values | Required | Description |
---|---|---|---|
X-API-KEY | Required | Your Namsor's services API key | |
X-OPTION-USRACEETHNICITY-TAXONOMY | USRACEETHNICITY-6CLASSES | Optional | Enumerators for the returned 'race' ethnicity. Do not specify the property of the http request to obtain 4 classes (W_NL, HL, A, B_NL), USRACEETHNICITY-6CLASSES will return 6 classes (W_NL, HL, A, B_NL, AI_AN, PI). For international names (non US resident) please choose 4 classes. |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal names with their country of residence and postal code. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].firstName | String | Optional | First name, given name, nickname. |
[{...}].lastName | String | Optional | Last name, family name, surname. |
[{...}].countryIso2 | String | Optional | Country of residence, in ISO 3166-1 alpha-2 format. |
[{...}].zipCode | String | Required | Postal code (5-digit) of residence used by the United States Postal Service (USPS). |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names with their race. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].firstName | String | Submitted first name. | |
[{...}].lastName | String | Submitted last name. | |
[{...}].raceEthnicityAlt | String | Second most likely race (US race categorization from US Census Taxonomy). | U.S. race ethnicities |
[{...}].raceEthnicity | String | Most likely race (US race categorization from US Census Taxonomy). | U.S. race ethnicities |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].raceEthnicitiesTop | Array | Most likely race, sorted from most likely to least likely (US race categorization from US Census Taxonomy). | U.S. race ethnicities |
[{...}].probabilityCalibrated | Number | The calibrated probability that raceEthnicity has been guessed correctly. -1 = still calibrating. | |
[{...}].probabilityAltCalibrated | Number | The calibrated probability that raceEthnicity OR raceEthnicityAlt have been guessed correctly. -1 = still calibrating. |
Code sample:
Name US Race ZIP code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/usZipRaceEthnicityBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"728767f9-c5b2-4ed3-a071-828077f16552","firstName":"Keith","lastName":"Haring","countryIso2":"US","zipCode":"10019"}]}'
Body parameter:
{
"personalNames": [
{
"id": "728767f9-c5b2-4ed3-a071-828077f16552",
"firstName": "Keith",
"lastName": "Haring",
"countryIso2": "US",
"zipCode": "10019"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "728767f9-c5b2-4ed3-a071-828077f16552",
"firstName": "Keith",
"lastName": "Haring",
"raceEthnicityAlt": "AI_AN",
"raceEthnicity": "W_NL",
"score": 3.9085123822664136,
"raceEthnicitiesTop": ["W_NL", "AI_AN", "A", "B_NL", "PI", "HL"],
"probabilityCalibrated": 0.6021205204922562,
"probabilityAltCalibrated": 0.8421508050514268
}
]
}
Name Country
Name Country feature analyzes a name (first, last or full name) to identify its country of residence.
The feature returns the region of residence, the country of residence, and a list of the top 10 countries of residence, ordered from most likely to least likely. Each country of residence returned is accompanied by a calibrated probability.
- Description: Returns the most likely country of residence of up to 100 first names, last names or full names.
- Cost: 10 credits per name.
- Test: Name Country feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/countryBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal names. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].name | String | Required | First name, or last name, or full name. |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names with their countries of residence. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].name | String | Submitted name. | |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].country | String | Most likely country of residence, in ISO 3166-1 alpha-2 format. | Country of residence |
[{...}].countryAlt | String | Second most likely country of residence, in ISO 3166-1 alpha-2 format. | Country of residence |
[{...}].region | String | Most likely region of residence. | Regions of origin or residence |
[{...}].topRegion | String | Most likely region of residence (alternative classification). | Regions of origin or residence |
[{...}].subRegion | String | Most likely sub-region of residence. | Sub regions of origin or residence |
[{...}].countriesTop | Array | Top 10 most likely countries of residence, in ISO 3166-1 alpha-2 format, sorted from most likely to least likely. | |
[{...}].probabilityCalibrated | Number | The calibrated probability that country has been guessed correctly. -1 = still calibrating. | |
[{...}].probabilityAltCalibrated | Number | The calibrated probability that country OR countryAlt have been guessed correctly. -1 = still calibrating. |
Code sample:
Name Country code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/countryBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"9a3283bd-4efb-4b7b-906c-e3f3c03ea6a4","name":"Keith Haring"}]}'
Body parameter:
{
"personalNames": [
{
"id": "9a3283bd-4efb-4b7b-906c-e3f3c03ea6a4",
"name": "Keith Haring"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "9a3283bd-4efb-4b7b-906c-e3f3c03ea6a4",
"name": "Keith Haring",
"score": 14.474855749439138,
"country": "US",
"countryAlt": "NZ",
"region": "Northern America",
"topRegion": "Americas",
"subRegion": "Northern America",
"countriesTop": ["US", "NZ", "AU", "GB", "IE", "CA", "DE", "SG", "JM", "HK"],
"probabilityCalibrated": 0.5543051242619337,
"probabilityAltCalibrated": 0.5722556327291567
}
]
}
Names Corridor
Name Corridor feature analyzes two person's first name, last name, and country of residence to return a comprehensive report of the interaction.
- Description: Returns complete analysis of up to 100 cross border interactions between two names using their geographic context. The sender is the one who initiated the interaction (from), while the receiver is the one intended to receive the interaction (to).
- Cost: 20 credits per name.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/corridorBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
corridorFromTo | Array of objects | Required | A list of name pairs, with country code (nameFrom -> nameTo).. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].firstLastNameGeoFrom | Object | Required | . |
{...}.id | String | Optional | Unique identifier. |
{...}.firstName | String | Required | First name (or given name) of the sender. |
{...}.lastName | String | Required | Last name (or family name) of the sender. |
{...}.countryIso2 | String | Required | Country of origin of the sender, in ISO 3166-1 alpha-2 format. |
[{...}].firstLastNameGeoTo | Object | Required | . |
{...}.id | String | Optional | Unique identifier. |
{...}.firstName | String | Required | First name (or given name) of the receiver. |
{...}.lastName | String | Required | Last name (or family name) of the receiver. |
{...}.countryIso2 | String | Required | Country of origin of the receiver, in ISO 3166-1 alpha-2 format. |
Name | Type | Description | Enumerators |
---|---|---|---|
corridorFromTo | Array of objects | A list of classified name pairs.. | |
[{...}].id | String | Unique identifier. | |
[{...}].firstLastNameGeoFromGender | Object | Gender data for the sender name.. | |
{...}.script | String | Name of the script used for the name, in ISO 15924 format. | Script |
{...}.id | String | Unique identifier. | |
{...}.firstName | String | Submitted first name (or given name) of the sender. | |
{...}.lastName | String | Submitted last name (or family name) of the sender. | |
{...}.likelyGender | String | Most likely gender. | Genders |
{...}.genderScale | Number | Gender scale ranging from -1 (male) to +1 (female). | |
{...}.score | Number | Higher implies a more reliable result, but score is not normalized. Use probabilityCalibrated if available. | |
{...}.probabilityCalibrated | Number | Higher implies a more reliable result, ranges from 0 to 1. | |
[{...}].firstLastNameGeoToGender | Object | Gender data for the receiver name.. | |
{...}.script | String | Name of the script used for the name, in ISO 15924 format. | Script |
{...}.id | String | Unique identifier. | |
{...}.firstName | String | Submitted first name (or given name) of the receiver. | |
{...}.lastName | String | Submitted last name (or family name) of the receiver. | |
{...}.likelyGender | String | Most likely gender. | Genders |
{...}.genderScale | Number | Gender scale ranging from -1 (male) to +1 (female). | |
{...}.score | Number | Higher implies a more reliable result, but score is not normalized. Use probabilityCalibrated if available. | |
{...}.probabilityCalibrated | Number | Higher implies a more reliable result, ranges from 0 to 1. | |
[{...}].firstLastNameGeoFromOrigin | Object | Origin data for the sender name.. | |
{...}.script | String | Name of the script used for the name, in ISO 15924 format. | Script |
{...}.id | String | Unique identifier. | |
{...}.firstName | String | Submitted first name (or given name) of the sender. | |
{...}.lastName | String | Submitted last name (or family name) of the sender. | |
{...}.countryOrigin | String | Most likely country of origin of the sender, in ISO 3166-1 alpha-2 format. | Country of origin |
{...}.countryOriginAlt | String | Second most likely country of origin of the sender, in ISO 3166-1 alpha-2 format. | Country of origin |
{...}.countriesOriginTop | Array | Top 10 most likely countries of origin of the sender, in ISO 3166-1 alpha-2 format, sorted from most likely to least likely. | Country of origin |
{...}.score | Number | Higher implies a more reliable result, but score is not normalized. Use probabilityCalibrated if available. | |
{...}.regionOrigin | String | Most likely region of origin of the sender. | Regions of origin or residence |
{...}.topRegionOrigin | String | Most likely region of origin of the sender (alternative classification). | Regions of origin or residence |
{...}.subRegionOrigin | String | Most likely sub-region of origin of the sender. | Sub regions of origin or residence |
{...}.probabilityCalibrated | Number | The calibrated probability for countryOrigin to have been guessed correctly. -1 = still calibrating. | |
{...}.probabilityAltCalibrated | Number | The calibrated probability for countryOrigin OR countryOriginAlt to have been guessed correctly. -1 = still calibrating. | |
[{...}].firstLastNameGeoToOrigin | Object | Origin data for the receiver name.. | |
{...}.script | String | Name of the script used for the name, in ISO 15924 format. | Script |
{...}.id | String | Unique identifier. | |
{...}.firstName | String | Submitted first name (or given name) of the receiver. | |
{...}.lastName | String | Submitted last name (or family name) of the receiver. | |
{...}.countryOrigin | String | Most likely country of origin of the receiver, in ISO 3166-1 alpha-2 format. | Country of origin |
{...}.countryOriginAlt | String | Second most likely country of origin of the receiver, in ISO 3166-1 alpha-2 format. | Country of origin |
{...}.countriesOriginTop | Array | Top 10 most likely countries of origin of the receiver, in ISO 3166-1 alpha-2 format, sorted from most likely to least likely. | Country of origin |
{...}.score | Number | Higher implies a more reliable result, but score is not normalized. Use probabilityCalibrated if available. | |
{...}.regionOrigin | String | Most likely region of origin. | Regions of origin or residence |
{...}.topRegionOrigin | String | Most likely region of origin of the receiver (alternative classification). | Regions of origin or residence |
{...}.subRegionOrigin | String | Most likely sub-region of origin of the receiver. | Sub regions of origin or residence |
{...}.probabilityCalibrated | Number | The calibrated probability for countryOrigin to have been guessed correctly. -1 = still calibrating. | |
{...}.probabilityAltCalibrated | Number | The calibrated probability for countryOrigin OR countryOriginAlt to have been guessed correctly. -1 = still calibrating. | |
[{...}].firstLastNameGeoFromDiaspora | Object | Diaspora data for the sender name.. | |
{...}.script | String | Name of the script used for the name, in ISO 15924 format. | Script |
{...}.id | String | Unique identifier. | |
{...}.firstName | String | Submitted first name (or given name) of the sender. | |
{...}.lastName | String | Submitted last name (or family name) of the sender. | |
{...}.score | Number | Higher implies a more reliable result, but score is not normalized. Use probabilityCalibrated if available. | |
{...}.ethnicityAlt | String | Second most likely ethnicity of the sender. | Ethnicities or diasporas |
{...}.ethnicity | String | Most likely ethnicity of the sender. | Ethnicities or diasporas |
{...}.lifted | Boolean | Indicates if the output ethnicity is based on machine learning only, or further lifted as a known fact by a country-specific rule. | |
{...}.countryIso2 | String | Submitted country of origin of the sender, in ISO 3166-1 alpha-2 format. | Country of residence |
{...}.ethnicitiesTop | Array | Top 10 most likely ethnicities of the sender, ordered from most likely to least likely. | Ethnicities or diasporas |
[{...}].firstLastNameGeoToDiaspora | Object | Diaspora data for the receiver name.. | |
{...}.script | String | Name of the script used for the name, in ISO 15924 format. | Script |
{...}.id | String | Unique identifier. | |
{...}.firstName | String | Submitted first name (or given name) of the receiver. | |
{...}.lastName | String | Submitted last name (or family name) of the receiver. | |
{...}.score | Number | Higher implies a more reliable result, but score is not normalized. Use probabilityCalibrated if available. | |
{...}.ethnicityAlt | String | Second most likely ethnicity of the receiver. | Ethnicities or diasporas |
{...}.ethnicity | String | Most likely ethnicity of the receiver. | Ethnicities or diasporas |
{...}.lifted | Boolean | Indicates if the output ethnicity is based on machine learning only, or further lifted as a known fact by a country-specific rule. | |
{...}.countryIso2 | String | Submitted country of origin of the receiver, in ISO 3166-1 alpha-2 format. | Country of residence |
{...}.ethnicitiesTop | Array | Top 10 most likely ethnicities of the receiver, ordered from most likely to least likely. | Ethnicities or diasporas |
Code sample:
Names Corridor code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/corridorBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"corridorFromTo":[{"id":"e630dda5-13b3-42c5-8f1d-648aa8a21c42","firstLastNameGeoFrom":{"id":"e630dda5-13b3-42c5-8f1d-648aa8a21c42","firstName":"Ada","lastName":"Lovelace","countryIso2":"GB"},"firstLastNameGeoTo":{"id":"e630dda5-13b3-42c5-8f1d-648aa8a21c42","firstName":"Nicolas","lastName":"Tesla","countryIso2":"US"}}]}'
Body parameter:
{
"corridorFromTo": [
{
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"firstLastNameGeoFrom": {
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"firstName": "Ada",
"lastName": "Lovelace",
"countryIso2": "GB"
},
"firstLastNameGeoTo": {
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"firstName": "Nicolas",
"lastName": "Tesla",
"countryIso2": "US"
}
}
]
}
The above command returns JSON structured like this:
{
"corridorFromTo": [
{
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"firstLastNameGeoFromGender": {
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c43",
"firstName": "Ada",
"lastName": "Lovelace",
"likelyGender": "female",
"genderScale": 0.9667738179638148,
"score": 20.98847600479561,
"probabilityCalibrated": 0.9833869089819074
},
"firstLastNameGeoToGender": {
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c41",
"firstName": "Nicolas",
"lastName": "Tesla",
"likelyGender": "male",
"genderScale": -0.9915797101926913,
"score": 30.224379416275056,
"probabilityCalibrated": 0.9957898550963457
},
"firstLastNameGeoFromOrigin": {
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c43",
"firstName": "Ada",
"lastName": "Lovelace",
"countryOrigin": "IE",
"countryOriginAlt": "GB",
"countriesOriginTop": ["IE", "GB"],
"score": 2.568304424015469,
"regionOrigin": "Europe",
"topRegionOrigin": "Europe",
"subRegionOrigin": "Northern Europe",
"probabilityCalibrated": 0.45562779224760414,
"probabilityAltCalibrated": 0.6327518248452595
},
"firstLastNameGeoToOrigin": {
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c41",
"firstName": "Nicolas",
"lastName": "Tesla",
"countryOrigin": "FR",
"countryOriginAlt": "GR",
"countriesOriginTop": ["FR", "GR"],
"score": 1.454789764445522,
"regionOrigin": "Europe",
"topRegionOrigin": "Europe",
"subRegionOrigin": "Western Europe",
"probabilityCalibrated": 0.44774495967210787,
"probabilityAltCalibrated": 0.4771001024099368
},
"firstLastNameGeoFromDiaspora": {
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c43",
"firstName": "Ada",
"lastName": "Lovelace",
"score": 32.41686703300403,
"ethnicityAlt": "TrinidadTobago",
"ethnicity": "British",
"lifted": false,
"countryIso2": "GB",
"ethnicitiesTop": ["British", "TrinidadTobago"]
},
"firstLastNameGeoToDiaspora": {
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c41",
"firstName": "Nicolas",
"lastName": "Tesla",
"score": 1.1421954239282939,
"ethnicityAlt": "Jewish",
"ethnicity": "Italian",
"lifted": false,
"countryIso2": "US",
"ethnicitiesTop": ["Italian", "Jewish"]
}
}
]
}
Gender from names
Namsor's name checking API can help you determine the probability of a person being male or female based on their name. We offer many processing options for gender determination, the name can either be provided: as a full name, as a first name and a last name. In addition to the name you may specify the country of origin to improve accuracy. Our API also supports Chinese names, Japanese names and a large number of additional alphabets*.
Genderize Name
Genderize Name feature analyzes a first name and a last name (optional) to identify its most likely gender with slightly improved accuracy than the Genderize Full Name feature. Adding a first and last name increases the accuracy of the determined gender.
The feature returns the most likely gender accompanied by a calibrated probability. If the probability of the returned gender is between 45% and 55%, the name can be interpreted as a unisex name.
- Description: Returns the most likely gender of up to 100 first names and last names (optional).
- Precision:
- Cost: 1 credit per name.
- Test: Genderize Name feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/genderBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal names. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].firstName | String | Required | First name, given name, nickname. |
[{...}].lastName | String | Optional | Last name, family name, surname. |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names genderized. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].firstName | String | Submitted first name. | |
[{...}].lastName | String | Submitted last name. | |
[{...}].likelyGender | String | Most likely gender. | Genders |
[{...}].genderScale | Number | Gender scale ranging from -1 (male) to +1 (female). | |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].probabilityCalibrated | Number | Higher implies a more reliable result, ranges from 0 to 1. |
Code sample:
Genderize Name code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/genderBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"b590b04c-da23-4f2f-a334-aee384ee420a","firstName":"Keith","lastName":"Haring"}]}'
Body parameter:
{
"personalNames": [
{
"id": "b590b04c-da23-4f2f-a334-aee384ee420a",
"firstName": "Keith",
"lastName": "Haring"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "b590b04c-da23-4f2f-a334-aee384ee420a",
"firstName": "Keith",
"lastName": "Haring",
"likelyGender": "male",
"genderScale": -0.8126510374561324,
"score": 12.516892456249645,
"probabilityCalibrated": 0.9063255187280662
}
]
}
Genderize Name Geo
Genderize Name Geo feature analyzes a first name and a last name (optional) based on a country of residence to identify its most likely gender with improved accuracy than the basic feature Genderize Name. Adding a first and last name increases the accuracy of the determined gender.
The feature returns the most likely gender accompanied by a calibrated probability. If the probability of the returned gender is between 45% and 55%, the name can be interpreted as a unisex name.
- Description: Returns the most likely gender of up to 100 first names and last names (optional) using their geographic context.
- Precision:
- Cost: 1 credit per name.
- Test: Genderize Name Geo feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/genderGeoBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal names with their country of residence. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].firstName | String | Required | First name, given name, nickname. |
[{...}].lastName | String | Optional | Last name, family name, surname. |
[{...}].countryIso2 | String | Required | Most likely country of residence, in ISO 3166-1 alpha-2 format. |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names genderized. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].firstName | String | Submitted first name. | |
[{...}].lastName | String | Submitted last name. | |
[{...}].likelyGender | String | Most likely gender. | Genders |
[{...}].genderScale | Number | Gender scale ranging from -1 (male) to +1 (female). | |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].probabilityCalibrated | Number | Higher implies a more reliable result, ranges from 0 to 1. |
Code sample:
Genderize Name Geo code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/genderGeoBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"27fb45db-eddf-40d0-95c1-de9978a166b0","firstName":"Keith","lastName":"Haring","countryIso2":"US"}]}'
Body parameter:
{
"personalNames": [
{
"id": "27fb45db-eddf-40d0-95c1-de9978a166b0",
"firstName": "Keith",
"lastName": "Haring",
"countryIso2": "US"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "27fb45db-eddf-40d0-95c1-de9978a166b0",
"firstName": "Keith",
"lastName": "Haring",
"likelyGender": "male",
"genderScale": -0.8889514731555574,
"score": 16.03594419932244,
"probabilityCalibrated": 0.9444757365777787
}
]
}
Genderize Full Name
Genderize Full Name feature analyzes an unsplit full name (first name and last name) to identify its most likely gender.
The feature returns the most likely gender accompanied by a calibrated probability. If the probability of the returned gender is between 45% and 55%, the name can be interpreted as a unisex name.

If the first and last name are clearly identifiable, the Genderize Name feature will be slightly more accurate.
- Description: Returns the most likely gender of up to 100 unsplit full names.
- Precision:
- Cost: 1 credit per name.
- Test: Genderize Full Name feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/genderFullBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal full names. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].name | String | Required | Unsplit full name (first name and last name). |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted full names genderized. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].name | String | Submitted full name. | |
[{...}].likelyGender | String | Most likely gender. | Genders |
[{...}].genderScale | Number | Gender scale ranging from -1 (male) to +1 (female). | |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].probabilityCalibrated | Number | Higher implies a more reliable result, ranges from 0 to 1. |
Code sample:
Genderize Full Name code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/genderFullBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"0f472330-11a9-49ad-a0f5-bcac90a3f6bf","name":"Keith Haring"}]}'
Body parameter:
{
"personalNames": [
{
"id": "0f472330-11a9-49ad-a0f5-bcac90a3f6bf",
"name": "Keith Haring"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "0f472330-11a9-49ad-a0f5-bcac90a3f6bf",
"name": "Keith Haring",
"likelyGender": "male",
"genderScale": -0.8744219712791637,
"score": 11.2727995452283,
"probabilityCalibrated": 0.9372109856395818
}
]
}
Genderize Full Name Geo
Genderize Full Name Geo feature analyzes an unsplit full name (first name and last name) based on a country of residence, to identify its most likely gender with improved accuracy than the basic feature Genderize Full Name. The feature returns most likely gender accompanied by a calibrated probability. If the probability of the returned gender is between 45% and 55%, the name can be interpreted as a unisex name.

If the first and last name are clearly identifiable, the Genderize Name Geo feature will be slightly more accurate.
- Description: Returns the most likely gender of up to 100 unsplit full names, according to their geographic context.
- Precision:
- Cost: 1 credit per name.
- Test: Genderize Full Name Geo feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/genderFullGeoBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of personal full names with their country of residence. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].name | String | Required | Unsplit full name (first name and last name). |
[{...}].countryIso2 | String | Required | Country of residence, in ISO 3166-1 alpha-2 format. |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted full names genderized. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].name | String | Submitted full name. | |
[{...}].likelyGender | String | Most likely gender. | Genders |
[{...}].genderScale | Number | Gender scale ranging from -1 (male) to +1 (female). | |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. | |
[{...}].probabilityCalibrated | Number | Higher implies a more reliable result, ranges from 0 to 1. |
Code sample:
Genderize Full Name Geo code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/genderFullGeoBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"3a2d203a-a6a4-42f9-acd1-1b5c56c7d39f","name":"Keith Haring","countryIso2":"US"}]}'
Body parameter:
{
"personalNames": [
{
"id": "3a2d203a-a6a4-42f9-acd1-1b5c56c7d39f",
"name": "Keith Haring",
"countryIso2": "US"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "3a2d203a-a6a4-42f9-acd1-1b5c56c7d39f",
"name": "Keith Haring",
"likelyGender": "male",
"genderScale": -0.8716298606148474,
"score": 11.225679376737641,
"probabilityCalibrated": 0.9358149303074237
}
]
}
Name Type Recognition
Namsor provides a specialized proper name type determination API, it is trained to analyse proper names and infer if they are personal names (anthroponym), a geographic name (toponym) or brand names. Differentiate individuals from companies base on their name in order to automate processes, evaluate references to names or leverage deeper insight into an audience. To yield improved results you may indicate the name's country of origin.
Name Type
Name Type feature analyzes a proper noun to determine if it's the name of a person (anthroponym), a geographic name (toponym), an alias of a person (pseudonym) or the name of a brand. We recommend that you submit the entire name (full name) if applicable.
- Description: Returns the type of up to 100 submitted proper nouns. Ex: John Smith = personal name, Namsor = brand name, Cherbourg en Cotentin = toponym, Batman = pseudonym.
- Precision:
- Cost: 1 credit per name.
- Test: Name Type feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/nameTypeBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
properNouns | Array of objects | Required | A list of proper names. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].name | String | Required | A proper noun (person, brand, etc.). |
Name | Type | Description | Enumerators |
---|---|---|---|
properNouns | Array of objects | A list of commonTypeized names.. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].name | String | Submitted proper noun. | |
[{...}].commonType | String | Most likely type of the proper noun. | Name types |
[{...}].commonTypeAlt | String | Second most likely type of the proper noun. | Name types |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. |
Code sample:
Name Type code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/nameTypeBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"properNouns":[{"id":"e630dda5-13b3-42c5-8f1d-648aa8a21c42","name":"Zippo"}]}'
Body parameter:
{
"properNouns": [
{
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"name": "Zippo"
}
]
}
The above command returns JSON structured like this:
{
"properNouns": [
{
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"name": "Zippo",
"commonType": "brand-name",
"commonTypeAlt": "toponym",
"score": 7.717552576402805
}
]
}
Name Type Geo
Name Type Geo feature analyzes a proper noun based on a local context to determine if it's the name of a person (anthroponym), a geographic name (toponym), an alias of a person (pseudonym) or the name of a brand, with improved accuracy than the basic feature Name Type.
- Description: Returns the type of up to 100 submitted proper nouns using their geographic context. Ex: John Smith = personal name, Namsor = brand name, Cherbourg en Cotentin = toponym, Batman = pseudonym.
- Precision:
- Cost: 1 credit per name.
- Test: Name Type Geo feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/nameTypeGeoBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
properNouns | Array of objects | Required | A list of proper names. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].name | String | Required | A proper noun (person, brand, etc.). |
[{...}].countryIso2 | String | Required | Most likely country of origin, in ISO 3166-1 alpha-2 format. |
Name | Type | Description | Enumerators |
---|---|---|---|
properNouns | Array of objects | A list of commonTypeized names.. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].name | String | Submitted proper noun. | |
[{...}].commonType | String | Most likely type of the proper noun. | Name types |
[{...}].commonTypeAlt | String | Second most likely type of the proper noun. | Name types |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. |
Code sample:
Name Type Geo code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/nameTypeGeoBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"properNouns":[{"id":"e630dda5-13b3-42c5-8f1d-648aa8a21c42","name":"Edi Gathegi","countryIso2":"KE"}]}'
Body parameter:
{
"properNouns": [
{
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"name": "Edi Gathegi",
"countryIso2": "KE"
}
]
}
The above command returns JSON structured like this:
{
"properNouns": [
{
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"name": "Edi Gathegi",
"commonType": "anthroponym",
"commonTypeAlt": "brand-name",
"score": 18.579081911201673
}
]
}
Split names
Namsor's software offers a name separation API. We are able to take in a full name, and split it into a first name and last name structure. Our API also supports Chinese names, in Pinyin or Mandarin Chinese, and Japanese names written in Kanji characters.
Split Name
Split Name feature identifies the first name and the last name from an unsplit full name. The Split Name Geo feature helps improve accuracy when splitting the full name by adding a country of residence.
- Description: Returns the most likely first name and last name structure of up to 100 full names.
- Cost: 1 credit per name.
- Test: Split Name feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/parseNameBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of unsplit full names. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].name | String | Required | Full name (first name and last name). |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names separated into first name and last name structure. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].name | String | Submitted full name. | |
[{...}].nameParserType | String | Most likely structure of the name. | Name structures |
[{...}].nameParserTypeAlt | String | Second most likely structure of the name. | Name structures |
[{...}].firstLastName | Object | Split name. | |
{...}.script | String | Name of the script used for the name, in ISO 15924 format. | Script |
{...}.id | String | Provided unique identifier. | |
{...}.firstName | String | First name (or given name). | |
{...}.lastName | String | Last name (or family name). | |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. |
Code sample:
Split Name code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/parseNameBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"e630dda5-13b3-42c5-8f1d-648aa8a21c42","name":"John Smith"}]}'
Body parameter:
{
"personalNames": [
{
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"name": "John Smith"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"name": "John Smith",
"nameParserType": "FN1LN1",
"nameParserTypeAlt": null,
"firstLastName": {
"script": null,
"id": null,
"firstName": "John",
"lastName": "Smith"
},
"score": 23.31368511252333
}
]
}
Split Name Geo
Split Name Geo feature processes an unsplit full name with a country of residence to identify the first name and the last name, with improved accuracy than the basic feature Split Name.
- Description: Returns the most likely first name and last name structure of up to 100 full names using their geographic context.
- Cost: 1 credit per name.
- Test: Split Name Geo feature.
HTTP request

https://v2.namsor.com/NamSorAPIv2/api2/json/parseNameGeoBatch
Request header
Property | Required | Description |
---|---|---|
X-API-KEY | Required | Your Namsor's services API key |
Name | Type | Required | Description |
---|---|---|---|
personalNames | Array of objects | Required | A list of unsplit full names with their country of residence. |
[{...}].id | String | Optional | Unique identifier. |
[{...}].name | String | Required | Full name (first name and last name). |
[{...}].countryIso2 | String | Required | Most likely country of origin, in ISO 3166-1 alpha-2 format. |
Name | Type | Description | Enumerators |
---|---|---|---|
personalNames | Array of objects | List of submitted names separated into first name and last name structure. | |
[{...}].script | String | Name of the script used for the name, in ISO 15924 format. | Script |
[{...}].id | String | Provided unique identifier. | |
[{...}].name | String | Submitted full name. | |
[{...}].nameParserType | String | Most likely structure of the name. | Name structures |
[{...}].nameParserTypeAlt | String | Second most likely structure of the name. | Name structures |
[{...}].firstLastName | Object | Split name. | |
{...}.script | String | Name of the script used for the name, in ISO 15924 format. | Script |
{...}.id | String | Provided unique identifier. | |
{...}.firstName | String | First name (or given name). | |
{...}.lastName | String | Last name (or family name). | |
[{...}].score | Number | Higher implies a more reliable result, score is not normalized. |
Code sample:
Split Name Geo code sample for shell:
curl --request POST \
--url https://v2.namsor.com/NamSorAPIv2/api2/json/parseNameGeoBatch \
--header 'X-API-KEY: your-api-key' \
--header 'Accept: application/json'
--header 'Content-Type: application/json' \
--data '{"personalNames":[{"id":"e630dda5-13b3-42c5-8f1d-648aa8a21c42","name":"Ricardo Darín","countryIso2":"AR"}]}'
Body parameter:
{
"personalNames": [
{
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"name": "Ricardo Darín",
"countryIso2": "AR"
}
]
}
The above command returns JSON structured like this:
{
"personalNames": [
{
"script": "LATIN",
"id": "e630dda5-13b3-42c5-8f1d-648aa8a21c42",
"name": "Ricardo Darín",
"nameParserType": "FN1LN1",
"nameParserTypeAlt": "FN1LN2",
"firstLastName": {
"script": null,
"id": null,
"firstName": "Ricardo",
"lastName": "Darín"
},
"score": 3.447624982163207
}
]
}