@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api NamSor API v2
@base https://v2.namsor.com/NamSorAPIv2
@version 2.1.4
@auth ApiKey X-API-KEY in header
@endpoints 115
@hint download_for_search
@toc api2(115)

@endpoint GET /api2/json/disable/{source}/{disabled}
@required {source: str, disabled: bool}
@returns(200)
@errors {401, 429}

@endpoint GET /api2/json/country/{personalNameFull}
@required {personalNameFull: str}
@returns(200) {script: str, id: str, explanation: str, name: str, score: num(double), country: str, countryAlt: str, region: str, topRegion: str, subRegion: str, countriesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}
@errors {401, 403, 429}

@endpoint GET /api2/json/origin/{firstName}/{lastName}
@required {firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, countryOrigin: str, countryOriginAlt: str, countriesOriginTop: [str], score: num(double), regionOrigin: str, topRegionOrigin: str, subRegionOrigin: str, probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}
@errors {401, 403, 429}

@endpoint GET /api2/json/nameType/{properNoun}
@required {properNoun: str}
@returns(200) {script: str, id: str, explanation: str, name: str, commonType: str, commonTypeAlt: str, score: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/parseName/{nameFull}
@required {nameFull: str}
@returns(200) {script: str, id: str, explanation: str, name: str, nameParserType: str, nameParserTypeAlt: str, firstLastName: map{script: str, id: str, explanation: str, firstName: str, lastName: str}, score: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/regions
@returns(200) {countriesAndRegions: [map]}
@errors {401}

@endpoint GET /api2/json/genderstatv3/{enabled}
@required {enabled: bool}
@returns(200)
@errors {401, 429}

@endpoint GET /api2/json/softwareVersion
@returns(200) {softwareNameAndVersion: str, softwareVersion: [int(int32)]}
@errors {401}

@endpoint GET /api2/json/apiStatus
@returns(200) {softwareVersion: map{softwareNameAndVersion: str, softwareVersion: [int(int32)]}, classifiers: [map]}
@errors {401}

@endpoint GET /api2/json/apiServices
@returns(200) {apiServices: [map]}
@errors {401}

@endpoint GET /api2/json/taxonomyClasses/{classifierName}
@required {classifierName: str}
@returns(200) {classifierName: str, taxonomyClasses: [str], classifyingScripts: [str]}
@errors {401}

@endpoint GET /api2/json/apiUsage
@returns(200) {subscription: map{apiKey: str, planStarted: int(int64), taxRate: num(double), planName: str, planBaseFeesKey: str, planQuota: int(int64), price: num(double), planDiscountInPercent: num(double), priceOverage: num(double), overageDiscountInPercent: num(double), currency: str, currencyFactor: num(double), stripeCustomerId: str, stripeStatus: str, stripeSubscription: str, userId: str}, billingPeriod: map{subscriptionStarted: int(int64), periodStarted: int(int64), periodEnded: int(int64), usage: int(int64), softLimit: int(int64), hardLimit: int(int64)}, overageExclTax: num(double), overageInclTax: num(double), overageCurrency: str, overageQuantity: int(int64)}
@errors {401, 429}

@endpoint GET /api2/json/learnable/{source}/{learnable}
@required {source: str, learnable: bool}
@returns(200)
@errors {401, 429}

@endpoint GET /api2/json/learnable/{source}/{learnable}/{token}
@required {source: str, learnable: bool, token: str}
@returns(200) {apiKey: str, userId: str, admin: bool, vetted: bool, learnable: bool, anonymized: bool, partner: bool, striped: bool, corporate: bool, disabled: bool, explainable: bool, duplicateNamesRatio: int(int32), ipAddress: str, communityEngageOption: map{genderFilter: [str], ethnicityFilter: [str], countryOutFilter: [str], usRaceEthnicityFilter: [str]}}
@errors {401, 429}

@endpoint GET /api2/json/apiKeyInfo
@returns(200) {apiKey: str, userId: str, admin: bool, vetted: bool, learnable: bool, anonymized: bool, partner: bool, striped: bool, corporate: bool, disabled: bool, explainable: bool, duplicateNamesRatio: int(int32), ipAddress: str, communityEngageOption: map{genderFilter: [str], ethnicityFilter: [str], countryOutFilter: [str], usRaceEthnicityFilter: [str]}}
@errors {401, 429}

@endpoint GET /api2/json/anonymize/{source}/{anonymized}/{token}
@required {source: str, anonymized: bool, token: str}
@returns(200) {apiKey: str, userId: str, admin: bool, vetted: bool, learnable: bool, anonymized: bool, partner: bool, striped: bool, corporate: bool, disabled: bool, explainable: bool, duplicateNamesRatio: int(int32), ipAddress: str, communityEngageOption: map{genderFilter: [str], ethnicityFilter: [str], countryOutFilter: [str], usRaceEthnicityFilter: [str]}}
@errors {401, 429}

@endpoint GET /api2/json/anonymize/{source}/{anonymized}
@required {source: str, anonymized: bool}
@returns(200)
@errors {401, 429}

@endpoint GET /api2/json/nameTypeGeo/{properNoun}/{countryIso2}
@required {properNoun: str, countryIso2: str}
@returns(200) {script: str, id: str, explanation: str, name: str, commonType: str, commonTypeAlt: str, score: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/nameTypeBatch
@optional {properNouns: [map{id: str, name: str}]}
@returns(200) {properNouns: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/nameTypeGeoBatch
@optional {properNouns: [map{id: str, name: str, countryIso2: str}]}
@returns(200) {properNouns: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/corridor/{countryIso2From}/{firstNameFrom}/{lastNameFrom}/{countryIso2To}/{firstNameTo}/{lastNameTo}
@required {countryIso2From: str, firstNameFrom: str, lastNameFrom: str, countryIso2To: str, firstNameTo: str, lastNameTo: str}
@returns(200) {id: str, FirstLastNameGenderedOut: map{script: str, id: str, explanation: str, firstName: str, lastName: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}, FirstLastNameOriginedOut: map{script: str, id: str, explanation: str, firstName: str, lastName: str, countryOrigin: str, countryOriginAlt: str, countriesOriginTop: [str], score: num(double), regionOrigin: str, topRegionOrigin: str, subRegionOrigin: str, probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, FirstLastNameGeoOut: map{script: str, id: str, explanation: str, firstName: str, lastName: str, score: num(double), country: str, countryAlt: str, region: str, topRegion: str, subRegion: str, countriesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, FirstLastNameDiasporaedOut: map{script: str, id: str, explanation: str, firstName: str, lastName: str, score: num(double), ethnicityAlt: str, ethnicity: str, lifted: bool, countryIso2: str, ethnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, script: str}
@errors {401, 403, 429}

@endpoint POST /api2/json/corridorBatch
@optional {corridorFromTo: [map{id: str, personalNameGeoFrom: map, personalNameGeoTo: map}]}
@returns(200) {corridorFromTo: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/gender/{firstName}
@required {firstName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/gender/{firstName}/{lastName}
@required {firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/genderGeo/{firstName}/{lastName}/{countryIso2}
@required {firstName: str, lastName: str, countryIso2: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/genderGeoBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/genderBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/genderFullGeo/{fullName}/{countryIso2}
@required {fullName: str, countryIso2: str}
@returns(200) {script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/genderFull/{fullName}
@required {fullName: str}
@returns(200) {script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/genderFullBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/genderFullGeoBatch
@optional {personalNames: [map{id: str, name: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/originBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/originFull/{personalNameFull}
@required {personalNameFull: str}
@returns(200) {script: str, id: str, explanation: str, name: str, countryOrigin: str, countryOriginAlt: str, countriesOriginTop: [str], score: num(double), regionOrigin: str, topRegionOrigin: str, subRegionOrigin: str, probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map], religionStatsSynthetic: [map]}
@errors {401, 403, 429}

@endpoint POST /api2/json/originFullBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/subclassificationIndian/{firstName}/{lastName}
@required {firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, countryIso2: str, subClassification: str, subClassificationAlt: str, subclassificationTop: [str], score: num(double), probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/subclassificationIndianFull/{fullName}
@required {fullName: str}
@returns(200) {script: str, id: str, explanation: str, name: str, countryIso2: str, subClassification: str, subClassificationAlt: str, subclassificationTop: [str], score: num(double), probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/subclassification/{countryIso2}/{firstName}/{lastName}
@required {countryIso2: str, firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, countryIso2: str, subClassification: str, subClassificationAlt: str, subclassificationTop: [str], score: num(double), probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/subclassificationFull/{countryIso2}/{fullName}
@required {countryIso2: str, fullName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, countryIso2: str, subClassification: str, subClassificationAlt: str, subclassificationTop: [str], score: num(double), probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/subclassificationBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/subclassificationFullBatch
@optional {personalNames: [map{id: str, name: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/subclassificationIndianBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/subclassificationIndianFullBatch
@optional {personalNames: [map{id: str, name: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/religionIndian/{subDivisionIso31662}/{firstName}/{lastName}
@required {subDivisionIso31662: str, firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, religion: str, religionAlt: str, religionsTop: [str], score: num(double), probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/religion/{countryIso2}/{subDivisionIso31662}/{firstName}/{lastName}
@required {countryIso2: str, subDivisionIso31662: str, firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, religion: str, religionAlt: str, religionsTop: [str], score: num(double), probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/religionIndianFull/{subDivisionIso31662}/{personalNameFull}
@required {subDivisionIso31662: str, personalNameFull: str}
@returns(200) {script: str, id: str, explanation: str, name: str, score: num(double), religion: str, religionAlt: str, religionsTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/religionFull/{countryIso2}/{subDivisionIso31662}/{personalNameFull}
@required {countryIso2: str, subDivisionIso31662: str, personalNameFull: str}
@returns(200) {script: str, id: str, explanation: str, name: str, score: num(double), religion: str, religionAlt: str, religionsTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/religionFullBatch
@optional {personalNames: [map{id: str, name: str, countryIso2: str, subdivisionIso: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/religionIndianFullBatch
@optional {personalNames: [map{id: str, name: str, subdivisionIso: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/religionBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str, subdivisionIso: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/religionIndianBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, subdivisionIso: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/castegroupIndianFull/{subDivisionIso31662}/{personalNameFull}
@required {subDivisionIso31662: str, personalNameFull: str}
@returns(200) {script: str, id: str, explanation: str, name: str, score: num(double), castegroup: str, castegroupAlt: str, castegroupTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/castegroupIndianFullBatch
@optional {personalNames: [map{id: str, name: str, subdivisionIso: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/castegroupIndian/{subDivisionIso31662}/{firstName}/{lastName}
@required {subDivisionIso31662: str, firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, castegroup: str, castegroupAlt: str, castegroupTop: [str], score: num(double), probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/castegroupIndianBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, subdivisionIso: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/casteIndian/{subDivisionIso31662}/{firstName}/{lastName}
@required {subDivisionIso31662: str, firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, caste: str, casteAlt: str, casteTop: [str], score: num(double), probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/casteIndianBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str, subdivisionIso: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/corridorFull/{countryIso2From}/{personalNameFrom}/{countryIso2To}/{personalNameTo}
@required {countryIso2From: str, personalNameFrom: str, countryIso2To: str, personalNameTo: str}
@returns(200) {id: str, personalNameGeoFromGender: map{script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}, personalNameGeoToGender: map{script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}, PersonalNameOriginedOut: map{script: str, id: str, explanation: str, name: str, countryOrigin: str, countryOriginAlt: str, countriesOriginTop: [str], score: num(double), regionOrigin: str, topRegionOrigin: str, subRegionOrigin: str, probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map], religionStatsSynthetic: [map]}, personalNameGeoFromCountry: map{script: str, id: str, explanation: str, name: str, score: num(double), country: str, countryAlt: str, region: str, topRegion: str, subRegion: str, countriesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, personalNameGeoToCountry: map{script: str, id: str, explanation: str, name: str, score: num(double), country: str, countryAlt: str, region: str, topRegion: str, subRegion: str, countriesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, PersonalNameDiasporaedOut: map{script: str, id: str, explanation: str, name: str, score: num(double), ethnicityAlt: str, ethnicity: str, lifted: bool, countryIso2: str, ethnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, script: str, firstLastNameGeoFromCountry: map{script: str, id: str, explanation: str, name: str, score: num(double), country: str, countryAlt: str, region: str, topRegion: str, subRegion: str, countriesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, firstLastNameGeoFromGender: map{script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}, firstLastNameGeoToGender: map{script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}, firstLastNameGeoToCountry: map{script: str, id: str, explanation: str, name: str, score: num(double), country: str, countryAlt: str, region: str, topRegion: str, subRegion: str, countriesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}}
@errors {401, 403, 429}

@endpoint POST /api2/json/corridorFullBatch
@optional {corridorFromTo: [map{id: str, personalNameGeoFrom: map, personalNameGeoTo: map}]}
@returns(200) {corridorFromTo: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/countryBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/countryFnLn/{firstName}/{lastName}
@required {firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, countryOrigin: str, countryOriginAlt: str, countriesOriginTop: [str], score: num(double), regionOrigin: str, topRegionOrigin: str, subRegionOrigin: str, probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}
@errors {401, 403, 429}

@endpoint POST /api2/json/countryFnLnBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/usRaceEthnicity/{firstName}/{lastName}
@required {firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, raceEthnicityAlt: str, raceEthnicity: str, score: num(double), raceEthnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/usRaceEthnicityZIP5/{firstName}/{lastName}/{zip5Code}
@required {firstName: str, lastName: str, zip5Code: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, raceEthnicityAlt: str, raceEthnicity: str, score: num(double), raceEthnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/usRaceEthnicityBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/usZipRaceEthnicityBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str, zipCode: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/usRaceEthnicityFull/{personalNameFull}
@required {personalNameFull: str}
@returns(200) {script: str, id: str, explanation: str, name: str, raceEthnicityAlt: str, raceEthnicity: str, score: num(double), raceEthnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/usRaceEthnicityFullBatch
@optional {personalNames: [map{id: str, name: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/diaspora/{countryIso2}/{firstName}/{lastName}
@required {countryIso2: str, firstName: str, lastName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, score: num(double), ethnicityAlt: str, ethnicity: str, lifted: bool, countryIso2: str, ethnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}
@errors {401, 403, 429}

@endpoint POST /api2/json/diasporaBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/diasporaFull/{countryIso2}/{personalNameFull}
@required {countryIso2: str, personalNameFull: str}
@returns(200) {script: str, id: str, explanation: str, name: str, score: num(double), ethnicityAlt: str, ethnicity: str, lifted: bool, countryIso2: str, ethnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}
@errors {401, 403, 429}

@endpoint POST /api2/json/diasporaFullBatch
@optional {personalNames: [map{id: str, name: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/communityEngage/{countryIso2}/{firstName}/{lastName}
@required {countryIso2: str, firstName: str, lastName: str}
@returns(200) {id: str, PersonalNameDiasporaedOut: map{script: str, id: str, explanation: str, name: str, score: num(double), ethnicityAlt: str, ethnicity: str, lifted: bool, countryIso2: str, ethnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, PersonalNameOriginedOut: map{script: str, id: str, explanation: str, name: str, countryOrigin: str, countryOriginAlt: str, countriesOriginTop: [str], score: num(double), regionOrigin: str, topRegionOrigin: str, subRegionOrigin: str, probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map], religionStatsSynthetic: [map]}, country: map{script: str, id: str, explanation: str, name: str, score: num(double), country: str, countryAlt: str, region: str, topRegion: str, subRegion: str, countriesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, gender: map{script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}, PersonalNameUSRaceEthnicityOut: map{script: str, id: str, explanation: str, name: str, raceEthnicityAlt: str, raceEthnicity: str, score: num(double), raceEthnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}, prime: bool, scoped: bool, script: str}
@errors {401, 403, 429}

@endpoint POST /api2/json/communityEngageBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, countryIso2: str}]}
@returns(200) {engagementCandidates: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/communityEngageFull/{countryIso2}/{personalNameFull}
@required {countryIso2: str, personalNameFull: str}
@returns(200) {id: str, PersonalNameDiasporaedOut: map{script: str, id: str, explanation: str, name: str, score: num(double), ethnicityAlt: str, ethnicity: str, lifted: bool, countryIso2: str, ethnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, PersonalNameOriginedOut: map{script: str, id: str, explanation: str, name: str, countryOrigin: str, countryOriginAlt: str, countriesOriginTop: [str], score: num(double), regionOrigin: str, topRegionOrigin: str, subRegionOrigin: str, probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map], religionStatsSynthetic: [map]}, country: map{script: str, id: str, explanation: str, name: str, score: num(double), country: str, countryAlt: str, region: str, topRegion: str, subRegion: str, countriesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double), religionStats: [map], religionStatsAlt: [map]}, gender: map{script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}, PersonalNameUSRaceEthnicityOut: map{script: str, id: str, explanation: str, name: str, raceEthnicityAlt: str, raceEthnicity: str, score: num(double), raceEthnicitiesTop: [str], probabilityCalibrated: num(double), probabilityAltCalibrated: num(double)}, prime: bool, scoped: bool, script: str}
@errors {401, 403, 429}

@endpoint POST /api2/json/communityEngageFullBatch
@optional {personalNames: [map{id: str, name: str, countryIso2: str}]}
@returns(200) {engagementCandidates: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/parseName/{nameFull}/{countryIso2}
@required {nameFull: str, countryIso2: str}
@returns(200) {script: str, id: str, explanation: str, name: str, nameParserType: str, nameParserTypeAlt: str, firstLastName: map{script: str, id: str, explanation: str, firstName: str, lastName: str}, score: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/parseNameBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/parseNameGeoBatch
@optional {personalNames: [map{id: str, name: str, countryIso2: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/parseChineseName/{chineseName}
@required {chineseName: str}
@returns(200) {script: str, id: str, explanation: str, name: str, nameParserType: str, nameParserTypeAlt: str, firstLastName: map{script: str, id: str, explanation: str, firstName: str, lastName: str}, score: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/parseChineseNameBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/pinyinChineseName/{chineseName}
@required {chineseName: str}
@returns(200) {script: str, id: str, explanation: str, name: str, nameParserType: str, nameParserTypeAlt: str, firstLastName: map{script: str, id: str, explanation: str, firstName: str, lastName: str}, score: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/pinyinChineseNameBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/chineseNameMatch/{chineseSurnameLatin}/{chineseGivenNameLatin}/{chineseName}
@required {chineseSurnameLatin: str, chineseGivenNameLatin: str, chineseName: str}
@returns(200) {script: str, id: str, explanation: str, matchStatus: str, score: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/chineseNameMatchBatch
@optional {personalNames: [map{id: str, name1: map, name2: map}]}
@returns(200) {matchedNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/genderChineseNamePinyin/{chineseSurnameLatin}/{chineseGivenNameLatin}
@required {chineseSurnameLatin: str, chineseGivenNameLatin: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/genderChineseNamePinyinBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/genderChineseName/{chineseName}
@required {chineseName: str}
@returns(200) {script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/genderChineseNameBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/chineseNameCandidates/{chineseSurnameLatin}/{chineseGivenNameLatin}
@required {chineseSurnameLatin: str, chineseGivenNameLatin: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, orderOption: str, matchCandidates: [map]}
@errors {401, 403, 429}

@endpoint POST /api2/json/chineseNameCandidatesBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str}]}
@returns(200) {namesAndMatchCandidates: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/chineseNameGenderCandidates/{chineseSurnameLatin}/{chineseGivenNameLatin}/{knownGender}
@required {chineseSurnameLatin: str, chineseGivenNameLatin: str, knownGender: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, orderOption: str, matchCandidates: [map]}
@errors {401, 403, 429}

@endpoint POST /api2/json/chineseNameCandidatesGenderBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, gender: str}]}
@returns(200) {namesAndMatchCandidates: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/parseJapaneseName/{japaneseName}
@required {japaneseName: str}
@returns(200) {script: str, id: str, explanation: str, name: str, nameParserType: str, nameParserTypeAlt: str, firstLastName: map{script: str, id: str, explanation: str, firstName: str, lastName: str}, score: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/parseJapaneseNameBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/japaneseNameKanjiCandidates/{japaneseSurnameLatin}/{japaneseGivenNameLatin}
@required {japaneseSurnameLatin: str, japaneseGivenNameLatin: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, orderOption: str, matchCandidates: [map]}
@errors {401, 403, 429}

@endpoint GET /api2/json/japaneseNameKanjiCandidates/{japaneseSurnameLatin}/{japaneseGivenNameLatin}/{knownGender}
@required {japaneseSurnameLatin: str, japaneseGivenNameLatin: str, knownGender: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, orderOption: str, matchCandidates: [map]}
@errors {401, 403, 429}

@endpoint GET /api2/json/japaneseNameLatinCandidates/{japaneseSurnameKanji}/{japaneseGivenNameKanji}
@required {japaneseSurnameKanji: str, japaneseGivenNameKanji: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, orderOption: str, matchCandidates: [map]}
@errors {401, 403, 429}

@endpoint POST /api2/json/japaneseNameKanjiCandidatesBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str}]}
@returns(200) {namesAndMatchCandidates: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/japaneseNameGenderKanjiCandidatesBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str, gender: str}]}
@returns(200) {namesAndMatchCandidates: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/japaneseNameLatinCandidatesBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str}]}
@returns(200) {namesAndMatchCandidates: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/japaneseNameMatch/{japaneseSurnameLatin}/{japaneseGivenNameLatin}/{japaneseName}
@required {japaneseSurnameLatin: str, japaneseGivenNameLatin: str, japaneseName: str}
@returns(200) {script: str, id: str, explanation: str, matchStatus: str, score: num(double)}
@errors {401, 403, 429}

@endpoint GET /api2/json/japaneseNameMatchFeedbackLoop/{japaneseSurnameLatin}/{japaneseGivenNameLatin}/{japaneseName}
@required {japaneseSurnameLatin: str, japaneseGivenNameLatin: str, japaneseName: str}
@returns(200) {feedbackCredits: int(int64)}
@errors {401, 403, 429}

@endpoint POST /api2/json/japaneseNameMatchBatch
@optional {personalNames: [map{id: str, name1: map, name2: map}]}
@returns(200) {matchedNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/genderJapaneseName/{japaneseSurname}/{japaneseGivenName}
@required {japaneseSurname: str, japaneseGivenName: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/genderJapaneseNameBatch
@optional {personalNames: [map{id: str, firstName: str, lastName: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/genderJapaneseNameFull/{japaneseName}
@required {japaneseName: str}
@returns(200) {script: str, id: str, explanation: str, name: str, likelyGender: str, genderScale: num(double), score: num(double), probabilityCalibrated: num(double)}
@errors {401, 403, 429}

@endpoint POST /api2/json/genderJapaneseNameFullBatch
@optional {personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint GET /api2/json/phoneCode/{firstName}/{lastName}/{phoneNumber}
@required {firstName: str, lastName: str, phoneNumber: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, internationalPhoneNumberVerified: str, phoneCountryIso2Verified: str, phoneCountryCode: int(int32), phoneCountryCodeAlt: int(int32), phoneCountryIso2: str, phoneCountryIso2Alt: str, originCountryIso2: str, originCountryIso2Alt: str, phoneNumber: str, verified: bool, score: num(double), countryIso2: str}
@errors {401, 403, 429}

@endpoint GET /api2/json/phoneCodeGeo/{firstName}/{lastName}/{phoneNumber}/{countryIso2}
@required {firstName: str, lastName: str, phoneNumber: str, countryIso2: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, internationalPhoneNumberVerified: str, phoneCountryIso2Verified: str, phoneCountryCode: int(int32), phoneCountryCodeAlt: int(int32), phoneCountryIso2: str, phoneCountryIso2Alt: str, originCountryIso2: str, originCountryIso2Alt: str, phoneNumber: str, verified: bool, score: num(double), countryIso2: str}
@errors {401, 403, 429}

@endpoint GET /api2/json/phoneCodeGeoFeedbackLoop/{firstName}/{lastName}/{phoneNumber}/{phoneNumberE164}/{countryIso2}
@required {firstName: str, lastName: str, phoneNumber: str, phoneNumberE164: str, countryIso2: str}
@returns(200) {script: str, id: str, explanation: str, firstName: str, lastName: str, internationalPhoneNumberVerified: str, phoneCountryIso2Verified: str, phoneCountryCode: int(int32), phoneCountryCodeAlt: int(int32), phoneCountryIso2: str, phoneCountryIso2Alt: str, originCountryIso2: str, originCountryIso2Alt: str, phoneNumber: str, verified: bool, score: num(double), countryIso2: str}
@errors {401, 403, 429}

@endpoint POST /api2/json/phoneCodeBatch
@optional {personalNamesWithPhoneNumbers: [map{id: str, firstName: str, lastName: str, phoneNumber: str}]}
@returns(200) {personalNamesWithPhoneNumbers: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/phoneCodeGeoBatch
@optional {personalNamesWithPhoneNumbers: [map{id: str, firstName: str, lastName: str, phoneNumber: str, countryIso2: str, countryIso2Alt: str}]}
@returns(200) {personalNamesWithPhoneNumbers: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/translateFullBatch
@optional {sourceLangIso3: str, targetLangIso3: str, personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/searchFullBatch
@optional {datasetName: str, personalNames: [map{id: str, name: str}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@endpoint POST /api2/json/compareFullBatch
@optional {personalNames: [map{id: str, name1: map, name2: map}]}
@returns(200) {personalNames: [map]}
@errors {400, 401, 403, 429}

@end
